]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
riscv: dts: microchip: add common board dtsi for icicle kit variants
authorValentina Fernandez <valentina.fernandezalanis@microchip.com>
Mon, 8 Sep 2025 11:57:27 +0000 (12:57 +0100)
committerConor Dooley <conor.dooley@microchip.com>
Tue, 9 Sep 2025 19:48:15 +0000 (20:48 +0100)
In preparation for supporting the Icicle Kit with production silicon,
add a common board dtsi for the icicle kit with hardware shared by both
the engineering sample and production versions.

Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
arch/riscv/boot/dts/microchip/mpfs-icicle-kit-common.dtsi [new file with mode: 0644]
arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts

diff --git a/arch/riscv/boot/dts/microchip/mpfs-icicle-kit-common.dtsi b/arch/riscv/boot/dts/microchip/mpfs-icicle-kit-common.dtsi
new file mode 100644 (file)
index 0000000..eafea3b
--- /dev/null
@@ -0,0 +1,247 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2025 Microchip Technology Inc */
+
+/dts-v1/;
+
+#include "mpfs.dtsi"
+#include "mpfs-icicle-kit-fabric.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               ethernet0 = &mac1;
+               serial0 = &mmuart0;
+               serial1 = &mmuart1;
+               serial2 = &mmuart2;
+               serial3 = &mmuart3;
+               serial4 = &mmuart4;
+       };
+
+       chosen {
+               stdout-path = "serial1:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-1 {
+                       gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_RED>;
+                       label = "led1";
+               };
+
+               led-2 {
+                       gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_RED>;
+                       label = "led2";
+               };
+
+               led-3 {
+                       gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_AMBER>;
+                       label = "led3";
+               };
+
+               led-4 {
+                       gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+                       color = <LED_COLOR_ID_AMBER>;
+                       label = "led4";
+               };
+       };
+
+       ddrc_cache_lo: memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x40000000>;
+               status = "okay";
+       };
+
+       ddrc_cache_hi: memory@1040000000 {
+               device_type = "memory";
+               reg = <0x10 0x40000000 0x0 0x40000000>;
+               status = "okay";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               hss_payload: region@BFC00000 {
+                       reg = <0x0 0xBFC00000 0x0 0x400000>;
+                       no-map;
+               };
+       };
+};
+
+&core_pwm0 {
+       status = "okay";
+};
+
+&gpio2 {
+       interrupts = <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       power-monitor@10 {
+               compatible = "microchip,pac1934";
+               reg = <0x10>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               channel@1 {
+                       reg = <0x1>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDDREG";
+               };
+
+               channel@2 {
+                       reg = <0x2>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDDA25";
+               };
+
+               channel@3 {
+                       reg = <0x3>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDD25";
+               };
+
+               channel@4 {
+                       reg = <0x4>;
+                       shunt-resistor-micro-ohms = <10000>;
+                       label = "VDDA_REG";
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&mac0 {
+       phy-mode = "sgmii";
+       phy-handle = <&phy0>;
+       status = "okay";
+};
+
+&mac1 {
+       phy-mode = "sgmii";
+       phy-handle = <&phy1>;
+       status = "okay";
+
+       phy1: ethernet-phy@9 {
+               reg = <9>;
+       };
+
+       phy0: ethernet-phy@8 {
+               reg = <8>;
+       };
+};
+
+&mbox {
+       status = "okay";
+};
+
+&mmc {
+       bus-width = <4>;
+       disable-wp;
+       cap-sd-highspeed;
+       cap-mmc-highspeed;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&mmuart1 {
+       status = "okay";
+};
+
+&mmuart2 {
+       status = "okay";
+};
+
+&mmuart3 {
+       status = "okay";
+};
+
+&mmuart4 {
+       status = "okay";
+};
+
+&pcie {
+       status = "okay";
+};
+
+&qspi {
+       status = "okay";
+};
+
+&refclk {
+       clock-frequency = <125000000>;
+};
+
+&refclk_ccc {
+       clock-frequency = <50000000>;
+};
+
+&rtc {
+       status = "okay";
+};
+
+&spi0 {
+       status = "okay";
+};
+
+&spi1 {
+       status = "okay";
+};
+
+&syscontroller {
+       status = "okay";
+};
+
+&syscontroller_qspi {
+       /*
+        * The flash *is* there, but Icicle kits that have engineering sample
+        * silicon (write?) access to this flash to non-functional. The system
+        * controller itself can actually access it, but the MSS cannot write
+        * an image there. Instantiating a coreQSPI in the fabric & connecting
+        * it to the flash instead should work though. Pre-production or later
+        * silicon does not have this issue.
+        */
+       status = "disabled";
+
+       sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <20000000>;
+               spi-rx-bus-width = <1>;
+               reg = <0>;
+       };
+};
+
+&usb {
+       status = "okay";
+       dr_mode = "host";
+};
index f80df225f72b49bd6c6098aac1af9207522c6038..2cb08ed0946dba367543334ed847f9ceaa53652e 100644 (file)
 
 /dts-v1/;
 
-#include "mpfs.dtsi"
-#include "mpfs-icicle-kit-fabric.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/leds/common.h>
+#include "mpfs-icicle-kit-common.dtsi"
 
 / {
        model = "Microchip PolarFire-SoC Icicle Kit";
        compatible = "microchip,mpfs-icicle-reference-rtlv2210", "microchip,mpfs-icicle-kit",
                     "microchip,mpfs";
-
-       aliases {
-               ethernet0 = &mac1;
-               serial0 = &mmuart0;
-               serial1 = &mmuart1;
-               serial2 = &mmuart2;
-               serial3 = &mmuart3;
-               serial4 = &mmuart4;
-       };
-
-       chosen {
-               stdout-path = "serial1:115200n8";
-       };
-
-       leds {
-               compatible = "gpio-leds";
-
-               led-1 {
-                       gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
-                       color = <LED_COLOR_ID_RED>;
-                       label = "led1";
-               };
-
-               led-2 {
-                       gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
-                       color = <LED_COLOR_ID_RED>;
-                       label = "led2";
-               };
-
-               led-3 {
-                       gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
-                       color = <LED_COLOR_ID_AMBER>;
-                       label = "led3";
-               };
-
-               led-4 {
-                       gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
-                       color = <LED_COLOR_ID_AMBER>;
-                       label = "led4";
-               };
-       };
-
-       ddrc_cache_lo: memory@80000000 {
-               device_type = "memory";
-               reg = <0x0 0x80000000 0x0 0x40000000>;
-               status = "okay";
-       };
-
-       ddrc_cache_hi: memory@1040000000 {
-               device_type = "memory";
-               reg = <0x10 0x40000000 0x0 0x40000000>;
-               status = "okay";
-       };
-
-       reserved-memory {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               hss_payload: region@BFC00000 {
-                       reg = <0x0 0xBFC00000 0x0 0x400000>;
-                       no-map;
-               };
-       };
-};
-
-&core_pwm0 {
-       status = "okay";
-};
-
-&gpio2 {
-       interrupts = <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>,
-                    <53>, <53>, <53>, <53>;
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&i2c1 {
-       status = "okay";
-
-       power-monitor@10 {
-               compatible = "microchip,pac1934";
-               reg = <0x10>;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               channel@1 {
-                       reg = <0x1>;
-                       shunt-resistor-micro-ohms = <10000>;
-                       label = "VDDREG";
-               };
-
-               channel@2 {
-                       reg = <0x2>;
-                       shunt-resistor-micro-ohms = <10000>;
-                       label = "VDDA25";
-               };
-
-               channel@3 {
-                       reg = <0x3>;
-                       shunt-resistor-micro-ohms = <10000>;
-                       label = "VDD25";
-               };
-
-               channel@4 {
-                       reg = <0x4>;
-                       shunt-resistor-micro-ohms = <10000>;
-                       label = "VDDA_REG";
-               };
-       };
-};
-
-&i2c2 {
-       status = "okay";
-};
-
-&mac0 {
-       phy-mode = "sgmii";
-       phy-handle = <&phy0>;
-       status = "okay";
-};
-
-&mac1 {
-       phy-mode = "sgmii";
-       phy-handle = <&phy1>;
-       status = "okay";
-
-       phy1: ethernet-phy@9 {
-               reg = <9>;
-       };
-
-       phy0: ethernet-phy@8 {
-               reg = <8>;
-       };
-};
-
-&mbox {
-       status = "okay";
-};
-
-&mmc {
-       bus-width = <4>;
-       disable-wp;
-       cap-sd-highspeed;
-       cap-mmc-highspeed;
-       mmc-ddr-1_8v;
-       mmc-hs200-1_8v;
-       sd-uhs-sdr12;
-       sd-uhs-sdr25;
-       sd-uhs-sdr50;
-       sd-uhs-sdr104;
-       status = "okay";
-};
-
-&mmuart1 {
-       status = "okay";
-};
-
-&mmuart2 {
-       status = "okay";
-};
-
-&mmuart3 {
-       status = "okay";
-};
-
-&mmuart4 {
-       status = "okay";
-};
-
-&pcie {
-       status = "okay";
-};
-
-&qspi {
-       status = "okay";
-};
-
-&refclk {
-       clock-frequency = <125000000>;
-};
-
-&refclk_ccc {
-       clock-frequency = <50000000>;
-};
-
-&rtc {
-       status = "okay";
-};
-
-&spi0 {
-       status = "okay";
-};
-
-&spi1 {
-       status = "okay";
-};
-
-&syscontroller {
-       status = "okay";
-};
-
-&syscontroller_qspi {
-       /*
-        * The flash *is* there, but Icicle kits that have engineering sample
-        * silicon (write?) access to this flash to non-functional. The system
-        * controller itself can actually access it, but the MSS cannot write
-        * an image there. Instantiating a coreQSPI in the fabric & connecting
-        * it to the flash instead should work though. Pre-production or later
-        * silicon does not have this issue.
-        */
-       status = "disabled";
-
-       sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
-               compatible = "jedec,spi-nor";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               spi-max-frequency = <20000000>;
-               spi-rx-bus-width = <1>;
-               reg = <0>;
-       };
-};
-
-&usb {
-       status = "okay";
-       dr_mode = "host";
 };