`
yidongkaifa
  • 浏览: 4056253 次
文章分类
社区版块
存档分类
最新评论

S3C6410 linux内核移植(11)---添加充电控制脚驱动(LED驱动)

 
阅读更多

1、原理分析

无线数码相框的GPQ3脚用于充电控制,当GPQ3为高电平是为充电状态,当为低电平时不充电。led的控制原理和充电脚的控制原理是一模一样的都是对某个io口置1或清零,所以在这里可以用led驱动实现对充电控制脚的控制。
Linux内核下drivers/leds/ledsgpio.c实现了一个和体系结构无关的led驱动,使用此led驱动我们只需要在BSP的板文件(arch/arm/mach-s3c6410/mach-smdk6410.c)中定义相关platform设备和数据

2、ut-s3c6410开发板的led控制驱动实现

在ut-s3c6410开发板上,用GPM0—GPM3外界4个lcd,因此对于的platform设备信息如下:
static struct gpio_led smdk6410_leds[] = {
[0] = {
.name = "LED1",
.gpio = S3C64XX_GPM(0),
},
[1] = {
.name = "LED2",
.gpio = S3C64XX_GPM(1),
.active_low = 1,
},
[2] = {
.name = "LED3",
.gpio = S3C64XX_GPM(2),
.active_low = 0,
},
[3] = {
.name = "LED4",
.gpio = S3C64XX_GPM(3),
.default_trigger = "heartbeat",
},

};

static struct gpio_led_platform_data smdk6410_gpio_led_pdata = {
.num_leds = ARRAY_SIZE(smdk6410_leds),
.leds = smdk6410_leds,
};

static struct platform_device smdk6410_device_led = {
.name = "leds-gpio",
.id = 1,
.dev = {
.platform_data = &smdk6410_gpio_led_pdata,
},
};

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

启动内核时会打印:
Registered led device: LED1
Registered led device: LED2
Registered led device: LED3
Registered led device: LED4

LED1—LED4对应开发板的四个led灯通过如下命令可分别点亮四个led灯:
#echo 1 > /sys/class/leds/LED1/brightness
#echo 1 > /sys/class/leds/LED1/brightness
#echo 1 > /sys/class/leds/LED1/brightness
#echo 1 > /sys/class/leds/LED1/brightness
通过如下命令可分别熄灭四个led等:
#echo 0 > /sys/class/leds/LED1/brightness
#echo 0 > /sys/class/leds/LED1/brightness
#echo 0 > /sys/class/leds/LED1/brightness
#echo 0 > /sys/class/leds/LED1/brightness

3、无线数码相框充电控制驱动实现

控制原理和以上分析的LED灯的控制是一模一样的,只需将smdk6410_leds结构体改为:
static struct gpio_led smdk6410_leds[] = {
[0] = {
.name = "charge",
.gpio = S3C64XX_GPQ(3),
},
};

通过如下命令开始电池充电:
#echo 1 > /sys/class/leds/ charge /brightness
通过如下命令停止电池充电:
#echo 0 > /sys/class/leds/ charge /brightness
其它的参见上面一节“ut-s3c6410开发板的led控制驱动实现”进行设置。

转载请注明出处,文章来源:http://www.threeway.cc/sitecn/InformationInfo.aspx?pid=1907&tid=1381

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics