board: warp: add power_max77696_init() function
authorJaehoon Chung <jh80.chung@samsung.com>
Thu, 28 Jan 2021 11:42:33 +0000 (20:42 +0900)
committerTom Rini <trini@konsulko.com>
Mon, 12 Apr 2021 18:24:33 +0000 (14:24 -0400)
Add power_max77696_init() function.
Since warp doesn't support DM, the keeping its code in board file is
better than maintainig the file of driver.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
board/warp/warp.c
include/configs/warp.h

index 0f1d038..c03b648 100644 (file)
@@ -26,7 +26,6 @@
 #include <mmc.h>
 #include <usb.h>
 #include <power/pmic.h>
-#include <power/max77696_pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -45,6 +44,53 @@ DECLARE_GLOBAL_DATA_PTR;
                      PAD_CTL_DSE_40ohm | PAD_CTL_HYS |         \
                      PAD_CTL_ODE | PAD_CTL_SRE_FAST)
 
+#define CONFIG_POWER_MAX77696_I2C_ADDR 0x3C
+
+enum {
+       L01_CNFG1 =     0x43,
+       L01_CNFG2,
+       L02_CNFG1,
+       L02_CNFG2,
+       L03_CNFG1,
+       L03_CNFG2,
+       L04_CNFG1,
+       L04_CNFG2,
+       L05_CNFG1,
+       L05_CNFG2,
+       L06_CNFG1,
+       L06_CNFG2,
+       L07_CNFG1,
+       L07_CNFG2,
+       L08_CNFG1,
+       L08_CNFG2,
+       L09_CNFG1,
+       L09_CNFG2,
+       L10_CNFG1,
+       L10_CNFG2,
+       LDO_INT1,
+       LDO_INT2,
+       LDO_INT1M,
+       LDO_INT2M,
+       LDO_CNFG3,
+       SW1_CNTRL,
+       SW2_CNTRL,
+       SW3_CNTRL,
+       SW4_CNTRL,
+       EPDCNFG,
+       EPDINTS,
+       EPDINT,
+       EPDINTM,
+       EPDVCOM,
+       EPDVEE,
+       EPDVNEG,
+       EPDVPOS,
+       EPDVDDH,
+       EPDSEQ,
+       EPDOKINTS,
+       CID =   0x9c,
+       PMIC_NUM_OF_REGS,
+};
+
 int dram_init(void)
 {
        gd->ram_size = imx_ddr_size();
@@ -114,6 +160,26 @@ struct i2c_pads_info i2c_pad_info1 = {
        },
 };
 
+static int power_max77696_init(unsigned char bus)
+{
+       static const char name[] = "MAX77696";
+       struct pmic *p = pmic_alloc();
+
+       if (!p) {
+               printf("%s: POWER allocation error!\n", __func__);
+               return -ENOMEM;
+       }
+
+       p->name = name;
+       p->interface = PMIC_I2C;
+       p->number_of_regs = PMIC_NUM_OF_REGS;
+       p->hw.i2c.addr = CONFIG_POWER_MAX77696_I2C_ADDR;
+       p->hw.i2c.tx_num = 1;
+       p->bus = bus;
+
+       return 0;
+}
+
 int power_init_board(void)
 {
        struct pmic *p;
index f17eea1..0f97804 100644 (file)
@@ -63,7 +63,6 @@
 /* PMIC */
 #define CONFIG_POWER
 #define CONFIG_POWER_I2C
-#define CONFIG_POWER_MAX77696
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
        "script=boot.scr\0" \