- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
platform_driver与file_operations两种方法开发led驱动
?
platform_driver与file_operations两种方法开发led驱动
分类:?片内驱动开发(I2C、NAND Flash、LINUX内核)?片外驱动开发(tuner、demod、ca、e2prom)2011-08-08 13:141538人阅读?评论(0)?收藏?举报
filestructmodulectableoutput
下面是两个LED灯的驱动程序 一个用platform_driver 另一个用file_operations
[cpp]?view plaincopy
#include?linux/kernel.h??
#include?linux/init.h??
#include?linux/platform_device.h??
#include?linux/leds.h??
??
#include?mach/hardware.h??
#include?mach/regs-gpio.h??
#include?mach/leds-gpio.h??
??
/*?our?context?*/??
??
struct?s3c24xx_gpio_led?{??
struct?led_classdev?cdev;??
struct?s3c24xx_led_platdata?*pdata;??
};??
??
static?inline?struct?s3c24xx_gpio_led?*pdev_to_gpio(struct?platform_device?*dev)??
{??
return?platform_get_drvdata(dev);??
}??
??
static?inline?struct?s3c24xx_gpio_led?*to_gpio(struct?led_classdev?*led_cdev)??
{??
return?container_of(led_cdev,?struct?s3c24xx_gpio_led,?cdev);??
}??
??
static?void?s3c24xx_led_set(struct?led_classdev?*led_cdev,??
enum?led_brightness?value)??
{??
struct?s3c24xx_gpio_led?*led?=?to_gpio(led_cdev);??
struct?s3c24xx_led_platdata?*pd?=?led-pdata;??
??
/*?there?will?be?a?short?delay?between?setting?the?output?and?
*?going?from?output?to?input?when?using?tristate.?*/??
??
s3c2410_gpio_setpin(pd-gpio,?(value???1?:?0)?^??
(pd-flags??S3C24XX_LEDF_ACTLOW));??
??
if?(pd-flags??S3C24XX_LEDF_TRISTATE)??
s3c2410_gpio_cfgpin(pd-gpio,??
value???S3C2410_GPIO_OUTPUT?:?S3C2410_GPIO_INPUT);??
??
}??
??
static?int?s3c24xx_led_remove(struct?platform_device?*dev)??
{??
struct?s3c24xx_gpio_led?*led?=?pdev_to_gpio(dev);??
??
led_classdev_unregister(led-cdev);??
kfree(led);??
??
return?0;??
}??
??
static?int?s3c24xx_led_probe(struct?platform_device?*dev)??
{??
struct?s3c24xx_led_platdata?*pdata?=?dev-dev.platform_data;??
struct?s3c24xx_gpio_led?*led;??
int?ret;??
??
led?=?kzalloc(sizeof(struct?s3c24xx_gpio_led),?GFP_KERNEL);??
if?(led?==?NULL)?{??
dev_err(dev-dev,?No?memory?for?device\n);??
return?-ENOMEM;??
}??
??
platform_set_drvdata(dev,?led);??
??
led-cdev.brightness_set?=?s3c24xx_led_set;??
led-c
您可能关注的文档
- 关于质心提取的若干图像处理问题的总结.doc
- 使用IO内存控制硬件点亮LED灯.doc
- AE—3D Channel三维通道特效中文.doc
- 租车常用英语.docx
- OD-1000测浓度使用说明书(onedrop).doc
- eXosip简例.docx
- Netfilter新增target模块浅析 - Copy.docx
- 外研社版高中英语必修四词汇表(默写版).docx
- 八下知识讲解U6.doc
- 电动托盘搬运车CBD图片 价格 参数.doc
- 抢分秘籍10 带电粒子电场中的直线运动、偏转和交变电电场中的应用(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍11 带电粒子在组合场、叠加场中的运动(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(解析版) -2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍12 电磁感应中的电路与图像问题(二大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍13 电磁感应中的动力学、能量和动量问题(三大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍14 热力学定律与气体实验定律综合应用(五大题型)(原卷版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍16 振动图像与波动图像的综合应用(三大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
- 抢分秘籍15 光的折射、全反射的综合应用(二大题型)(解析版)-2025年高考物理冲刺抢押秘籍.pdf
文档评论(0)