lp5562 的核心驅動程式¶
TI LP5562 LED 驅動
作者:Milo(Woogyom) Kim <milo.kim@ti.com>
描述¶
LP5562 最多可以驅動 4 個通道。R/G/B 和白色。LED 可以透過 led 類控制介面直接控制。
所有四個通道也可以使用引擎微程式進行控制。LP5562 具有用於執行各種 LED 模式的內部程式儲存器。有關詳細資訊,請參閱 LP5521/LP5523/LP55231/LP5562/LP8501 通用驅動程式 中的“韌體”部分
裝置屬性¶
- engine_mux
LP5562 中分配了 3 個引擎,但通道數為 4。因此,每個通道應對映到引擎編號。
值:RGB 或 W
此屬性用於使用韌體介面程式設計 LED 資料。與 LP5521/LP5523/55231 不同,LP5562 具有引擎複用的獨特功能,因此需要額外的 sysfs
LED 對映
紅色
...
引擎 1(固定)
綠色
...
引擎 2(固定)
藍色
...
引擎 3(固定)
白色
...
引擎 1 或 2 或 3(可選)
如何使用 engine_mux 載入程式資料¶
在載入 LP5562 程式資料之前,應在引擎選擇和載入韌體之間寫入 engine_mux。引擎複用器有兩種不同的模式,RGB 和 W。RGB 用於載入 RGB 程式資料,W 用於載入 W 程式資料。
例如,執行閃爍的綠色通道模式
echo 2 > /sys/bus/i2c/devices/xxxx/select_engine # 2 is for green channel echo "RGB" > /sys/bus/i2c/devices/xxxx/engine_mux # engine mux for RGB echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine執行閃爍的白色模式
echo 1 or 2 or 3 > /sys/bus/i2c/devices/xxxx/select_engine echo "W" > /sys/bus/i2c/devices/xxxx/engine_mux echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine
如何載入預定義的模式¶
設定每個通道的電流¶
與 LP5521 和 LP5523/55231 一樣,LP5562 提供了 LED 電流設定。“led_current”和“max_current”被使用。
平臺數據示例¶
static struct lp55xx_led_config lp5562_led_config[] = {
{
.name = "R",
.chan_nr = 0,
.led_current = 20,
.max_current = 40,
},
{
.name = "G",
.chan_nr = 1,
.led_current = 20,
.max_current = 40,
},
{
.name = "B",
.chan_nr = 2,
.led_current = 20,
.max_current = 40,
},
{
.name = "W",
.chan_nr = 3,
.led_current = 20,
.max_current = 40,
},
};
static int lp5562_setup(void)
{
/* setup HW resources */
}
static void lp5562_release(void)
{
/* Release HW resources */
}
static void lp5562_enable(bool state)
{
/* Control of chip enable signal */
}
static struct lp55xx_platform_data lp5562_platform_data = {
.led_config = lp5562_led_config,
.num_channels = ARRAY_SIZE(lp5562_led_config),
.setup_resources = lp5562_setup,
.release_resources = lp5562_release,
.enable = lp5562_enable,
};
要配置平臺特定資料,請使用 lp55xx_platform_data 結構
如果在平臺數據中將電流設定為 0,則該通道將被停用,並且在 sysfs 中不可見。