Skip to content

Commit 7219d20

Browse files
Pierre-Henry MoussayConchuOD
authored andcommitted
riscv: dts: microchip: add pic64gx and its curiosity kit
The Curiosity-GX10000 (PIC64GX SoC Curiosity Kit) is a compact SoC prototyping board featuring a Microchip PIC64GX SoC PIC64GC-1000. Features include: - 1 GB DDR4 SDRAM - Gigabit Ethernet - microSD-card slot note: due to issue on some board, the SDHCI is limited to HS (High speed mode, with a clock of 50MHz and 3.3V signals). Signed-off-by: Pierre-Henry Moussay <pierre-henry.moussay@microchip.com> Co-developed-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
1 parent 63ddacd commit 7219d20

4 files changed

Lines changed: 973 additions & 0 deletions

File tree

arch/riscv/boot/dts/microchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-m100pfsevp.dtb
77
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-polarberry.dtb
88
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-sev-kit.dtb
99
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-tysom-m.dtb
10+
dtb-$(CONFIG_ARCH_MICROCHIP) += pic64gx-curiosity-kit.dtb
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Device Tree Source for the PIC64GX Curiosity Kit
4+
*
5+
* Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries
6+
*
7+
* Author: Pierre-Henry Moussay <pierre-henry.moussay@microchip.com>
8+
*
9+
* The Curiosity-GX10000 (PIC64GX SoC Curiosity Kit) is a compact SoC
10+
* prototyping board featuring a Microchip PIC64GX SoC
11+
* PIC64GX-1000. Features include:
12+
* - 1 GB DDR4 SDRAM
13+
* - Gigabit Ethernet
14+
* - microSD-card slot
15+
*
16+
* https://www.microchip.com/en-us/development-tool/curiosity-pic64gx1000-kit-es
17+
*/
18+
19+
/dts-v1/;
20+
21+
#include "pic64gx.dtsi"
22+
#include "pic64gx-pinctrl.dtsi"
23+
24+
/* Clock frequency (in Hz) of the rtcclk */
25+
#define RTCCLK_FREQ 1000000
26+
27+
/ {
28+
#address-cells = <2>;
29+
#size-cells = <2>;
30+
model = "Microchip PIC64GX Curiosity Kit";
31+
compatible = "microchip,pic64gx-curiosity-kit", "microchip,pic64gx";
32+
33+
aliases {
34+
ethernet0 = &mac0;
35+
serial1 = &mmuart1;
36+
serial2 = &mmuart2;
37+
};
38+
39+
chosen {
40+
stdout-path = "serial1:115200n8";
41+
};
42+
43+
cpus {
44+
timebase-frequency = <RTCCLK_FREQ>;
45+
};
46+
47+
memory@80000000 {
48+
device_type = "memory";
49+
reg = <0x0 0x80000000 0x0 0x40000000>;
50+
};
51+
52+
reserved-memory {
53+
#address-cells = <2>;
54+
#size-cells = <2>;
55+
ranges;
56+
57+
hss: hss-buffer@bfc00000 {
58+
compatible = "shared-dma-pool";
59+
reg = <0x0 0xbfc00000 0x0 0x400000>;
60+
no-map;
61+
};
62+
};
63+
};
64+
65+
&gpio0 {
66+
interrupts = <13>, <14>, <15>, <16>,
67+
<17>, <18>, <19>, <20>,
68+
<21>, <22>, <23>, <24>,
69+
<25>, <26>;
70+
status ="okay";
71+
gpio-line-names =
72+
"", "", "", "", "", "", "", "",
73+
"", "", "", "", "MIPI_CAM_RESET", "MIPI_CAM_STANDBY";
74+
};
75+
76+
&gpio1 {
77+
interrupts = <27>, <28>, <29>, <30>,
78+
<31>, <32>, <33>, <34>,
79+
<35>, <36>, <37>, <38>,
80+
<39>, <40>, <41>, <42>,
81+
<43>, <44>, <45>, <46>,
82+
<47>, <48>, <49>, <50>;
83+
status ="okay";
84+
gpio-line-names =
85+
"", "", "LED1", "LED2", "LED3", "LED4", "LED5", "LED6",
86+
"LED7", "LED8", "", "", "", "", "", "",
87+
"", "", "", "", "HDMI_HPD", "", "", "GPIO_1_23";
88+
};
89+
90+
&gpio2 {
91+
interrupts = <53>, <53>, <53>, <53>,
92+
<53>, <53>, <53>, <53>,
93+
<53>, <53>, <53>, <53>,
94+
<53>, <53>, <53>, <53>,
95+
<53>, <53>, <53>, <53>,
96+
<53>, <53>, <53>, <53>,
97+
<53>, <53>, <53>, <53>,
98+
<53>, <53>, <53>, <53>;
99+
pinctrl-names = "default";
100+
pinctrl-0 = <&mdio1_gpio>, <&spi0_gpio>, <&can0_gpio>, <&pcie_gpio>,
101+
<&qspi_gpio>, <&uart3_gpio>, <&uart4_gpio>, <&can1_gpio>;
102+
status ="okay";
103+
gpio-line-names =
104+
"", "", "", "", "", "", "SWITCH2", "USR_IO12",
105+
"DIP1", "DIP2", "", "DIP3", "USR_IO1", "USR_IO2", "USR_IO7", "USR_IO8",
106+
"USR_IO3", "USR_IO4", "USR_IO5", "USR_IO6", "", "", "USR_IO9", "USR_IO10",
107+
"DIP4", "USR_IO11", "", "", "SWITCH1", "", "", "";
108+
};
109+
110+
&mac0 {
111+
status = "okay";
112+
phy-mode = "sgmii";
113+
phy-handle = <&phy0>;
114+
pinctrl-names = "default";
115+
pinctrl-0 = <&mdio0_default>;
116+
117+
phy0: ethernet-phy@b {
118+
reg = <0xb>;
119+
};
120+
};
121+
122+
&mbox {
123+
status = "okay";
124+
};
125+
126+
&i2c0 {
127+
status = "okay";
128+
};
129+
130+
&i2c1 {
131+
status = "okay";
132+
};
133+
134+
&mmc {
135+
bus-width = <4>;
136+
disable-wp;
137+
cap-sd-highspeed;
138+
cap-mmc-highspeed;
139+
sdhci-caps-mask = <0x00000007 0x00000000>;
140+
status = "okay";
141+
};
142+
143+
&mmuart1 {
144+
pinctrl-names = "default";
145+
pinctrl-0 = <&uart1_fio>;
146+
status = "okay";
147+
};
148+
149+
&mmuart2 {
150+
pinctrl-names = "default";
151+
pinctrl-0 = <&uart2_default>;
152+
status = "okay";
153+
};
154+
155+
&refclk {
156+
clock-frequency = <125000000>;
157+
};
158+
159+
&rtc {
160+
status = "okay";
161+
};
162+
163+
&syscontroller {
164+
status = "okay";
165+
};
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2+
3+
&iomux0 {
4+
spi0_fio: mux-spi0-fabric {
5+
function = "spi0";
6+
groups = "spi0_fabric";
7+
};
8+
9+
spi1_mssio: mux-spi1-mssio {
10+
function = "spi1";
11+
groups = "spi1_mssio";
12+
};
13+
14+
i2c0_mssio: mux-i2c0-mssio {
15+
function = "i2c0";
16+
groups = "i2c0_mssio";
17+
};
18+
19+
i2c1_mssio: mux-i2c1-mssio {
20+
function = "i2c1";
21+
groups = "i2c1_mssio";
22+
};
23+
24+
can0_fio: mux-can0-fabric {
25+
function = "can0";
26+
groups = "can0_fabric";
27+
};
28+
29+
can1_fio: mux-can1-fabric {
30+
function = "can1";
31+
groups = "can1_fabric";
32+
};
33+
34+
qspi_fio: mux-qspi-fabric {
35+
function = "qspi";
36+
groups = "qspi_fabric";
37+
};
38+
39+
uart0_mssio: mux-uart0-mssio {
40+
function = "uart0";
41+
groups = "uart0_mssio";
42+
};
43+
44+
uart1_fio: mux-uart1-fabric {
45+
function = "uart1";
46+
groups = "uart1_fabric";
47+
};
48+
49+
uart2_fio: mux-uart2-fabric {
50+
function = "uart2";
51+
groups = "uart2_fabric";
52+
};
53+
54+
uart3_fio: mux-uart3-fabric {
55+
function = "uart3";
56+
groups = "uart3_fabric";
57+
};
58+
59+
uart4_fio: mux-uart4-fabric {
60+
function = "uart4";
61+
groups = "uart4_fabric";
62+
};
63+
64+
mdio0_fio: mux-mdio0-fabric {
65+
function = "mdio0";
66+
groups = "mdio0_fabric";
67+
};
68+
69+
mdio1_fio: mux-mdio1-fabric {
70+
function = "mdio1";
71+
groups = "mdio1_fabric";
72+
};
73+
};
74+
75+
&gpio2_pinctrl {
76+
//TODO rethink the labels, since a bunch of these are not defaults or
77+
//just outright remove the non-default groups
78+
mdio0_default: mux-mac0 {
79+
function = "mdio0";
80+
groups = "mdio0";
81+
};
82+
83+
mdio0_gpio: mux-mac0-gpio2 {
84+
function = "gpio";
85+
groups = "gpio_mdio0";
86+
};
87+
88+
mdio1_default: mux-mac1 {
89+
function = "mdio1";
90+
groups = "mdio1";
91+
};
92+
93+
mdio1_gpio: mux-mac1-gpio2 {
94+
function = "gpio";
95+
groups = "gpio_mdio1";
96+
};
97+
98+
spi0_default: mux-spi0 {
99+
function = "spi0";
100+
groups = "spi0";
101+
};
102+
103+
spi0_gpio: mux-spi0-gpio2 {
104+
function = "gpio";
105+
groups = "gpio_spi0";
106+
};
107+
108+
can0_default: mux-can0 {
109+
function = "can0";
110+
groups = "can0";
111+
};
112+
113+
can0_gpio: mux-can0-gpio2 {
114+
function = "gpio";
115+
groups = "gpio_can0";
116+
};
117+
118+
pcie_default: mux-pcie {
119+
function = "pcie";
120+
groups = "pcie";
121+
};
122+
123+
pcie_gpio: mux-pcie-gpio2 {
124+
function = "gpio";
125+
groups = "gpio_pcie";
126+
};
127+
128+
qspi_default: mux-qspi {
129+
function = "qspi";
130+
groups = "qspi";
131+
};
132+
133+
qspi_gpio: mux-qspi-gpio2 {
134+
function = "gpio";
135+
groups = "gpio_qspi";
136+
};
137+
138+
uart3_default: mux-uart3 {
139+
function = "uart3";
140+
groups = "uart3";
141+
};
142+
143+
uart3_gpio: mux-uart3-gpio2 {
144+
function = "gpio";
145+
groups = "gpio_uart3";
146+
};
147+
148+
uart4_default: mux-uart4 {
149+
function = "uart4";
150+
groups = "uart4";
151+
};
152+
153+
uart4_gpio: mux-uart4-gpio2 {
154+
function = "gpio";
155+
groups = "gpio_uart4";
156+
};
157+
158+
can1_default: mux-can1 {
159+
function = "can1";
160+
groups = "can1";
161+
};
162+
163+
can1_gpio: mux-can1-gpio2 {
164+
function = "gpio";
165+
groups = "gpio_can1";
166+
};
167+
168+
uart2_default: mux-uart2 {
169+
function = "uart2";
170+
groups = "uart2";
171+
};
172+
173+
uart2_gpio: mux-uart2-gpio2 {
174+
function = "gpio";
175+
groups = "gpio_uart2";
176+
};
177+
};

0 commit comments

Comments
 (0)