diff options
Diffstat (limited to 'board/lindar/ktd20xx.h')
-rw-r--r-- | board/lindar/ktd20xx.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/board/lindar/ktd20xx.h b/board/lindar/ktd20xx.h new file mode 100644 index 0000000000..ad93ee3de8 --- /dev/null +++ b/board/lindar/ktd20xx.h @@ -0,0 +1,141 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Public header for Kinetic 36-Channel RGB LED Drivers with I2C control, + * including KTD2061/58/59/60. + */ + +#ifndef __CROS_EC_DRIVER_RGB_LED_DRIVER_KTD20XX_PUBLIC_H +#define __CROS_EC_DRIVER_RGB_LED_DRIVER_KTD20XX_PUBLIC_H + +/* + * KTD20xx Register Definition + * + * Reg0x00: ID Data Register + * skip... + * Reg0x01: MONITOR Status Register + * skip... + * Reg0x02: CONTROL Configuration Register + * BIT7:6 is EN_MODE[1:0] + * 00 = global off, 01 = Night mode, + * 10 = Normal mode, 11 = reset as default + * BIT5 is BrightExtendTM Enable + * 0 = disable/1 = enable + * BIT4:3 is CoolExtendTM Temperature Setting + * 00 = 135°C rising, 01 = 120°C + * 10 = 105°C, 11 = 90°C + * BIT2:0 is Fade Rate Exponential Time-Constant Setting + * 000 = 31ms, 001 = 63ms, 010 = 125ms, 011 = 250ms + * 100 = 500ms, 101 = 1s, 110 = 2s, 111 = 4s + * + * Reg0x03: IRED0 Color Configuration Register + * IRED_SET0[7:0] Red Current Setting 0 + * 0000 0000 = 0μA + * 0000 0001 = 125μA + * ... + * 0010 1000 = 5mA + * ... + * 1100 0000 = 24mA + * 1100 0001 = 24mA (reads back as 1100 0000) + * ... + * 1111 1111 = 24mA (reads back as 1100 0000) + * Reg0x04: IGRN0 Color Configuration Register + * IGRN_SET0[7:0] Green Current Setting 0 + * Reg0x05: IBLU0 Color Configuration Register + * IBLU_SET0[7:0] Blue Current Setting 0 + * Reg0x06: IRED1 Color Configuration Register + * IRED_SET1[7:0] Red Current Setting 1 + * Reg0x07: IGRN1 Color Configuration Register + * IGRN_SET1[7:0] Green Current Setting 1 + * Reg0x08: IBLU1 Color Configuration Register + * IBLU_SET1[7:0] Blue Current Setting 1 + * + * Reg0x09: ISELA12 Selection Configuration Register + * BIT7 is ENA1, Enable RGB with anode connected to LEDA1 pin + * 0 = use 0μA for these LEDs (includes fade to 0μA) + * 1 = use the settings selected by RGBA1_SEL[2:0] + * BIT6:4 is RGBA1_SEL[2:0] + * Current Selection for RGB with anode connected to LEDA1 pin + * 0XX = I LEDA3 selects IRED_SET0[7:0] + * 1XX = I LEDA3 selects IRED_SET1[7:0] + * X0X = I LEDA2 selects IGRN_SET0[7:0] + * X1X = I LEDA2 selects IGRN_SET1[7:0] + * XX0 = I LEDA4 selects IBLU_SET0[7:0] + * XX1 = I LEDA4 selects IBLU_SET1[7:0] + * BIT3 IS ENA2 + * 0 = use 0μA for these LEDs (includes fade to 0μA) + * 1 = use the settings selected by RGBA2_SEL[2:0] + * BIT2:0 is RGBA2_SEL[2:0] + * Current Selection for RGB with anode connected to LEDA2 pin + * 0XX = I LEDA4 selects IRED_SET0[7:0] + * 1XX = I LEDA4 selects IRED_SET1[7:0] + * X0X = I LEDA3 selects IGRN_SET0[7:0] + * X1X = I LEDA3 selects IGRN_SET1[7:0] + * XX0 = I LEDA1 selects IBLU_SET0[7:0] + * XX1 = I LEDA1 selects IBLU_SET1[7:0] + * Reg0x0A: ISELA34 Selection Configuration Register + * BIT7 is ENA3, Enable RGB with anode connected to LEDA3 pin + * 0 = use 0μA for these LEDs (includes fade to 0μA) + * 1 = use the settings selected by RGBA3_SEL[2:0] + * BIT6:4 is RGBA3_SEL[2:0] + * Current Selection for RGB with anode connected to LEDA3 pin + * 0XX = I LEDA1 selects IRED_SET0[7:0] + * 1XX = I LEDA1 selects IRED_SET1[7:0] + * X0X = I LEDA4 selects IGRN_SET0[7:0] + * X1X = I LEDA4 selects IGRN_SET1[7:0] + * XX0 = I LEDA2 selects IBLU_SET0[7:0] + * XX1 = I LEDA2 selects IBLU_SET1[7:0] + * BIT3 IS ENA4 + * 0 = use 0μA for these LEDs (includes fade to 0μA) + * 1 = use the settings selected by RGBA4_SEL[2:0] + * BIT2:0 is RGBA4_SEL[2:0] + * Current Selection for RGB with anode connected to LEDA4 pin + * 0XX = I LEDA2 selects IRED_SET0[7:0] + * 1XX = I LEDA2 selects IRED_SET1[7:0] + * X0X = I LEDA1 selects IGRN_SET0[7:0] + * X1X = I LEDA1 selects IGRN_SET1[7:0] + * XX0 = I LEDA3 selects IBLU_SET0[7:0] + * XX1 = I LEDA3 selects IBLU_SET1[7:0] + * Reg0x0B: ISELB12 Selection Configuration Register + * BIT7 is ENB1, Enable RGB with anode connected to LEDB1 pin + * 0 = use 0μA for these LEDs (includes fade to 0μA) + * 1 = use the settings selected by RGB1_SEL[2:0] + * BIT6:4 is RGBB1_SEL[2:0] + * Current Selection for RGB with anode connected to LEDB1 pin + * 0XX = I LEDB3 selects IRED_SET0[7:0] + * 1XX = I LEDB3 selects IRED_SET1[7:0] + * X0X = I LEDB2 selects IGRN_SET0[7:0] + * X1X = I LEDB2 selects IGRN_SET1[7:0] + * XX0 = I LEDB4 selects IBLU_SET0[7:0] + * XX1 = I LEDB4 selects IBLU_SET1[7:0] + * BIT3 IS ENB2 + * ... + * Reg0x0C: ISELB34 Selection Configuration Register + * ... + * Reg0x0D: ISELC12 Selection Configuration Register + * ... + * Reg0x0E: ISELC34 Selection Configuration Register + * ... + */ + +enum ktd20xx_register { + KTD20XX_ID_DATA = 0x00, + KTD20XX_STATUS_REG = 0x01, + KTD20XX_CTRL_CFG = 0x02, + KTD20XX_IRED_SET0 = 0x03, + KTD20XX_IGRN_SET0 = 0x04, + KTD20XX_IBLU_SET0 = 0x05, + KTD20XX_IRED_SET1 = 0x06, + KTD20XX_IGRN_SET1 = 0x07, + KTD20XX_IBLU_SET1 = 0x08, + KTD20XX_ISEL_A12 = 0x09, + KTD20XX_ISEL_A34 = 0x0A, + KTD20XX_ISEL_B12 = 0x0B, + KTD20XX_ISEL_B34 = 0x0C, + KTD20XX_ISEL_C12 = 0x0D, + KTD20XX_ISEL_C34 = 0x0E, + KTD20XX_TOTOAL_REG +}; + +#endif /* __CROS_EC_DRIVER_RGB_LED_DRIVER_KTD20XX_PUBLIC_H */ |