通过修改bsp向系统增加LED驱动 的方法

参考ldd6410-manual[1].pdf

向s3c6410系统曾加LED设备的驱动.有四个led 的灯分别与GPIO 的GPK4,GPK5,GPK6,GPK7相连,四个led为共阳。

Linux 内核下的drivers/leds/ledsgpio.c 实现了一个体系结构无关的 GPIO LED 驱动, 使用此 LED 驱动,开发者不需要修改一行代码,只需要在BSP的板文件(/home/wsh/s3c-linux-2.6.28.6-Real6410/arch/arm/mach-s3c6410/mach-smdk6410.c)中定义相关的平台的设备和数据。

 

///*led driver support*/
static struct gpio_led s3c6410_leds[] = {
[0] = {
     .name = "LED10",
  .gpio = S3C64XX_GPK(4),
   },
[1] = {
  .name = "LED12",
  .gpio = S3C64XX_GPK(5),
   },
[2] = {
  .name = "LED13",
  .gpio = S3C64XX_GPK(6),
   },
[3] = {
  .name = "LED14",
  .gpio = S3C64XX_GPK(7),
  },
};

/*platform data support 其中gpio_led_platform_data在/linux/leds.h中定义了应将此文件包含在bsp文件当中*/

static struct gpio_led_platform_data s3c6410_gpio_led_pdata = {
 .num_leds = ARRAY_SIZE(s3c6410_leds),
 .leds = s3c6410_leds,
};

/*platform device struct  in /linux/platform_device.h define */

static struct platform_device s3c_device_led = {
 .name = "leds-gpio",//注册device name 要于加进去的设备驱动一致,不一致就注册不成功
 .id   = 1,
 .dev  = {
        .platform_data = &s3c6410_gpio_led_pdata,
     },
     };

并将“&s3c_device_led,”语句填入 struct platform_device *smdk6410_devices[]数组,作为该数组的一个成
员。

编译内核make menuconfig

时会应选择

 --- LED Support                                                               │ │ 
  │ │        <*>   LED Class Support                                                       │ │ 
  │ │              *** LED drivers ***                                                     │ │ 
  │ │        < >   LED driver for PCA9532 dimmer                                           │ │ 
  │ │        <*>   LED Support for GPIO connected LEDs                                     │ │ 
  │ │        < >   LED Support for PCA955x I2C chips                                       │ │ 
  │ │              *** LED Triggers ***                                                    │ │ 
  │ │        [ ]   LED Trigger support   

通过以下方式能查看系统的驱动

在系统打印的时候会打印如下信息

Registered led device: LED10
Registered led device: LED12
Registered led device: LED13
Registered led device: LED13

[root@FriendlyARM leds]# pwd
/sys/class/leds
[root@FriendlyARM leds]# ls
LED10  LED12  LED13  LED14  mmc0

控制灯亮

[root@FriendlyARM leds]# echo 0 >LED10/brightness

控制灯灭

[root@FriendlyARM leds]# echo 1 >LED10/brightness

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值