linux led flash驱动分析

led作为嵌入式设备中常见的器件,特别是在手机上,一般手机现在都会配置1-2led灯,用于camera补光和手电筒照明功能。

led驱动是字符设备,数据流和操作比较简单。

闪光灯的几种模式

torch,闪烁,瞬间亮,高电流

flash,闪光,持续亮,低电流

switch,控制led亮灭

手机的fled lash驱动有所谓主闪预闪电流说法,涨个用的就是torch模式吗,touch模式高电流,短时间亮度大,适合需要需要补光的场景

 

kernel闪光灯节点是/sys/class/leds/

开touch 

echo 50 > /sys/class/leds/led_touch1/brightness

关touch

echo 0 > /sys/class/leds/led_touch1/brightness

flash节点同理

 

linux flash框架图,kernel版本4.19

 

 

具体的驱动基本上是对probeshowstoreops方法的实现,同时控制flash的寄存器状态。一般来说flash有几种寄存器,电流大小寄存器,电流档位寄存器、中断控制寄存器(控制亮灭)等。

这个后面有空再结合具体驱动进行分析

 

posted @ 2023-01-02 20:32  waterzhm  阅读(198)  评论(0)    收藏  举报