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