diff mbox series

[v13,7/8] ARM: dts: turris-omnia: Add MCU system-controller node

Message ID 20240701113010.16447-8-kabel@kernel.org (mailing list archive)
State Accepted
Commit 04515932e52cbe517cf0e933fd22b254034874c4
Delegated to: Arnd Bergmann
Headers show
Series Turris Omnia MCU driver | expand

Commit Message

Marek Behún July 1, 2024, 11:30 a.m. UTC
Turris Omnia's MCU provides various features that can be configured over
I2C at address 0x2a. Add device-tree node.

This does not carry a Fixes tag - we do not want this to get backported
to stable kernels for the following reason: U-Boot since v2022.10
inserts a phy-reset-gpio property into the WAN ethernet node pointing to
the MCU node if it finds the MCU node with a cznic,turris-omnia-mcu
compatible. Thus if this change got backported to a stable kernel, the
WAN interface driver would defer probe indefinitely (since it would wait
for the turris-omnia-mcu driver which would not be present).

Signed-off-by: Marek Behún <kabel@kernel.org>
---
 .../dts/marvell/armada-385-turris-omnia.dts   | 22 ++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

Comments

Andrew Lunn July 1, 2024, 1:01 p.m. UTC | #1
On Mon, Jul 01, 2024 at 01:30:09PM +0200, Marek Behún wrote:
> Turris Omnia's MCU provides various features that can be configured over
> I2C at address 0x2a. Add device-tree node.
> 
> This does not carry a Fixes tag - we do not want this to get backported
> to stable kernels for the following reason: U-Boot since v2022.10
> inserts a phy-reset-gpio property into the WAN ethernet node pointing to
> the MCU node if it finds the MCU node with a cznic,turris-omnia-mcu
> compatible. Thus if this change got backported to a stable kernel, the
> WAN interface driver would defer probe indefinitely (since it would wait
> for the turris-omnia-mcu driver which would not be present).
> 
> Signed-off-by: Marek Behún <kabel@kernel.org>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
Gregory CLEMENT July 5, 2024, 12:46 p.m. UTC | #2
Marek Behún <kabel@kernel.org> writes:

> Turris Omnia's MCU provides various features that can be configured over
> I2C at address 0x2a. Add device-tree node.
>
> This does not carry a Fixes tag - we do not want this to get backported
> to stable kernels for the following reason: U-Boot since v2022.10
> inserts a phy-reset-gpio property into the WAN ethernet node pointing to
> the MCU node if it finds the MCU node with a cznic,turris-omnia-mcu
> compatible. Thus if this change got backported to a stable kernel, the
> WAN interface driver would defer probe indefinitely (since it would wait
> for the turris-omnia-mcu driver which would not be present).
>
> Signed-off-by: Marek Behún <kabel@kernel.org>

Applied on mvebu/dt

Thanks,

Gregory
> ---
>  .../dts/marvell/armada-385-turris-omnia.dts   | 22 ++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts b/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts
> index 7b755bb4e4e7..59079d63fe27 100644
> --- a/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts
> +++ b/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts
> @@ -218,7 +218,22 @@ i2c@0 {
>  			#size-cells = <0>;
>  			reg = <0>;
>  
> -			/* STM32F0 command interface at address 0x2a */
> +			mcu: system-controller@2a {
> +				compatible = "cznic,turris-omnia-mcu";
> +				reg = <0x2a>;
> +
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&mcu_pins>;
> +
> +				interrupt-parent = <&gpio1>;
> +				interrupts = <11 IRQ_TYPE_NONE>;
> +
> +				gpio-controller;
> +				#gpio-cells = <3>;
> +
> +				interrupt-controller;
> +				#interrupt-cells = <2>;
> +			};
>  
>  			led-controller@2b {
>  				compatible = "cznic,turris-omnia-leds";
> @@ -501,6 +516,11 @@ fixed-link {
>  };
>  
>  &pinctrl {
> +	mcu_pins: mcu-pins {
> +		marvell,pins = "mpp43";
> +		marvell,function = "gpio";
> +	};
> +
>  	pcawan_pins: pcawan-pins {
>  		marvell,pins = "mpp46";
>  		marvell,function = "gpio";
> -- 
> 2.44.2
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts b/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts
index 7b755bb4e4e7..59079d63fe27 100644
--- a/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/marvell/armada-385-turris-omnia.dts
@@ -218,7 +218,22 @@  i2c@0 {
 			#size-cells = <0>;
 			reg = <0>;
 
-			/* STM32F0 command interface at address 0x2a */
+			mcu: system-controller@2a {
+				compatible = "cznic,turris-omnia-mcu";
+				reg = <0x2a>;
+
+				pinctrl-names = "default";
+				pinctrl-0 = <&mcu_pins>;
+
+				interrupt-parent = <&gpio1>;
+				interrupts = <11 IRQ_TYPE_NONE>;
+
+				gpio-controller;
+				#gpio-cells = <3>;
+
+				interrupt-controller;
+				#interrupt-cells = <2>;
+			};
 
 			led-controller@2b {
 				compatible = "cznic,turris-omnia-leds";
@@ -501,6 +516,11 @@  fixed-link {
 };
 
 &pinctrl {
+	mcu_pins: mcu-pins {
+		marvell,pins = "mpp43";
+		marvell,function = "gpio";
+	};
+
 	pcawan_pins: pcawan-pins {
 		marvell,pins = "mpp46";
 		marvell,function = "gpio";