Skip to content

Commit 123f427

Browse files
committed
riscv: dts: microchip: add pinctrl nodes for mpfs/icicle kit
Add pinctrl nodes to PolarFire to demonstrate their use, matching the default configuration set by the HSS firmware for the Icicle kit's reference design, as a demonstration of use. Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
1 parent 6de23f8 commit 123f427

4 files changed

Lines changed: 246 additions & 1 deletion

File tree

arch/riscv/boot/dts/microchip/mpfs-icicle-kit-common.dtsi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
/dts-v1/;
55

6-
#include "mpfs.dtsi"
76
#include "mpfs-icicle-kit-fabric.dtsi"
87
#include <dt-bindings/gpio/gpio.h>
98
#include <dt-bindings/leds/common.h>

arch/riscv/boot/dts/microchip/mpfs-icicle-kit-fabric.dtsi

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
22
/* Copyright (c) 2020-2021 Microchip Technology Inc */
33

4+
#include "mpfs.dtsi"
5+
#include "mpfs-pinctrl.dtsi"
6+
47
/ {
58
core_pwm0: pwm@40000000 {
69
compatible = "microchip,corepwm-rtl-v4";
@@ -80,10 +83,70 @@
8083
};
8184
};
8285

86+
&can0 {
87+
pinctrl-names = "default";
88+
pinctrl-0 = <&can0_fabric>;
89+
};
90+
91+
&can1 {
92+
pinctrl-names = "default";
93+
pinctrl-0 = <&ikrd_can1_cfg>;
94+
};
95+
8396
&ccc_nw {
8497
clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
8598
<&refclk_ccc>, <&refclk_ccc>;
8699
clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
87100
"dll0_ref", "dll1_ref";
88101
status = "okay";
89102
};
103+
104+
&i2c0 {
105+
pinctrl-names = "default";
106+
pinctrl-0 = <&i2c0_fabric>;
107+
};
108+
109+
&i2c1 {
110+
pinctrl-names = "default";
111+
pinctrl-0 = <&i2c1_mssio>;
112+
};
113+
114+
&mmuart1 {
115+
pinctrl-names = "default";
116+
pinctrl-0 = <&uart1_fabric>;
117+
};
118+
119+
&mmuart2 {
120+
pinctrl-names = "default";
121+
pinctrl-0 = <&uart2_fabric>;
122+
};
123+
124+
&mmuart3 {
125+
pinctrl-names = "default";
126+
pinctrl-0 = <&uart3_fabric>;
127+
};
128+
129+
&mmuart4 {
130+
pinctrl-names = "default";
131+
pinctrl-0 = <&uart4_fabric>;
132+
};
133+
134+
&mssio {
135+
pinctrl-names = "default";
136+
pinctrl-0 = <&spi1_mssio>, <&can1_mssio>, <&mdio0_mssio>, <&mdio1_mssio>;
137+
};
138+
139+
&qspi {
140+
pinctrl-names = "default";
141+
pinctrl-0 = <&qspi_fabric>;
142+
};
143+
144+
&spi0 {
145+
pinctrl-names = "default";
146+
pinctrl-0 = <&spi0_fabric>;
147+
};
148+
149+
&spi1 {
150+
pinctrl-names = "default";
151+
pinctrl-0 = <&ikrd_spi1_cfg>;
152+
};
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2+
3+
&iomux0 {
4+
spi0_fabric: mux-spi0-fabric {
5+
function = "spi0";
6+
groups = "spi0_fabric";
7+
};
8+
9+
spi0_mssio: mux-spi0-mssio {
10+
function = "spi0";
11+
groups = "spi0_mssio";
12+
};
13+
14+
spi1_fabric: mux-spi1-fabric {
15+
function = "spi1";
16+
groups = "spi1_fabric";
17+
};
18+
19+
spi1_mssio: mux-spi1-mssio {
20+
function = "spi1";
21+
groups = "spi1_mssio";
22+
};
23+
24+
i2c0_fabric: mux-i2c0-fabric {
25+
function = "i2c0";
26+
groups = "i2c0_fabric";
27+
};
28+
29+
i2c0_mssio: mux-i2c0-mssio {
30+
function = "i2c0";
31+
groups = "i2c0_mssio";
32+
};
33+
34+
i2c1_fabric: mux-i2c1-fabric {
35+
function = "i2c1";
36+
groups = "i2c1_fabric";
37+
};
38+
39+
i2c1_mssio: mux-i2c1-mssio {
40+
function = "i2c1";
41+
groups = "i2c1_mssio";
42+
};
43+
44+
can0_fabric: mux-can0-fabric {
45+
function = "can0";
46+
groups = "can0_fabric";
47+
};
48+
49+
can0_mssio: mux-can0-mssio {
50+
function = "can0";
51+
groups = "can0_mssio";
52+
};
53+
54+
can1_fabric: mux-can1-fabric {
55+
function = "can1";
56+
groups = "can1_fabric";
57+
};
58+
59+
can1_mssio: mux-can1-mssio {
60+
function = "can1";
61+
groups = "can1_mssio";
62+
};
63+
64+
qspi_fabric: mux-qspi-fabric {
65+
function = "qspi";
66+
groups = "qspi_fabric";
67+
};
68+
69+
qspi_mssio: mux-qspi-mssio {
70+
function = "qspi";
71+
groups = "qspi_mssio";
72+
};
73+
74+
uart0_fabric: mux-uart0-fabric {
75+
function = "uart0";
76+
groups = "uart0_fabric";
77+
};
78+
79+
uart0_mssio: mux-uart0-mssio {
80+
function = "uart0";
81+
groups = "uart0_mssio";
82+
};
83+
84+
uart1_fabric: mux-uart1-fabric {
85+
function = "uart1";
86+
groups = "uart1_fabric";
87+
};
88+
89+
uart1_mssio: mux-uart1-mssio {
90+
function = "uart1";
91+
groups = "uart1_mssio";
92+
};
93+
94+
uart2_fabric: mux-uart2-fabric {
95+
function = "uart2";
96+
groups = "uart2_fabric";
97+
};
98+
99+
uart2_mssio: mux-uart2-mssio {
100+
function = "uart2";
101+
groups = "uart2_mssio";
102+
};
103+
104+
uart3_fabric: mux-uart3-fabric {
105+
function = "uart3";
106+
groups = "uart3_fabric";
107+
};
108+
109+
uart3_mssio: mux-uart3-mssio {
110+
function = "uart3";
111+
groups = "uart3_mssio";
112+
};
113+
114+
uart4_fabric: mux-uart4-fabric {
115+
function = "uart4";
116+
groups = "uart4_fabric";
117+
};
118+
119+
uart4_mssio: mux-uart4-mssio {
120+
function = "uart4";
121+
groups = "uart4_mssio";
122+
};
123+
124+
mdio0_fabric: mux-mdio0-fabric {
125+
function = "mdio0";
126+
groups = "mdio0_fabric";
127+
};
128+
129+
mdio0_mssio: mux-mdio0-mssio {
130+
function = "mdio0";
131+
groups = "mdio0_mssio";
132+
};
133+
134+
mdio1_fabric: mux-mdio1-fabric {
135+
function = "mdio1";
136+
groups = "mdio1_fabric";
137+
};
138+
139+
mdio1_mssio: mux-mdio1-mssio {
140+
function = "mdio1";
141+
groups = "mdio1_mssio";
142+
};
143+
};
144+
145+
&mssio {
146+
ikrd_can1_cfg: ikrd-can1-cfg {
147+
can1-pins {
148+
pins = <34>, <35>, <36>;
149+
function = "can";
150+
bias-pull-up;
151+
drive-strength = <8>;
152+
power-source = <3300000>;
153+
microchip,ibufmd = <0x1>;
154+
};
155+
};
156+
157+
ikrd_spi1_cfg: ikrd-spi1-cfg {
158+
spi1-pins {
159+
pins = <30>, <31>, <32>, <33>;
160+
function = "spi";
161+
bias-pull-up;
162+
drive-strength = <8>;
163+
power-source = <3300000>;
164+
microchip,ibufmd = <0x1>;
165+
};
166+
};
167+
};

arch/riscv/boot/dts/microchip/mpfs.dtsi

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,23 @@
254254
mss_top_sysreg: syscon@20002000 {
255255
compatible = "microchip,mpfs-mss-top-sysreg", "syscon", "simple-mfd";
256256
reg = <0x0 0x20002000 0x0 0x1000>;
257+
#address-cells = <1>;
258+
#size-cells = <1>;
257259
#reset-cells = <1>;
260+
261+
iomux0: pinctrl@200 {
262+
compatible = "microchip,mpfs-pinctrl-iomux0";
263+
reg = <0x200 0x4>;
264+
pinctrl-use-default;
265+
266+
};
267+
268+
mssio: pinctrl@204 {
269+
compatible = "microchip,mpfs-pinctrl-mssio";
270+
reg = <0x204 0x7c>;
271+
/* on icicle ref design at least */
272+
pinctrl-use-default;
273+
};
258274
};
259275

260276
sysreg_scb: syscon@20003000 {

0 commit comments

Comments
 (0)