RE: [RESEND v8 7/8] dm: arm64: ls1046a: add i2c DM support

2020-03-05 Thread Priyanka Jain (OSS)
>-Original Message-
>From: U-Boot  On Behalf Of Biwen Li
>Sent: Wednesday, March 4, 2020 9:28 AM
>To: Biwen Li ; Jagdish Gediya ;
>Priyanka Jain ; h...@denx.de;
>ja...@amarulasolutions.com; aford...@gmail.com; Alison Wang
>; jh80.ch...@samsung.com; Pramod Kumar
>; Rajesh Bhagat ;
>Ruchika Gupta ; olte...@gmail.com
>Cc: Xiaobo Xie ; Jiafei Pan ; u-
>b...@lists.denx.de
>Subject: RE: [RESEND v8 7/8] dm: arm64: ls1046a: add i2c DM support
>
>>
>> This supports i2c DM and enables CONFIG_DM_I2C for SoC LS1046A
>Hi Priyanka,
>
>Any comments?
>
>Best Regards,
>Biwen Li
>>
I need to build check. Rest looks fine.
Priyanka
>> Reviewed-by: Priyanka Jain 
>> Signed-off-by: Biwen Li 
>> ---
>> Changes in RESEND v8:
>>  - fix build warning
>>
>> Changes in v8:
>>  - none
>>
>> Changes in v7:
>>  - none
>>
>> Changes in v6:
>>  - correct dependencies
>>
>> Changes in v5:
>>  - update subject
>>
>> Changes in v4:
>>  - update copyright
>>
>> Changes in v3:
>>  - none
>>
>> Changes in v2:
>>  - merge some patches to one patch
>>
>>  arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 10 ++--
>>  arch/arm/dts/fsl-ls1046a-frwy.dts |  3 ++
>>  arch/arm/dts/fsl-ls1046a-qds.dtsi |  4 ++
>>  arch/arm/dts/fsl-ls1046a-rdb.dts  |  8 
>>  arch/arm/include/asm/gpio.h   |  5 +-
>>  board/freescale/ls1046afrwy/ls1046afrwy.c | 17 ++-
>>  board/freescale/ls1046aqds/ls1046aqds.c   | 25 --
>>  configs/ls1046afrwy_tfa_defconfig |  2 +
>>  configs/ls1046aqds_SECURE_BOOT_defconfig  |  2 +
>>  configs/ls1046aqds_defconfig  |  2 +
>>  configs/ls1046aqds_lpuart_defconfig   |  2 +
>>  configs/ls1046aqds_nand_defconfig |  2 +
>>  configs/ls1046aqds_qspi_defconfig |  2 +
>>  configs/ls1046aqds_sdcard_ifc_defconfig   |  2 +
>>  configs/ls1046aqds_sdcard_qspi_defconfig  |  2 +
>>  configs/ls1046aqds_tfa_SECURE_BOOT_defconfig  |  2 +
>>  configs/ls1046aqds_tfa_defconfig  |  2 +
>>  configs/ls1046ardb_emmc_defconfig |  2 +
>>  configs/ls1046ardb_qspi_SECURE_BOOT_defconfig |  2 +
>>  configs/ls1046ardb_qspi_defconfig |  2 +
>>  configs/ls1046ardb_qspi_spl_defconfig |  2 +
>>  .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |  2 +
>>  configs/ls1046ardb_sdcard_defconfig   |  2 +
>>  configs/ls1046ardb_tfa_SECURE_BOOT_defconfig  |  2 +
>>  configs/ls1046ardb_tfa_defconfig  |  2 +
>>  drivers/power/power_i2c.c | 46
>> ++-
>>  include/configs/ls1046a_common.h  | 11 +
>>  27 files changed, 150 insertions(+), 15 deletions(-)
>>
>> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> index 760053e401..b25639183f 100644
>> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> @@ -107,11 +107,11 @@ config ARCH_LS1046A
>>  select SYS_FSL_SRDS_2
>>  select ARCH_EARLY_INIT_R
>>  select BOARD_EARLY_INIT_F
>> -select SYS_I2C_MXC
>> -select SYS_I2C_MXC_I2C1
>> -select SYS_I2C_MXC_I2C2
>> -select SYS_I2C_MXC_I2C3
>> -select SYS_I2C_MXC_I2C4
>> +select SYS_I2C_MXC if !DM_I2C
>> +select SYS_I2C_MXC_I2C1 if !DM_I2C
>> +select SYS_I2C_MXC_I2C2 if !DM_I2C
>> +select SYS_I2C_MXC_I2C3 if !DM_I2C
>> +select SYS_I2C_MXC_I2C4 if !DM_I2C
>>  imply SCSI
>>  imply SCSI_AHCI
>>
>> diff --git a/arch/arm/dts/fsl-ls1046a-frwy.dts
>> b/arch/arm/dts/fsl-ls1046a-frwy.dts
>> index 3d41e3bd44..d39159322a 100644
>> --- a/arch/arm/dts/fsl-ls1046a-frwy.dts
>> +++ b/arch/arm/dts/fsl-ls1046a-frwy.dts
>> @@ -32,3 +32,6 @@
>>
>>  };
>>
>> + {
>> +status = "okay";
>> +};
>> diff --git a/arch/arm/dts/fsl-ls1046a-qds.dtsi
>> b/arch/arm/dts/fsl-ls1046a-qds.dtsi
>> index c95f44fc36..76dc397328 100644
>> --- a/arch/arm/dts/fsl-ls1046a-qds.dtsi
>> +++ b/arch/arm/dts/fsl-ls1046a-qds.dtsi
>> @@ -80,3 +80,7 @@
>>   {
>>  status = "okay";
>>  };
>> +
>> + {
>> +status = "okay";
>> +};
>> diff --git a/arch/arm/dts/fsl-ls1046a-rdb.dts
>> b/arch/arm/dts/fsl-ls1046a-rdb.dts
>> index a05c9e9b9e..83e34ab02a 100644

RE: [RESEND v8 7/8] dm: arm64: ls1046a: add i2c DM support

2020-03-03 Thread Biwen Li
> 
> This supports i2c DM and enables CONFIG_DM_I2C for SoC LS1046A
Hi Priyanka,

Any comments?

Best Regards,
Biwen Li
> 
> Reviewed-by: Priyanka Jain 
> Signed-off-by: Biwen Li 
> ---
> Changes in RESEND v8:
>   - fix build warning
> 
> Changes in v8:
>   - none
> 
> Changes in v7:
>   - none
> 
> Changes in v6:
>   - correct dependencies
> 
> Changes in v5:
>   - update subject
> 
> Changes in v4:
>   - update copyright
> 
> Changes in v3:
>   - none
> 
> Changes in v2:
>   - merge some patches to one patch
> 
>  arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 10 ++--
>  arch/arm/dts/fsl-ls1046a-frwy.dts |  3 ++
>  arch/arm/dts/fsl-ls1046a-qds.dtsi |  4 ++
>  arch/arm/dts/fsl-ls1046a-rdb.dts  |  8 
>  arch/arm/include/asm/gpio.h   |  5 +-
>  board/freescale/ls1046afrwy/ls1046afrwy.c | 17 ++-
>  board/freescale/ls1046aqds/ls1046aqds.c   | 25 --
>  configs/ls1046afrwy_tfa_defconfig |  2 +
>  configs/ls1046aqds_SECURE_BOOT_defconfig  |  2 +
>  configs/ls1046aqds_defconfig  |  2 +
>  configs/ls1046aqds_lpuart_defconfig   |  2 +
>  configs/ls1046aqds_nand_defconfig |  2 +
>  configs/ls1046aqds_qspi_defconfig |  2 +
>  configs/ls1046aqds_sdcard_ifc_defconfig   |  2 +
>  configs/ls1046aqds_sdcard_qspi_defconfig  |  2 +
>  configs/ls1046aqds_tfa_SECURE_BOOT_defconfig  |  2 +
>  configs/ls1046aqds_tfa_defconfig  |  2 +
>  configs/ls1046ardb_emmc_defconfig |  2 +
>  configs/ls1046ardb_qspi_SECURE_BOOT_defconfig |  2 +
>  configs/ls1046ardb_qspi_defconfig |  2 +
>  configs/ls1046ardb_qspi_spl_defconfig |  2 +
>  .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |  2 +
>  configs/ls1046ardb_sdcard_defconfig   |  2 +
>  configs/ls1046ardb_tfa_SECURE_BOOT_defconfig  |  2 +
>  configs/ls1046ardb_tfa_defconfig  |  2 +
>  drivers/power/power_i2c.c | 46
> ++-
>  include/configs/ls1046a_common.h  | 11 +
>  27 files changed, 150 insertions(+), 15 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> index 760053e401..b25639183f 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> @@ -107,11 +107,11 @@ config ARCH_LS1046A
>   select SYS_FSL_SRDS_2
>   select ARCH_EARLY_INIT_R
>   select BOARD_EARLY_INIT_F
> - select SYS_I2C_MXC
> - select SYS_I2C_MXC_I2C1
> - select SYS_I2C_MXC_I2C2
> - select SYS_I2C_MXC_I2C3
> - select SYS_I2C_MXC_I2C4
> + select SYS_I2C_MXC if !DM_I2C
> + select SYS_I2C_MXC_I2C1 if !DM_I2C
> + select SYS_I2C_MXC_I2C2 if !DM_I2C
> + select SYS_I2C_MXC_I2C3 if !DM_I2C
> + select SYS_I2C_MXC_I2C4 if !DM_I2C
>   imply SCSI
>   imply SCSI_AHCI
> 
> diff --git a/arch/arm/dts/fsl-ls1046a-frwy.dts
> b/arch/arm/dts/fsl-ls1046a-frwy.dts
> index 3d41e3bd44..d39159322a 100644
> --- a/arch/arm/dts/fsl-ls1046a-frwy.dts
> +++ b/arch/arm/dts/fsl-ls1046a-frwy.dts
> @@ -32,3 +32,6 @@
> 
>  };
> 
> + {
> + status = "okay";
> +};
> diff --git a/arch/arm/dts/fsl-ls1046a-qds.dtsi
> b/arch/arm/dts/fsl-ls1046a-qds.dtsi
> index c95f44fc36..76dc397328 100644
> --- a/arch/arm/dts/fsl-ls1046a-qds.dtsi
> +++ b/arch/arm/dts/fsl-ls1046a-qds.dtsi
> @@ -80,3 +80,7 @@
>   {
>   status = "okay";
>  };
> +
> + {
> + status = "okay";
> +};
> diff --git a/arch/arm/dts/fsl-ls1046a-rdb.dts
> b/arch/arm/dts/fsl-ls1046a-rdb.dts
> index a05c9e9b9e..83e34ab02a 100644
> --- a/arch/arm/dts/fsl-ls1046a-rdb.dts
> +++ b/arch/arm/dts/fsl-ls1046a-rdb.dts
> @@ -43,3 +43,11 @@
>   {
>   status = "okay";
>  };
> +
> + {
> + status = "okay";
> +};
> +
> + {
> + status = "okay";
> +};
> diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
> index c480e712fe..09573722ac 100644
> --- a/arch/arm/include/asm/gpio.h
> +++ b/arch/arm/include/asm/gpio.h
> @@ -3,8 +3,9 @@
>   !defined(CONFIG_ARCH_BCM6858)
> && !defined(CONFIG_ARCH_BCM63158) && \
>   !defined(CONFIG_ARCH_ROCKCHIP)
> && !defined(CONFIG_ARCH_LX2160A) && \
>   !defined(CONFIG_ARCH_LS1012A) && !defined(CONFIG_ARCH_LS1028A)
> && \
> - !defined(CONFIG_ARCH_LS1043A) && !defined(CONFIG_ARCH_LS2080A)
> && \
> - !defined(CONFIG_ARCH_LS1088A) && !defined(CONFIG_ARCH_ASPEED)
> && \
> + !defined(CONFIG_ARCH_LS1043A) && !defined(CONFIG_ARCH_LS1046A)
> && \
> + !defined(CONFIG_ARCH_LS2080A) && !defined(CONFIG_ARCH_LS1088A)
> && \
> + !defined(CONFIG_ARCH_ASPEED) && \
>   !defined(CONFIG_ARCH_U8500)
>  #include 
>  #endif
> diff --git a/board/freescale/ls1046afrwy/ls1046afrwy.c
> b/board/freescale/ls1046afrwy/ls1046afrwy.c
> index db8b3a5b92..8c0abb63a9 100644
> --- a/board/freescale/ls1046afrwy/ls1046afrwy.c
> +++ b/board/freescale/ls1046afrwy/ls1046afrwy.c
> @@ -36,11 

[RESEND v8 7/8] dm: arm64: ls1046a: add i2c DM support

2020-02-05 Thread Biwen Li
This supports i2c DM and enables CONFIG_DM_I2C
for SoC LS1046A

Reviewed-by: Priyanka Jain 
Signed-off-by: Biwen Li 
---
Changes in RESEND v8:
- fix build warning

Changes in v8:
- none

Changes in v7:
- none

Changes in v6:
- correct dependencies

Changes in v5:
- update subject

Changes in v4:
- update copyright

Changes in v3:
- none

Changes in v2:
- merge some patches to one patch

 arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 10 ++--
 arch/arm/dts/fsl-ls1046a-frwy.dts |  3 ++
 arch/arm/dts/fsl-ls1046a-qds.dtsi |  4 ++
 arch/arm/dts/fsl-ls1046a-rdb.dts  |  8 
 arch/arm/include/asm/gpio.h   |  5 +-
 board/freescale/ls1046afrwy/ls1046afrwy.c | 17 ++-
 board/freescale/ls1046aqds/ls1046aqds.c   | 25 --
 configs/ls1046afrwy_tfa_defconfig |  2 +
 configs/ls1046aqds_SECURE_BOOT_defconfig  |  2 +
 configs/ls1046aqds_defconfig  |  2 +
 configs/ls1046aqds_lpuart_defconfig   |  2 +
 configs/ls1046aqds_nand_defconfig |  2 +
 configs/ls1046aqds_qspi_defconfig |  2 +
 configs/ls1046aqds_sdcard_ifc_defconfig   |  2 +
 configs/ls1046aqds_sdcard_qspi_defconfig  |  2 +
 configs/ls1046aqds_tfa_SECURE_BOOT_defconfig  |  2 +
 configs/ls1046aqds_tfa_defconfig  |  2 +
 configs/ls1046ardb_emmc_defconfig |  2 +
 configs/ls1046ardb_qspi_SECURE_BOOT_defconfig |  2 +
 configs/ls1046ardb_qspi_defconfig |  2 +
 configs/ls1046ardb_qspi_spl_defconfig |  2 +
 .../ls1046ardb_sdcard_SECURE_BOOT_defconfig   |  2 +
 configs/ls1046ardb_sdcard_defconfig   |  2 +
 configs/ls1046ardb_tfa_SECURE_BOOT_defconfig  |  2 +
 configs/ls1046ardb_tfa_defconfig  |  2 +
 drivers/power/power_i2c.c | 46 ++-
 include/configs/ls1046a_common.h  | 11 +
 27 files changed, 150 insertions(+), 15 deletions(-)

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig 
b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
index 760053e401..b25639183f 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
+++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
@@ -107,11 +107,11 @@ config ARCH_LS1046A
select SYS_FSL_SRDS_2
select ARCH_EARLY_INIT_R
select BOARD_EARLY_INIT_F
-   select SYS_I2C_MXC
-   select SYS_I2C_MXC_I2C1
-   select SYS_I2C_MXC_I2C2
-   select SYS_I2C_MXC_I2C3
-   select SYS_I2C_MXC_I2C4
+   select SYS_I2C_MXC if !DM_I2C
+   select SYS_I2C_MXC_I2C1 if !DM_I2C
+   select SYS_I2C_MXC_I2C2 if !DM_I2C
+   select SYS_I2C_MXC_I2C3 if !DM_I2C
+   select SYS_I2C_MXC_I2C4 if !DM_I2C
imply SCSI
imply SCSI_AHCI
 
diff --git a/arch/arm/dts/fsl-ls1046a-frwy.dts 
b/arch/arm/dts/fsl-ls1046a-frwy.dts
index 3d41e3bd44..d39159322a 100644
--- a/arch/arm/dts/fsl-ls1046a-frwy.dts
+++ b/arch/arm/dts/fsl-ls1046a-frwy.dts
@@ -32,3 +32,6 @@
 
 };
 
+ {
+   status = "okay";
+};
diff --git a/arch/arm/dts/fsl-ls1046a-qds.dtsi 
b/arch/arm/dts/fsl-ls1046a-qds.dtsi
index c95f44fc36..76dc397328 100644
--- a/arch/arm/dts/fsl-ls1046a-qds.dtsi
+++ b/arch/arm/dts/fsl-ls1046a-qds.dtsi
@@ -80,3 +80,7 @@
  {
status = "okay";
 };
+
+ {
+   status = "okay";
+};
diff --git a/arch/arm/dts/fsl-ls1046a-rdb.dts b/arch/arm/dts/fsl-ls1046a-rdb.dts
index a05c9e9b9e..83e34ab02a 100644
--- a/arch/arm/dts/fsl-ls1046a-rdb.dts
+++ b/arch/arm/dts/fsl-ls1046a-rdb.dts
@@ -43,3 +43,11 @@
  {
status = "okay";
 };
+
+ {
+   status = "okay";
+};
+
+ {
+   status = "okay";
+};
diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
index c480e712fe..09573722ac 100644
--- a/arch/arm/include/asm/gpio.h
+++ b/arch/arm/include/asm/gpio.h
@@ -3,8 +3,9 @@
!defined(CONFIG_ARCH_BCM6858) && !defined(CONFIG_ARCH_BCM63158) && \
!defined(CONFIG_ARCH_ROCKCHIP) && !defined(CONFIG_ARCH_LX2160A) && \
!defined(CONFIG_ARCH_LS1012A) && !defined(CONFIG_ARCH_LS1028A) && \
-   !defined(CONFIG_ARCH_LS1043A) && !defined(CONFIG_ARCH_LS2080A) && \
-   !defined(CONFIG_ARCH_LS1088A) && !defined(CONFIG_ARCH_ASPEED) && \
+   !defined(CONFIG_ARCH_LS1043A) && !defined(CONFIG_ARCH_LS1046A) && \
+   !defined(CONFIG_ARCH_LS2080A) && !defined(CONFIG_ARCH_LS1088A) && \
+   !defined(CONFIG_ARCH_ASPEED) && \
!defined(CONFIG_ARCH_U8500)
 #include 
 #endif
diff --git a/board/freescale/ls1046afrwy/ls1046afrwy.c 
b/board/freescale/ls1046afrwy/ls1046afrwy.c
index db8b3a5b92..8c0abb63a9 100644
--- a/board/freescale/ls1046afrwy/ls1046afrwy.c
+++ b/board/freescale/ls1046afrwy/ls1046afrwy.c
@@ -36,11 +36,24 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int select_i2c_ch_pca9547(u8 ch)
+int select_i2c_ch_pca9547(u8 ch, int bus_num)
 {
int ret;
 
+#ifdef CONFIG_DM_I2C
+   struct udevice *dev;
+
+   ret = i2c_get_chip_for_busnum(bus_num, I2C_MUX_PCA_ADDR_PRI,
+