xref: /freebsd-src/sys/contrib/device-tree/src/riscv/microchip/mpfs-beaglev-fire.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2*0e8011faSEmmanuel Vadot/* Copyright (c) 2020-2021 Microchip Technology Inc */
3*0e8011faSEmmanuel Vadot
4*0e8011faSEmmanuel Vadot/dts-v1/;
5*0e8011faSEmmanuel Vadot
6*0e8011faSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
7*0e8011faSEmmanuel Vadot#include "mpfs.dtsi"
8*0e8011faSEmmanuel Vadot#include "mpfs-beaglev-fire-fabric.dtsi"
9*0e8011faSEmmanuel Vadot
10*0e8011faSEmmanuel Vadot/* Clock frequency (in Hz) of MTIMER */
11*0e8011faSEmmanuel Vadot#define MTIMER_FREQ		1000000
12*0e8011faSEmmanuel Vadot
13*0e8011faSEmmanuel Vadot/ {
14*0e8011faSEmmanuel Vadot	#address-cells = <2>;
15*0e8011faSEmmanuel Vadot	#size-cells = <2>;
16*0e8011faSEmmanuel Vadot	model = "BeagleBoard BeagleV-Fire";
17*0e8011faSEmmanuel Vadot	compatible = "beagle,beaglev-fire", "microchip,mpfs";
18*0e8011faSEmmanuel Vadot
19*0e8011faSEmmanuel Vadot	aliases {
20*0e8011faSEmmanuel Vadot		serial0 = &mmuart0;
21*0e8011faSEmmanuel Vadot		serial1 = &mmuart1;
22*0e8011faSEmmanuel Vadot		serial2 = &mmuart2;
23*0e8011faSEmmanuel Vadot		serial3 = &mmuart3;
24*0e8011faSEmmanuel Vadot		serial4 = &mmuart4;
25*0e8011faSEmmanuel Vadot	};
26*0e8011faSEmmanuel Vadot
27*0e8011faSEmmanuel Vadot	chosen {
28*0e8011faSEmmanuel Vadot		stdout-path = "serial0:115200n8";
29*0e8011faSEmmanuel Vadot	};
30*0e8011faSEmmanuel Vadot
31*0e8011faSEmmanuel Vadot	cpus {
32*0e8011faSEmmanuel Vadot		timebase-frequency = <MTIMER_FREQ>;
33*0e8011faSEmmanuel Vadot	};
34*0e8011faSEmmanuel Vadot
35*0e8011faSEmmanuel Vadot	ddrc_cache_lo: memory@80000000 {
36*0e8011faSEmmanuel Vadot		device_type = "memory";
37*0e8011faSEmmanuel Vadot		reg = <0x0 0x80000000 0x0 0x40000000>;
38*0e8011faSEmmanuel Vadot		status = "okay";
39*0e8011faSEmmanuel Vadot	};
40*0e8011faSEmmanuel Vadot
41*0e8011faSEmmanuel Vadot	reserved-memory {
42*0e8011faSEmmanuel Vadot		#address-cells = <2>;
43*0e8011faSEmmanuel Vadot		#size-cells = <2>;
44*0e8011faSEmmanuel Vadot		ranges;
45*0e8011faSEmmanuel Vadot
46*0e8011faSEmmanuel Vadot		hss: hss-buffer@103fc00000 {
47*0e8011faSEmmanuel Vadot			compatible = "shared-dma-pool";
48*0e8011faSEmmanuel Vadot			reg = <0x10 0x3fc00000 0x0 0x400000>;
49*0e8011faSEmmanuel Vadot			no-map;
50*0e8011faSEmmanuel Vadot		};
51*0e8011faSEmmanuel Vadot	};
52*0e8011faSEmmanuel Vadot
53*0e8011faSEmmanuel Vadot	imx219_clk: camera-clk {
54*0e8011faSEmmanuel Vadot		compatible = "fixed-clock";
55*0e8011faSEmmanuel Vadot		#clock-cells = <0>;
56*0e8011faSEmmanuel Vadot		clock-frequency = <24000000>;
57*0e8011faSEmmanuel Vadot	};
58*0e8011faSEmmanuel Vadot
59*0e8011faSEmmanuel Vadot	imx219_vana: fixedregulator-0 {
60*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
61*0e8011faSEmmanuel Vadot		regulator-name = "imx219_vana";
62*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <2800000>;
63*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <2800000>;
64*0e8011faSEmmanuel Vadot	};
65*0e8011faSEmmanuel Vadot
66*0e8011faSEmmanuel Vadot	imx219_vdig: fixedregulator-1 {
67*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
68*0e8011faSEmmanuel Vadot		regulator-name = "imx219_vdig";
69*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
70*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
71*0e8011faSEmmanuel Vadot	};
72*0e8011faSEmmanuel Vadot
73*0e8011faSEmmanuel Vadot	imx219_vddl: fixedregulator-2 {
74*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
75*0e8011faSEmmanuel Vadot		regulator-name = "imx219_vddl";
76*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <1200000>;
77*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <1200000>;
78*0e8011faSEmmanuel Vadot	};
79*0e8011faSEmmanuel Vadot
80*0e8011faSEmmanuel Vadot};
81*0e8011faSEmmanuel Vadot
82*0e8011faSEmmanuel Vadot&gpio2 {
83*0e8011faSEmmanuel Vadot	interrupts = <53>, <53>, <53>, <53>,
84*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>,
85*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>,
86*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>,
87*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>,
88*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>,
89*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>,
90*0e8011faSEmmanuel Vadot		     <53>, <53>, <53>, <53>;
91*0e8011faSEmmanuel Vadot	ngpios=<32>;
92*0e8011faSEmmanuel Vadot	gpio-line-names = "P8_PIN3_USER_LED_0", "P8_PIN4_USER_LED_1", "P8_PIN5_USER_LED_2",
93*0e8011faSEmmanuel Vadot			  "P8_PIN6_USER_LED_3", "P8_PIN7_USER_LED_4", "P8_PIN8_USER_LED_5",
94*0e8011faSEmmanuel Vadot			  "P8_PIN9_USER_LED_6", "P8_PIN10_USER_LED_7", "P8_PIN11_USER_LED_8",
95*0e8011faSEmmanuel Vadot			  "P8_PIN12_USER_LED_9", "P8_PIN13_USER_LED_10", "P8_PIN14_USER_LED_11",
96*0e8011faSEmmanuel Vadot			  "P8_PIN15", "P8_PIN16", "P8_PIN17", "P8_PIN18", "P8_PIN19", "P8_PIN20",
97*0e8011faSEmmanuel Vadot			  "P8_PIN21", "P8_PIN22", "P8_PIN23", "P8_PIN24", "P8_PIN25", "P8_PIN26",
98*0e8011faSEmmanuel Vadot			  "P8_PIN27", "P8_PIN28", "P8_PIN29", "P8_PIN30", "M2_W_DISABLE1",
99*0e8011faSEmmanuel Vadot			  "M2_W_DISABLE2", "VIO_ENABLE", "SD_DET";
100*0e8011faSEmmanuel Vadot	status = "okay";
101*0e8011faSEmmanuel Vadot
102*0e8011faSEmmanuel Vadot	vio-enable-hog {
103*0e8011faSEmmanuel Vadot		gpio-hog;
104*0e8011faSEmmanuel Vadot		gpios = <30 30>;
105*0e8011faSEmmanuel Vadot		output-high;
106*0e8011faSEmmanuel Vadot		line-name = "VIO_ENABLE";
107*0e8011faSEmmanuel Vadot	};
108*0e8011faSEmmanuel Vadot
109*0e8011faSEmmanuel Vadot	sd-det-hog {
110*0e8011faSEmmanuel Vadot		gpio-hog;
111*0e8011faSEmmanuel Vadot		gpios = <31 31>;
112*0e8011faSEmmanuel Vadot		input;
113*0e8011faSEmmanuel Vadot		line-name = "SD_DET";
114*0e8011faSEmmanuel Vadot	};
115*0e8011faSEmmanuel Vadot};
116*0e8011faSEmmanuel Vadot
117*0e8011faSEmmanuel Vadot&i2c0 {
118*0e8011faSEmmanuel Vadot	status = "okay";
119*0e8011faSEmmanuel Vadot};
120*0e8011faSEmmanuel Vadot
121*0e8011faSEmmanuel Vadot&i2c1 {
122*0e8011faSEmmanuel Vadot	status = "okay";
123*0e8011faSEmmanuel Vadot
124*0e8011faSEmmanuel Vadot	eeprom: eeprom@50 {
125*0e8011faSEmmanuel Vadot		compatible = "atmel,24c32";
126*0e8011faSEmmanuel Vadot		reg = <0x50>;
127*0e8011faSEmmanuel Vadot	};
128*0e8011faSEmmanuel Vadot
129*0e8011faSEmmanuel Vadot	imx219: sensor@10 {
130*0e8011faSEmmanuel Vadot		compatible = "sony,imx219";
131*0e8011faSEmmanuel Vadot		reg = <0x10>;
132*0e8011faSEmmanuel Vadot		clocks = <&imx219_clk>;
133*0e8011faSEmmanuel Vadot		VANA-supply = <&imx219_vana>;   /* 2.8v */
134*0e8011faSEmmanuel Vadot		VDIG-supply = <&imx219_vdig>;   /* 1.8v */
135*0e8011faSEmmanuel Vadot		VDDL-supply = <&imx219_vddl>;   /* 1.2v */
136*0e8011faSEmmanuel Vadot
137*0e8011faSEmmanuel Vadot		port {
138*0e8011faSEmmanuel Vadot			imx219_0: endpoint {
139*0e8011faSEmmanuel Vadot				data-lanes = <1 2>;
140*0e8011faSEmmanuel Vadot				clock-noncontinuous;
141*0e8011faSEmmanuel Vadot				link-frequencies = /bits/ 64 <456000000>;
142*0e8011faSEmmanuel Vadot			};
143*0e8011faSEmmanuel Vadot		};
144*0e8011faSEmmanuel Vadot	};
145*0e8011faSEmmanuel Vadot};
146*0e8011faSEmmanuel Vadot
147*0e8011faSEmmanuel Vadot&mac0 {
148*0e8011faSEmmanuel Vadot	status = "okay";
149*0e8011faSEmmanuel Vadot	phy-mode = "sgmii";
150*0e8011faSEmmanuel Vadot	phy-handle = <&phy0>;
151*0e8011faSEmmanuel Vadot	phy0: ethernet-phy@0 {
152*0e8011faSEmmanuel Vadot		reg = <0>;
153*0e8011faSEmmanuel Vadot	};
154*0e8011faSEmmanuel Vadot};
155*0e8011faSEmmanuel Vadot
156*0e8011faSEmmanuel Vadot&mbox {
157*0e8011faSEmmanuel Vadot	status = "okay";
158*0e8011faSEmmanuel Vadot};
159*0e8011faSEmmanuel Vadot
160*0e8011faSEmmanuel Vadot&mmc {
161*0e8011faSEmmanuel Vadot	bus-width = <4>;
162*0e8011faSEmmanuel Vadot	disable-wp;
163*0e8011faSEmmanuel Vadot	cap-sd-highspeed;
164*0e8011faSEmmanuel Vadot	cap-mmc-highspeed;
165*0e8011faSEmmanuel Vadot	mmc-ddr-1_8v;
166*0e8011faSEmmanuel Vadot	mmc-hs200-1_8v;
167*0e8011faSEmmanuel Vadot	sd-uhs-sdr12;
168*0e8011faSEmmanuel Vadot	sd-uhs-sdr25;
169*0e8011faSEmmanuel Vadot	sd-uhs-sdr50;
170*0e8011faSEmmanuel Vadot	sd-uhs-sdr104;
171*0e8011faSEmmanuel Vadot	status = "okay";
172*0e8011faSEmmanuel Vadot};
173*0e8011faSEmmanuel Vadot
174*0e8011faSEmmanuel Vadot&mmuart0 {
175*0e8011faSEmmanuel Vadot	status = "okay";
176*0e8011faSEmmanuel Vadot};
177*0e8011faSEmmanuel Vadot
178*0e8011faSEmmanuel Vadot&mmuart1 {
179*0e8011faSEmmanuel Vadot	status = "okay";
180*0e8011faSEmmanuel Vadot};
181*0e8011faSEmmanuel Vadot
182*0e8011faSEmmanuel Vadot&refclk {
183*0e8011faSEmmanuel Vadot	clock-frequency = <125000000>;
184*0e8011faSEmmanuel Vadot};
185*0e8011faSEmmanuel Vadot
186*0e8011faSEmmanuel Vadot&refclk_ccc {
187*0e8011faSEmmanuel Vadot	clock-frequency = <50000000>;
188*0e8011faSEmmanuel Vadot};
189*0e8011faSEmmanuel Vadot
190*0e8011faSEmmanuel Vadot&rtc {
191*0e8011faSEmmanuel Vadot	status = "okay";
192*0e8011faSEmmanuel Vadot};
193*0e8011faSEmmanuel Vadot
194*0e8011faSEmmanuel Vadot&spi0 {
195*0e8011faSEmmanuel Vadot	status = "okay";
196*0e8011faSEmmanuel Vadot};
197*0e8011faSEmmanuel Vadot
198*0e8011faSEmmanuel Vadot&spi1 {
199*0e8011faSEmmanuel Vadot	status = "okay";
200*0e8011faSEmmanuel Vadot};
201*0e8011faSEmmanuel Vadot
202*0e8011faSEmmanuel Vadot&syscontroller {
203*0e8011faSEmmanuel Vadot	microchip,bitstream-flash = <&sys_ctrl_flash>;
204*0e8011faSEmmanuel Vadot	status = "okay";
205*0e8011faSEmmanuel Vadot};
206*0e8011faSEmmanuel Vadot
207*0e8011faSEmmanuel Vadot&syscontroller_qspi {
208*0e8011faSEmmanuel Vadot	status = "okay";
209*0e8011faSEmmanuel Vadot
210*0e8011faSEmmanuel Vadot	sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
211*0e8011faSEmmanuel Vadot		compatible = "jedec,spi-nor";
212*0e8011faSEmmanuel Vadot		#address-cells = <1>;
213*0e8011faSEmmanuel Vadot		#size-cells = <1>;
214*0e8011faSEmmanuel Vadot		spi-max-frequency = <20000000>;
215*0e8011faSEmmanuel Vadot		spi-rx-bus-width = <1>;
216*0e8011faSEmmanuel Vadot		reg = <0>;
217*0e8011faSEmmanuel Vadot	};
218*0e8011faSEmmanuel Vadot};
219*0e8011faSEmmanuel Vadot
220*0e8011faSEmmanuel Vadot&usb {
221*0e8011faSEmmanuel Vadot	status = "okay";
222*0e8011faSEmmanuel Vadot	dr_mode = "otg";
223*0e8011faSEmmanuel Vadot};
224