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 (name: ‘R1’)
/sys/class/leds/B1 (name: ‘B1’)
使用 “label”,沒有 “name” 欄位
對於帶有通道號的一個裝置名稱,請使用 “label”。 - /sys/class/leds/RGB:channelN (label: ‘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
disabled, load, run
- 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 通用驅動程式中的 “firmware” 部分
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
Selftest 始終使用來自平臺數據的電流。
每個通道都包含 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 之間。