[2/2] arm64: allwinner: a64: add device tree for SOPINE on Pine64 Clusterboard

Message ID 3351526.aeNJFYEL58@werkpc
State New
Headers
Series [1/2] dt-bindings: arm: sunxi: add binding for SOPINE on Pine64 Clusterboard |

Commit Message

Renze Nicolai Nov. 19, 2022, 12:31 p.m. UTC
  The Pine64 SOPINE Clusterboard is a mini-ITX sized board capable
of hosting up-to 7 SOPINE modules. It is largely compatible
with the SOPINE baseboard but it omits most of the in- and
output interfaces. Also The Clusterboard needs a tx delay
of 500ps for ethernet to work.

Add a device tree for SOPINE on the Pine64 Clusterboard.

Signed-off-by: Renze Nicolai <renze@rnplus.nl>
---
 arch/arm64/boot/dts/allwinner/Makefile           |  1 +
 .../allwinner/sun50i-a64-sopine-clusterboard.dts | 16 ++++++++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-
clusterboard.dts
  

Comments

Andre Przywara Nov. 19, 2022, 6:14 p.m. UTC | #1
On Sat, 19 Nov 2022 13:31:59 +0100
Renze Nicolai <renze@rnplus.nl> wrote:

> The Pine64 SOPINE Clusterboard is a mini-ITX sized board capable
> of hosting up-to 7 SOPINE modules. It is largely compatible
> with the SOPINE baseboard but it omits most of the in- and
> output interfaces. Also The Clusterboard needs a tx delay
> of 500ps for ethernet to work.
> 
> Add a device tree for SOPINE on the Pine64 Clusterboard.
> 
> Signed-off-by: Renze Nicolai <renze@rnplus.nl>
> ---
>  arch/arm64/boot/dts/allwinner/Makefile           |  1 +
>  .../allwinner/sun50i-a64-sopine-clusterboard.dts | 16 ++++++++++++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-
> clusterboard.dts
> 
> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/
> allwinner/Makefile
> index 6a96494a2e0a..15b011d1aaea 100644
> --- a/arch/arm64/boot/dts/allwinner/Makefile
> +++ b/arch/arm64/boot/dts/allwinner/Makefile
> @@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-clusterboard.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-clusterboard.dts 
> b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-clusterboard.dts
> new file mode 100644
> index 000000000000..f75325d43d76
> --- /dev/null
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-clusterboard.dts
> @@ -0,0 +1,16 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +// Copyright (c) 2022 Renze Nicolai <renze@rnplus.nl>
> +
> +/dts-v1/;

Since you include a complete .dts (not a .dtsi) below, you don't need
the dts-v1 tag, as this is provided by the baseboard.dts. That's the
same situation as with the Pine64 LTS.

Cheers,
Andre

> +
> +#include "sun50i-a64-sopine-baseboard.dts"
> +
> +/ {
> +	model = "SOPINE with clusterboard";
> +	compatible = "pine64,sopine-clusterboard", "pine64,sopine",
> +		     "allwinner,sun50i-a64";
> +};
> +
> +&emac {
> +	allwinner,tx-delay-ps = <500>;
> +};
  
Andrew Lunn Nov. 20, 2022, 11:42 p.m. UTC | #2
> +&emac {
> +	allwinner,tx-delay-ps = <500>;
> +};

Is this direct MAC to MAC without a PHY in the middle? And RGMII?

500ps seems odd. It is normally 1000ps. And you need to specify a
delay for both Rx and Tx. I could understand

&emac {
	allwinner,tx-delay-ps = <500>;
	allwinner,rx-delay-ps = <500>;
};

then each end adds 1/2 the delay on both Rx and Tx.

     Andrew
  

Patch

diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/
allwinner/Makefile
index 6a96494a2e0a..15b011d1aaea 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -15,6 +15,7 @@  dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-clusterboard.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-clusterboard.dts 
b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-clusterboard.dts
new file mode 100644
index 000000000000..f75325d43d76
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-clusterboard.dts
@@ -0,0 +1,16 @@ 
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+// Copyright (c) 2022 Renze Nicolai <renze@rnplus.nl>
+
+/dts-v1/;
+
+#include "sun50i-a64-sopine-baseboard.dts"
+
+/ {
+	model = "SOPINE with clusterboard";
+	compatible = "pine64,sopine-clusterboard", "pine64,sopine",
+		     "allwinner,sun50i-a64";
+};
+
+&emac {
+	allwinner,tx-delay-ps = <500>;
+};