FL2440添加自带led驱动
2017-04-20 21:47
239 查看
FL2440添加自带led驱动
在之前学习驱动自己写过led的驱动程序,其实s3c2440对于驱动已经支持得非常好,内核里面已经有了led的驱动程序,我们要使能led驱动只需要稍作修改。make menuconfig 配置
Device Drivers ---> [*] LED Support ---> [*] LED Class Support <*> LED Support for Samsung S3C24XX GPIO LEDs//添加LED支持
源码修改
s3c24xx系列的芯片的led硬件信息基本一致,因此内核将led的硬件设备信息源码放在了 arch/arm/plat-s3c24xx/common-smdk.c,对照芯片手册,我们要把led0~led3的相关GPIO分别配置成PB5,PB6,PB8,PB10vim arch/arm/plat-s3c24xx/common-smdk.c /* LED devices */ static struct s3c24xx_led_platdata smdk_pdata_led4 = { .gpio = S3C2410_GPB(5),/*led0为PB5*/ .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, .name = "led0", .def_trigger = "timer", }; static struct s3c24xx_led_platdata smdk_pdata_led5 = { .gpio = S3C2410_GPB(6),/*led1为PB6*/ .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, .name = "led1", .def_trigger = "nand-disk", }; static struct s3c24xx_led_platdata smdk_pdata_led6 = { gpio = S3C2410_GPB(8),/*led2为PB8*/ .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, .name = "led2", }; static struct s3c24xx_led_platdata smdk_pdata_led7 = { .gpio = S3C2410_GPB(10),/*led3为PB10*/ .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, .name = "led3", };
完成以上操作之后重新编译内核并且下载到开发板。
测试运行
对于向led这样的设备模型,系统认为所有的设备都是挂接在总线上的,而要使设备工作,就需要相应的驱动。设备模型会产生一个虚拟的文件系统——sysfs,它给用户提供了一个从用户空间去访问内核设备的方法,它在linux里的路径是/sys。如果要写程序访问sysfs,可以像读写普通文件一样来操作/sys目录下的文件。下载到内核之后会在/sys/class/目录下生成leds目录,会看到led0 led1 led2 led3,在leds目录下执行ls -l 可知,led0、led1 、led2、 led3都是软连接
进入到led0目录下,可以看到brightness 等文件
其中brightness就是控制等亮灭的文件,max_brightness可以控制亮灭程度的最大值假如设定是100就是0到100代表不同的亮度(需要单板硬件的支持)。
- 向brightness文件中写入1控制灯亮
- 向brightness文件中写入0控制灯亮
cat > brightness //向brightness写入数据
可以看到,写入1时,led0点亮;写入0时,led0熄灭。对于其他的led灯也是同样的操作。
相关文章推荐
- fl2440内核自带的LED驱动修改与使用
- fl2440内核自带的LED驱动修改与使用
- fl2440内核自带的LED驱动修改与使用
- fl2440——linux内核自带的led驱动添加
- tiny4412内核自带led驱动分析
- S3c6410 linux内核移植(10)---添加充电控制脚驱动(LED驱动)
- fl2440 led驱动移植详细记录
- real6410开发板Uboot中添加控制LED驱动
- 内核自带按键驱动的添加与测试
- FL2440驱动添加(5)ADC驱动学习笔记
- S3C6410 linux内核移植(11)---添加充电控制脚驱动(LED驱动)
- fl2440 --------添加网卡驱动
- Barebox for Tiny6410(添加LED驱动)
- mini2440在linux-2.6.34.2中添加LED驱动,并编写应用程序验证
- 在U-boot中添加led驱动步骤
- Linux下fl2440之led驱动编写以及测试
- linux驱动开发FL2440开发板-LED驱动及其测试程序
- fl2440——内核自带LED的使用
- fl2440 添加 eeprom驱动,并测试
- android5.1.1中添加led驱动到apk层的一体化接口