lp5523 的内核驱动程序¶
National Semiconductor LP5523 LED 驱动芯片
作者:Mathias Nyman,Yuri Zaporozhets,Samu Onkalo 联系人:Samu Onkalo (samu.p.onkalo-at-nokia.com)
描述¶
LP5523 可以驱动多达 9 个通道。LED 可以通过 LED 类控制接口直接控制。每个通道的名称可以在平台数据中配置 - 名称和标签。有三种方法可以生成通道名称。
在平台数据中定义“name”
要生成特定的通道名称,请使用 “name” 平台数据。
/sys/class/leds/R1 (名称: ‘R1’)
/sys/class/leds/B1 (名称: ‘B1’)
使用 “label” 而不使用 “name” 字段
对于具有通道编号的单个设备名称,请使用 “label”。 - /sys/class/leds/RGB:channelN (标签: ‘RGB’,N: 0 ~ 8)
默认
如果两个字段都为 NULL,则默认使用 “lp5523”。 - /sys/class/leds/lp5523:channelN (N: 0 ~ 8)
LP5523 具有内部程序存储器,用于运行各种 LED 模式。有两种方法可以运行 LED 模式。
传统接口 - enginex_mode,enginex_load 和 enginex_leds
引擎的控制接口
x 为 1 .. 3
- enginex_mode
禁用、加载、运行
- enginex_load
微代码加载
- enginex_leds
LED 多路复用控制
cd /sys/class/leds/lp5523:channel2/device echo "load" > engine3_mode echo "9d80400004ff05ff437f0000" > engine3_load echo "111111111" > engine3_leds echo "run" > engine3_mode停止引擎
echo "disabled" > engine3_mode
固件接口 - LP55xx 通用接口
有关详细信息,请参阅 LP5521/LP5523/LP55231/LP5562/LP8501 通用驱动程序 中的 “固件” 部分
LP5523 有三个主衰减器。如果通道映射到其中一个主衰减器,则其输出会根据主衰减器的值进行调暗。
例如
echo "123000123" > master_fader_leds
创建以下通道-衰减器映射
channel 0,6 to master_fader1
channel 1,7 to master_fader2
channel 2,8 to master_fader3
然后,要在通道 0,6 上获得原始输出的 25%
echo 64 > master_fader1
要在通道 1,7 上获得原始输出的 0%(即无输出)
echo 0 > master_fader2
要在通道 2,8 上获得原始输出的 100%(即不调暗)
echo 255 > master_fader3
清除所有主衰减器控制
echo "000000000" > master_fader_leds
自检始终使用来自平台数据的电流。
每个通道包含 LED 电流设置。 - /sys/class/leds/lp5523:channel2/led_current - RW - /sys/class/leds/lp5523:channel2/max_current - RO
格式:10x mA,即 10 表示 1.0 mA
示例平台数据
static struct lp55xx_led_config lp5523_led_config[] = {
{
.name = "D1",
.chan_nr = 0,
.led_current = 50,
.max_current = 130,
},
...
{
.chan_nr = 8,
.led_current = 50,
.max_current = 130,
}
};
static int lp5523_setup(void)
{
/* Setup HW resources */
}
static void lp5523_release(void)
{
/* Release HW resources */
}
static void lp5523_enable(bool state)
{
/* Control chip enable signal */
}
static struct lp55xx_platform_data lp5523_platform_data = {
.led_config = lp5523_led_config,
.num_channels = ARRAY_SIZE(lp5523_led_config),
.clock_mode = LP55XX_CLOCK_EXT,
.setup_resources = lp5523_setup,
.release_resources = lp5523_release,
.enable = lp5523_enable,
};
- 注意
chan_nr 的值可以在 0 到 8 之间。