xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8ulp-evk.dts (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1e67e8565SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2e67e8565SEmmanuel Vadot/*
3e67e8565SEmmanuel Vadot * Copyright 2021 NXP
4e67e8565SEmmanuel Vadot */
5e67e8565SEmmanuel Vadot
6e67e8565SEmmanuel Vadot/dts-v1/;
7e67e8565SEmmanuel Vadot
8e67e8565SEmmanuel Vadot#include "imx8ulp.dtsi"
9e67e8565SEmmanuel Vadot
10e67e8565SEmmanuel Vadot/ {
11e67e8565SEmmanuel Vadot	model = "NXP i.MX8ULP EVK";
12e67e8565SEmmanuel Vadot	compatible = "fsl,imx8ulp-evk", "fsl,imx8ulp";
13e67e8565SEmmanuel Vadot
14e67e8565SEmmanuel Vadot	chosen {
15e67e8565SEmmanuel Vadot		stdout-path = &lpuart5;
16e67e8565SEmmanuel Vadot	};
17e67e8565SEmmanuel Vadot
18e67e8565SEmmanuel Vadot	memory@80000000 {
19e67e8565SEmmanuel Vadot		device_type = "memory";
20e67e8565SEmmanuel Vadot		reg = <0x0 0x80000000 0 0x80000000>;
21e67e8565SEmmanuel Vadot	};
227ef62cebSEmmanuel Vadot
23*aa1a8ff2SEmmanuel Vadot	reserved-memory {
24*aa1a8ff2SEmmanuel Vadot		#address-cells = <2>;
25*aa1a8ff2SEmmanuel Vadot		#size-cells = <2>;
26*aa1a8ff2SEmmanuel Vadot		ranges;
27*aa1a8ff2SEmmanuel Vadot
28*aa1a8ff2SEmmanuel Vadot		linux,cma {
29*aa1a8ff2SEmmanuel Vadot			compatible = "shared-dma-pool";
30*aa1a8ff2SEmmanuel Vadot			reusable;
31*aa1a8ff2SEmmanuel Vadot			size = <0 0x28000000>;
32*aa1a8ff2SEmmanuel Vadot			linux,cma-default;
33*aa1a8ff2SEmmanuel Vadot		};
34*aa1a8ff2SEmmanuel Vadot
35*aa1a8ff2SEmmanuel Vadot		m33_reserved: noncacheable-section@a8600000 {
36*aa1a8ff2SEmmanuel Vadot			reg = <0 0xa8600000 0 0x1000000>;
37*aa1a8ff2SEmmanuel Vadot			no-map;
38*aa1a8ff2SEmmanuel Vadot		};
39*aa1a8ff2SEmmanuel Vadot
40*aa1a8ff2SEmmanuel Vadot		rsc_table: rsc-table@1fff8000{
41*aa1a8ff2SEmmanuel Vadot			reg = <0 0x1fff8000 0 0x1000>;
42*aa1a8ff2SEmmanuel Vadot			no-map;
43*aa1a8ff2SEmmanuel Vadot		};
44*aa1a8ff2SEmmanuel Vadot
45*aa1a8ff2SEmmanuel Vadot		vdev0vring0: vdev0vring0@aff00000 {
46*aa1a8ff2SEmmanuel Vadot			reg = <0 0xaff00000 0 0x8000>;
47*aa1a8ff2SEmmanuel Vadot			no-map;
48*aa1a8ff2SEmmanuel Vadot		};
49*aa1a8ff2SEmmanuel Vadot
50*aa1a8ff2SEmmanuel Vadot		vdev0vring1: vdev0vring1@aff08000 {
51*aa1a8ff2SEmmanuel Vadot			reg = <0 0xaff08000 0 0x8000>;
52*aa1a8ff2SEmmanuel Vadot			no-map;
53*aa1a8ff2SEmmanuel Vadot		};
54*aa1a8ff2SEmmanuel Vadot
55*aa1a8ff2SEmmanuel Vadot		vdev1vring0: vdev1vring0@aff10000 {
56*aa1a8ff2SEmmanuel Vadot			reg = <0 0xaff10000 0 0x8000>;
57*aa1a8ff2SEmmanuel Vadot			no-map;
58*aa1a8ff2SEmmanuel Vadot		};
59*aa1a8ff2SEmmanuel Vadot
60*aa1a8ff2SEmmanuel Vadot		vdev1vring1: vdev1vring1@aff18000 {
61*aa1a8ff2SEmmanuel Vadot			reg = <0 0xaff18000 0 0x8000>;
62*aa1a8ff2SEmmanuel Vadot			no-map;
63*aa1a8ff2SEmmanuel Vadot		};
64*aa1a8ff2SEmmanuel Vadot
65*aa1a8ff2SEmmanuel Vadot		vdevbuffer: vdevbuffer@a8400000 {
66*aa1a8ff2SEmmanuel Vadot			compatible = "shared-dma-pool";
67*aa1a8ff2SEmmanuel Vadot			reg = <0 0xa8400000 0 0x100000>;
68*aa1a8ff2SEmmanuel Vadot			no-map;
69*aa1a8ff2SEmmanuel Vadot		};
70*aa1a8ff2SEmmanuel Vadot	};
71*aa1a8ff2SEmmanuel Vadot
727ef62cebSEmmanuel Vadot	clock_ext_rmii: clock-ext-rmii {
737ef62cebSEmmanuel Vadot		compatible = "fixed-clock";
747ef62cebSEmmanuel Vadot		clock-frequency = <50000000>;
757ef62cebSEmmanuel Vadot		clock-output-names = "ext_rmii_clk";
767ef62cebSEmmanuel Vadot		#clock-cells = <0>;
777ef62cebSEmmanuel Vadot	};
787ef62cebSEmmanuel Vadot
797ef62cebSEmmanuel Vadot	clock_ext_ts: clock-ext-ts {
807ef62cebSEmmanuel Vadot		compatible = "fixed-clock";
817ef62cebSEmmanuel Vadot		/* External ts clock is 50MHZ from PHY on EVK board. */
827ef62cebSEmmanuel Vadot		clock-frequency = <50000000>;
837ef62cebSEmmanuel Vadot		clock-output-names = "ext_ts_clk";
847ef62cebSEmmanuel Vadot		#clock-cells = <0>;
857ef62cebSEmmanuel Vadot	};
86e67e8565SEmmanuel Vadot};
87e67e8565SEmmanuel Vadot
88*aa1a8ff2SEmmanuel Vadot&cm33 {
89*aa1a8ff2SEmmanuel Vadot	mbox-names = "tx", "rx", "rxdb";
90*aa1a8ff2SEmmanuel Vadot	mboxes = <&mu 0 1>,
91*aa1a8ff2SEmmanuel Vadot		 <&mu 1 1>,
92*aa1a8ff2SEmmanuel Vadot		 <&mu 3 1>;
93*aa1a8ff2SEmmanuel Vadot	memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
94*aa1a8ff2SEmmanuel Vadot			<&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
95*aa1a8ff2SEmmanuel Vadot	status = "okay";
96*aa1a8ff2SEmmanuel Vadot};
97*aa1a8ff2SEmmanuel Vadot
98*aa1a8ff2SEmmanuel Vadot&flexspi2 {
99*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
100*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexspi2_ptd>;
101*aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&pinctrl_flexspi2_ptd>;
102*aa1a8ff2SEmmanuel Vadot	status = "okay";
103*aa1a8ff2SEmmanuel Vadot
104*aa1a8ff2SEmmanuel Vadot	mx25uw51345gxdi00: flash@0 {
105*aa1a8ff2SEmmanuel Vadot		compatible = "jedec,spi-nor";
106*aa1a8ff2SEmmanuel Vadot		reg = <0>;
107*aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <200000000>;
108*aa1a8ff2SEmmanuel Vadot		spi-tx-bus-width = <8>;
109*aa1a8ff2SEmmanuel Vadot		spi-rx-bus-width = <8>;
110*aa1a8ff2SEmmanuel Vadot	};
111*aa1a8ff2SEmmanuel Vadot};
112*aa1a8ff2SEmmanuel Vadot
113e67e8565SEmmanuel Vadot&lpuart5 {
114e67e8565SEmmanuel Vadot	/* console */
115e67e8565SEmmanuel Vadot	pinctrl-names = "default", "sleep";
116e67e8565SEmmanuel Vadot	pinctrl-0 = <&pinctrl_lpuart5>;
117e67e8565SEmmanuel Vadot	pinctrl-1 = <&pinctrl_lpuart5>;
118e67e8565SEmmanuel Vadot	status = "okay";
119e67e8565SEmmanuel Vadot};
120e67e8565SEmmanuel Vadot
121*aa1a8ff2SEmmanuel Vadot&lpi2c7 {
122*aa1a8ff2SEmmanuel Vadot	#address-cells = <1>;
123*aa1a8ff2SEmmanuel Vadot	#size-cells = <0>;
124*aa1a8ff2SEmmanuel Vadot	clock-frequency = <400000>;
125e67e8565SEmmanuel Vadot	pinctrl-names = "default", "sleep";
126*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_lpi2c7>;
127*aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&pinctrl_lpi2c7>;
128*aa1a8ff2SEmmanuel Vadot	status = "okay";
129*aa1a8ff2SEmmanuel Vadot
130*aa1a8ff2SEmmanuel Vadot	pcal6408: gpio@21 {
131*aa1a8ff2SEmmanuel Vadot		compatible = "nxp,pcal9554b";
132*aa1a8ff2SEmmanuel Vadot		reg = <0x21>;
133*aa1a8ff2SEmmanuel Vadot		gpio-controller;
134*aa1a8ff2SEmmanuel Vadot		#gpio-cells = <2>;
135*aa1a8ff2SEmmanuel Vadot	};
136*aa1a8ff2SEmmanuel Vadot};
137*aa1a8ff2SEmmanuel Vadot
138*aa1a8ff2SEmmanuel Vadot&usdhc0 {
139*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
140e67e8565SEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc0>;
141e67e8565SEmmanuel Vadot	pinctrl-1 = <&pinctrl_usdhc0>;
142*aa1a8ff2SEmmanuel Vadot	pinctrl-2 = <&pinctrl_usdhc0>;
143*aa1a8ff2SEmmanuel Vadot	pinctrl-3 = <&pinctrl_usdhc0>;
144e67e8565SEmmanuel Vadot	non-removable;
145e67e8565SEmmanuel Vadot	bus-width = <8>;
146e67e8565SEmmanuel Vadot	status = "okay";
147e67e8565SEmmanuel Vadot};
148e67e8565SEmmanuel Vadot
1497ef62cebSEmmanuel Vadot&fec {
1507ef62cebSEmmanuel Vadot	pinctrl-names = "default", "sleep";
1517ef62cebSEmmanuel Vadot	pinctrl-0 = <&pinctrl_enet>;
1527ef62cebSEmmanuel Vadot	pinctrl-1 = <&pinctrl_enet>;
1537ef62cebSEmmanuel Vadot	clocks = <&cgc1 IMX8ULP_CLK_XBAR_DIVBUS>,
1547ef62cebSEmmanuel Vadot		 <&pcc4 IMX8ULP_CLK_ENET>,
1557ef62cebSEmmanuel Vadot		 <&cgc1 IMX8ULP_CLK_ENET_TS_SEL>,
1567ef62cebSEmmanuel Vadot		 <&clock_ext_rmii>;
1577ef62cebSEmmanuel Vadot	clock-names = "ipg", "ahb", "ptp", "enet_clk_ref";
1587ef62cebSEmmanuel Vadot	assigned-clocks = <&cgc1 IMX8ULP_CLK_ENET_TS_SEL>;
1597ef62cebSEmmanuel Vadot	assigned-clock-parents = <&clock_ext_ts>;
1607ef62cebSEmmanuel Vadot	phy-mode = "rmii";
1617ef62cebSEmmanuel Vadot	phy-handle = <&ethphy>;
1627ef62cebSEmmanuel Vadot	status = "okay";
1637ef62cebSEmmanuel Vadot
1647ef62cebSEmmanuel Vadot	mdio {
1657ef62cebSEmmanuel Vadot		#address-cells = <1>;
1667ef62cebSEmmanuel Vadot		#size-cells = <0>;
1677ef62cebSEmmanuel Vadot
1687ef62cebSEmmanuel Vadot		ethphy: ethernet-phy@1 {
1697ef62cebSEmmanuel Vadot			reg = <1>;
1707ef62cebSEmmanuel Vadot			micrel,led-mode = <1>;
1717ef62cebSEmmanuel Vadot		};
1727ef62cebSEmmanuel Vadot	};
1737ef62cebSEmmanuel Vadot};
1747ef62cebSEmmanuel Vadot
175*aa1a8ff2SEmmanuel Vadot&mu {
176*aa1a8ff2SEmmanuel Vadot	status = "okay";
177*aa1a8ff2SEmmanuel Vadot};
178*aa1a8ff2SEmmanuel Vadot
179e67e8565SEmmanuel Vadot&iomuxc1 {
1807ef62cebSEmmanuel Vadot	pinctrl_enet: enetgrp {
1817ef62cebSEmmanuel Vadot		fsl,pins = <
1827ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE15__ENET0_MDC     0x43
1837ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE14__ENET0_MDIO    0x43
1847ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE17__ENET0_RXER    0x43
1857ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE18__ENET0_CRS_DV  0x43
1867ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTF1__ENET0_RXD0     0x43
1877ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE20__ENET0_RXD1    0x43
1887ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE16__ENET0_TXEN    0x43
1897ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE23__ENET0_TXD0    0x43
1907ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE22__ENET0_TXD1    0x43
1917ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTE19__ENET0_REFCLK  0x43
1927ef62cebSEmmanuel Vadot			MX8ULP_PAD_PTF10__ENET0_1588_CLKIN 0x43
1937ef62cebSEmmanuel Vadot		>;
1947ef62cebSEmmanuel Vadot	};
1957ef62cebSEmmanuel Vadot
196*aa1a8ff2SEmmanuel Vadot	pinctrl_flexspi2_ptd: flexspi2ptdgrp {
197*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
198*aa1a8ff2SEmmanuel Vadot
199*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD12__FLEXSPI2_A_SS0_B	0x42
200*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD13__FLEXSPI2_A_SCLK	0x42
201*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD14__FLEXSPI2_A_DATA3	0x42
202*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD15__FLEXSPI2_A_DATA2	0x42
203*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD16__FLEXSPI2_A_DATA1	0x42
204*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD17__FLEXSPI2_A_DATA0	0x42
205*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD18__FLEXSPI2_A_DQS	0x42
206*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD19__FLEXSPI2_A_DATA7	0x42
207*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD20__FLEXSPI2_A_DATA6	0x42
208*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD21__FLEXSPI2_A_DATA5	0x42
209*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD22__FLEXSPI2_A_DATA4	0x42
210*aa1a8ff2SEmmanuel Vadot		>;
211*aa1a8ff2SEmmanuel Vadot	};
212*aa1a8ff2SEmmanuel Vadot
213e67e8565SEmmanuel Vadot	pinctrl_lpuart5: lpuart5grp {
214e67e8565SEmmanuel Vadot		fsl,pins = <
215e67e8565SEmmanuel Vadot			MX8ULP_PAD_PTF14__LPUART5_TX	0x3
216e67e8565SEmmanuel Vadot			MX8ULP_PAD_PTF15__LPUART5_RX	0x3
217e67e8565SEmmanuel Vadot		>;
218e67e8565SEmmanuel Vadot	};
219e67e8565SEmmanuel Vadot
220*aa1a8ff2SEmmanuel Vadot	pinctrl_lpi2c7: lpi2c7grp {
221*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
222*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTE12__LPI2C7_SCL	0x20
223*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTE13__LPI2C7_SDA	0x20
224*aa1a8ff2SEmmanuel Vadot		>;
225*aa1a8ff2SEmmanuel Vadot	};
226*aa1a8ff2SEmmanuel Vadot
227e67e8565SEmmanuel Vadot	pinctrl_usdhc0: usdhc0grp {
228e67e8565SEmmanuel Vadot		fsl,pins = <
229*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD1__SDHC0_CMD	0x3
230*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD2__SDHC0_CLK	0x10002
231*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD10__SDHC0_D0	0x3
232*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD9__SDHC0_D1	0x3
233*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD8__SDHC0_D2	0x3
234*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD7__SDHC0_D3	0x3
235*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD6__SDHC0_D4	0x3
236*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD5__SDHC0_D5	0x3
237*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD4__SDHC0_D6	0x3
238*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD3__SDHC0_D7	0x3
239*aa1a8ff2SEmmanuel Vadot			MX8ULP_PAD_PTD11__SDHC0_DQS	0x10002
240e67e8565SEmmanuel Vadot		>;
241e67e8565SEmmanuel Vadot	};
242e67e8565SEmmanuel Vadot};
243