summaryrefslogtreecommitdiff
path: root/include/driver/ln9310.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/driver/ln9310.h')
-rw-r--r--include/driver/ln9310.h57
1 files changed, 44 insertions, 13 deletions
diff --git a/include/driver/ln9310.h b/include/driver/ln9310.h
index 07cff8ba97..e4bd0bc7e0 100644
--- a/include/driver/ln9310.h
+++ b/include/driver/ln9310.h
@@ -66,14 +66,14 @@
#define LN9310_REG_SYS_CTRL 0x1e
#define LN9310_REG_STARTUP_CTRL 0x1f
-#define LN9310_STARTUP_STANDBY_EN BIT(0)
+#define LN9310_STARTUP_STANDBY_EN BIT(0)
#define LN9310_STARTUP_SELECT_EXT_5V_FOR_VDR BIT(3)
#define LN9310_REG_IIN_CTRL 0x20
#define LN9310_REG_VIN_CTRL 0x21
#define LN9310_REG_TRACK_CTRL 0x22
-#define LN9310_TRACK_INFET_OUT_SWITCH_OK_EN BIT(7)
+#define LN9310_TRACK_INFET_OUT_SWITCH_OK_EN BIT(7)
#define LN9310_TRACK_INFET_OUT_SWITCH_OK_CFG2 BIT(6)
#define LN9310_TRACK_INFET_OUT_SWITCH_OK_CFG1 BIT(5)
#define LN9310_TRACK_INFET_OUT_SWITCH_OK_CFG0 BIT(4)
@@ -93,8 +93,8 @@
#define LN9310_REG_RECOVERY_CTRL 0x25
#define LN9310_REG_LB_CTRL 0x26
-#define LN9310_LB_MIN_FREQ_EN BIT(2)
-#define LN9310_LB_DELTA_MASK 0x38
+#define LN9310_LB_MIN_FREQ_EN BIT(2)
+#define LN9310_LB_DELTA_MASK 0x38
#define LN9310_LB_DELTA_2S 0x20
#define LN9310_LB_DELTA_3S 0x20
@@ -130,23 +130,24 @@
#define LN9310_REG_SC_DITHER_CTRL 0x2f
-#define LN9310_REG_LION_CTRL 0x30
-#define LN9310_LION_CTRL_MASK 0xFF
-#define LN9310_LION_CTRL_UNLOCK 0xAA
-#define LN9310_LION_CTRL_LOCK 0x00
+#define LN9310_REG_LION_CTRL 0x30
+#define LN9310_LION_CTRL_MASK 0xFF
+#define LN9310_LION_CTRL_UNLOCK_AND_EN_TM 0xAA
+#define LN9310_LION_CTRL_UNLOCK 0x5B
+#define LN9310_LION_CTRL_LOCK 0x00
#define LN9310_REG_CFG_0 0x3C
-#define LN9310_CFG_0_LS_HELPER_IDLE_MSK_MASK 0x20
+#define LN9310_CFG_0_LS_HELPER_IDLE_MSK_MASK 0x20
#define LN9310_CFG_0_LS_HELPER_IDLE_MSK_ON 0x20
#define LN9310_REG_CFG_4 0x40
#define LN9310_CFG_4_SC_OUT_PRECHARGE_EN_TIME_CFG BIT(2)
-#define LN9310_CFG_4_SW1_VGS_SHORT_EN_MSK BIT(3)
+#define LN9310_CFG_4_SW1_VGS_SHORT_EN_MSK BIT(3)
#define LN9310_CFG_4_SC_OUT_PRECHARGE_EN_TIME_CFG_MASK 0x04
-#define LN9310_CFG_4_SW1_VGS_SHORT_EN_MSK_MASK 0x08
+#define LN9310_CFG_4_SW1_VGS_SHORT_EN_MSK_MASK 0x08
#define LN9310_CFG_4_BSTH_BSTL_HIGH_ROUT_CFG_MASK 0xC0
#define LN9310_CFG_4_SC_OUT_PRECHARGE_EN_TIME_CFG_ON 0x04
-#define LN9310_CFG_4_SW1_VGS_SHORT_EN_MSK_OFF 0x00
+#define LN9310_CFG_4_SW1_VGS_SHORT_EN_MSK_OFF 0x00
#define LN9310_CFG_4_BSTH_BSTL_HIGH_ROUT_CFG_LOWEST 0x00
#define LN9310_REG_CFG_5 0x41
@@ -155,6 +156,24 @@
#define LN9310_CFG_5_INFET_CP_PD_BIAS_CFG_MASK 0x30
#define LN9310_CFG_5_INFET_CP_PD_BIAS_CFG_LOWEST 0x00
+#define LN9310_REG_TEST_MODE_CTRL 0x46
+#define LN9310_TEST_MODE_CTRL_FORCE_SC_OUT_PRECHARGE_MASK 0x40
+#define LN9310_TEST_MODE_CTRL_FORCE_SC_OUT_PRECHARGE_ON 0x40
+#define LN9310_TEST_MODE_CTRL_FORCE_SC_OUT_PRECHARGE_OFF 0x00
+#define LN9310_TEST_MODE_CTRL_FORCE_SC_OUT_PREDISCHARGE_MASK 0x20
+#define LN9310_TEST_MODE_CTRL_FORCE_SC_OUT_PREDISCHARGE_ON 0x20
+#define LN9310_TEST_MODE_CTRL_FORCE_SC_OUT_PREDISCHARGE_OFF 0x00
+
+#define LN9310_REG_FORCE_SC21_CTRL_1 0x49
+#define LN9310_FORCE_SC21_CTRL_1_TM_SC_OUT_CFLY_PRECHARGE_MASK 0xFF
+#define LN9310_FORCE_SC21_CTRL_1_TM_SC_OUT_CFLY_PRECHARGE_ON 0x59
+#define LN9310_FORCE_SC21_CTRL_1_TM_SC_OUT_CFLY_PRECHARGE_OFF 0x40
+
+#define LN9310_REG_FORCE_SC21_CTRL_2 0x4A
+#define LN9310_FORCE_SC21_CTRL_2_FORCE_SW_CTRL_REQ_MASK 0x80
+#define LN9310_FORCE_SC21_CTRL_2_FORCE_SW_CTRL_REQ_ON 0x80
+#define LN9310_FORCE_SC21_CTRL_2_FORCE_SW_CTRL_REQ_OFF 0x00
+
#define LN9310_REG_SWAP_CTRL_0 0x58
#define LN9310_REG_SWAP_CTRL_1 0x59
#define LN9310_REG_SWAP_CTRL_2 0x5A
@@ -164,8 +183,17 @@
#define LN9310_BC_STS_B_INFET_OUT_SWITCH_OK BIT(5)
#define LN9310_BC_STS_B_INFET_OUT_SWITCH_OK_MASK 0x20
+#define LN9310_REG_BC_STS_C 0x52
+#define LN9310_BC_STS_C_CHIP_REV_MASK 0xF0
+#define LN9310_BC_STS_C_CHIP_REV_FIXED 0x40
+
/* LN9310 Timing definition */
-#define LN9310_CDC_DELAY 120 /* 120us */
+#define LN9310_CDC_DELAY 120 /* 120us */
+#define LN9310_CFLY_PRECHARGE_DELAY (12*MSEC)
+#define LN9310_CFLY_PRECHARGE_TIMEOUT (100*MSEC)
+
+/* LN9310 Driver Configuration */
+#define LN9310_INIT_RETRY_COUNT 3
/* Define configuration of LN9310 part */
struct ln9310_config_t {
@@ -179,6 +207,9 @@ extern const struct ln9310_config_t ln9310_config;
/* Init the driver */
void ln9310_init(void);
+/* Enable/disable the ln9310 output */
+void ln9310_software_enable(int enable);
+
/* Interrupt handler */
void ln9310_interrupt(enum gpio_signal signal);