[PATCH 8/8] board: gw_ventana: enable MV88E61XX DSA support

Vladimir Oltean vladimir.oltean at nxp.com
Wed May 18 16:41:18 CEST 2022


On Wed, May 11, 2022 at 05:20:03PM -0700, Tim Harvey wrote:
> Add MV88E61XX DSA support:
>  - update dt: U-Boot dsa driver requires different device-tree syntax
>    than the linux driver in order to link the dsa ports to the mdio bus.
>  - update defconfig
>  - replace mv88e61xx_hw_reset weak override with board_phy_config support
>    for mv88e61xx configuration that is outside the scope of the DSA driver
> 
> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
> ---
> v2: no changes
> ---
>  arch/arm/dts/imx6qdl-gw5904.dtsi        | 35 +++++++++++++++++
>  board/gateworks/gw_ventana/gw_ventana.c | 50 +++++++++----------------
>  configs/gwventana_gw5904_defconfig      |  7 ++--
>  3 files changed, 56 insertions(+), 36 deletions(-)
> 
> diff --git a/arch/arm/dts/imx6qdl-gw5904.dtsi b/arch/arm/dts/imx6qdl-gw5904.dtsi
> index 286c7a9924c2..63590a2debc7 100644
> --- a/arch/arm/dts/imx6qdl-gw5904.dtsi
> +++ b/arch/arm/dts/imx6qdl-gw5904.dtsi
> @@ -219,6 +219,27 @@
>  			compatible = "marvell,mv88e6085";
>  			reg = <0>;
>  
> +			mdios {

I'm thinking either "mdios" is a container node for other "mdio" nodes,
or you have the "mdio" node directly. Are you sure you want this
structure? We might have problems if we pass this DT as-is up to Linux.
Whereas the support for an "mdios" subnode could be upstreamed, I think.
The current DT bindings document says:

- mdio			: Container of PHY and devices on the switches MDIO
			  bus.
- mdio?		: Container of PHYs and devices on the external MDIO
			  bus. The node must contains a compatible string of
			  "marvell,mv88e6xxx-mdio-external"

You have an "mdios" which theoretically matches "mdio?" but only
unintendedly so, since it is the internal MDIO bus and not the external
one.

Easiest way out right now is to not introduce something which isn't
parsed by the current Linux driver. So the internal MDIO bus would be
named "mdio", and the external one would be named whatever, and would be
identified by compatible string.

> +				#address-cells = <1>;
> +				#size-cells = <0>;
> +
> +				sw_phy0: ethernet-phy at 0 {
> +					reg = <0x0>;
> +				};
> +
> +				sw_phy1: ethernet-phy at 1 {
> +					reg = <0x1>;
> +				};
> +
> +				sw_phy2: ethernet-phy at 2 {
> +					reg = <0x2>;
> +				};
> +
> +				sw_phy3: ethernet-phy at 3 {
> +					reg = <0x3>;
> +				};
> +			};
> +
>  			ports {
>  				#address-cells = <1>;
>  				#size-cells = <0>;


More information about the U-Boot mailing list