18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2015 Microchip Technology Inc.  All rights reserved.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci#include <dt-bindings/clock/microchip,pic32-clock.h>
68c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci/ {
98c2ecf20Sopenharmony_ci	#address-cells = <1>;
108c2ecf20Sopenharmony_ci	#size-cells = <1>;
118c2ecf20Sopenharmony_ci	interrupt-parent = <&evic>;
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	aliases {
148c2ecf20Sopenharmony_ci		gpio0 = &gpio0;
158c2ecf20Sopenharmony_ci		gpio1 = &gpio1;
168c2ecf20Sopenharmony_ci		gpio2 = &gpio2;
178c2ecf20Sopenharmony_ci		gpio3 = &gpio3;
188c2ecf20Sopenharmony_ci		gpio4 = &gpio4;
198c2ecf20Sopenharmony_ci		gpio5 = &gpio5;
208c2ecf20Sopenharmony_ci		gpio6 = &gpio6;
218c2ecf20Sopenharmony_ci		gpio7 = &gpio7;
228c2ecf20Sopenharmony_ci		gpio8 = &gpio8;
238c2ecf20Sopenharmony_ci		gpio9 = &gpio9;
248c2ecf20Sopenharmony_ci		serial0 = &uart1;
258c2ecf20Sopenharmony_ci		serial1 = &uart2;
268c2ecf20Sopenharmony_ci		serial2 = &uart3;
278c2ecf20Sopenharmony_ci		serial3 = &uart4;
288c2ecf20Sopenharmony_ci		serial4 = &uart5;
298c2ecf20Sopenharmony_ci		serial5 = &uart6;
308c2ecf20Sopenharmony_ci	};
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	cpus {
338c2ecf20Sopenharmony_ci		#address-cells = <1>;
348c2ecf20Sopenharmony_ci		#size-cells = <0>;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci		cpu@0 {
378c2ecf20Sopenharmony_ci			compatible = "mti,mips14KEc";
388c2ecf20Sopenharmony_ci			device_type = "cpu";
398c2ecf20Sopenharmony_ci		};
408c2ecf20Sopenharmony_ci	};
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci	soc {
438c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-infra";
448c2ecf20Sopenharmony_ci		interrupts = <0 IRQ_TYPE_EDGE_RISING>;
458c2ecf20Sopenharmony_ci	};
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	/* external clock input on TxCLKI pin */
488c2ecf20Sopenharmony_ci	txcki: txcki_clk {
498c2ecf20Sopenharmony_ci		#clock-cells = <0>;
508c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
518c2ecf20Sopenharmony_ci		clock-frequency = <4000000>;
528c2ecf20Sopenharmony_ci		status = "disabled";
538c2ecf20Sopenharmony_ci	};
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	/* external input on REFCLKIx pin */
568c2ecf20Sopenharmony_ci	refix: refix_clk {
578c2ecf20Sopenharmony_ci		#clock-cells = <0>;
588c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
598c2ecf20Sopenharmony_ci		clock-frequency = <24000000>;
608c2ecf20Sopenharmony_ci		status = "disabled";
618c2ecf20Sopenharmony_ci	};
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	rootclk: clock-controller@1f801200 {
648c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-clk";
658c2ecf20Sopenharmony_ci		reg = <0x1f801200 0x200>;
668c2ecf20Sopenharmony_ci		#clock-cells = <1>;
678c2ecf20Sopenharmony_ci		microchip,pic32mzda-sosc;
688c2ecf20Sopenharmony_ci	};
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	evic: interrupt-controller@1f810000 {
718c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-evic";
728c2ecf20Sopenharmony_ci		interrupt-controller;
738c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
748c2ecf20Sopenharmony_ci		reg = <0x1f810000 0x1000>;
758c2ecf20Sopenharmony_ci		microchip,external-irqs = <3 8 13 18 23>;
768c2ecf20Sopenharmony_ci	};
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci	pic32_pinctrl: pinctrl@1f801400{
798c2ecf20Sopenharmony_ci		#address-cells = <1>;
808c2ecf20Sopenharmony_ci		#size-cells = <1>;
818c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-pinctrl";
828c2ecf20Sopenharmony_ci		reg = <0x1f801400 0x400>;
838c2ecf20Sopenharmony_ci		clocks = <&rootclk PB1CLK>;
848c2ecf20Sopenharmony_ci	};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci	/* PORTA */
878c2ecf20Sopenharmony_ci	gpio0: gpio0@1f860000 {
888c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
898c2ecf20Sopenharmony_ci		reg = <0x1f860000 0x100>;
908c2ecf20Sopenharmony_ci		interrupts = <118 IRQ_TYPE_LEVEL_HIGH>;
918c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
928c2ecf20Sopenharmony_ci		gpio-controller;
938c2ecf20Sopenharmony_ci		interrupt-controller;
948c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
958c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
968c2ecf20Sopenharmony_ci		microchip,gpio-bank = <0>;
978c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 0 16>;
988c2ecf20Sopenharmony_ci	};
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci	/* PORTB */
1018c2ecf20Sopenharmony_ci	gpio1: gpio1@1f860100 {
1028c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1038c2ecf20Sopenharmony_ci		reg = <0x1f860100 0x100>;
1048c2ecf20Sopenharmony_ci		interrupts = <119 IRQ_TYPE_LEVEL_HIGH>;
1058c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1068c2ecf20Sopenharmony_ci		gpio-controller;
1078c2ecf20Sopenharmony_ci		interrupt-controller;
1088c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1098c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1108c2ecf20Sopenharmony_ci		microchip,gpio-bank = <1>;
1118c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 16 16>;
1128c2ecf20Sopenharmony_ci	};
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci	/* PORTC */
1158c2ecf20Sopenharmony_ci	gpio2: gpio2@1f860200 {
1168c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1178c2ecf20Sopenharmony_ci		reg = <0x1f860200 0x100>;
1188c2ecf20Sopenharmony_ci		interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
1198c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1208c2ecf20Sopenharmony_ci		gpio-controller;
1218c2ecf20Sopenharmony_ci		interrupt-controller;
1228c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1238c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1248c2ecf20Sopenharmony_ci		microchip,gpio-bank = <2>;
1258c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 32 16>;
1268c2ecf20Sopenharmony_ci	};
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci	/* PORTD */
1298c2ecf20Sopenharmony_ci	gpio3: gpio3@1f860300 {
1308c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1318c2ecf20Sopenharmony_ci		reg = <0x1f860300 0x100>;
1328c2ecf20Sopenharmony_ci		interrupts = <121 IRQ_TYPE_LEVEL_HIGH>;
1338c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1348c2ecf20Sopenharmony_ci		gpio-controller;
1358c2ecf20Sopenharmony_ci		interrupt-controller;
1368c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1378c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1388c2ecf20Sopenharmony_ci		microchip,gpio-bank = <3>;
1398c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 48 16>;
1408c2ecf20Sopenharmony_ci	};
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci	/* PORTE */
1438c2ecf20Sopenharmony_ci	gpio4: gpio4@1f860400 {
1448c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1458c2ecf20Sopenharmony_ci		reg = <0x1f860400 0x100>;
1468c2ecf20Sopenharmony_ci		interrupts = <122 IRQ_TYPE_LEVEL_HIGH>;
1478c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1488c2ecf20Sopenharmony_ci		gpio-controller;
1498c2ecf20Sopenharmony_ci		interrupt-controller;
1508c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1518c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1528c2ecf20Sopenharmony_ci		microchip,gpio-bank = <4>;
1538c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 64 16>;
1548c2ecf20Sopenharmony_ci	};
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci	/* PORTF */
1578c2ecf20Sopenharmony_ci	gpio5: gpio5@1f860500 {
1588c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1598c2ecf20Sopenharmony_ci		reg = <0x1f860500 0x100>;
1608c2ecf20Sopenharmony_ci		interrupts = <123 IRQ_TYPE_LEVEL_HIGH>;
1618c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1628c2ecf20Sopenharmony_ci		gpio-controller;
1638c2ecf20Sopenharmony_ci		interrupt-controller;
1648c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1658c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1668c2ecf20Sopenharmony_ci		microchip,gpio-bank = <5>;
1678c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 80 16>;
1688c2ecf20Sopenharmony_ci	};
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci	/* PORTG */
1718c2ecf20Sopenharmony_ci	gpio6: gpio6@1f860600 {
1728c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1738c2ecf20Sopenharmony_ci		reg = <0x1f860600 0x100>;
1748c2ecf20Sopenharmony_ci		interrupts = <124 IRQ_TYPE_LEVEL_HIGH>;
1758c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1768c2ecf20Sopenharmony_ci		gpio-controller;
1778c2ecf20Sopenharmony_ci		interrupt-controller;
1788c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1798c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1808c2ecf20Sopenharmony_ci		microchip,gpio-bank = <6>;
1818c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 96 16>;
1828c2ecf20Sopenharmony_ci	};
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	/* PORTH */
1858c2ecf20Sopenharmony_ci	gpio7: gpio7@1f860700 {
1868c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
1878c2ecf20Sopenharmony_ci		reg = <0x1f860700 0x100>;
1888c2ecf20Sopenharmony_ci		interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
1898c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1908c2ecf20Sopenharmony_ci		gpio-controller;
1918c2ecf20Sopenharmony_ci		interrupt-controller;
1928c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
1938c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
1948c2ecf20Sopenharmony_ci		microchip,gpio-bank = <7>;
1958c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 112 16>;
1968c2ecf20Sopenharmony_ci	};
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ci	/* PORTI does not exist */
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci	/* PORTJ */
2018c2ecf20Sopenharmony_ci	gpio8: gpio8@1f860800 {
2028c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
2038c2ecf20Sopenharmony_ci		reg = <0x1f860800 0x100>;
2048c2ecf20Sopenharmony_ci		interrupts = <126 IRQ_TYPE_LEVEL_HIGH>;
2058c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
2068c2ecf20Sopenharmony_ci		gpio-controller;
2078c2ecf20Sopenharmony_ci		interrupt-controller;
2088c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
2098c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
2108c2ecf20Sopenharmony_ci		microchip,gpio-bank = <8>;
2118c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 128 16>;
2128c2ecf20Sopenharmony_ci	};
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci	/* PORTK */
2158c2ecf20Sopenharmony_ci	gpio9: gpio9@1f860900 {
2168c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-gpio";
2178c2ecf20Sopenharmony_ci		reg = <0x1f860900 0x100>;
2188c2ecf20Sopenharmony_ci		interrupts = <127 IRQ_TYPE_LEVEL_HIGH>;
2198c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
2208c2ecf20Sopenharmony_ci		gpio-controller;
2218c2ecf20Sopenharmony_ci		interrupt-controller;
2228c2ecf20Sopenharmony_ci		#interrupt-cells = <2>;
2238c2ecf20Sopenharmony_ci		clocks = <&rootclk PB4CLK>;
2248c2ecf20Sopenharmony_ci		microchip,gpio-bank = <9>;
2258c2ecf20Sopenharmony_ci		gpio-ranges = <&pic32_pinctrl 0 144 16>;
2268c2ecf20Sopenharmony_ci	};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci	sdhci: sdhci@1f8ec000 {
2298c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-sdhci";
2308c2ecf20Sopenharmony_ci		reg = <0x1f8ec000 0x100>;
2318c2ecf20Sopenharmony_ci		interrupts = <191 IRQ_TYPE_LEVEL_HIGH>;
2328c2ecf20Sopenharmony_ci		clocks = <&rootclk REF4CLK>, <&rootclk PB5CLK>;
2338c2ecf20Sopenharmony_ci		clock-names = "base_clk", "sys_clk";
2348c2ecf20Sopenharmony_ci		bus-width = <4>;
2358c2ecf20Sopenharmony_ci		cap-sd-highspeed;
2368c2ecf20Sopenharmony_ci		status = "disabled";
2378c2ecf20Sopenharmony_ci	};
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci	uart1: serial@1f822000 {
2408c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-uart";
2418c2ecf20Sopenharmony_ci		reg = <0x1f822000 0x50>;
2428c2ecf20Sopenharmony_ci		interrupts = <112 IRQ_TYPE_LEVEL_HIGH>,
2438c2ecf20Sopenharmony_ci			<113 IRQ_TYPE_LEVEL_HIGH>,
2448c2ecf20Sopenharmony_ci			<114 IRQ_TYPE_LEVEL_HIGH>;
2458c2ecf20Sopenharmony_ci		clocks = <&rootclk PB2CLK>;
2468c2ecf20Sopenharmony_ci		status = "disabled";
2478c2ecf20Sopenharmony_ci	};
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci	uart2: serial@1f822200 {
2508c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-uart";
2518c2ecf20Sopenharmony_ci		reg = <0x1f822200 0x50>;
2528c2ecf20Sopenharmony_ci		interrupts = <145 IRQ_TYPE_LEVEL_HIGH>,
2538c2ecf20Sopenharmony_ci			<146 IRQ_TYPE_LEVEL_HIGH>,
2548c2ecf20Sopenharmony_ci			<147 IRQ_TYPE_LEVEL_HIGH>;
2558c2ecf20Sopenharmony_ci		clocks = <&rootclk PB2CLK>;
2568c2ecf20Sopenharmony_ci		status = "disabled";
2578c2ecf20Sopenharmony_ci	};
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci	uart3: serial@1f822400 {
2608c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-uart";
2618c2ecf20Sopenharmony_ci		reg = <0x1f822400 0x50>;
2628c2ecf20Sopenharmony_ci		interrupts = <157 IRQ_TYPE_LEVEL_HIGH>,
2638c2ecf20Sopenharmony_ci			<158 IRQ_TYPE_LEVEL_HIGH>,
2648c2ecf20Sopenharmony_ci			<159 IRQ_TYPE_LEVEL_HIGH>;
2658c2ecf20Sopenharmony_ci		clocks = <&rootclk PB2CLK>;
2668c2ecf20Sopenharmony_ci		status = "disabled";
2678c2ecf20Sopenharmony_ci	};
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci	uart4: serial@1f822600 {
2708c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-uart";
2718c2ecf20Sopenharmony_ci		reg = <0x1f822600 0x50>;
2728c2ecf20Sopenharmony_ci		interrupts = <170 IRQ_TYPE_LEVEL_HIGH>,
2738c2ecf20Sopenharmony_ci			<171 IRQ_TYPE_LEVEL_HIGH>,
2748c2ecf20Sopenharmony_ci			<172 IRQ_TYPE_LEVEL_HIGH>;
2758c2ecf20Sopenharmony_ci		clocks = <&rootclk PB2CLK>;
2768c2ecf20Sopenharmony_ci		status = "disabled";
2778c2ecf20Sopenharmony_ci	};
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ci	uart5: serial@1f822800 {
2808c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-uart";
2818c2ecf20Sopenharmony_ci		reg = <0x1f822800 0x50>;
2828c2ecf20Sopenharmony_ci		interrupts = <179 IRQ_TYPE_LEVEL_HIGH>,
2838c2ecf20Sopenharmony_ci			<180 IRQ_TYPE_LEVEL_HIGH>,
2848c2ecf20Sopenharmony_ci			<181 IRQ_TYPE_LEVEL_HIGH>;
2858c2ecf20Sopenharmony_ci		clocks = <&rootclk PB2CLK>;
2868c2ecf20Sopenharmony_ci		status = "disabled";
2878c2ecf20Sopenharmony_ci	};
2888c2ecf20Sopenharmony_ci
2898c2ecf20Sopenharmony_ci	uart6: serial@1f822A00 {
2908c2ecf20Sopenharmony_ci		compatible = "microchip,pic32mzda-uart";
2918c2ecf20Sopenharmony_ci		reg = <0x1f822A00 0x50>;
2928c2ecf20Sopenharmony_ci		interrupts = <188 IRQ_TYPE_LEVEL_HIGH>,
2938c2ecf20Sopenharmony_ci			<189 IRQ_TYPE_LEVEL_HIGH>,
2948c2ecf20Sopenharmony_ci			<190 IRQ_TYPE_LEVEL_HIGH>;
2958c2ecf20Sopenharmony_ci		clocks = <&rootclk PB2CLK>;
2968c2ecf20Sopenharmony_ci		status = "disabled";
2978c2ecf20Sopenharmony_ci	};
2988c2ecf20Sopenharmony_ci};
299