Re: [PATCH v3 3/4] arm64: dts: add description for solidrun cn9130 som and clearfog boards

From: Josua Mayer
Date: Sun Apr 14 2024 - 09:02:24 EST


Am 14.04.24 um 14:58 schrieb Josua Mayer:
> Add description for the SolidRun CN9130 SoM, and Clearfog Base / Pro
> reference boards.
>
> The SoM has been designed as a pin-compatible replacement for the older
> Armada 388 based SoM. Therefore it supports the same boards and a
> similar feature set.
>
> Most notable upgrades:
> - 4x Cortex-A72
> - 10Gbps SFP
> - Both eMMC and SD supported at the same time
>
> The developer first supporting this product at SolidRun decided to use
> different filenames for the DTBs: Armada 388 uses the full
> "clearfog" string while cn9130 uses the abbreviation "cf".
> This name is already hard-coded in pre-installed vendor u-boot and can
> not be changed easily.
>
> NOTICE IN CASE ANYBODY WANTS TO SELF-UPGRADE:
> CN9130 SoM has a different footprint from Armada 388 SoM.
> Components on the carrier board below the SoM may collide causing
> damage, such as on Clearfog Base.
>
> Signed-off-by: Josua Mayer <josua@xxxxxxxxxxxxx>
> ---

Previous version had received an ack from Krzysztof Kozlowski,
which I dropped because I made additional changes.

To simplify review, please find below
the incremental changes from v2 to v3:

From 8e32db3d5b4feced98f26695780c5253b928bb14 Mon Sep 17 00:00:00 2001
From: Josua Mayer <josua@xxxxxxxxxxxxx>
Date: Fri, 5 Apr 2024 17:35:52 +0200
Subject: [PATCH] arm64: dts: cn9131-cf-solidwan: minor tweaks

1. move legacy armada-388 netdev aliases to carrier:
   Legacy port numbering is only useful for platforms previously using
   the armada-388 som, and can be achieved in carrier dts.
   SoM dts can follow soc port numbering.

2. Fix two status property mistakes: one duplicate and one not last
   property.

3. Add pinctrl for spi chip-select 1, which is exposed on carrier
   mikrobus header.

4. Specify spi bus max frequencies based on som limitations.

Signed-off-by: Josua Mayer <josua@xxxxxxxxxxxxx>
---
 arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts  | 10 ++++++++++
 arch/arm64/boot/dts/marvell/cn9130-cf.dtsi     |  4 ++++
 arch/arm64/boot/dts/marvell/cn9130-sr-som.dtsi | 13 +++++++------
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts b/arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts
index 0b95d5f7acfd..15c74d584dbd 100644
--- a/arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts
+++ b/arch/arm64/boot/dts/marvell/cn9130-cf-pro.dts
@@ -336,6 +336,16 @@ rear_button_pins: cp0-rear-button-pins {
         marvell,pins = "mpp32";
         marvell,function = "gpio";
     };
+
+    cp0_spi1_cs1_pins: cp0-spi1-cs1-pins {
+        marvell,pins = "mpp12";
+        marvell,function = "spi1";
+    };
+};
+
+&cp0_spi1 {
+    /* add pin for chip-select 1 on mikrobus */
+    pinctrl-0 = <&cp0_spi1_pins &cp0_spi1_cs1_pins>;
 };
 
 /*
diff --git a/arch/arm64/boot/dts/marvell/cn9130-cf.dtsi b/arch/arm64/boot/dts/marvell/cn9130-cf.dtsi
index 53aedddf0e26..dcbbdbb9b25a 100644
--- a/arch/arm64/boot/dts/marvell/cn9130-cf.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130-cf.dtsi
@@ -8,6 +8,10 @@
 
 / {
     aliases {
+        /* label nics same order as armada 388 clearfog */
+        ethernet0 = &cp0_eth2;
+        ethernet1 = &cp0_eth1;
+        ethernet2 = &cp0_eth0;
         i2c1 = &cp0_i2c1;
         mmc1 = &cp0_sdhci0;
     };
diff --git a/arch/arm64/boot/dts/marvell/cn9130-sr-som.dtsi b/arch/arm64/boot/dts/marvell/cn9130-sr-som.dtsi
index ec08066fb6e8..8f0238a45a58 100644
--- a/arch/arm64/boot/dts/marvell/cn9130-sr-som.dtsi
+++ b/arch/arm64/boot/dts/marvell/cn9130-sr-som.dtsi
@@ -11,10 +11,9 @@ / {
     compatible = "solidrun,cn9130-sr-som", "marvell,cn9130";
 
     aliases {
-        /* label nics like armada-388 som */
-        ethernet0 = &cp0_eth2;
+        ethernet0 = &cp0_eth0;
         ethernet1 = &cp0_eth1;
-        ethernet2 = &cp0_eth0;
+        ethernet2 = &cp0_eth2;
         i2c0 = &cp0_i2c0;
         mmc0 = &ap_sdhci0;
         rtc0 = &cp0_rtc;
@@ -82,7 +81,6 @@ &cp0_eth2 {
 };
 
 &cp0_i2c0 {
-    status = "okay";
     pinctrl-names = "default";
     pinctrl-0 = <&cp0_i2c0_pins>;
     clock-frequency = <100000>;
@@ -96,8 +94,8 @@ som_eeprom: eeprom@53 {
 };
 
 &cp0_mdio {
-    status = "okay";
     pinctrl-0 = <&cp0_mdio_pins>;
+    status = "okay";
 
     /* assembly option */
     cp0_eth2_phy: ethernet-phy@0 {
@@ -109,11 +107,14 @@ &cp0_spi1 {
     status = "okay";
     pinctrl-names = "default";
     pinctrl-0 = <&cp0_spi1_pins>;
+    /* max speed limited by a mux */
+    spi-max-frequency = <1800000000>;
 
     flash@0 {
         compatible = "jedec,spi-nor";
         reg = <0>;
-        spi-max-frequency = <10000000>;
+        /* read command supports max. 50MHz */
+        spi-max-frequency = <50000000>;
     };
 };
 
--
2.35.3