blob: 69a12ff62d523c692ed2b454d68f4070f7c23902 [file] [log] [blame] [edit]
#ifndef LEDS_AW210XX_H_
#define LEDS_AW210XX_H_
#include <common.h>
#ifdef CONFIG_SYS_I2C_MESON
#include <i2c.h>
#include <dt-bindings/i2c/meson-i2c.h>
#endif
#define AW210XX_I2C_BUS_NUM 3
#define AW210XX_I2C_LED_REG 0x20
#define AW210XX_NUM_LEDS 4
/*****************************************************
* register about led mode
*****************************************************/
#define AW210XX_REG_GCR (0x20)
#define AW210XX_REG_BR00L (0x21)
#define AW210XX_REG_BR00H (0x22)
#define AW210XX_REG_BR01L (0x23)
#define AW210XX_REG_BR01H (0x24)
#define AW210XX_REG_BR02L (0x25)
#define AW210XX_REG_BR02H (0x26)
#define AW210XX_REG_BR03L (0x27)
#define AW210XX_REG_BR03H (0x28)
#define AW210XX_REG_BR04L (0x29)
#define AW210XX_REG_BR04H (0x2A)
#define AW210XX_REG_BR05L (0x2B)
#define AW210XX_REG_BR05H (0x2C)
#define AW210XX_REG_BR06L (0x2D)
#define AW210XX_REG_BR06H (0x2E)
#define AW210XX_REG_BR07L (0x2F)
#define AW210XX_REG_BR07H (0x30)
#define AW210XX_REG_BR08L (0x31)
#define AW210XX_REG_BR08H (0x32)
#define AW210XX_REG_BR09L (0x33)
#define AW210XX_REG_BR09H (0x34)
#define AW210XX_REG_BR10L (0x35)
#define AW210XX_REG_BR10H (0x36)
#define AW210XX_REG_BR11L (0x37)
#define AW210XX_REG_BR11H (0x38)
#define AW210XX_REG_BR12L (0x39)
#define AW210XX_REG_BR12H (0x3A)
#define AW210XX_REG_BR13L (0x3B)
#define AW210XX_REG_BR13H (0x3C)
#define AW210XX_REG_BR14L (0x3D)
#define AW210XX_REG_BR14H (0x3E)
#define AW210XX_REG_BR15L (0x3F)
#define AW210XX_REG_BR15H (0x40)
#define AW210XX_REG_BR16L (0x41)
#define AW210XX_REG_BR16H (0x42)
#define AW210XX_REG_BR17L (0x43)
#define AW210XX_REG_BR17H (0x44)
#define AW210XX_REG_UPDATE (0x45)
#define AW210XX_REG_SL00 (0x46)
#define AW210XX_REG_SL01 (0x47)
#define AW210XX_REG_SL02 (0x48)
#define AW210XX_REG_SL03 (0x49)
#define AW210XX_REG_SL04 (0x4A)
#define AW210XX_REG_SL05 (0x4B)
#define AW210XX_REG_SL06 (0x4C)
#define AW210XX_REG_SL07 (0x4D)
#define AW210XX_REG_SL09 (0x4F)
#define AW210XX_REG_SL10 (0x50)
#define AW210XX_REG_SL11 (0x51)
#define AW210XX_REG_SL12 (0x52)
#define AW210XX_REG_SL13 (0x53)
#define AW210XX_REG_SL14 (0x54)
#define AW210XX_REG_SL15 (0x55)
#define AW210XX_REG_SL16 (0x56)
#define AW210XX_REG_SL17 (0x57)
#define AW210XX_REG_GCCR (0x58)
#define AW210XX_REG_PHCR (0x59)
#define AW210XX_REG_OSDCR (0x5A)
#define AW210XX_REG_OSST0 (0x5B)
#define AW210XX_REG_OSST1 (0x5C)
#define AW210XX_REG_OSST2 (0x5D)
#define AW210XX_REG_OTCR (0x5E)
#define AW210XX_REG_SSCR (0x5F)
#define AW210XX_REG_UVCR (0x60)
#define AW210XX_REG_GCR2 (0x61)
#define AW210XX_REG_GCR3 (0x62)
#define AW210XX_REG_RESET (0x70)
#define AW210XX_REG_ABMCFG (0x80)
#define AW210XX_REG_ABMGO (0x81)
#define AW210XX_REG_ABMT0 (0x82)
#define AW210XX_REG_ABMT1 (0x83)
#define AW210XX_REG_ABMT2 (0x84)
#define AW210XX_REG_ABMT3 (0x85)
#define AW210XX_REG_GBRH (0x86)
#define AW210XX_REG_GBRL (0x87)
#define AW210XX_REG_GSLR (0x88)
#define AW210XX_REG_GSLG (0x89)
#define AW210XX_REG_GSLB (0x8A)
#define AW210XX_REG_GCFG (0x8B)
/*****************************************************
* define register Detail
*****************************************************/
#define AW210XX_BIT_APSE_MASK (1 << 7)
#define AW210XX_BIT_APSE_ENABLE (1 << 7)
#define AW210XX_BIT_APSE_DISENA (0 << 7)
#define AW210XX_BIT_CHIPEN_MASK (1 << 0)
#define AW210XX_BIT_CHIPEN_ENABLE (1 << 0)
#define AW210XX_BIT_CHIPEN_DISENA (0 << 0)
#define AW210XX_UPDATE_ENABLE (0x0)
#define AW210XX_UPDATE_MASK (0xff)
#define AW210XX_PDE_ENABLE (1 << 7)
#define AW210XX_PDE_MASK (1 << 7)
#define AW210XX_GE2_SET (1 << 2)
#define AW210XX_GE_MASK (0x7)
#define AW210XX_PATE_ENABLE (1 << 0)
#define AW210XX_PATMD_AUTO (1 << 1)
#define AW210XX_PATCFG_MASK (0x3)
#define AW210XX_PAT_RISE_TIME (0x0)
#define AW210XX_PAT_RISE_MASK (0xf << 4)
#define AW210XX_PAT_ON_TIME (0x6)
#define AW210XX_PAT_ON_MASK (0xf)
#define AW210XX_PAT_FALL_TIME (0x0)
#define AW210XX_PAT_FALL_MASK (0xf << 4)
#define AW210XX_PAT_OFF_TIME (0x6)
#define AW210XX_PAT_OFF_MASK (0xf)
#define AW210XX_PAT_RUN (0x1)
#define AW210XX_PAT_RUN_MASK (0x1)
#define AW210XX_RESET_MASK 0xff
#define AW210XX_GLOBAL_CURRENT_MASK 0xff
#define AW210XX_SLXX_MASK 0xff
#define AW210XX_BRXX_MASK 0xff
/*****************************************************
* define register data
*****************************************************/
#define AW210XX_RESET_CHIP (0x00)
#define AW210XX_UPDATE_BR_SL (0x00)
#define AW210XX_GROUP_ENABLE (0x38)
#define AW210XX_GROUP_DISABLE (0x40)
#define AW210XX_GLOBAL_DEFAULT_SET (0x66)
#define AW210XX_GBRH_DEFAULT_SET (0x60)
#define AW210XX_GBRL_DEFAULT_SET (0x00)
#define AW210XX_ABMT0_SET (0x99)
#define AW210XX_ABMT1_SET (0x99)
#define AW210XX_ABMT2_SET (0x00)
#define AW210XX_ABMT3_SET (0x00)
#define AW210XX_ABMCFG_SET (0x03)
#define AW210XX_ABMGO_SET (0x01)
#define AW210xx_MAX_CURRENT (0xff)
#define AW210xx_MAX_BRIGHTNESS (0xff)
#define AW210xx_MIN_BRIGHTNESS (0x0)
enum Aw210XX_INIT_STATUS {
INIT_NO = 0,
INIT_DONE,
INIT_NO_USED
};
#endif // LEDS_AW210XX_H_