Enable Marvell I2C driver and I2C IO expander. Set default bus to
external I2C bus. Define I2C aliases in device tree so it can be
recognized by the driver.

Signed-off-by: Aditya Prayoga <adi...@kobol.io>
---
v2:
* Rearrange the patch, enabling I2C and convert I2C IO expander to DM
    should applied together.
* Move u-boot specific properties into armada-388-helios4-u-boot.dtsi
    (Dennis Gilmore)
---
 arch/arm/dts/armada-388-helios4-u-boot.dtsi |  8 ++++++++
 board/kobol/helios4/helios4.c               | 32 -----------------------------
 configs/helios4_defconfig                   |  4 ++++
 3 files changed, 12 insertions(+), 32 deletions(-)
 create mode 100644 arch/arm/dts/armada-388-helios4-u-boot.dtsi

diff --git a/arch/arm/dts/armada-388-helios4-u-boot.dtsi 
b/arch/arm/dts/armada-388-helios4-u-boot.dtsi
new file mode 100644
index 0000000..bd8c6ce
--- /dev/null
+++ b/arch/arm/dts/armada-388-helios4-u-boot.dtsi
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+/ {
+       aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+       };
+};
diff --git a/board/kobol/helios4/helios4.c b/board/kobol/helios4/helios4.c
index 3416783..37c46a5 100644
--- a/board/kobol/helios4/helios4.c
+++ b/board/kobol/helios4/helios4.c
@@ -33,18 +33,6 @@ DECLARE_GLOBAL_DATA_PTR;
 #define BOARD_GPP_POL_LOW      0x0
 #define BOARD_GPP_POL_MID      0x0
 
-/* IO expander on Marvell GP board includes e.g. fan enabling */
-struct marvell_io_exp {
-       u8 addr;
-       u8 val;
-};
-
-static struct marvell_io_exp io_exp[] = {
-       {6, 0xf9},
-       {2, 0x46}, /* Assert reset signals and enable USB3 current limiter */
-       {6, 0xb9}
-};
-
 static struct serdes_map board_serdes_map[] = {
        {SATA0, SERDES_SPEED_6_GBPS, SERDES_DEFAULT_MODE, 0, 0},
        {USB3_HOST0, SERDES_SPEED_5_GBPS, SERDES_DEFAULT_MODE, 0, 0},
@@ -123,29 +111,9 @@ int board_early_init_f(void)
 
 int board_init(void)
 {
-       int i;
-
        /* Address of boot parameters */
        gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
 
-       /* Init I2C IO expanders */
-       for (i = 0; i < ARRAY_SIZE(io_exp); i++) {
-               struct udevice *dev;
-               int ret;
-
-               ret = i2c_get_chip_for_busnum(0, io_exp[i].addr, 1, &dev);
-               if (ret) {
-                       printf("Cannot find I2C: %d\n", ret);
-                       return 0;
-               }
-
-               ret = dm_i2c_write(dev, io_exp[i].val, &io_exp[i].val, 1);
-               if (ret) {
-                       printf("Failed to set IO expander via I2C\n");
-                       return -EIO;
-               }
-       }
-
        return 0;
 }
 
diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig
index e30eb3d..6471fa3 100644
--- a/configs/helios4_defconfig
+++ b/configs/helios4_defconfig
@@ -38,7 +38,11 @@ CONFIG_ENV_IS_IN_MMC=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_SPL_OF_TRANSLATE=y
 CONFIG_SCSI_AHCI=y
+CONFIG_DM_PCA953X=y
 CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_MVTWSI=y
+CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
+CONFIG_I2C_DEFAULT_BUS_NUMBER=0x1
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_SDMA=y
 CONFIG_MMC_SDHCI_MV=y
-- 
2.7.4

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

Reply via email to