Skip to content

Commit 3f41368

Browse files
committed
riscv: dts: microchip: add an initial devicetree for the BeagleV Fire
Add an initial devicetree for the BeagleV Fire. This devicetree differs from that in the BeagleBoard BSP as it has a different memory configuration, however it will boot on the same FPGA images. PCI is disabled for now, as the Linux PCI driver (and the binding) assume which root port instance is in use. This will need to be fixed before PCI can be enabled. Link: https://www.beagleboard.org/boards/beaglev-fire Co-developed-by: Jamie Gibbons <[email protected]> Signed-off-by: Jamie Gibbons <[email protected]> Signed-off-by: Conor Dooley <[email protected]>
1 parent 76ed031 commit 3f41368

File tree

3 files changed

+306
-0
lines changed

3 files changed

+306
-0
lines changed

arch/riscv/boot/dts/microchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-License-Identifier: GPL-2.0
2+
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-beaglev-fire.dtb
23
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-icicle-kit.dtb
34
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-m100pfsevp.dtb
45
dtb-$(CONFIG_ARCH_MICROCHIP_POLARFIRE) += mpfs-polarberry.dtb
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2+
3+
/ {
4+
fabric_clk3: fabric-clk3 {
5+
compatible = "fixed-clock";
6+
#clock-cells = <0>;
7+
clock-frequency = <50000000>;
8+
};
9+
10+
fabric_clk1: fabric-clk1 {
11+
compatible = "fixed-clock";
12+
#clock-cells = <0>;
13+
clock-frequency = <125000000>;
14+
};
15+
16+
fabric-bus@40000000 {
17+
compatible = "simple-bus";
18+
#address-cells = <2>;
19+
#size-cells = <2>;
20+
ranges = <0x0 0x40000000 0x0 0x40000000 0x0 0x20000000>, /* FIC3-FAB */
21+
<0x0 0x60000000 0x0 0x60000000 0x0 0x20000000>, /* FIC0, LO */
22+
<0x0 0xe0000000 0x0 0xe0000000 0x0 0x20000000>, /* FIC1, LO */
23+
<0x20 0x0 0x20 0x0 0x10 0x0>, /* FIC0,HI */
24+
<0x30 0x0 0x30 0x0 0x10 0x0>; /* FIC1,HI */
25+
26+
cape_gpios_p8: gpio@41100000 {
27+
compatible = "microchip,coregpio-rtl-v3";
28+
reg = <0x0 0x41100000 0x0 0x1000>;
29+
clocks = <&fabric_clk3>;
30+
gpio-controller;
31+
#gpio-cells = <2>;
32+
ngpios = <16>;
33+
gpio-line-names = "P8_PIN31", "P8_PIN32", "P8_PIN33", "P8_PIN34",
34+
"P8_PIN35", "P8_PIN36", "P8_PIN37", "P8_PIN38",
35+
"P8_PIN39", "P8_PIN40", "P8_PIN41", "P8_PIN42",
36+
"P8_PIN43", "P8_PIN44", "P8_PIN45", "P8_PIN46";
37+
};
38+
39+
cape_gpios_p9: gpio@41200000 {
40+
compatible = "microchip,coregpio-rtl-v3";
41+
reg = <0x0 0x41200000 0x0 0x1000>;
42+
clocks = <&fabric_clk3>;
43+
gpio-controller;
44+
#gpio-cells = <2>;
45+
ngpios = <20>;
46+
gpio-line-names = "P9_PIN11", "P9_PIN12", "P9_PIN13", "P9_PIN14",
47+
"P9_PIN15", "P9_PIN16", "P9_PIN17", "P9_PIN18",
48+
"P9_PIN21", "P9_PIN22", "P9_PIN23", "P9_PIN24",
49+
"P9_PIN25", "P9_PIN26", "P9_PIN27", "P9_PIN28",
50+
"P9_PIN29", "P9_PIN31", "P9_PIN41", "P9_PIN42";
51+
};
52+
53+
hsi_gpios: gpio@44000000 {
54+
compatible = "microchip,coregpio-rtl-v3";
55+
reg = <0x0 0x44000000 0x0 0x1000>;
56+
clocks = <&fabric_clk3>;
57+
gpio-controller;
58+
#gpio-cells = <2>;
59+
ngpios = <20>;
60+
gpio-line-names = "B0_HSIO70N", "B0_HSIO71N", "B0_HSIO83N",
61+
"B0_HSIO73N_C2P_CLKN", "B0_HSIO70P", "B0_HSIO71P",
62+
"B0_HSIO83P", "B0_HSIO73N_C2P_CLKP", "XCVR1_RX_VALID",
63+
"XCVR1_LOCK", "XCVR1_ERROR", "XCVR2_RX_VALID",
64+
"XCVR2_LOCK", "XCVR2_ERROR", "XCVR3_RX_VALID",
65+
"XCVR3_LOCK", "XCVR3_ERROR", "XCVR_0B_REF_CLK_PLL_LOCK",
66+
"XCVR_0C_REF_CLK_PLL_LOCK", "B0_HSIO81N";
67+
};
68+
};
69+
70+
refclk_ccc: cccrefclk {
71+
compatible = "fixed-clock";
72+
#clock-cells = <0>;
73+
};
74+
};
75+
76+
&ccc_nw {
77+
clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
78+
<&refclk_ccc>, <&refclk_ccc>;
79+
clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
80+
"dll0_ref", "dll1_ref";
81+
status = "okay";
82+
};
Lines changed: 223 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2+
/* Copyright (c) 2020-2021 Microchip Technology Inc */
3+
4+
/dts-v1/;
5+
6+
#include <dt-bindings/gpio/gpio.h>
7+
#include "mpfs.dtsi"
8+
#include "mpfs-beaglev-fire-fabric.dtsi"
9+
10+
/* Clock frequency (in Hz) of MTIMER */
11+
#define MTIMER_FREQ 1000000
12+
13+
/ {
14+
#address-cells = <2>;
15+
#size-cells = <2>;
16+
model = "BeagleBoard BeagleV-Fire";
17+
compatible = "beagle,beaglev-fire", "microchip,mpfs";
18+
19+
aliases {
20+
serial0 = &mmuart0;
21+
serial1 = &mmuart1;
22+
serial2 = &mmuart2;
23+
serial3 = &mmuart3;
24+
serial4 = &mmuart4;
25+
};
26+
27+
chosen {
28+
stdout-path = "serial0:115200n8";
29+
};
30+
31+
cpus {
32+
timebase-frequency = <MTIMER_FREQ>;
33+
};
34+
35+
ddrc_cache_lo: memory@80000000 {
36+
device_type = "memory";
37+
reg = <0x0 0x80000000 0x0 0x40000000>;
38+
status = "okay";
39+
};
40+
41+
reserved-memory {
42+
#address-cells = <2>;
43+
#size-cells = <2>;
44+
ranges;
45+
46+
hss: hss-buffer@103fc00000 {
47+
compatible = "shared-dma-pool";
48+
reg = <0x10 0x3fc00000 0x0 0x400000>;
49+
no-map;
50+
};
51+
};
52+
53+
imx219_clk: camera-clk {
54+
compatible = "fixed-clock";
55+
#clock-cells = <0>;
56+
clock-frequency = <24000000>;
57+
};
58+
59+
imx219_vana: fixedregulator-0 {
60+
compatible = "regulator-fixed";
61+
regulator-name = "imx219_vana";
62+
regulator-min-microvolt = <2800000>;
63+
regulator-max-microvolt = <2800000>;
64+
};
65+
66+
imx219_vdig: fixedregulator-1 {
67+
compatible = "regulator-fixed";
68+
regulator-name = "imx219_vdig";
69+
regulator-min-microvolt = <1800000>;
70+
regulator-max-microvolt = <1800000>;
71+
};
72+
73+
imx219_vddl: fixedregulator-2 {
74+
compatible = "regulator-fixed";
75+
regulator-name = "imx219_vddl";
76+
regulator-min-microvolt = <1200000>;
77+
regulator-max-microvolt = <1200000>;
78+
};
79+
80+
};
81+
82+
&gpio2 {
83+
interrupts = <53>, <53>, <53>, <53>,
84+
<53>, <53>, <53>, <53>,
85+
<53>, <53>, <53>, <53>,
86+
<53>, <53>, <53>, <53>,
87+
<53>, <53>, <53>, <53>,
88+
<53>, <53>, <53>, <53>,
89+
<53>, <53>, <53>, <53>,
90+
<53>, <53>, <53>, <53>;
91+
ngpios=<32>;
92+
gpio-line-names = "P8_PIN3_USER_LED_0", "P8_PIN4_USER_LED_1", "P8_PIN5_USER_LED_2",
93+
"P8_PIN6_USER_LED_3", "P8_PIN7_USER_LED_4", "P8_PIN8_USER_LED_5",
94+
"P8_PIN9_USER_LED_6", "P8_PIN10_USER_LED_7", "P8_PIN11_USER_LED_8",
95+
"P8_PIN12_USER_LED_9", "P8_PIN13_USER_LED_10", "P8_PIN14_USER_LED_11",
96+
"P8_PIN15", "P8_PIN16", "P8_PIN17", "P8_PIN18", "P8_PIN19", "P8_PIN20",
97+
"P8_PIN21", "P8_PIN22", "P8_PIN23", "P8_PIN24", "P8_PIN25", "P8_PIN26",
98+
"P8_PIN27", "P8_PIN28", "P8_PIN29", "P8_PIN30", "M2_W_DISABLE1",
99+
"M2_W_DISABLE2", "VIO_ENABLE", "SD_DET";
100+
status = "okay";
101+
102+
vio-enable-hog {
103+
gpio-hog;
104+
gpios = <30 30>;
105+
output-high;
106+
line-name = "VIO_ENABLE";
107+
};
108+
109+
sd-det-hog {
110+
gpio-hog;
111+
gpios = <31 31>;
112+
input;
113+
line-name = "SD_DET";
114+
};
115+
};
116+
117+
&i2c0 {
118+
status = "okay";
119+
};
120+
121+
&i2c1 {
122+
status = "okay";
123+
124+
eeprom: eeprom@50 {
125+
compatible = "atmel,24c32";
126+
reg = <0x50>;
127+
};
128+
129+
imx219: sensor@10 {
130+
compatible = "sony,imx219";
131+
reg = <0x10>;
132+
clocks = <&imx219_clk>;
133+
VANA-supply = <&imx219_vana>; /* 2.8v */
134+
VDIG-supply = <&imx219_vdig>; /* 1.8v */
135+
VDDL-supply = <&imx219_vddl>; /* 1.2v */
136+
137+
port {
138+
imx219_0: endpoint {
139+
data-lanes = <1 2>;
140+
clock-noncontinuous;
141+
link-frequencies = /bits/ 64 <456000000>;
142+
};
143+
};
144+
};
145+
};
146+
147+
&mac0 {
148+
status = "okay";
149+
phy-mode = "sgmii";
150+
phy-handle = <&phy0>;
151+
phy0: ethernet-phy@0 {
152+
reg = <0>;
153+
};
154+
};
155+
156+
&mbox {
157+
status = "okay";
158+
};
159+
160+
&mmc {
161+
bus-width = <4>;
162+
disable-wp;
163+
cap-sd-highspeed;
164+
cap-mmc-highspeed;
165+
mmc-ddr-1_8v;
166+
mmc-hs200-1_8v;
167+
sd-uhs-sdr12;
168+
sd-uhs-sdr25;
169+
sd-uhs-sdr50;
170+
sd-uhs-sdr104;
171+
status = "okay";
172+
};
173+
174+
&mmuart0 {
175+
status = "okay";
176+
};
177+
178+
&mmuart1 {
179+
status = "okay";
180+
};
181+
182+
&refclk {
183+
clock-frequency = <125000000>;
184+
};
185+
186+
&refclk_ccc {
187+
clock-frequency = <50000000>;
188+
};
189+
190+
&rtc {
191+
status = "okay";
192+
};
193+
194+
&spi0 {
195+
status = "okay";
196+
};
197+
198+
&spi1 {
199+
status = "okay";
200+
};
201+
202+
&syscontroller {
203+
microchip,bitstream-flash = <&sys_ctrl_flash>;
204+
status = "okay";
205+
};
206+
207+
&syscontroller_qspi {
208+
status = "okay";
209+
210+
sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
211+
compatible = "jedec,spi-nor";
212+
#address-cells = <1>;
213+
#size-cells = <1>;
214+
spi-max-frequency = <20000000>;
215+
spi-rx-bus-width = <1>;
216+
reg = <0>;
217+
};
218+
};
219+
220+
&usb {
221+
status = "okay";
222+
dr_mode = "otg";
223+
};

0 commit comments

Comments
 (0)