This patch converts the pico-pi-imx7d to use the DM PMIC model.

Signed-off-by: Joris Offouga <offougajo...@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, &reg);
-       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);
-       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);
+       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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to