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