xref: /linux/scripts/dtc/include-prefixes/riscv/microchip/pic64gx-curiosity-kit.dts (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*7219d20fSPierre-Henry Moussay// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*7219d20fSPierre-Henry Moussay/*
3*7219d20fSPierre-Henry Moussay * Device Tree Source for the PIC64GX Curiosity Kit
4*7219d20fSPierre-Henry Moussay *
5*7219d20fSPierre-Henry Moussay * Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries
6*7219d20fSPierre-Henry Moussay *
7*7219d20fSPierre-Henry Moussay * Author: Pierre-Henry Moussay <pierre-henry.moussay@microchip.com>
8*7219d20fSPierre-Henry Moussay *
9*7219d20fSPierre-Henry Moussay * The Curiosity-GX10000 (PIC64GX SoC Curiosity Kit) is a compact SoC
10*7219d20fSPierre-Henry Moussay * prototyping board featuring a Microchip PIC64GX SoC
11*7219d20fSPierre-Henry Moussay * PIC64GX-1000. Features include:
12*7219d20fSPierre-Henry Moussay *  - 1 GB DDR4 SDRAM
13*7219d20fSPierre-Henry Moussay *  - Gigabit Ethernet
14*7219d20fSPierre-Henry Moussay *  - microSD-card slot
15*7219d20fSPierre-Henry Moussay *
16*7219d20fSPierre-Henry Moussay * https://www.microchip.com/en-us/development-tool/curiosity-pic64gx1000-kit-es
17*7219d20fSPierre-Henry Moussay */
18*7219d20fSPierre-Henry Moussay
19*7219d20fSPierre-Henry Moussay/dts-v1/;
20*7219d20fSPierre-Henry Moussay
21*7219d20fSPierre-Henry Moussay#include "pic64gx.dtsi"
22*7219d20fSPierre-Henry Moussay#include "pic64gx-pinctrl.dtsi"
23*7219d20fSPierre-Henry Moussay
24*7219d20fSPierre-Henry Moussay/* Clock frequency (in Hz) of the rtcclk */
25*7219d20fSPierre-Henry Moussay#define RTCCLK_FREQ	1000000
26*7219d20fSPierre-Henry Moussay
27*7219d20fSPierre-Henry Moussay/ {
28*7219d20fSPierre-Henry Moussay	#address-cells = <2>;
29*7219d20fSPierre-Henry Moussay	#size-cells = <2>;
30*7219d20fSPierre-Henry Moussay	model = "Microchip PIC64GX Curiosity Kit";
31*7219d20fSPierre-Henry Moussay	compatible = "microchip,pic64gx-curiosity-kit", "microchip,pic64gx";
32*7219d20fSPierre-Henry Moussay
33*7219d20fSPierre-Henry Moussay	aliases {
34*7219d20fSPierre-Henry Moussay		ethernet0 = &mac0;
35*7219d20fSPierre-Henry Moussay		serial1 = &mmuart1;
36*7219d20fSPierre-Henry Moussay		serial2 = &mmuart2;
37*7219d20fSPierre-Henry Moussay	};
38*7219d20fSPierre-Henry Moussay
39*7219d20fSPierre-Henry Moussay	chosen {
40*7219d20fSPierre-Henry Moussay		stdout-path = "serial1:115200n8";
41*7219d20fSPierre-Henry Moussay	};
42*7219d20fSPierre-Henry Moussay
43*7219d20fSPierre-Henry Moussay	cpus {
44*7219d20fSPierre-Henry Moussay		timebase-frequency = <RTCCLK_FREQ>;
45*7219d20fSPierre-Henry Moussay	};
46*7219d20fSPierre-Henry Moussay
47*7219d20fSPierre-Henry Moussay	memory@80000000 {
48*7219d20fSPierre-Henry Moussay		device_type = "memory";
49*7219d20fSPierre-Henry Moussay		reg = <0x0 0x80000000 0x0 0x40000000>;
50*7219d20fSPierre-Henry Moussay	};
51*7219d20fSPierre-Henry Moussay
52*7219d20fSPierre-Henry Moussay	reserved-memory {
53*7219d20fSPierre-Henry Moussay		#address-cells = <2>;
54*7219d20fSPierre-Henry Moussay		#size-cells = <2>;
55*7219d20fSPierre-Henry Moussay		ranges;
56*7219d20fSPierre-Henry Moussay
57*7219d20fSPierre-Henry Moussay		hss: hss-buffer@bfc00000 {
58*7219d20fSPierre-Henry Moussay			compatible = "shared-dma-pool";
59*7219d20fSPierre-Henry Moussay			reg = <0x0 0xbfc00000 0x0 0x400000>;
60*7219d20fSPierre-Henry Moussay			no-map;
61*7219d20fSPierre-Henry Moussay		};
62*7219d20fSPierre-Henry Moussay	};
63*7219d20fSPierre-Henry Moussay};
64*7219d20fSPierre-Henry Moussay
65*7219d20fSPierre-Henry Moussay&gpio0 {
66*7219d20fSPierre-Henry Moussay	interrupts = <13>, <14>, <15>, <16>,
67*7219d20fSPierre-Henry Moussay		     <17>, <18>, <19>, <20>,
68*7219d20fSPierre-Henry Moussay		     <21>, <22>, <23>, <24>,
69*7219d20fSPierre-Henry Moussay		     <25>, <26>;
70*7219d20fSPierre-Henry Moussay	status ="okay";
71*7219d20fSPierre-Henry Moussay	gpio-line-names =
72*7219d20fSPierre-Henry Moussay		"", "", "", "", "", "", "", "",
73*7219d20fSPierre-Henry Moussay		"", "", "", "", "MIPI_CAM_RESET", "MIPI_CAM_STANDBY";
74*7219d20fSPierre-Henry Moussay};
75*7219d20fSPierre-Henry Moussay
76*7219d20fSPierre-Henry Moussay&gpio1 {
77*7219d20fSPierre-Henry Moussay	interrupts = <27>, <28>, <29>, <30>,
78*7219d20fSPierre-Henry Moussay		     <31>, <32>, <33>, <34>,
79*7219d20fSPierre-Henry Moussay		     <35>, <36>, <37>, <38>,
80*7219d20fSPierre-Henry Moussay		     <39>, <40>, <41>, <42>,
81*7219d20fSPierre-Henry Moussay		     <43>, <44>, <45>, <46>,
82*7219d20fSPierre-Henry Moussay		     <47>, <48>, <49>, <50>;
83*7219d20fSPierre-Henry Moussay	status ="okay";
84*7219d20fSPierre-Henry Moussay	gpio-line-names =
85*7219d20fSPierre-Henry Moussay		"", "", "LED1", "LED2", "LED3", "LED4", "LED5", "LED6",
86*7219d20fSPierre-Henry Moussay		"LED7", "LED8", "", "", "", "", "", "",
87*7219d20fSPierre-Henry Moussay		"", "", "", "", "HDMI_HPD", "", "", "GPIO_1_23";
88*7219d20fSPierre-Henry Moussay};
89*7219d20fSPierre-Henry Moussay
90*7219d20fSPierre-Henry Moussay&gpio2 {
91*7219d20fSPierre-Henry Moussay	interrupts = <53>, <53>, <53>, <53>,
92*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>,
93*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>,
94*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>,
95*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>,
96*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>,
97*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>,
98*7219d20fSPierre-Henry Moussay		     <53>, <53>, <53>, <53>;
99*7219d20fSPierre-Henry Moussay	pinctrl-names = "default";
100*7219d20fSPierre-Henry Moussay	pinctrl-0 = <&mdio1_gpio>, <&spi0_gpio>, <&can0_gpio>, <&pcie_gpio>,
101*7219d20fSPierre-Henry Moussay		    <&qspi_gpio>, <&uart3_gpio>, <&uart4_gpio>, <&can1_gpio>;
102*7219d20fSPierre-Henry Moussay	status ="okay";
103*7219d20fSPierre-Henry Moussay	gpio-line-names =
104*7219d20fSPierre-Henry Moussay		"", "", "", "", "", "", "SWITCH2", "USR_IO12",
105*7219d20fSPierre-Henry Moussay		"DIP1", "DIP2", "", "DIP3", "USR_IO1", "USR_IO2", "USR_IO7", "USR_IO8",
106*7219d20fSPierre-Henry Moussay		"USR_IO3", "USR_IO4", "USR_IO5", "USR_IO6", "", "", "USR_IO9", "USR_IO10",
107*7219d20fSPierre-Henry Moussay		"DIP4", "USR_IO11", "", "", "SWITCH1", "", "", "";
108*7219d20fSPierre-Henry Moussay};
109*7219d20fSPierre-Henry Moussay
110*7219d20fSPierre-Henry Moussay&mac0 {
111*7219d20fSPierre-Henry Moussay	status = "okay";
112*7219d20fSPierre-Henry Moussay	phy-mode = "sgmii";
113*7219d20fSPierre-Henry Moussay	phy-handle = <&phy0>;
114*7219d20fSPierre-Henry Moussay	pinctrl-names = "default";
115*7219d20fSPierre-Henry Moussay	pinctrl-0 = <&mdio0_default>;
116*7219d20fSPierre-Henry Moussay
117*7219d20fSPierre-Henry Moussay	phy0: ethernet-phy@b {
118*7219d20fSPierre-Henry Moussay		reg = <0xb>;
119*7219d20fSPierre-Henry Moussay	};
120*7219d20fSPierre-Henry Moussay};
121*7219d20fSPierre-Henry Moussay
122*7219d20fSPierre-Henry Moussay&mbox {
123*7219d20fSPierre-Henry Moussay	status = "okay";
124*7219d20fSPierre-Henry Moussay};
125*7219d20fSPierre-Henry Moussay
126*7219d20fSPierre-Henry Moussay&i2c0 {
127*7219d20fSPierre-Henry Moussay	status = "okay";
128*7219d20fSPierre-Henry Moussay};
129*7219d20fSPierre-Henry Moussay
130*7219d20fSPierre-Henry Moussay&i2c1 {
131*7219d20fSPierre-Henry Moussay	status = "okay";
132*7219d20fSPierre-Henry Moussay};
133*7219d20fSPierre-Henry Moussay
134*7219d20fSPierre-Henry Moussay&mmc {
135*7219d20fSPierre-Henry Moussay	bus-width = <4>;
136*7219d20fSPierre-Henry Moussay	disable-wp;
137*7219d20fSPierre-Henry Moussay	cap-sd-highspeed;
138*7219d20fSPierre-Henry Moussay	cap-mmc-highspeed;
139*7219d20fSPierre-Henry Moussay	sdhci-caps-mask = <0x00000007 0x00000000>;
140*7219d20fSPierre-Henry Moussay	status = "okay";
141*7219d20fSPierre-Henry Moussay};
142*7219d20fSPierre-Henry Moussay
143*7219d20fSPierre-Henry Moussay&mmuart1 {
144*7219d20fSPierre-Henry Moussay	pinctrl-names = "default";
145*7219d20fSPierre-Henry Moussay	pinctrl-0 = <&uart1_fio>;
146*7219d20fSPierre-Henry Moussay	status = "okay";
147*7219d20fSPierre-Henry Moussay};
148*7219d20fSPierre-Henry Moussay
149*7219d20fSPierre-Henry Moussay&mmuart2 {
150*7219d20fSPierre-Henry Moussay	pinctrl-names = "default";
151*7219d20fSPierre-Henry Moussay	pinctrl-0 = <&uart2_default>;
152*7219d20fSPierre-Henry Moussay	status = "okay";
153*7219d20fSPierre-Henry Moussay};
154*7219d20fSPierre-Henry Moussay
155*7219d20fSPierre-Henry Moussay&refclk {
156*7219d20fSPierre-Henry Moussay	clock-frequency = <125000000>;
157*7219d20fSPierre-Henry Moussay};
158*7219d20fSPierre-Henry Moussay
159*7219d20fSPierre-Henry Moussay&rtc {
160*7219d20fSPierre-Henry Moussay	status = "okay";
161*7219d20fSPierre-Henry Moussay};
162*7219d20fSPierre-Henry Moussay
163*7219d20fSPierre-Henry Moussay&syscontroller {
164*7219d20fSPierre-Henry Moussay	status = "okay";
165*7219d20fSPierre-Henry Moussay};
166