power: pmic: rk817: support rk817 pmic
[oweals/u-boot.git] / include / power / rk8xx_pmic.h
index 589f8c4e1a93e00be36695dc5b6a136535d87298..d93cecedddf724e39ddfbb5e708ea0656056e52b 100644 (file)
@@ -1,8 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2015 Google, Inc
  * Written by Simon Glass <sjg@chromium.org>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef _PMIC_RK8XX_H_
@@ -170,14 +169,55 @@ enum {
        RK808_NUM_OF_REGS,
 };
 
+enum {
+       RK817_REG_SYS_CFG3 = 0xf4,
+};
+
+enum {
+       RK816_REG_DCDC_EN1 = 0x23,
+       RK816_REG_DCDC_EN2,
+       RK816_REG_DCDC_SLP_EN,
+       RK816_REG_LDO_SLP_EN,
+       RK816_REG_LDO_EN1 = 0x27,
+       RK816_REG_LDO_EN2,
+};
+
 enum {
        RK805_ID = 0x8050,
        RK808_ID = 0x0000,
+       RK816_ID = 0x8160,
+       RK817_ID = 0x8170,
        RK818_ID = 0x8180,
 };
 
+enum {
+       RK817_POWER_EN0 = 0xb1,
+       RK817_POWER_EN1,
+       RK817_POWER_EN2,
+       RK817_POWER_EN3,
+};
+
+#define RK817_POWER_EN_SAVE0   0x99
+#define RK817_POWER_EN_SAVE1   0xa4
+
+#define RK817_ID_MSB   0xed
+#define RK817_ID_LSB   0xee
 #define RK8XX_ID_MSK   0xfff0
 
+#define RK817_PMIC_SYS_CFG3    0xf4
+#define RK817_GPIO_INT_CFG     0xfe
+
+#define RK8XX_ON_SOURCE                0xae
+#define RK8XX_OFF_SOURCE       0xaf
+#define RK817_BUCK4_CMIN       0xc6
+#define RK817_ON_SOURCE                0xf5
+#define RK817_OFF_SOURCE       0xf6
+
+struct reg_data {
+       u8 reg;
+       u8 val;
+       u8 mask;
+};
 struct rk8xx_reg_table {
        char *name;
        u8 reg_ctl;
@@ -189,5 +229,7 @@ struct rk8xx_priv {
 };
 
 int rk8xx_spl_configure_buck(struct udevice *pmic, int buck, int uvolt);
+int rk818_spl_configure_usb_input_current(struct udevice *pmic, int current_ma);
+int rk818_spl_configure_usb_chrg_shutdown(struct udevice *pmic, int uvolt);
 
 #endif