summaryrefslogtreecommitdiffstats
path: root/board
diff options
context:
space:
mode:
authorJaehoon Chung <jh80.chung@samsung.com>2021-01-28 20:42:33 +0900
committerTom Rini <trini@konsulko.com>2021-04-12 14:24:33 -0400
commite316aa5858b2acc3cfd5f2fc1d263f32e21d09c3 (patch)
tree5faf0f00b4129b1ee862e19f3b2296265dfeaebc /board
parent3b676a1662ac6b54d1e97ea40a0c41ee0925ffe3 (diff)
downloadu-boot-e316aa5858b2acc3cfd5f2fc1d263f32e21d09c3.tar.gz
u-boot-e316aa5858b2acc3cfd5f2fc1d263f32e21d09c3.tar.xz
u-boot-e316aa5858b2acc3cfd5f2fc1d263f32e21d09c3.zip
board: warp: add power_max77696_init() function
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>
Diffstat (limited to 'board')
-rw-r--r--board/warp/warp.c68
1 files changed, 67 insertions, 1 deletions
diff --git a/board/warp/warp.c b/board/warp/warp.c
index 0f1d038fab..c03b648850 100644
--- a/board/warp/warp.c
+++ b/board/warp/warp.c
@@ -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;