aboutsummaryrefslogtreecommitdiff
path: root/board/freescale
diff options
context:
space:
mode:
authorFabio Estevam <festevam@denx.de>2023-02-15 11:41:51 -0300
committerStefano Babic <sbabic@denx.de>2023-03-29 22:27:38 +0200
commitca038fc0339c02c8a0b455b5d5f533928b284757 (patch)
tree5bc7d37eadaeb9b8b7154526a101e6caa76bc3c8 /board/freescale
parent987a65d2f1cfe916f57964ebea44007b57d4476d (diff)
downloadu-boot-ca038fc0339c02c8a0b455b5d5f533928b284757.zip
u-boot-ca038fc0339c02c8a0b455b5d5f533928b284757.tar.gz
u-boot-ca038fc0339c02c8a0b455b5d5f533928b284757.tar.bz2
mx53loco: Add DM_I2C support
The conversion to DM_I2C is mandatory, so add support for it. Signed-off-by: Fabio Estevam <festevam@denx.de>
Diffstat (limited to 'board/freescale')
-rw-r--r--board/freescale/mx53loco/mx53loco.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c
index d447ad8..d418cd8 100644
--- a/board/freescale/mx53loco/mx53loco.c
+++ b/board/freescale/mx53loco/mx53loco.c
@@ -27,6 +27,8 @@
#include <fsl_pmic.h>
#include <linux/fb.h>
#include <ipu_pixfmt.h>
+#include <dm/uclass.h>
+#include <dm/device.h>
#define MX53LOCO_LCD_POWER IMX_GPIO_NR(3, 24)
@@ -39,10 +41,16 @@ u32 get_board_rev(void)
struct fuse_bank *bank = &iim->bank[0];
struct fuse_bank0_regs *fuse =
(struct fuse_bank0_regs *)bank->fuse_regs;
+ struct udevice *bus;
+ struct udevice *dev;
int rev = readl(&fuse->gp[6]);
- if (!i2c_probe(CFG_SYS_DIALOG_PMIC_I2C_ADDR))
+ ret = uclass_get_device_by_seq(UCLASS_I2C, 0, &bus);
+ if (ret)
+ return ret;
+
+ if (!dm_i2c_probe(bus, CFG_SYS_DIALOG_PMIC_I2C_ADDR, 0, &dev))
rev = 0;
return (get_cpu_rev() & ~(0xF << 8)) | (rev & 0xF) << 8;
@@ -62,26 +70,19 @@ static void setup_iomux_uart(void)
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
}
-#define I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
- PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
-
-static void setup_iomux_i2c(void)
-{
- static const iomux_v3_cfg_t i2c1_pads[] = {
- NEW_PAD_CTRL(MX53_PAD_CSI0_DAT8__I2C1_SDA, I2C_PAD_CTRL),
- NEW_PAD_CTRL(MX53_PAD_CSI0_DAT9__I2C1_SCL, I2C_PAD_CTRL),
- };
-
- imx_iomux_v3_setup_multiple_pads(i2c1_pads, ARRAY_SIZE(i2c1_pads));
-}
-
static int power_init(void)
{
unsigned int val;
int ret;
struct pmic *p;
+ struct udevice *bus;
+ struct udevice *dev;
+
+ ret = uclass_get_device_by_seq(UCLASS_I2C, 0, &bus);
+ if (ret)
+ return ret;
- if (!i2c_probe(CFG_SYS_DIALOG_PMIC_I2C_ADDR)) {
+ if (!dm_i2c_probe(bus, CFG_SYS_DIALOG_PMIC_I2C_ADDR, 0, &dev)) {
ret = pmic_dialog_init(I2C_PMIC);
if (ret)
return ret;
@@ -124,8 +125,8 @@ static int power_init(void)
return ret;
}
- if (!i2c_probe(CFG_SYS_FSL_PMIC_I2C_ADDR)) {
- ret = pmic_init(I2C_0);
+ if (!dm_i2c_probe(bus, CFG_SYS_FSL_PMIC_I2C_ADDR, 0, &dev)) {
+ ret = pmic_init(0);
if (ret)
return ret;
@@ -225,7 +226,6 @@ int board_init(void)
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
mxc_set_sata_internal_clock();
- setup_iomux_i2c();
return 0;
}