From 23217f6b1036773076a1541849bced258cf69661 Mon Sep 17 00:00:00 2001 From: Jie Zhang Date: Wed, 25 Mar 2026 14:57:37 -0400 Subject: [PATCH] arm: dts: add/fix I2C controllers for sc5xx sc59x processors have 6 I2C controllers, but their devicetrees currently have only 3. The length of its register block should be 0x100 instead of 0x1000. All I2C nodes should be disabled in sc5xx.dtsi. They can be enabled in board devicetree files if they are used on the boards. Add missing I2C controllers and fix the above issues. Link: https://lore.kernel.org/u-boot/20260402171330.165754-1-jzhang918@gmail.com/ Signed-off-by: Jie Zhang --- arch/arm/dts/sc573-ezlite.dts | 2 ++ arch/arm/dts/sc584-ezkit.dts | 2 ++ arch/arm/dts/sc589-ezkit.dts | 2 ++ arch/arm/dts/sc594-som.dtsi | 13 +++++++++++++ arch/arm/dts/sc598-som-revD.dtsi | 2 ++ arch/arm/dts/sc598-som-revE.dtsi | 2 ++ arch/arm/dts/sc598-som.dtsi | 12 ++++++++++++ arch/arm/dts/sc59x.dtsi | 30 ++++++++++++++++++++++++++++++ arch/arm/dts/sc5xx.dtsi | 12 ++++++------ 9 files changed, 71 insertions(+), 6 deletions(-) diff --git a/arch/arm/dts/sc573-ezlite.dts b/arch/arm/dts/sc573-ezlite.dts index 9c1d623f8a3b..8d45962211cf 100644 --- a/arch/arm/dts/sc573-ezlite.dts +++ b/arch/arm/dts/sc573-ezlite.dts @@ -14,6 +14,8 @@ }; &i2c0 { + status = "okay"; + gpio_expander0: mcp23017@21 { compatible = "microchip,mcp23017"; reg = <0x21>; diff --git a/arch/arm/dts/sc584-ezkit.dts b/arch/arm/dts/sc584-ezkit.dts index f091d82b2e65..0dd4c69d8793 100644 --- a/arch/arm/dts/sc584-ezkit.dts +++ b/arch/arm/dts/sc584-ezkit.dts @@ -13,6 +13,8 @@ }; &i2c2 { + status = "okay"; + gpio_expander0: mcp23017@21 { compatible = "microchip,mcp23017"; reg = <0x21>; diff --git a/arch/arm/dts/sc589-ezkit.dts b/arch/arm/dts/sc589-ezkit.dts index 8b287a9e87be..903bb1f3472d 100644 --- a/arch/arm/dts/sc589-ezkit.dts +++ b/arch/arm/dts/sc589-ezkit.dts @@ -17,6 +17,8 @@ &i2c0 { #address-cells = <1>; #size-cells = <0>; + status = "okay"; + gpio_expander0: mcp23017@21 { compatible = "microchip,mcp23017"; reg = <0x21>; diff --git a/arch/arm/dts/sc594-som.dtsi b/arch/arm/dts/sc594-som.dtsi index 1c2adc601ddc..c4373aea60f4 100644 --- a/arch/arm/dts/sc594-som.dtsi +++ b/arch/arm/dts/sc594-som.dtsi @@ -79,6 +79,7 @@ &i2c2 { clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; + status = "okay"; som_gpio_expander: mcp23017@21 { compatible = "microchip,mcp23017"; @@ -153,6 +154,18 @@ }; }; +&i2c3 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + +&i2c4 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + +&i2c5 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + &ospi { status = "okay"; diff --git a/arch/arm/dts/sc598-som-revD.dtsi b/arch/arm/dts/sc598-som-revD.dtsi index 26e272966fff..06d550b85329 100644 --- a/arch/arm/dts/sc598-som-revD.dtsi +++ b/arch/arm/dts/sc598-som-revD.dtsi @@ -8,6 +8,8 @@ #include "sc598-som.dtsi" &i2c2 { + status = "okay"; + som_gpio_expander: mcp23018@20 { compatible = "microchip,mcp23018"; reg = <0x20>; diff --git a/arch/arm/dts/sc598-som-revE.dtsi b/arch/arm/dts/sc598-som-revE.dtsi index bec504102e71..1f48d52109b3 100644 --- a/arch/arm/dts/sc598-som-revE.dtsi +++ b/arch/arm/dts/sc598-som-revE.dtsi @@ -8,6 +8,8 @@ #include "sc598-som.dtsi" &i2c2 { + status = "okay"; + som_gpio_expander: adp5587@34 { compatible = "adi,adp5587"; reg = <0x34>; diff --git a/arch/arm/dts/sc598-som.dtsi b/arch/arm/dts/sc598-som.dtsi index bc212ef25cb7..ac1f24c86c39 100644 --- a/arch/arm/dts/sc598-som.dtsi +++ b/arch/arm/dts/sc598-som.dtsi @@ -138,6 +138,18 @@ clocks = <&clk ADSP_SC598_CLK_CGU0_SCLK0>; }; +&i2c3 { + clocks = <&clk ADSP_SC598_CLK_CGU0_SCLK0>; +}; + +&i2c4 { + clocks = <&clk ADSP_SC598_CLK_CGU0_SCLK0>; +}; + +&i2c5 { + clocks = <&clk ADSP_SC598_CLK_CGU0_SCLK0>; +}; + &spi2 { clocks = <&clk ADSP_SC598_CLK_SPI>; }; diff --git a/arch/arm/dts/sc59x.dtsi b/arch/arm/dts/sc59x.dtsi index ff279cca2d17..64e5a1afc539 100644 --- a/arch/arm/dts/sc59x.dtsi +++ b/arch/arm/dts/sc59x.dtsi @@ -86,6 +86,36 @@ pinctrl-0 = <&usb0_default>; status = "disabled"; }; + + i2c3: i2c3@31001000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "adi-i2c"; + reg = <0x31001000 0x100>; + clock-names = "i2c"; + status = "disabled"; + bootph-pre-ram; + }; + + i2c4: i2c4@31001100 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "adi-i2c"; + reg = <0x31001100 0x100>; + clock-names = "i2c"; + status = "disabled"; + bootph-pre-ram; + }; + + i2c5: i2c5@31001200 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "adi-i2c"; + reg = <0x31001200 0x100>; + clock-names = "i2c"; + status = "disabled"; + bootph-pre-ram; + }; }; }; diff --git a/arch/arm/dts/sc5xx.dtsi b/arch/arm/dts/sc5xx.dtsi index 072631e34f7b..b821deddda77 100644 --- a/arch/arm/dts/sc5xx.dtsi +++ b/arch/arm/dts/sc5xx.dtsi @@ -140,9 +140,9 @@ #address-cells = <1>; #size-cells = <0>; compatible = "adi-i2c"; - reg = <0x31001400 0x1000>; + reg = <0x31001400 0x100>; clock-names = "i2c"; - status = "okay"; + status = "disabled"; bootph-pre-ram; }; @@ -150,9 +150,9 @@ #address-cells = <1>; #size-cells = <0>; compatible = "adi-i2c"; - reg = <0x31001500 0x1000>; + reg = <0x31001500 0x100>; clock-names = "i2c"; - status = "okay"; + status = "disabled"; bootph-pre-ram; }; @@ -160,9 +160,9 @@ #address-cells = <1>; #size-cells = <0>; compatible = "adi-i2c"; - reg = <0x31001600 0x1000>; + reg = <0x31001600 0x100>; clock-names = "i2c"; - status = "okay"; + status = "disabled"; bootph-pre-ram; }; };