[PATCH] arm64: dts: rockchip: rk356x: add ethernet aliases

Dragan Simic dsimic at manjaro.org
Tue Jul 2 06:43:37 PDT 2024


Hello Philipp,

On 2024-07-02 14:46, Philipp Puschmann wrote:
> Providing ethernet aliases solves a subtle problem for the rk3568. The
> bus_id used for the sysfs directory name of the mdio. Without ethernet
> alias the bus_id is always 0 and so creating the sysfs directory for 
> the
> second mdio fails with a duplicate filename error and by this the setup
> of the second ethernet port fails too.
> 
> Note: The alias numbering is inverted as gmac1 comes from more generic
> rk356x.dtsi but gmac0 comes from specialised rk3568.

Please see the following commits and the discussions on the 
rockchip-linux
mailing list that are linked in them:

- b0140a1b3b1d ("arm64: dts: rockchip: Add ethernet0 alias to the dts
   for RK3588(S) boards")
- 36d9b3ae708e ("arm64: dts: rockchip: Add ethernet0 alias to the dts
   for RK3566 boards")
- 5d90cb1edcf7 ("arm64: dts: rockchip: Remove ethernet0 alias from the
   SoC dtsi for RK3399")
- c900fef5deff ("arm64: dts: rockchip: Remove ethernet0 alias from the
   SoC dtsi for RK3368")

To sum it up, ethernetX aliases are considered board-level features,
because not all boards/devices actually expose the Ethernet interfaces
built into the SoCs.  Thus, adding ethernetX aliases to the SoC dtsi
files, unfortunately, isn't an acceptable option.

The sysfs issue that you've discovered should be instead solved in some
other, more systemic way.

> Signed-off-by: Philipp Puschmann <p.puschmann at pironex.com>
> ---
>  arch/arm64/boot/dts/rockchip/rk3568.dtsi | 4 ++++
>  arch/arm64/boot/dts/rockchip/rk356x.dtsi | 1 +
>  2 files changed, 5 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3568.dtsi
> b/arch/arm64/boot/dts/rockchip/rk3568.dtsi
> index f1be76a54ceb..42018c8666e0 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3568.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3568.dtsi
> @@ -8,6 +8,10 @@
>  / {
>  	compatible = "rockchip,rk3568";
> 
> +	aliases {
> +		ethernet1 = &gmac0;
> +	};
> +
>  	sata0: sata at fc000000 {
>  		compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
>  		reg = <0 0xfc000000 0 0x1000>;
> diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> index d8543b5557ee..e13bd7b24752 100644
> --- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
> @@ -43,6 +43,7 @@ aliases {
>  		spi1 = &spi1;
>  		spi2 = &spi2;
>  		spi3 = &spi3;
> +		ethernet0 = &gmac1;
>  	};
> 
>  	cpus {



More information about the Linux-rockchip mailing list