xref: /freebsd/sys/contrib/device-tree/src/riscv/microchip/mpfs-icicle-kit-common.dtsi (revision 69ed3df4f588860308677cda76cbcce1f19a54c9)
11537cf73SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
21537cf73SEmmanuel Vadot/* Copyright (c) 2025 Microchip Technology Inc */
31537cf73SEmmanuel Vadot
41537cf73SEmmanuel Vadot/dts-v1/;
51537cf73SEmmanuel Vadot
61537cf73SEmmanuel Vadot#include "mpfs-icicle-kit-fabric.dtsi"
71537cf73SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
81537cf73SEmmanuel Vadot#include <dt-bindings/leds/common.h>
91537cf73SEmmanuel Vadot
101537cf73SEmmanuel Vadot/ {
111537cf73SEmmanuel Vadot	aliases {
121537cf73SEmmanuel Vadot		ethernet0 = &mac1;
131537cf73SEmmanuel Vadot		serial0 = &mmuart0;
141537cf73SEmmanuel Vadot		serial1 = &mmuart1;
151537cf73SEmmanuel Vadot		serial2 = &mmuart2;
161537cf73SEmmanuel Vadot		serial3 = &mmuart3;
171537cf73SEmmanuel Vadot		serial4 = &mmuart4;
181537cf73SEmmanuel Vadot	};
191537cf73SEmmanuel Vadot
201537cf73SEmmanuel Vadot	chosen {
211537cf73SEmmanuel Vadot		stdout-path = "serial1:115200n8";
221537cf73SEmmanuel Vadot	};
231537cf73SEmmanuel Vadot
241537cf73SEmmanuel Vadot	leds {
251537cf73SEmmanuel Vadot		compatible = "gpio-leds";
261537cf73SEmmanuel Vadot
271537cf73SEmmanuel Vadot		led-1 {
281537cf73SEmmanuel Vadot			gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
291537cf73SEmmanuel Vadot			color = <LED_COLOR_ID_RED>;
301537cf73SEmmanuel Vadot			label = "led1";
311537cf73SEmmanuel Vadot		};
321537cf73SEmmanuel Vadot
331537cf73SEmmanuel Vadot		led-2 {
341537cf73SEmmanuel Vadot			gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
351537cf73SEmmanuel Vadot			color = <LED_COLOR_ID_RED>;
361537cf73SEmmanuel Vadot			label = "led2";
371537cf73SEmmanuel Vadot		};
381537cf73SEmmanuel Vadot
391537cf73SEmmanuel Vadot		led-3 {
401537cf73SEmmanuel Vadot			gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
411537cf73SEmmanuel Vadot			color = <LED_COLOR_ID_AMBER>;
421537cf73SEmmanuel Vadot			label = "led3";
431537cf73SEmmanuel Vadot		};
441537cf73SEmmanuel Vadot
451537cf73SEmmanuel Vadot		led-4 {
461537cf73SEmmanuel Vadot			gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
471537cf73SEmmanuel Vadot			color = <LED_COLOR_ID_AMBER>;
481537cf73SEmmanuel Vadot			label = "led4";
491537cf73SEmmanuel Vadot		};
501537cf73SEmmanuel Vadot	};
511537cf73SEmmanuel Vadot
521537cf73SEmmanuel Vadot	ddrc_cache_lo: memory@80000000 {
531537cf73SEmmanuel Vadot		device_type = "memory";
541537cf73SEmmanuel Vadot		reg = <0x0 0x80000000 0x0 0x40000000>;
551537cf73SEmmanuel Vadot	};
561537cf73SEmmanuel Vadot
571537cf73SEmmanuel Vadot	ddrc_cache_hi: memory@1040000000 {
581537cf73SEmmanuel Vadot		device_type = "memory";
591537cf73SEmmanuel Vadot		reg = <0x10 0x40000000 0x0 0x40000000>;
601537cf73SEmmanuel Vadot	};
611537cf73SEmmanuel Vadot
621537cf73SEmmanuel Vadot	reserved-memory {
631537cf73SEmmanuel Vadot		#address-cells = <2>;
641537cf73SEmmanuel Vadot		#size-cells = <2>;
651537cf73SEmmanuel Vadot		ranges;
661537cf73SEmmanuel Vadot
671537cf73SEmmanuel Vadot		hss_payload: region@bfc00000 {
681537cf73SEmmanuel Vadot			reg = <0x0 0xbfc00000 0x0 0x400000>;
691537cf73SEmmanuel Vadot			no-map;
701537cf73SEmmanuel Vadot		};
711537cf73SEmmanuel Vadot	};
721537cf73SEmmanuel Vadot};
731537cf73SEmmanuel Vadot
741537cf73SEmmanuel Vadot&core_pwm0 {
751537cf73SEmmanuel Vadot	status = "okay";
761537cf73SEmmanuel Vadot};
771537cf73SEmmanuel Vadot
781537cf73SEmmanuel Vadot&gpio2 {
791537cf73SEmmanuel Vadot	status = "okay";
801537cf73SEmmanuel Vadot};
811537cf73SEmmanuel Vadot
821537cf73SEmmanuel Vadot&i2c0 {
831537cf73SEmmanuel Vadot	status = "okay";
841537cf73SEmmanuel Vadot};
851537cf73SEmmanuel Vadot
861537cf73SEmmanuel Vadot&i2c1 {
871537cf73SEmmanuel Vadot	status = "okay";
881537cf73SEmmanuel Vadot
891537cf73SEmmanuel Vadot	power-monitor@10 {
901537cf73SEmmanuel Vadot		compatible = "microchip,pac1934";
911537cf73SEmmanuel Vadot		reg = <0x10>;
921537cf73SEmmanuel Vadot
931537cf73SEmmanuel Vadot		#address-cells = <1>;
941537cf73SEmmanuel Vadot		#size-cells = <0>;
951537cf73SEmmanuel Vadot
961537cf73SEmmanuel Vadot		channel@1 {
971537cf73SEmmanuel Vadot			reg = <0x1>;
981537cf73SEmmanuel Vadot			shunt-resistor-micro-ohms = <10000>;
991537cf73SEmmanuel Vadot			label = "VDDREG";
1001537cf73SEmmanuel Vadot		};
1011537cf73SEmmanuel Vadot
1021537cf73SEmmanuel Vadot		channel@2 {
1031537cf73SEmmanuel Vadot			reg = <0x2>;
1041537cf73SEmmanuel Vadot			shunt-resistor-micro-ohms = <10000>;
1051537cf73SEmmanuel Vadot			label = "VDDA25";
1061537cf73SEmmanuel Vadot		};
1071537cf73SEmmanuel Vadot
1081537cf73SEmmanuel Vadot		channel@3 {
1091537cf73SEmmanuel Vadot			reg = <0x3>;
1101537cf73SEmmanuel Vadot			shunt-resistor-micro-ohms = <10000>;
1111537cf73SEmmanuel Vadot			label = "VDD25";
1121537cf73SEmmanuel Vadot		};
1131537cf73SEmmanuel Vadot
1141537cf73SEmmanuel Vadot		channel@4 {
1151537cf73SEmmanuel Vadot			reg = <0x4>;
1161537cf73SEmmanuel Vadot			shunt-resistor-micro-ohms = <10000>;
1171537cf73SEmmanuel Vadot			label = "VDDA_REG";
1181537cf73SEmmanuel Vadot		};
1191537cf73SEmmanuel Vadot	};
1201537cf73SEmmanuel Vadot};
1211537cf73SEmmanuel Vadot
1221537cf73SEmmanuel Vadot&i2c2 {
1231537cf73SEmmanuel Vadot	status = "okay";
1241537cf73SEmmanuel Vadot};
1251537cf73SEmmanuel Vadot
1261537cf73SEmmanuel Vadot&ihc {
1271537cf73SEmmanuel Vadot	status = "okay";
1281537cf73SEmmanuel Vadot};
1291537cf73SEmmanuel Vadot
130*69ed3df4SEmmanuel Vadot&irqmux {
131*69ed3df4SEmmanuel Vadot	interrupt-map = <0 &plic 13>, <1 &plic 14>, <2 &plic 15>,
132*69ed3df4SEmmanuel Vadot			<3 &plic 16>, <4 &plic 17>, <5 &plic 18>,
133*69ed3df4SEmmanuel Vadot			<6 &plic 19>, <7 &plic 20>, <8 &plic 21>,
134*69ed3df4SEmmanuel Vadot			<9 &plic 22>, <10 &plic 23>, <11 &plic 24>,
135*69ed3df4SEmmanuel Vadot			<12 &plic 25>, <13 &plic 26>,
136*69ed3df4SEmmanuel Vadot
137*69ed3df4SEmmanuel Vadot			<32 &plic 27>, <33 &plic 28>, <34 &plic 29>,
138*69ed3df4SEmmanuel Vadot			<35 &plic 30>, <36 &plic 31>, <37 &plic 32>,
139*69ed3df4SEmmanuel Vadot			<38 &plic 33>, <39 &plic 34>, <40 &plic 35>,
140*69ed3df4SEmmanuel Vadot			<41 &plic 36>, <42 &plic 37>, <43 &plic 38>,
141*69ed3df4SEmmanuel Vadot			<44 &plic 39>, <45 &plic 40>, <46 &plic 41>,
142*69ed3df4SEmmanuel Vadot			<47 &plic 42>, <48 &plic 43>, <49 &plic 44>,
143*69ed3df4SEmmanuel Vadot			<50 &plic 45>, <51 &plic 46>, <52 &plic 47>,
144*69ed3df4SEmmanuel Vadot			<53 &plic 48>, <54 &plic 49>, <55 &plic 50>,
145*69ed3df4SEmmanuel Vadot
146*69ed3df4SEmmanuel Vadot			<64 &plic 53>, <65 &plic 53>, <66 &plic 53>,
147*69ed3df4SEmmanuel Vadot			<67 &plic 53>, <68 &plic 53>, <69 &plic 53>,
148*69ed3df4SEmmanuel Vadot			<70 &plic 53>, <71 &plic 53>, <72 &plic 53>,
149*69ed3df4SEmmanuel Vadot			<73 &plic 53>, <74 &plic 53>, <75 &plic 53>,
150*69ed3df4SEmmanuel Vadot			<76 &plic 53>, <77 &plic 53>, <78 &plic 53>,
151*69ed3df4SEmmanuel Vadot			<79 &plic 53>, <80 &plic 53>, <81 &plic 53>,
152*69ed3df4SEmmanuel Vadot			<82 &plic 53>, <83 &plic 53>, <84 &plic 53>,
153*69ed3df4SEmmanuel Vadot			<85 &plic 53>, <86 &plic 53>, <87 &plic 53>,
154*69ed3df4SEmmanuel Vadot			<88 &plic 53>, <89 &plic 53>, <90 &plic 53>,
155*69ed3df4SEmmanuel Vadot			<91 &plic 53>, <92 &plic 53>, <93 &plic 53>,
156*69ed3df4SEmmanuel Vadot			<94 &plic 53>, <95 &plic 53>;
157*69ed3df4SEmmanuel Vadot};
158*69ed3df4SEmmanuel Vadot
1591537cf73SEmmanuel Vadot&mac0 {
1601537cf73SEmmanuel Vadot	phy-mode = "sgmii";
1611537cf73SEmmanuel Vadot	phy-handle = <&phy0>;
1621537cf73SEmmanuel Vadot	status = "okay";
1631537cf73SEmmanuel Vadot};
1641537cf73SEmmanuel Vadot
1651537cf73SEmmanuel Vadot&mac1 {
1661537cf73SEmmanuel Vadot	phy-mode = "sgmii";
1671537cf73SEmmanuel Vadot	phy-handle = <&phy1>;
1681537cf73SEmmanuel Vadot	status = "okay";
1691537cf73SEmmanuel Vadot
1701537cf73SEmmanuel Vadot	phy1: ethernet-phy@9 {
1711537cf73SEmmanuel Vadot		reg = <9>;
1721537cf73SEmmanuel Vadot	};
1731537cf73SEmmanuel Vadot
1741537cf73SEmmanuel Vadot	phy0: ethernet-phy@8 {
1751537cf73SEmmanuel Vadot		reg = <8>;
1761537cf73SEmmanuel Vadot	};
1771537cf73SEmmanuel Vadot};
1781537cf73SEmmanuel Vadot
1791537cf73SEmmanuel Vadot&mbox {
1801537cf73SEmmanuel Vadot	status = "okay";
1811537cf73SEmmanuel Vadot};
1821537cf73SEmmanuel Vadot
1831537cf73SEmmanuel Vadot&mmc {
1841537cf73SEmmanuel Vadot	bus-width = <4>;
1851537cf73SEmmanuel Vadot	disable-wp;
1861537cf73SEmmanuel Vadot	cap-sd-highspeed;
1871537cf73SEmmanuel Vadot	cap-mmc-highspeed;
1881537cf73SEmmanuel Vadot	mmc-ddr-1_8v;
1891537cf73SEmmanuel Vadot	mmc-hs200-1_8v;
1901537cf73SEmmanuel Vadot	sd-uhs-sdr12;
1911537cf73SEmmanuel Vadot	sd-uhs-sdr25;
1921537cf73SEmmanuel Vadot	sd-uhs-sdr50;
1931537cf73SEmmanuel Vadot	sd-uhs-sdr104;
1941537cf73SEmmanuel Vadot	status = "okay";
1951537cf73SEmmanuel Vadot};
1961537cf73SEmmanuel Vadot
1971537cf73SEmmanuel Vadot&mmuart1 {
1981537cf73SEmmanuel Vadot	status = "okay";
1991537cf73SEmmanuel Vadot};
2001537cf73SEmmanuel Vadot
2011537cf73SEmmanuel Vadot&mmuart2 {
2021537cf73SEmmanuel Vadot	status = "okay";
2031537cf73SEmmanuel Vadot};
2041537cf73SEmmanuel Vadot
2051537cf73SEmmanuel Vadot&mmuart3 {
2061537cf73SEmmanuel Vadot	status = "okay";
2071537cf73SEmmanuel Vadot};
2081537cf73SEmmanuel Vadot
2091537cf73SEmmanuel Vadot&mmuart4 {
2101537cf73SEmmanuel Vadot	status = "okay";
2111537cf73SEmmanuel Vadot};
2121537cf73SEmmanuel Vadot
2131537cf73SEmmanuel Vadot&pcie {
2141537cf73SEmmanuel Vadot	status = "okay";
2151537cf73SEmmanuel Vadot};
2161537cf73SEmmanuel Vadot
2171537cf73SEmmanuel Vadot&qspi {
2181537cf73SEmmanuel Vadot	status = "okay";
2191537cf73SEmmanuel Vadot};
2201537cf73SEmmanuel Vadot
2211537cf73SEmmanuel Vadot&refclk {
2221537cf73SEmmanuel Vadot	clock-frequency = <125000000>;
2231537cf73SEmmanuel Vadot};
2241537cf73SEmmanuel Vadot
2251537cf73SEmmanuel Vadot&refclk_ccc {
2261537cf73SEmmanuel Vadot	clock-frequency = <50000000>;
2271537cf73SEmmanuel Vadot};
2281537cf73SEmmanuel Vadot
2291537cf73SEmmanuel Vadot&rtc {
2301537cf73SEmmanuel Vadot	status = "okay";
2311537cf73SEmmanuel Vadot};
2321537cf73SEmmanuel Vadot
2331537cf73SEmmanuel Vadot&spi0 {
2341537cf73SEmmanuel Vadot	status = "okay";
2351537cf73SEmmanuel Vadot};
2361537cf73SEmmanuel Vadot
2371537cf73SEmmanuel Vadot&spi1 {
2381537cf73SEmmanuel Vadot	status = "okay";
2391537cf73SEmmanuel Vadot};
2401537cf73SEmmanuel Vadot
2411537cf73SEmmanuel Vadot&syscontroller {
2421537cf73SEmmanuel Vadot	status = "okay";
2431537cf73SEmmanuel Vadot};
2441537cf73SEmmanuel Vadot
2451537cf73SEmmanuel Vadot&syscontroller_qspi {
2461537cf73SEmmanuel Vadot	/*
2471537cf73SEmmanuel Vadot	 * The flash *is* there, but Icicle kits that have engineering sample
2481537cf73SEmmanuel Vadot	 * silicon (write?) access to this flash to non-functional. The system
2491537cf73SEmmanuel Vadot	 * controller itself can actually access it, but the MSS cannot write
2501537cf73SEmmanuel Vadot	 * an image there. Instantiating a coreQSPI in the fabric & connecting
2511537cf73SEmmanuel Vadot	 * it to the flash instead should work though. Pre-production or later
2521537cf73SEmmanuel Vadot	 * silicon does not have this issue.
2531537cf73SEmmanuel Vadot	 */
2541537cf73SEmmanuel Vadot	status = "disabled";
2551537cf73SEmmanuel Vadot
2561537cf73SEmmanuel Vadot	sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
2571537cf73SEmmanuel Vadot		compatible = "jedec,spi-nor";
2581537cf73SEmmanuel Vadot		#address-cells = <1>;
2591537cf73SEmmanuel Vadot		#size-cells = <1>;
2601537cf73SEmmanuel Vadot		spi-max-frequency = <20000000>;
2611537cf73SEmmanuel Vadot		spi-rx-bus-width = <1>;
2621537cf73SEmmanuel Vadot		reg = <0>;
2631537cf73SEmmanuel Vadot	};
2641537cf73SEmmanuel Vadot};
2651537cf73SEmmanuel Vadot
2661537cf73SEmmanuel Vadot&usb {
2671537cf73SEmmanuel Vadot	status = "okay";
2681537cf73SEmmanuel Vadot	dr_mode = "host";
2691537cf73SEmmanuel Vadot};
270