xref: /linux/arch/arm/boot/dts/nxp/imx/imx6ul-var-som.dtsi (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1*9d6a67d9SAntonin Godard// SPDX-License-Identifier: GPL-2.0+
2*9d6a67d9SAntonin Godard/*
3*9d6a67d9SAntonin Godard * Support for Variscite VAR-SOM-MX6UL Module
4*9d6a67d9SAntonin Godard *
5*9d6a67d9SAntonin Godard * Copyright 2019 Variscite Ltd.
6*9d6a67d9SAntonin Godard * Copyright 2025 Bootlin
7*9d6a67d9SAntonin Godard */
8*9d6a67d9SAntonin Godard
9*9d6a67d9SAntonin Godard/dts-v1/;
10*9d6a67d9SAntonin Godard
11*9d6a67d9SAntonin Godard#include "imx6ul.dtsi"
12*9d6a67d9SAntonin Godard#include <dt-bindings/clock/imx6ul-clock.h>
13*9d6a67d9SAntonin Godard#include <dt-bindings/gpio/gpio.h>
14*9d6a67d9SAntonin Godard
15*9d6a67d9SAntonin Godard/ {
16*9d6a67d9SAntonin Godard	model = "Variscite VAR-SOM-MX6UL module";
17*9d6a67d9SAntonin Godard	compatible = "variscite,var-som-imx6ul", "fsl,imx6ul";
18*9d6a67d9SAntonin Godard
19*9d6a67d9SAntonin Godard	memory@80000000 {
20*9d6a67d9SAntonin Godard		device_type = "memory";
21*9d6a67d9SAntonin Godard		reg = <0x80000000 0x20000000>;
22*9d6a67d9SAntonin Godard	};
23*9d6a67d9SAntonin Godard
24*9d6a67d9SAntonin Godard	reg_gpio_dvfs: reg-gpio-dvfs {
25*9d6a67d9SAntonin Godard		compatible = "regulator-gpio";
26*9d6a67d9SAntonin Godard		regulator-min-microvolt = <1300000>;
27*9d6a67d9SAntonin Godard		regulator-max-microvolt = <1400000>;
28*9d6a67d9SAntonin Godard		regulator-name = "gpio_dvfs";
29*9d6a67d9SAntonin Godard		regulator-type = "voltage";
30*9d6a67d9SAntonin Godard		gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
31*9d6a67d9SAntonin Godard		states = <1300000 0x1
32*9d6a67d9SAntonin Godard			  1400000 0x0>;
33*9d6a67d9SAntonin Godard	};
34*9d6a67d9SAntonin Godard
35*9d6a67d9SAntonin Godard	rmii_ref_clk: rmii-ref-clk {
36*9d6a67d9SAntonin Godard		compatible = "fixed-clock";
37*9d6a67d9SAntonin Godard		#clock-cells = <0>;
38*9d6a67d9SAntonin Godard		clock-frequency = <25000000>;
39*9d6a67d9SAntonin Godard		clock-output-names = "rmii-ref";
40*9d6a67d9SAntonin Godard	};
41*9d6a67d9SAntonin Godard};
42*9d6a67d9SAntonin Godard
43*9d6a67d9SAntonin Godard&clks {
44*9d6a67d9SAntonin Godard	assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
45*9d6a67d9SAntonin Godard	assigned-clock-rates = <786432000>;
46*9d6a67d9SAntonin Godard};
47*9d6a67d9SAntonin Godard
48*9d6a67d9SAntonin Godard&cpu0 {
49*9d6a67d9SAntonin Godard	dc-supply = <&reg_gpio_dvfs>;
50*9d6a67d9SAntonin Godard};
51*9d6a67d9SAntonin Godard
52*9d6a67d9SAntonin Godard&fec1 {
53*9d6a67d9SAntonin Godard	pinctrl-names = "default";
54*9d6a67d9SAntonin Godard	pinctrl-0 = <&pinctrl_enet1>, <&pinctrl_enet1_gpio>, <&pinctrl_enet1_mdio>;
55*9d6a67d9SAntonin Godard	phy-mode = "rmii";
56*9d6a67d9SAntonin Godard	phy-handle = <&ethphy0>;
57*9d6a67d9SAntonin Godard	status = "okay";
58*9d6a67d9SAntonin Godard
59*9d6a67d9SAntonin Godard	mdio {
60*9d6a67d9SAntonin Godard		#address-cells = <1>;
61*9d6a67d9SAntonin Godard		#size-cells = <0>;
62*9d6a67d9SAntonin Godard
63*9d6a67d9SAntonin Godard		ethphy0: ethernet-phy@1 {
64*9d6a67d9SAntonin Godard			compatible = "ethernet-phy-ieee802.3-c22";
65*9d6a67d9SAntonin Godard			reg = <1>;
66*9d6a67d9SAntonin Godard			clocks = <&rmii_ref_clk>;
67*9d6a67d9SAntonin Godard			clock-names = "rmii-ref";
68*9d6a67d9SAntonin Godard			reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
69*9d6a67d9SAntonin Godard			reset-assert-us = <100000>;
70*9d6a67d9SAntonin Godard			micrel,led-mode = <1>;
71*9d6a67d9SAntonin Godard			micrel,rmii-reference-clock-select-25-mhz = <1>;
72*9d6a67d9SAntonin Godard		};
73*9d6a67d9SAntonin Godard	};
74*9d6a67d9SAntonin Godard};
75*9d6a67d9SAntonin Godard
76*9d6a67d9SAntonin Godard&iomuxc {
77*9d6a67d9SAntonin Godard	pinctrl-names = "default";
78*9d6a67d9SAntonin Godard	pinctrl-0 = <&pinctrl_hog>;
79*9d6a67d9SAntonin Godard
80*9d6a67d9SAntonin Godard	pinctrl_enet1: enet1grp {
81*9d6a67d9SAntonin Godard		fsl,pins = <
82*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN	0x1b0b0
83*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER	0x1b0b0
84*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00	0x1b0b0
85*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01	0x1b0b0
86*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN	0x1b0b0
87*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00	0x1b0b0
88*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01	0x1b0b0
89*9d6a67d9SAntonin Godard			MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1	0x4001b031
90*9d6a67d9SAntonin Godard		>;
91*9d6a67d9SAntonin Godard	};
92*9d6a67d9SAntonin Godard
93*9d6a67d9SAntonin Godard	pinctrl_enet1_gpio: enet1-gpiogrp {
94*9d6a67d9SAntonin Godard		fsl,pins = <
95*9d6a67d9SAntonin Godard			MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00	0x1b0b0 /* fec1 reset */
96*9d6a67d9SAntonin Godard		>;
97*9d6a67d9SAntonin Godard	};
98*9d6a67d9SAntonin Godard
99*9d6a67d9SAntonin Godard	pinctrl_enet1_mdio: enet1-mdiogrp {
100*9d6a67d9SAntonin Godard		fsl,pins = <
101*9d6a67d9SAntonin Godard			MX6UL_PAD_GPIO1_IO06__ENET1_MDIO	0x1b0b0
102*9d6a67d9SAntonin Godard			MX6UL_PAD_GPIO1_IO07__ENET1_MDC		0x1b0b0
103*9d6a67d9SAntonin Godard		>;
104*9d6a67d9SAntonin Godard	};
105*9d6a67d9SAntonin Godard
106*9d6a67d9SAntonin Godard	pinctrl_hog: hoggrp {
107*9d6a67d9SAntonin Godard		fsl,pins = <
108*9d6a67d9SAntonin Godard			MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04	0x1b0b0	/* BT Enable */
109*9d6a67d9SAntonin Godard			MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06	0x03029	/* WLAN Enable */
110*9d6a67d9SAntonin Godard		>;
111*9d6a67d9SAntonin Godard	};
112*9d6a67d9SAntonin Godard
113*9d6a67d9SAntonin Godard	pinctrl_sai2: sai2grp {
114*9d6a67d9SAntonin Godard		fsl,pins = <
115*9d6a67d9SAntonin Godard			MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK	0x17088
116*9d6a67d9SAntonin Godard			MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC	0x17088
117*9d6a67d9SAntonin Godard			MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA	0x11088
118*9d6a67d9SAntonin Godard			MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA	0x11088
119*9d6a67d9SAntonin Godard			MX6UL_PAD_JTAG_TMS__SAI2_MCLK		0x17088
120*9d6a67d9SAntonin Godard		>;
121*9d6a67d9SAntonin Godard	};
122*9d6a67d9SAntonin Godard
123*9d6a67d9SAntonin Godard	pinctrl_tsc: tscgrp {
124*9d6a67d9SAntonin Godard		fsl,pins = <
125*9d6a67d9SAntonin Godard			MX6UL_PAD_GPIO1_IO01__GPIO1_IO01	0xb0
126*9d6a67d9SAntonin Godard			MX6UL_PAD_GPIO1_IO02__GPIO1_IO02	0xb0
127*9d6a67d9SAntonin Godard			MX6UL_PAD_GPIO1_IO03__GPIO1_IO03	0xb0
128*9d6a67d9SAntonin Godard			MX6UL_PAD_GPIO1_IO04__GPIO1_IO04	0xb0
129*9d6a67d9SAntonin Godard		>;
130*9d6a67d9SAntonin Godard	};
131*9d6a67d9SAntonin Godard
132*9d6a67d9SAntonin Godard	pinctrl_uart2: uart2grp {
133*9d6a67d9SAntonin Godard		fsl,pins = <
134*9d6a67d9SAntonin Godard			MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX	0x1b0b1
135*9d6a67d9SAntonin Godard			MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX	0x1b0b1
136*9d6a67d9SAntonin Godard			MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS	0x1b0b1
137*9d6a67d9SAntonin Godard			MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS	0x1b0b1
138*9d6a67d9SAntonin Godard		>;
139*9d6a67d9SAntonin Godard	};
140*9d6a67d9SAntonin Godard
141*9d6a67d9SAntonin Godard	pinctrl_usdhc2: usdhc2grp {
142*9d6a67d9SAntonin Godard		fsl,pins = <
143*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_RE_B__USDHC2_CLK		0x10069
144*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_WE_B__USDHC2_CMD		0x17059
145*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA00__USDHC2_DATA0	0x17059
146*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA01__USDHC2_DATA1	0x17059
147*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA02__USDHC2_DATA2	0x17059
148*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA03__USDHC2_DATA3	0x17059
149*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA04__USDHC2_DATA4	0x17059
150*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA05__USDHC2_DATA5	0x17059
151*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA06__USDHC2_DATA6	0x17059
152*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA07__USDHC2_DATA7	0x17059
153*9d6a67d9SAntonin Godard		>;
154*9d6a67d9SAntonin Godard	};
155*9d6a67d9SAntonin Godard
156*9d6a67d9SAntonin Godard	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
157*9d6a67d9SAntonin Godard		fsl,pins = <
158*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_RE_B__USDHC2_CLK		0x100b9
159*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_WE_B__USDHC2_CMD		0x170b9
160*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA00__USDHC2_DATA0	0x170b9
161*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA01__USDHC2_DATA1	0x170b9
162*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA02__USDHC2_DATA2	0x170b9
163*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA03__USDHC2_DATA3	0x170b9
164*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA04__USDHC2_DATA4	0x170b9
165*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA05__USDHC2_DATA5	0x170b9
166*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA06__USDHC2_DATA6	0x170b9
167*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA07__USDHC2_DATA7	0x170b9
168*9d6a67d9SAntonin Godard		>;
169*9d6a67d9SAntonin Godard	};
170*9d6a67d9SAntonin Godard
171*9d6a67d9SAntonin Godard	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
172*9d6a67d9SAntonin Godard		fsl,pins = <
173*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_RE_B__USDHC2_CLK		0x100f9
174*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_WE_B__USDHC2_CMD		0x170f9
175*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA00__USDHC2_DATA0	0x170f9
176*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA01__USDHC2_DATA1	0x170f9
177*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA02__USDHC2_DATA2	0x170f9
178*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA03__USDHC2_DATA3	0x170f9
179*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA04__USDHC2_DATA4	0x170f9
180*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA05__USDHC2_DATA5	0x170f9
181*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA06__USDHC2_DATA6	0x170f9
182*9d6a67d9SAntonin Godard			MX6UL_PAD_NAND_DATA07__USDHC2_DATA7	0x170f9
183*9d6a67d9SAntonin Godard		>;
184*9d6a67d9SAntonin Godard	};
185*9d6a67d9SAntonin Godard};
186*9d6a67d9SAntonin Godard
187*9d6a67d9SAntonin Godard&pxp {
188*9d6a67d9SAntonin Godard	status = "okay";
189*9d6a67d9SAntonin Godard};
190*9d6a67d9SAntonin Godard
191*9d6a67d9SAntonin Godard&sai2 {
192*9d6a67d9SAntonin Godard	pinctrl-names = "default";
193*9d6a67d9SAntonin Godard	pinctrl-0 = <&pinctrl_sai2>;
194*9d6a67d9SAntonin Godard	assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>,
195*9d6a67d9SAntonin Godard			  <&clks IMX6UL_CLK_SAI2>;
196*9d6a67d9SAntonin Godard	assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
197*9d6a67d9SAntonin Godard	assigned-clock-rates = <0>, <12288000>;
198*9d6a67d9SAntonin Godard	fsl,sai-mclk-direction-output;
199*9d6a67d9SAntonin Godard	status = "okay";
200*9d6a67d9SAntonin Godard};
201*9d6a67d9SAntonin Godard
202*9d6a67d9SAntonin Godard&snvs_poweroff {
203*9d6a67d9SAntonin Godard	status = "okay";
204*9d6a67d9SAntonin Godard};
205*9d6a67d9SAntonin Godard
206*9d6a67d9SAntonin Godard&tsc {
207*9d6a67d9SAntonin Godard	pinctrl-names = "default";
208*9d6a67d9SAntonin Godard	pinctrl-0 = <&pinctrl_tsc>;
209*9d6a67d9SAntonin Godard	xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
210*9d6a67d9SAntonin Godard	measure-delay-time = <0xffff>;
211*9d6a67d9SAntonin Godard	pre-charge-time = <0xfff>;
212*9d6a67d9SAntonin Godard	status = "okay";
213*9d6a67d9SAntonin Godard};
214*9d6a67d9SAntonin Godard
215*9d6a67d9SAntonin Godard&uart2 {
216*9d6a67d9SAntonin Godard	pinctrl-names = "default";
217*9d6a67d9SAntonin Godard	pinctrl-0 = <&pinctrl_uart2>;
218*9d6a67d9SAntonin Godard	uart-has-rtscts;
219*9d6a67d9SAntonin Godard	status = "okay";
220*9d6a67d9SAntonin Godard};
221*9d6a67d9SAntonin Godard
222*9d6a67d9SAntonin Godard&usdhc2 {
223*9d6a67d9SAntonin Godard	pinctrl-names = "default", "state_100mhz", "state_200mhz";
224*9d6a67d9SAntonin Godard	pinctrl-0 = <&pinctrl_usdhc2>;
225*9d6a67d9SAntonin Godard	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
226*9d6a67d9SAntonin Godard	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
227*9d6a67d9SAntonin Godard	bus-width = <8>;
228*9d6a67d9SAntonin Godard	no-1-8-v;
229*9d6a67d9SAntonin Godard	non-removable;
230*9d6a67d9SAntonin Godard	keep-power-in-suspend;
231*9d6a67d9SAntonin Godard	wakeup-source;
232*9d6a67d9SAntonin Godard	status = "okay";
233*9d6a67d9SAntonin Godard};
234