Linux平台驱动-LED驱动(Micro2440 + linux 2.6.39)

        由于LINUX使用了MINI2440的配置,MICRO2440与MINI2440的硬件资料基本一样。因此LED驱动也是通用的,默认的MINI2440配置已经添加对板上4个LED的支持,这里只需要对其配置和测试进行简单的说明。


a) menuconfig配置

        MICRO2440的LED驱动被定义为一LED类平台设备,使用该类型驱动需要在menuconfig中打开对LED类设备的支持。

        # make menuconfig

                Device Drivers  ---> 

                        -*- LED Support  ---> 

                                -*-   LED Class Support

                                <*>   LED Support for Samsung S3C24XX GPIO LEDs

                                <*>   LED Support for GPIO connected LEDs

                                [*]     Platform device bindings for GPIO LEDs

                                -*-   LED Trigger support

                                <*>   LED Timer Trigger

                                <*>   LED Heartbeat Trigger

                                -*-   LED backlight Trigger

                                <*>   LED GPIO Trigger

                                <*>   LED Default ON Trigger


b) LED配置

        LED的配置在arch/arm/mach-s3c2440/mach-mini2440.c文件下,本开发板的其它一些平台设备配置同样也在此文件内,如RTC等。

        # vim arch/arm/mach-s3c2440/mach-mini2440.c

        在mach-mini2440.c文件中搜索“LED”,可以找到以下名为s3c24xx_led_platdata的LED相关结构体。该结构体标识单个LED的名字、引脚、类型和功能。

 


        接下来定义了platform_device平台设备结构体,每一个LED用一个平台设备结构体定义。包含驱动名称、ID和之前定义的s3c24xx_led_platdata结构体。目标板的所有平台设备都会写到mini2440_devices[]这个平台设备结构体中,最后在mini2440_init()中对所有平台设备初始化。

 


c) LED驱动测试

        LED驱动文件在/sys/class/leds/目录下,可通过echo命令控制LED1~LED4亮和灭,如下所示。

                # echo > /sys/class/leds/led2/brightness 1

                # echo > /sys/class/leds/led2/brightness 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值