[U-Boot] [RFC 7/9] pico-imx7d: Convert to DM PMIC
Joris Offouga
offougajoris at gmail.com
Sun Jan 20 21:18:56 UTC 2019
This patch converts the pico-pi-imx7d to use the DM PMIC model.
Signed-off-by: Joris Offouga <offougajoris at gmail.com>
---
board/technexion/pico-imx7d/pico-imx7d.c | 44 ++++++++++++--------------------
configs/pico-pi-imx7d_defconfig | 6 +++++
include/configs/pico-imx7d.h | 6 -----
3 files changed, 23 insertions(+), 33 deletions(-)
diff --git a/board/technexion/pico-imx7d/pico-imx7d.c b/board/technexion/pico-imx7d/pico-imx7d.c
index cd7d5b1..095242d 100644
--- a/board/technexion/pico-imx7d/pico-imx7d.c
+++ b/board/technexion/pico-imx7d/pico-imx7d.c
@@ -40,47 +40,37 @@ int dram_init(void)
return 0;
}
-#ifdef CONFIG_POWER
-#define I2C_PMIC 3
+#ifdef CONFIG_DM_PMIC
int power_init_board(void)
{
- struct pmic *p;
- int ret;
- unsigned int reg, rev_id;
+ struct udevice *dev;
+ int ret=0, dev_id=0, rev_id=0, reg=0;
- ret = power_pfuze3000_init(I2C_PMIC);
- if (ret)
- return ret;
+ ret = pmic_get("pfuze3000", &dev);
+ if (ret == -ENODEV)
+ return 0;
+ if (ret != 0)
- p = pmic_get("PFUZE3000");
- ret = pmic_probe(p);
- if (ret)
- return ret;
-
- pmic_reg_read(p, PFUZE3000_DEVICEID, ®);
- pmic_reg_read(p, PFUZE3000_REVID, &rev_id);
- printf("PMIC: PFUZE3000 DEV_ID=0x%x REV_ID=0x%x\n", reg, rev_id);
+ dev_id = pmic_reg_read(dev, PFUZE3000_DEVICEID);
+ rev_id = pmic_reg_read(dev, PFUZE3000_REVID);
+ printf("PMIC: PFUZE3000 DEV_ID=0x%x REV_ID=0x%x\n", dev_id, rev_id);
/* disable Low Power Mode during standby mode */
- pmic_reg_read(p, PFUZE3000_LDOGCTL, ®);
- reg |= 0x1;
- pmic_reg_write(p, PFUZE3000_LDOGCTL, reg);
+ pmic_clrsetbits(dev, PFUZE3000_LDOGCTL, 0, 1);
/* SW1A/1B mode set to APS/APS */
- reg = 0x8;
- pmic_reg_write(p, PFUZE3000_SW1AMODE, reg);
- pmic_reg_write(p, PFUZE3000_SW1BMODE, reg);
+ pmic_reg_write(dev, PFUZE3000_SW1AMODE, 0x8);
+ pmic_reg_write(dev, PFUZE3000_SW1BMODE, 0x8);
/* SW1A/1B standby voltage set to 1.025V */
- reg = 0xd;
- pmic_reg_write(p, PFUZE3000_SW1ASTBY, reg);
- pmic_reg_write(p, PFUZE3000_SW1BSTBY, reg);
+ pmic_reg_write(dev, PFUZE3000_SW1ASTBY, 0xd);
+ pmic_reg_write(dev, PFUZE3000_SW1BSTBY, 0xd);
/* decrease SW1B normal voltage to 0.975V */
- pmic_reg_read(p, PFUZE3000_SW1BVOLT, ®);
+ reg = pmic_reg_read(dev, PFUZE3000_SW1BVOLT);
reg &= ~0x1f;
reg |= PFUZE3000_SW1AB_SETP(975);
- pmic_reg_write(p, PFUZE3000_SW1BVOLT, reg);
+ pmic_reg_write(dev, PFUZE3000_SW1BVOLT, reg);
return 0;
}
diff --git a/configs/pico-pi-imx7d_defconfig b/configs/pico-pi-imx7d_defconfig
index 868abb0..24467bd 100644
--- a/configs/pico-pi-imx7d_defconfig
+++ b/configs/pico-pi-imx7d_defconfig
@@ -29,6 +29,12 @@ CONFIG_PINCTRL_IMX7=y
CONFIG_DM_GPIO=y
CONFIG_DM_I2C=y
CONFIG_DM_SERIAL=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_PFUZE100=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_PFUZE100=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
# CONFIG_CMD_BOOTD is not set
CONFIG_CMD_BOOTMENU=y
# CONFIG_CMD_IMI is not set
diff --git a/include/configs/pico-imx7d.h b/include/configs/pico-imx7d.h
index 82c105b..577cd13 100644
--- a/include/configs/pico-imx7d.h
+++ b/include/configs/pico-imx7d.h
@@ -120,12 +120,6 @@
#define CONFIG_SYS_I2C_MXC
#define CONFIG_SYS_I2C_SPEED 100000
-/* PMIC */
-#define CONFIG_POWER
-#define CONFIG_POWER_I2C
-#define CONFIG_POWER_PFUZE3000
-#define CONFIG_POWER_PFUZE3000_I2C_ADDR 0x08
-
/* FLASH and environment organization */
#define CONFIG_ENV_SIZE SZ_8K
--
2.7.4
More information about the U-Boot
mailing list