diff mbox series

[3/4] arm64: dts: marvell: espressobin-ultra: add PHY and switch reset pins

Message ID 20210927154159.2168500-3-robert.marko@sartura.hr (mailing list archive)
State New, archived
Headers show
Series [1/4] arm64: dts: marvell: espressobin-ultra: enable UART output by default | expand

Commit Message

Robert Marko Sept. 27, 2021, 3:41 p.m. UTC
Both the Topaz switch and 88E1512 PHY have their reset and interrupts
connected to the SoC.

So, define the Topaz and 88E1512 reset pins in the DTS.

Defining the interrupt pins wont work as both the 88E1512 and the
Topaz switch uses active LOW IRQ signals but the A37xx GPIO controller
only supports edge triggers.
88E1512 would require special setup anyway as its INT pin is shared with
the LED2 and you first need to configure it as INT.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
---
 arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Andrew Lunn Sept. 27, 2021, 4:38 p.m. UTC | #1
On Mon, Sep 27, 2021 at 05:41:58PM +0200, Robert Marko wrote:
> Both the Topaz switch and 88E1512 PHY have their reset and interrupts
> connected to the SoC.
> 
> So, define the Topaz and 88E1512 reset pins in the DTS.
> 
> Defining the interrupt pins wont work as both the 88E1512 and the
> Topaz switch uses active LOW IRQ signals but the A37xx GPIO controller
> only supports edge triggers.
> 88E1512 would require special setup anyway as its INT pin is shared with
> the LED2 and you first need to configure it as INT.
> 
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>

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

    Andrew
Pali Rohár Sept. 28, 2021, 3:32 p.m. UTC | #2
On Monday 27 September 2021 17:41:58 Robert Marko wrote:
> Both the Topaz switch and 88E1512 PHY have their reset and interrupts
> connected to the SoC.
> 
> So, define the Topaz and 88E1512 reset pins in the DTS.

Are reset pins connected only on ultra variant? Or on all espressobin
variants? Because if they are on all variants then definitions should go
into common dtsi file.

I see that "gpionb 2" is on v7 variant connected to LED2. So I'm not
sure if this one gpio is also shared or not.

> Defining the interrupt pins wont work as both the 88E1512 and the
> Topaz switch uses active LOW IRQ signals but the A37xx GPIO controller
> only supports edge triggers.
> 88E1512 would require special setup anyway as its INT pin is shared with
> the LED2 and you first need to configure it as INT.

Do you plan to finish also this additional setup?

> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> ---
>  arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> index 8a700afd0570..96855a10b4a0 100644
> --- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> +++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> @@ -118,12 +118,16 @@ &usb3 {
>  &mdio {
>  	extphy: ethernet-phy@1 {
>  		reg = <1>;
> +
> +		reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
>  	};
>  };
>  
>  &switch0 {
>  	reg = <3>;
>  
> +	reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
> +
>  	ports {
>  		switch0port1: port@1 {
>  			reg = <1>;
> -- 
> 2.31.1
>
Robert Marko Sept. 28, 2021, 4:02 p.m. UTC | #3
On Tue, Sep 28, 2021 at 5:32 PM Pali Rohár <pali@kernel.org> wrote:
>
> On Monday 27 September 2021 17:41:58 Robert Marko wrote:
> > Both the Topaz switch and 88E1512 PHY have their reset and interrupts
> > connected to the SoC.
> >
> > So, define the Topaz and 88E1512 reset pins in the DTS.
>
> Are reset pins connected only on ultra variant? Or on all espressobin
> variants? Because if they are on all variants then definitions should go
> into common dtsi file.
>
> I see that "gpionb 2" is on v7 variant connected to LED2. So I'm not
> sure if this one gpio is also shared or not.

As far as I know only Ultra has the reset pins connected, on the v5 and v7 Topaz
reset is tied to the system reset so it's not controllable.
I checked both the v5 and v7 schematics and it's like that.
>
> > Defining the interrupt pins wont work as both the 88E1512 and the
> > Topaz switch uses active LOW IRQ signals but the A37xx GPIO controller
> > only supports edge triggers.
> > 88E1512 would require special setup anyway as its INT pin is shared with
> > the LED2 and you first need to configure it as INT.
>
> Do you plan to finish also this additional setup?

Yes as the MOCHAbin board that I have sent the DTS for also has it connected
so I can use it as Armada 7040 supports level triggers, unlike the A3720.
It's in the queue but as a low priority, so I don't know when will I get to it.

Regards,
Robert
>
> > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> > ---
> >  arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> > index 8a700afd0570..96855a10b4a0 100644
> > --- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> > +++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> > @@ -118,12 +118,16 @@ &usb3 {
> >  &mdio {
> >       extphy: ethernet-phy@1 {
> >               reg = <1>;
> > +
> > +             reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
> >       };
> >  };
> >
> >  &switch0 {
> >       reg = <3>;
> >
> > +     reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
> > +
> >       ports {
> >               switch0port1: port@1 {
> >                       reg = <1>;
> > --
> > 2.31.1
> >
Pali Rohár Sept. 24, 2022, 12:03 p.m. UTC | #4
On Tuesday 28 September 2021 18:02:19 Robert Marko wrote:
> On Tue, Sep 28, 2021 at 5:32 PM Pali Rohár <pali@kernel.org> wrote:
> >
> > On Monday 27 September 2021 17:41:58 Robert Marko wrote:
> > > Both the Topaz switch and 88E1512 PHY have their reset and interrupts
> > > connected to the SoC.
> > >
> > > So, define the Topaz and 88E1512 reset pins in the DTS.
> >
> > Are reset pins connected only on ultra variant? Or on all espressobin
> > variants? Because if they are on all variants then definitions should go
> > into common dtsi file.
> >
> > I see that "gpionb 2" is on v7 variant connected to LED2. So I'm not
> > sure if this one gpio is also shared or not.
> 
> As far as I know only Ultra has the reset pins connected, on the v5 and v7 Topaz
> reset is tied to the system reset so it's not controllable.
> I checked both the v5 and v7 schematics and it's like that.
> >
> > > Defining the interrupt pins wont work as both the 88E1512 and the
> > > Topaz switch uses active LOW IRQ signals but the A37xx GPIO controller
> > > only supports edge triggers.
> > > 88E1512 would require special setup anyway as its INT pin is shared with
> > > the LED2 and you first need to configure it as INT.
> >
> > Do you plan to finish also this additional setup?
> 
> Yes as the MOCHAbin board that I have sent the DTS for also has it connected
> so I can use it as Armada 7040 supports level triggers, unlike the A3720.
> It's in the queue but as a low priority, so I don't know when will I get to it.

I have WIP patch for A37xx gpio/pinctrl driver which adds support for
level interrupts. I think you would need it for testing...

> Regards,
> Robert
> >
> > > Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> > > ---
> > >  arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts | 4 ++++
> > >  1 file changed, 4 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> > > index 8a700afd0570..96855a10b4a0 100644
> > > --- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> > > +++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
> > > @@ -118,12 +118,16 @@ &usb3 {
> > >  &mdio {
> > >       extphy: ethernet-phy@1 {
> > >               reg = <1>;
> > > +
> > > +             reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
> > >       };
> > >  };
> > >
> > >  &switch0 {
> > >       reg = <3>;
> > >
> > > +     reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
> > > +
> > >       ports {
> > >               switch0port1: port@1 {
> > >                       reg = <1>;
> > > --
> > > 2.31.1
> > >
> 
> 
> 
> -- 
> Robert Marko
> Staff Embedded Linux Engineer
> Sartura Ltd.
> Lendavska ulica 16a
> 10000 Zagreb, Croatia
> Email: robert.marko@sartura.hr
> Web: www.sartura.hr
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
index 8a700afd0570..96855a10b4a0 100644
--- a/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
+++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
@@ -118,12 +118,16 @@  &usb3 {
 &mdio {
 	extphy: ethernet-phy@1 {
 		reg = <1>;
+
+		reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
 	};
 };
 
 &switch0 {
 	reg = <3>;
 
+	reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
+
 	ports {
 		switch0port1: port@1 {
 			reg = <1>;