From c209a65e9eed69aebf48938f8a68a1eadcd6b1e5 Mon Sep 17 00:00:00 2001 From: Aditya Prayoga Date: Wed, 5 Dec 2018 00:57:21 +0800 Subject: [PATCH] arm: mvebu: helios4: Enable I2C and IO Expander 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 Reviewed-by: Stefan Roese Tested-By: Dennis Gilmore Reviewed-By: Dennis Gilmore Signed-off-by: Stefan Roese --- 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 0000000000..bd8c6ce501 --- /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 15e78dee94..8c0864bcdd 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 e30eb3d41c..6471fa3b1b 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.39.5