[PATCH 1/2] board: warp: add power_max77696_init() function

Jaehoon Chung jh80.chung at samsung.com
Thu Jan 28 12:42:33 CET 2021


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 at samsung.com>
---
 board/warp/warp.c      | 68 +++++++++++++++++++++++++++++++++++++++++-
 include/configs/warp.h |  1 -
 2 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/board/warp/warp.c b/board/warp/warp.c
index 85da9c1bd435..56c07d862440 100644
--- a/board/warp/warp.c
+++ b/board/warp/warp.c
@@ -25,7 +25,6 @@
 #include <mmc.h>
 #include <usb.h>
 #include <power/pmic.h>
-#include <power/max77696_pmic.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -44,6 +43,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();
@@ -113,6 +159,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;
diff --git a/include/configs/warp.h b/include/configs/warp.h
index f17eea117f3a..0f97804eb29c 100644
--- a/include/configs/warp.h
+++ b/include/configs/warp.h
@@ -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" \
-- 
2.29.0



More information about the U-Boot mailing list