[PATCH v4 4/4] arm64: dts: add description for solidrun cn9131 solidwan board

Rob Herring robh at kernel.org
Thu May 2 08:20:00 PDT 2024


On Thu, May 2, 2024 at 7:32 AM Josua Mayer <josua at solid-run.com> wrote:
>
> Add description for the SolidRun CN9131 SolidWAN, based on CN9130 SoM
> with an extra communication  processor on the carrier board.
>
> This board differentiates itself from CN9130 Clearfog by providing
> additional SoC native network interfaces and pci buses:
> 2x 10Gbps SFP+
> 4x 1Gbps RJ45
> 1x miniPCI-E
> 1x m.2 b-key with sata, usb-2.0 and usb-3.0
> 1x m.2 m-key with pcie and usb-2.0
> 1x m.2 b-key with pcie, usb-2.0, usb-3.0 and 2x sim slots
> 1x mpcie with pcie only
> 2x type-a usb-2.0/3.0
>
> Signed-off-by: Josua Mayer <josua at solid-run.com>
> ---
>  arch/arm64/boot/dts/marvell/Makefile               |   1 +
>  arch/arm64/boot/dts/marvell/cn9131-cf-solidwan.dts | 643 +++++++++++++++++++++
>  2 files changed, 644 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
> index 019f2251d696..16f9d7156d9f 100644
> --- a/arch/arm64/boot/dts/marvell/Makefile
> +++ b/arch/arm64/boot/dts/marvell/Makefile
> @@ -30,3 +30,4 @@ dtb-$(CONFIG_ARCH_MVEBU) += ac5x-rd-carrier-cn9131.dtb
>  dtb-$(CONFIG_ARCH_MVEBU) += ac5-98dx35xx-rd.dtb
>  dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-base.dtb
>  dtb-$(CONFIG_ARCH_MVEBU) += cn9130-cf-pro.dtb
> +dtb-$(CONFIG_ARCH_MVEBU) += cn9131-cf-solidwan.dtb
> diff --git a/arch/arm64/boot/dts/marvell/cn9131-cf-solidwan.dts b/arch/arm64/boot/dts/marvell/cn9131-cf-solidwan.dts
> new file mode 100644
> index 000000000000..a63a8961bad0
> --- /dev/null
> +++ b/arch/arm64/boot/dts/marvell/cn9131-cf-solidwan.dts
> @@ -0,0 +1,643 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2024 Josua Mayer <josua at solid-run.com>
> + *
> + * DTS for SolidRun CN9130 Clearfog Base.
> + *
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +
> +#include "cn9130.dtsi"
> +#include "cn9130-sr-som.dtsi"
> +
> +/*
> + * Instantiate the external CP115
> + */
> +
> +#define CP11X_NAME             cp1
> +#define CP11X_BASE             f4000000
> +#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
> +#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
> +#define CP11X_PCIE0_BASE       f4600000
> +#define CP11X_PCIE1_BASE       f4620000
> +#define CP11X_PCIE2_BASE       f4640000
> +
> +#include "armada-cp115.dtsi"
> +
> +#undef CP11X_NAME
> +#undef CP11X_BASE
> +#undef CP11X_PCIEx_MEM_BASE
> +#undef CP11X_PCIEx_MEM_SIZE
> +#undef CP11X_PCIE0_BASE
> +#undef CP11X_PCIE1_BASE
> +#undef CP11X_PCIE2_BASE
> +
> +/ {
> +       model = "SolidRun CN9131 SolidWAN";
> +       compatible = "solidrun,cn9131-solidwan",
> +                    "solidrun,cn9130-sr-som", "marvell,cn9130";
> +
> +       aliases {
> +               ethernet0 = &cp1_eth1;
> +               ethernet1 = &cp1_eth2;
> +               ethernet2 = &cp0_eth1;
> +               ethernet3 = &cp0_eth2;
> +               ethernet4 = &cp0_eth0;
> +               ethernet5 = &cp1_eth0;
> +               gpio0 = &ap_gpio;
> +               gpio1 = &cp0_gpio1;
> +               gpio2 = &cp0_gpio2;
> +               gpio3 = &cp1_gpio1;
> +               gpio4 = &cp1_gpio2;
> +               gpio5 = &expander0;
> +               i2c0 = &cp0_i2c0;
> +               i2c1 = &cp0_i2c1;
> +               i2c2 = &cp1_i2c1;
> +               mmc0 = &ap_sdhci0;
> +               mmc1 = &cp0_sdhci0;
> +               rtc0 = &cp0_rtc;
> +               rtc1 = &carrier_rtc;
> +       };
> +
> +       leds {
> +               compatible = "gpio-leds";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&cp0_led_pins &cp1_led_pins>;
> +
> +               /* for sfp-1 (J42) */
> +               led-sfp1-activity {
> +                       label = "sfp1:green";
> +                       gpios = <&cp0_gpio1 7 GPIO_ACTIVE_HIGH>;
> +               };
> +
> +               /* for sfp-1 (J42) */
> +               led-sfp1-link {
> +                       label = "sfp1:yellow";
> +                       gpios = <&cp0_gpio1 4 GPIO_ACTIVE_HIGH>;
> +               };
> +
> +               /* (J28) */
> +               led-sfp0-activity {
> +                       label = "sfp0:green";
> +                       gpios = <&cp1_gpio2 22 GPIO_ACTIVE_HIGH>;
> +               };
> +
> +               /* (J28) */
> +               led-sfp0-link {
> +                       label = "sfp0:yellow";
> +                       gpios = <&cp1_gpio2 23 GPIO_ACTIVE_HIGH>;
> +               };
> +       };
> +
> +       /* Type-A port on J53 */
> +       reg_usb_a_vbus0: regulator-usb-a-vbus0 {
> +               compatible = "regulator-fixed";
> +               pinctrl-0 = <&cp0_reg_usb_a_vbus0_pins>;
> +               pinctrl-names = "default";
> +               regulator-name = "vbus0";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +               regulator-oc-protection-microamp = <1000000>;
> +               gpio = <&cp0_gpio1 27 GPIO_ACTIVE_HIGH>;

"gpio" is deprecated.

> +               enable-active-high;
> +               regulator-always-on;
> +       };
> +
> +       reg_usb_a_vbus1: regulator-usb-a-vbus1 {
> +               compatible = "regulator-fixed";
> +               pinctrl-0 = <&cp0_reg_usb_a_vbus1_pins>;
> +               pinctrl-names = "default";
> +               regulator-name = "vbus1";
> +               regulator-min-microvolt = <5000000>;
> +               regulator-max-microvolt = <5000000>;
> +               regulator-oc-protection-microamp = <1000000>;
> +               gpio = <&cp0_gpio1 28 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +               regulator-always-on;
> +       };
> +
> +       sfp0: sfp-0 {
> +               compatible = "sff,sfp";
> +               pinctrl-0 = <&cp0_sfp0_pins>;
> +               pinctrl-names = "default";
> +               i2c-bus = <&cp0_i2c1>;
> +               los-gpio = <&cp0_gpio2 2 GPIO_ACTIVE_HIGH>;
> +               mod-def0-gpio = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
> +               tx-disable-gpio = <&cp0_gpio2 1 GPIO_ACTIVE_HIGH>;
> +               tx-fault-gpio = <&cp0_gpio1 31 GPIO_ACTIVE_HIGH>;

As is "-gpio" suffix.  These are all pointed out with 'dtbs_check'
which I sent a report on v3. I haven't checked what else from that you
ignored... I don't expect warnings inherited from the SoC .dtsi to be
fixed in this series, but certainly the board level ones. Yes, it's
hard to pick out those, but that's the Marvell folks fault for not
fixing SoC level warnings.

Rob



More information about the linux-arm-kernel mailing list