Merge tag 'mvebu-dt64-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclemen...
authorArnd Bergmann <arnd@arndb.de>
Thu, 21 Dec 2023 17:06:16 +0000 (17:06 +0000)
committerArnd Bergmann <arnd@arndb.de>
Thu, 21 Dec 2023 17:06:16 +0000 (17:06 +0000)
mvebu dt64 for 6.8 (part 1)

Add devices tree for CN9130 and CN9131 COM Express Boards
Fix device tree for Turris Mox and for switch nodes

* tag 'mvebu-dt64-6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  arm64: dts: cn913x: add device trees for COM Express boards
  dt-bindings: arm64: add Marvell COM Express boards
  MAINTAINERS: add ac5 to list of maintained Marvell dts files
  arm64: dts: armada-3720-turris-mox: set irq type for RTC
  ARM64: dts: Add special compatibles for the Turris Mox
  ARM64: dts: marvell: Fix some common switch mistakes

Link: https://lore.kernel.org/r/87le9obypx.fsf@BL-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
14 files changed:
Documentation/devicetree/bindings/arm/marvell/armada-7k-8k.yaml
MAINTAINERS
arch/arm64/boot/dts/marvell/Makefile
arch/arm64/boot/dts/marvell/ac5x-rd-carrier-cn9131.dts [new file with mode: 0644]
arch/arm64/boot/dts/marvell/ac5x-rd-carrier.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
arch/arm64/boot/dts/marvell/armada-3720-espressobin.dtsi
arch/arm64/boot/dts/marvell/armada-3720-gl-mv1000.dts
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi
arch/arm64/boot/dts/marvell/cn9130-db-comexpress.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/marvell/cn9131-db-comexpress.dtsi [new file with mode: 0644]

index 52d78521e4124c73104e5995f836906f18bf87d2..16d2e132d3d1bf2a61bd46ee7db7673b9e0747fb 100644 (file)
@@ -60,4 +60,26 @@ properties:
           - const: marvell,armada-ap807-quad
           - const: marvell,armada-ap807
 
+      - description:
+          Alleycat5X (98DX35xx) Reference Design as COM Express Carrier plus
+          Armada CN9130 COM Express CPU module
+        items:
+          - const: marvell,cn9130-ac5x-carrier
+          - const: marvell,rd-ac5x-carrier
+          - const: marvell,cn9130-cpu-module
+          - const: marvell,cn9130
+          - const: marvell,armada-ap807-quad
+          - const: marvell,armada-ap807
+
+      - description:
+          Alleycat5X (98DX35xx) Reference Design as COM Express Carrier plus
+          Armada CN9131 COM Express CPU module
+        items:
+          - const: marvell,cn9131-ac5x-carrier
+          - const: marvell,rd-ac5x-carrier
+          - const: marvell,cn9131-cpu-module
+          - const: marvell,cn9131
+          - const: marvell,armada-ap807-quad
+          - const: marvell,armada-ap807
+
 additionalProperties: true
index 2e5dd43de65bb2f76457161425158ba7fad17c5b..0d1a67434131d9ed0270a701e3e504d1e15c7166 100644 (file)
@@ -2332,8 +2332,7 @@ F:        arch/arm/boot/dts/marvell/armada*
 F:     arch/arm/boot/dts/marvell/kirkwood*
 F:     arch/arm/configs/mvebu_*_defconfig
 F:     arch/arm/mach-mvebu/
-F:     arch/arm64/boot/dts/marvell/armada*
-F:     arch/arm64/boot/dts/marvell/cn913*
+F:     arch/arm64/boot/dts/marvell/
 F:     drivers/clk/mvebu/
 F:     drivers/cpufreq/armada-37xx-cpufreq.c
 F:     drivers/cpufreq/armada-8k-cpufreq.c
index 79ac09b58a8995f4026f9ff7a678f423c75a0e39..99b8cb3c49e11c436b56b9bfa911f12278a9aaa0 100644 (file)
@@ -26,4 +26,5 @@ dtb-$(CONFIG_ARCH_MVEBU) += cn9132-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += cn9132-db-B.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += cn9130-crb-A.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += cn9130-crb-B.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += ac5x-rd-carrier-cn9131.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += ac5-98dx35xx-rd.dtb
diff --git a/arch/arm64/boot/dts/marvell/ac5x-rd-carrier-cn9131.dts b/arch/arm64/boot/dts/marvell/ac5x-rd-carrier-cn9131.dts
new file mode 100644 (file)
index 0000000..2a0b070
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the AC5X RD Type 7 Com Express carrier board,
+ * Utilizing the CN913x COM Express CPU module board.
+ * This specific carrier board in this mode of operation (external)
+ * only maintains a PCIe link with the CPU module,
+ * which does not require any special DTS definitions.
+ *
+ * AC5X RD works here in external mode (switch selectable at the back of the
+ * board), and connect via an external cable a kit
+ * which would allow it to use an external CN9131 CPU COM Express module,
+ * mounted on top of an interposer kit.
+ *
+ * So in this case, once the switch is set to external mode as explained above,
+ * the AC5X RD becomes part of the carrier solution.
+ *
+ * When the board boots in the external CPU mode, the internal CPU is disabled,
+ * and only the switch portion of the SOC acts as a PCIe end-point, Hence there
+ * is no need to describe this internal (disabled CPU) in the device tree.
+ *
+ * There is no CPU booting in this mode on the carrier, only on the
+ * CN9131 COM Express CPU module.
+ * What runs the Linux is the CN9131 on the COM Express CPU module,
+ * And it accesses the switch end-point on the AC5X RD portion of the carrier
+ * via PCIe.
+ */
+
+#include "cn9131-db-comexpress.dtsi"
+#include "ac5x-rd-carrier.dtsi"
+
+/ {
+       model = "Marvell Armada AC5X RD COM EXPRESS type 7 carrier board with CN9131 CPU module";
+       compatible = "marvell,cn9131-ac5x-carrier", "marvell,rd-ac5x-carrier",
+                       "marvell,cn9131-cpu-module", "marvell,cn9131",
+                       "marvell,armada-ap807-quad", "marvell,armada-ap807";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x2 0x00000000>;
+       };
+
+};
diff --git a/arch/arm64/boot/dts/marvell/ac5x-rd-carrier.dtsi b/arch/arm64/boot/dts/marvell/ac5x-rd-carrier.dtsi
new file mode 100644 (file)
index 0000000..f98629a
--- /dev/null
@@ -0,0 +1,34 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the AC5X RD Type 7 Com Express carrier board,
+ * This specific board in external mode (see below) only maintains
+ * a PCIe link with the COM Express CPU module, which does not
+ * require any special DTS definitions.
+ *
+ * AC5X RD can either work as you would expect, as a complete standalone
+ * box using the internal CPU, or you can move the switch on the back of
+ * the box to "external" mode, and connect via an external cable a kit
+ * which would allow it to use an external CPU COM Express module,
+ * mounted on top of an interposer kit.
+ *
+ * So in this case, once the switch is set to external mode as explained above,
+ * the AC5X RD becomes part of the carrier solution.
+ * This is a development/reference solution, not a full commercial solution,
+ * hence it was designed with the flexibility to be configured in different
+ * modes of operation.
+ *
+ * When the board boots in the external CPU mode, the internal CPU is disabled,
+ * and only the switch portion of the SOC acts as a PCIe end-point, Hence there
+ * is no need to describe this internal (disabled CPU) in the device tree.
+ *
+ * There is no CPU booting in this mode on the carrier,
+ * only on the COM Express CPU module.
+ */
+
+/ {
+       model = "Marvell Armada AC5X RD COM EXPRESS type 7 carrier board";
+       compatible = "marvell,rd-ac5x-carrier";
+
+};
index f9abef8dcc94891979d60b7b69029e3a9ede24d9..870bb380a40a67482586268eeac2e29a03f05abd 100644 (file)
 
        reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
 
-       ports {
-               switch0port1: port@1 {
+       ethernet-ports {
+               switch0port1: ethernet-port@1 {
                        reg = <1>;
                        label = "lan0";
                        phy-handle = <&switch0phy0>;
                };
 
-               switch0port2: port@2 {
+               switch0port2: ethernet-port@2 {
                        reg = <2>;
                        label = "lan1";
                        phy-handle = <&switch0phy1>;
                };
 
-               switch0port3: port@3 {
+               switch0port3: ethernet-port@3 {
                        reg = <3>;
                        label = "lan2";
                        phy-handle = <&switch0phy2>;
                };
 
-               switch0port4: port@4 {
+               switch0port4: ethernet-port@4 {
                        reg = <4>;
                        label = "lan3";
                        phy-handle = <&switch0phy3>;
                };
 
-               switch0port5: port@5 {
+               switch0port5: ethernet-port@5 {
                        reg = <5>;
                        label = "wan";
                        phy-handle = <&extphy>;
        };
 
        mdio {
-               switch0phy3: switch0phy3@14 {
+               switch0phy3: ethernet-phy@14 {
                        reg = <0x14>;
                };
        };
index 49cbdb55b4b366b6ad164242cee6cc9cba97811a..fed2dcecb323f0541d076988164f12e68ed37fcc 100644 (file)
 };
 
 &mdio {
-       switch0: switch0@1 {
+       switch0: ethernet-switch@1 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <1>;
 
                dsa,member = <0 0>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0port0: port@0 {
+                       switch0port0: ethernet-port@0 {
                                reg = <0>;
                                label = "cpu";
                                ethernet = <&eth0>;
                                };
                        };
 
-                       switch0port1: port@1 {
+                       switch0port1: ethernet-port@1 {
                                reg = <1>;
                                label = "wan";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       switch0port2: port@2 {
+                       switch0port2: ethernet-port@2 {
                                reg = <2>;
                                label = "lan0";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       switch0port3: port@3 {
+                       switch0port3: ethernet-port@3 {
                                reg = <3>;
                                label = "lan1";
                                phy-handle = <&switch0phy2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
                };
index b1b45b4fa9d4a33966bf88686bc01dc24ee737c1..63fbc83521616afc741d4d7e22a6fe00aaae9292 100644 (file)
 };
 
 &mdio {
-       switch0: switch0@1 {
+       switch0: ethernet-switch@1 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <1>;
 
                dsa,member = <0 0>;
 
-               ports: ports {
+               ports: ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@0 {
+                       ethernet-port@0 {
                                reg = <0>;
                                label = "cpu";
                                ethernet = <&eth0>;
                        };
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "wan";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan0";
                                phy-handle = <&switch0phy1>;
                                nvmem-cell-names = "mac-address";
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan1";
                                phy-handle = <&switch0phy2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
                };
index 9eab2bb221348aaa4c04e0a4cca26e52907383b0..f1a9f223435919f05bcfaea45f73321aec313be9 100644 (file)
                compatible = "microchip,mcp7940x";
                reg = <0x6f>;
                interrupt-parent = <&gpiosb>;
-               interrupts = <5 0>; /* GPIO2_5 */
+               interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO2_5 */
        };
 };
 
                reg = <1>;
        };
 
-       /* switch nodes are enabled by U-Boot if modules are present */
+       /*
+        * NOTE: switch nodes are enabled by U-Boot if modules are present
+        * DO NOT change this node name (switch0@10) even if it is not following
+        * conventions! Deployed U-Boot binaries are explicitly looking for
+        * this node in order to augment the device tree!
+        * Also do not touch the "ports" or "port@n" nodes. These are also ABI.
+        */
        switch0@10 {
-               compatible = "marvell,mv88e6190";
+               compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
                reg = <0x10>;
                dsa,member = <0 0>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1: switch0phy1@1 {
+                       switch0phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch0phy2: switch0phy2@2 {
+                       switch0phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch0phy3: switch0phy3@3 {
+                       switch0phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch0phy4: switch0phy4@4 {
+                       switch0phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch0phy5: switch0phy5@5 {
+                       switch0phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch0phy6: switch0phy6@6 {
+                       switch0phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch0phy7: switch0phy7@7 {
+                       switch0phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch0phy8: switch0phy8@8 {
+                       switch0phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch0@2 {
-               compatible = "marvell,mv88e6085";
+               compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
                reg = <0x2>;
                dsa,member = <0 0>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1_topaz: switch0phy1@11 {
+                       switch0phy1_topaz: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch0phy2_topaz: switch0phy2@12 {
+                       switch0phy2_topaz: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch0phy3_topaz: switch0phy3@13 {
+                       switch0phy3_topaz: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch0phy4_topaz: switch0phy4@14 {
+                       switch0phy4_topaz: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch1@11 {
-               compatible = "marvell,mv88e6190";
+               compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
                reg = <0x11>;
                dsa,member = <0 1>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch1phy1: switch1phy1@1 {
+                       switch1phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch1phy2: switch1phy2@2 {
+                       switch1phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch1phy3: switch1phy3@3 {
+                       switch1phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch1phy4: switch1phy4@4 {
+                       switch1phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch1phy5: switch1phy5@5 {
+                       switch1phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch1phy6: switch1phy6@6 {
+                       switch1phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch1phy7: switch1phy7@7 {
+                       switch1phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch1phy8: switch1phy8@8 {
+                       switch1phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch1@2 {
-               compatible = "marvell,mv88e6085";
+               compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
                reg = <0x2>;
                dsa,member = <0 1>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch1phy1_topaz: switch1phy1@11 {
+                       switch1phy1_topaz: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch1phy2_topaz: switch1phy2@12 {
+                       switch1phy2_topaz: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch1phy3_topaz: switch1phy3@13 {
+                       switch1phy3_topaz: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch1phy4_topaz: switch1phy4@14 {
+                       switch1phy4_topaz: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch2@12 {
-               compatible = "marvell,mv88e6190";
+               compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
                reg = <0x12>;
                dsa,member = <0 2>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch2phy1: switch2phy1@1 {
+                       switch2phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch2phy2: switch2phy2@2 {
+                       switch2phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch2phy3: switch2phy3@3 {
+                       switch2phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch2phy4: switch2phy4@4 {
+                       switch2phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch2phy5: switch2phy5@5 {
+                       switch2phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch2phy6: switch2phy6@6 {
+                       switch2phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch2phy7: switch2phy7@7 {
+                       switch2phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch2phy8: switch2phy8@8 {
+                       switch2phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
                };
        };
 
+       /* NOTE: this node name is ABI, don't change it! */
        switch2@2 {
-               compatible = "marvell,mv88e6085";
+               compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
                reg = <0x2>;
                dsa,member = <0 2>;
                interrupt-parent = <&moxtet>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch2phy1_topaz: switch2phy1@11 {
+                       switch2phy1_topaz: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch2phy2_topaz: switch2phy2@12 {
+                       switch2phy2_topaz: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch2phy3_topaz: switch2phy3@13 {
+                       switch2phy3_topaz: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch2phy4_topaz: switch2phy4@14 {
+                       switch2phy4_topaz: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
index 48202810bf78629f66c15b7d368b2fdaf373f36f..40b7ee7ead72e2c98800f5d594a293eef500056d 100644 (file)
        };
 
        /* 88E6141 Topaz switch */
-       switch: switch@3 {
+       switch: ethernet-switch@3 {
                compatible = "marvell,mv88e6085";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <3>;
 
                pinctrl-names = "default";
                interrupt-parent = <&cp0_gpio1>;
                interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       swport1: port@1 {
+                       swport1: ethernet-port@1 {
                                reg = <1>;
                                label = "lan0";
                                phy-handle = <&swphy1>;
                        };
 
-                       swport2: port@2 {
+                       swport2: ethernet-port@2 {
                                reg = <2>;
                                label = "lan1";
                                phy-handle = <&swphy2>;
                        };
 
-                       swport3: port@3 {
+                       swport3: ethernet-port@3 {
                                reg = <3>;
                                label = "lan2";
                                phy-handle = <&swphy3>;
                        };
 
-                       swport4: port@4 {
+                       swport4: ethernet-port@4 {
                                reg = <4>;
                                label = "lan3";
                                phy-handle = <&swphy4>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "cpu";
                                ethernet = <&cp0_eth1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       swphy1: swphy1@17 {
+                       swphy1: ethernet-phy@17 {
                                reg = <17>;
                        };
 
-                       swphy2: swphy2@18 {
+                       swphy2: ethernet-phy@18 {
                                reg = <18>;
                        };
 
-                       swphy3: swphy3@19 {
+                       swphy3: ethernet-phy@19 {
                                reg = <19>;
                        };
 
-                       swphy4: swphy4@20 {
+                       swphy4: ethernet-phy@20 {
                                reg = <20>;
                        };
                };
index 4125202028c8569e67707433220c7ba3f9152119..67892f0d28633eb3eca9f40016609103f29c9aeb 100644 (file)
                reset-deassert-us = <10000>;
        };
 
-       switch0: switch0@4 {
+       switch0: ethernet-switch@4 {
                compatible = "marvell,mv88e6085";
                reg = <4>;
                pinctrl-names = "default";
                pinctrl-0 = <&cp1_switch_reset_pins>;
                reset-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_LOW>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "lan2";
                                phy-handle = <&switch0phy0>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "lan1";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "lan4";
                                phy-handle = <&switch0phy2>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "lan3";
                                phy-handle = <&switch0phy3>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "cpu";
                                ethernet = <&cp1_eth2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy0: switch0phy0@11 {
+                       switch0phy0: ethernet-phy@11 {
                                reg = <0x11>;
                        };
 
-                       switch0phy1: switch0phy1@12 {
+                       switch0phy1: ethernet-phy@12 {
                                reg = <0x12>;
                        };
 
-                       switch0phy2: switch0phy2@13 {
+                       switch0phy2: ethernet-phy@13 {
                                reg = <0x13>;
                        };
 
-                       switch0phy3: switch0phy3@14 {
+                       switch0phy3: ethernet-phy@14 {
                                reg = <0x14>;
                        };
                };
index 47d45ff3d6f578eeb0c3aaa62126f9c3b3af1b33..6fcc34f7b46474545404641c6a775f7dbeca3b82 100644 (file)
                reg = <0>;
        };
 
-       switch6: switch0@6 {
+       switch6: ethernet-switch@6 {
                /* Actual device is MV88E6393X */
                compatible = "marvell,mv88e6190";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <6>;
                interrupt-parent = <&cp0_gpio1>;
                interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
 
                dsa,member = <0 0>;
 
-               ports {
+               ethernet-ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       port@1 {
+                       ethernet-port@1 {
                                reg = <1>;
                                label = "p1";
                                phy-handle = <&switch0phy1>;
                        };
 
-                       port@2 {
+                       ethernet-port@2 {
                                reg = <2>;
                                label = "p2";
                                phy-handle = <&switch0phy2>;
                        };
 
-                       port@3 {
+                       ethernet-port@3 {
                                reg = <3>;
                                label = "p3";
                                phy-handle = <&switch0phy3>;
                        };
 
-                       port@4 {
+                       ethernet-port@4 {
                                reg = <4>;
                                label = "p4";
                                phy-handle = <&switch0phy4>;
                        };
 
-                       port@5 {
+                       ethernet-port@5 {
                                reg = <5>;
                                label = "p5";
                                phy-handle = <&switch0phy5>;
                        };
 
-                       port@6 {
+                       ethernet-port@6 {
                                reg = <6>;
                                label = "p6";
                                phy-handle = <&switch0phy6>;
                        };
 
-                       port@7 {
+                       ethernet-port@7 {
                                reg = <7>;
                                label = "p7";
                                phy-handle = <&switch0phy7>;
                        };
 
-                       port@8 {
+                       ethernet-port@8 {
                                reg = <8>;
                                label = "p8";
                                phy-handle = <&switch0phy8>;
                        };
 
-                       port@9 {
+                       ethernet-port@9 {
                                reg = <9>;
                                label = "p9";
                                phy-mode = "10gbase-r";
                                managed = "in-band-status";
                        };
 
-                       port@a {
+                       ethernet-port@a {
                                reg = <10>;
                                ethernet = <&cp0_eth0>;
                                phy-mode = "10gbase-r";
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       switch0phy1: switch0phy1@1 {
+                       switch0phy1: ethernet-phy@1 {
                                reg = <0x1>;
                        };
 
-                       switch0phy2: switch0phy2@2 {
+                       switch0phy2: ethernet-phy@2 {
                                reg = <0x2>;
                        };
 
-                       switch0phy3: switch0phy3@3 {
+                       switch0phy3: ethernet-phy@3 {
                                reg = <0x3>;
                        };
 
-                       switch0phy4: switch0phy4@4 {
+                       switch0phy4: ethernet-phy@4 {
                                reg = <0x4>;
                        };
 
-                       switch0phy5: switch0phy5@5 {
+                       switch0phy5: ethernet-phy@5 {
                                reg = <0x5>;
                        };
 
-                       switch0phy6: switch0phy6@6 {
+                       switch0phy6: ethernet-phy@6 {
                                reg = <0x6>;
                        };
 
-                       switch0phy7: switch0phy7@7 {
+                       switch0phy7: ethernet-phy@7 {
                                reg = <0x7>;
                        };
 
-                       switch0phy8: switch0phy8@8 {
+                       switch0phy8: ethernet-phy@8 {
                                reg = <0x8>;
                        };
                };
diff --git a/arch/arm64/boot/dts/marvell/cn9130-db-comexpress.dtsi b/arch/arm64/boot/dts/marvell/cn9130-db-comexpress.dtsi
new file mode 100644 (file)
index 0000000..028496e
--- /dev/null
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the CN9130-DB Com Express CPU module board.
+ */
+
+#include "cn9130-db.dtsi"
+
+/ {
+       model = "Marvell Armada CN9130-DB COM EXPRESS type 7 CPU module board";
+       compatible = "marvell,cn9130-cpu-module", "marvell,cn9130",
+                    "marvell,armada-ap807-quad", "marvell,armada-ap807";
+
+};
+
+&ap0_reg_sd_vccq {
+       regulator-max-microvolt = <1800000>;
+       states = <1800000 0x1 1800000 0x0>;
+       /delete-property/ gpios;
+};
+
+&cp0_reg_usb3_vbus0 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_usb3_vbus1 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_sd_vcc {
+       status = "disabled";
+};
+
+&cp0_reg_sd_vccq {
+       status = "disabled";
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_eth0 {
+       status = "disabled";
+};
+
+&cp0_eth1 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "rgmii-id";
+};
+
+&cp0_eth2 {
+       status = "disabled";
+};
+
+&cp0_mdio {
+       status = "okay";
+       pinctrl-0 = <&cp0_ge_mdio_pins>;
+       phy0: ethernet-phy@0 {
+               status = "okay";
+       };
+};
+
+&cp0_syscon0 {
+       cp0_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               cp0_ge_mdio_pins: ge-mdio-pins {
+                       marvell,pins = "mpp40", "mpp41";
+                       marvell,function = "ge";
+               };
+       };
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_spi1 {
+       status = "okay";
+};
+
+&cp0_usb3_0 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy0>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
+
+&cp0_usb3_1 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy1>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
diff --git a/arch/arm64/boot/dts/marvell/cn9131-db-comexpress.dtsi b/arch/arm64/boot/dts/marvell/cn9131-db-comexpress.dtsi
new file mode 100644 (file)
index 0000000..6f3914b
--- /dev/null
@@ -0,0 +1,108 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 Marvell International Ltd.
+ *
+ * Device tree for the CN9131-DB Com Express CPU module board.
+ */
+
+#include "cn9131-db.dtsi"
+
+/ {
+       model = "Marvell Armada CN9131-DB COM EXPRESS type 7 CPU module board";
+       compatible = "marvell,cn9131-cpu-module", "marvell,cn9131", "marvell,cn9130",
+                    "marvell,armada-ap807-quad", "marvell,armada-ap807";
+
+};
+
+&ap0_reg_sd_vccq {
+       regulator-max-microvolt = <1800000>;
+       states = <1800000 0x1 1800000 0x0>;
+       /delete-property/ gpios;
+};
+
+&cp0_reg_usb3_vbus0 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_usb3_vbus1 {
+       /delete-property/ gpio;
+};
+
+&cp1_reg_usb3_vbus0 {
+       /delete-property/ gpio;
+};
+
+&cp0_reg_sd_vcc {
+       status = "disabled";
+};
+
+&cp0_reg_sd_vccq {
+       status = "disabled";
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_eth0 {
+       status = "disabled";
+};
+
+&cp0_eth1 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "rgmii-id";
+};
+
+&cp0_eth2 {
+       status = "disabled";
+};
+
+&cp0_mdio {
+       status = "okay";
+       pinctrl-0 = <&cp0_ge_mdio_pins>;
+       phy0: ethernet-phy@0 {
+               status = "okay";
+       };
+};
+
+&cp0_syscon0 {
+       cp0_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               cp0_ge_mdio_pins: ge-mdio-pins {
+                       marvell,pins = "mpp40", "mpp41";
+                       marvell,function = "ge";
+               };
+       };
+};
+
+&cp0_sdhci0 {
+       status = "disabled";
+};
+
+&cp0_spi1 {
+       status = "okay";
+};
+
+&cp0_usb3_0 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy0>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
+
+&cp0_usb3_1 {
+       status = "okay";
+       usb-phy = <&cp0_usb3_0_phy1>;
+       phy-names = "usb";
+       /delete-property/ phys;
+};
+
+&cp1_usb3_1 {
+       status = "okay";
+       usb-phy = <&cp1_usb3_0_phy0>;
+       /* Generic PHY, providing serdes lanes */
+       phys = <&cp1_comphy3 1>;
+       phy-names = "usb";
+};