xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-libra-rdk-fpsc.dts (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
1// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2/*
3 * Copyright (C) 2025 PHYTEC Messtechnik GmbH
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/leds-pca9532.h>
9#include <dt-bindings/phy/phy-imx8-pcie.h>
10#include <dt-bindings/pwm/pwm.h>
11#include "imx8mp-phycore-fpsc.dtsi"
12
13/ {
14	compatible = "phytec,imx8mp-libra-rdk-fpsc",
15		     "phytec,imx8mp-phycore-fpsc", "fsl,imx8mp";
16	model = "PHYTEC i.MX8MP Libra RDK FPSC";
17
18	backlight_lvds0: backlight0 {
19		compatible = "pwm-backlight";
20		pinctrl-0 = <&pinctrl_lvds0>;
21		pinctrl-names = "default";
22		power-supply = <&reg_vdd_12v0>;
23		status = "disabled";
24	};
25
26	chosen {
27		stdout-path = &uart4;
28	};
29
30	panel0_lvds: panel-lvds {
31		/* compatible panel in overlay */
32		backlight = <&backlight_lvds0>;
33		power-supply = <&reg_vdd_3v3>;
34		status = "disabled";
35
36		port {
37			panel0_in: endpoint {
38				remote-endpoint = <&ldb_lvds_ch0>;
39			};
40		};
41	};
42
43	reg_can1_stby: regulator-can1-stby {
44		compatible = "regulator-fixed";
45		regulator-max-microvolt = <1800000>;
46		regulator-min-microvolt = <1800000>;
47		regulator-name = "can1-stby";
48		gpio = <&gpio_expander 10 GPIO_ACTIVE_LOW>;
49	};
50
51	reg_can2_stby: regulator-can2-stby {
52		compatible = "regulator-fixed";
53		regulator-max-microvolt = <1800000>;
54		regulator-min-microvolt = <1800000>;
55		regulator-name = "can2-stby";
56		gpio = <&gpio_expander 9 GPIO_ACTIVE_LOW>;
57	};
58
59	reg_vdd_12v0: regulator-vdd-12v0 {
60		compatible = "regulator-fixed";
61		regulator-always-on;
62		regulator-boot-on;
63		regulator-max-microvolt = <12000000>;
64		regulator-min-microvolt = <12000000>;
65		regulator-name = "VDD_12V0";
66	};
67
68	reg_vdd_1v8: regulator-vdd-1v8 {
69		compatible = "regulator-fixed";
70		regulator-always-on;
71		regulator-boot-on;
72		regulator-max-microvolt = <1800000>;
73		regulator-min-microvolt = <1800000>;
74		regulator-name = "VDD_1V8";
75	};
76
77	reg_vdd_3v3: regulator-vdd-3v3 {
78		compatible = "regulator-fixed";
79		regulator-always-on;
80		regulator-boot-on;
81		regulator-max-microvolt = <3300000>;
82		regulator-min-microvolt = <3300000>;
83		regulator-name = "VDD_3V3";
84	};
85
86	reg_vdd_5v0: regulator-vdd-5v0 {
87		compatible = "regulator-fixed";
88		regulator-always-on;
89		regulator-boot-on;
90		regulator-max-microvolt = <5000000>;
91		regulator-min-microvolt = <5000000>;
92		regulator-name = "VDD_5V0";
93	};
94};
95
96&eqos {
97	phy-handle = <&ethphy1>;
98	status = "okay";
99
100	mdio {
101		compatible = "snps,dwmac-mdio";
102		#address-cells = <1>;
103		#size-cells = <0>;
104
105		ethphy1: ethernet-phy@1 {
106			compatible = "ethernet-phy-ieee802.3-c22";
107			reg = <0x1>;
108			enet-phy-lane-no-swap;
109			ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
110			ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
111			ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_50_NS>;
112			ti,tx-internal-delay = <DP83867_RGMIIDCTL_1_50_NS>;
113		};
114	};
115};
116
117/* CAN FD */
118&flexcan1 {
119	xceiver-supply = <&reg_can1_stby>;
120	status = "okay";
121};
122
123&flexcan2 {
124	xceiver-supply = <&reg_can2_stby>;
125	status = "okay";
126};
127
128&flexspi {
129	status = "okay";
130
131	spi_nor: flash@0 {
132		compatible = "jedec,spi-nor";
133		reg = <0>;
134		spi-max-frequency = <80000000>;
135		spi-rx-bus-width = <4>;
136		spi-tx-bus-width = <1>;
137		vcc-supply = <&reg_vdd_1v8>;
138	};
139};
140
141&gpio5 {
142	gpio-line-names = "", "", "", "", "I2C5_SDA",
143			  "GPIO1", "", "", "", "SPI1_CS",
144			  "", "", "", "SPI2_CS", "I2C1_SCL",
145			  "I2C1_SDA", "I2C2_SCL", "I2C2_SDA", "I2C3_SCL", "I2C3_SDA",
146			  "", "GPIO2", "", "LVDS1_BL_EN", "SPI3_CS",
147			  "", "GPIO3";
148};
149
150&i2c2 {
151	clock-frequency = <400000>;
152	status = "okay";
153
154	eeprom@51 {
155		compatible = "atmel,24c02";
156		reg = <0x51>;
157		pagesize = <16>;
158		vcc-supply = <&reg_vdd_1v8>;
159	};
160};
161
162&i2c3 {
163	clock-frequency = <400000>;
164	status = "okay";
165
166	leds@62 {
167		compatible = "nxp,pca9533";
168		reg = <0x62>;
169
170		led-1 {
171			type = <PCA9532_TYPE_LED>;
172		};
173
174		led-2 {
175			type = <PCA9532_TYPE_LED>;
176		};
177
178		led-3 {
179			type = <PCA9532_TYPE_LED>;
180		};
181	};
182};
183
184&i2c5 {
185	#address-cells = <1>;
186	#size-cells = <0>;
187	clock-frequency = <400000>;
188	status = "okay";
189
190	gpio_expander: gpio@20 {
191		compatible = "ti,tca6416";
192		reg = <0x20>;
193		interrupt-parent = <&gpio4>;
194		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
195		#gpio-cells = <2>;
196		gpio-controller;
197		gpio-line-names = "CSI1_CTRL1", "CSI1_CTRL2", "CSI1_CTRL3",
198				  "CSI1_CTRL4", "CSI2_CTRL1", "CSI2_CTRL2",
199				  "CSI2_CTRL3", "CSI2_CTRL4", "CLK_EN_AV",
200				  "nCAN2_EN", "nCAN1_EN", "PCIE1_nWAKE",
201				  "PCIE2_nWAKE", "PCIE2_nALERT_3V3",
202				  "UART1_BT_RS_SEL", "UART1_RS232_485_SEL";
203		vcc-supply = <&reg_vdd_1v8>;
204
205		uart1_bt_rs_sel: bt-rs-hog {
206			gpios = <14 GPIO_ACTIVE_HIGH>;
207			gpio-hog;
208			line-name = "UART1_BT_RS_SEL";
209			output-low;	/* default RS232/RS485 */
210		};
211
212		uart1_rs232_485_sel: rs232-485-hog {
213			gpios = <15 GPIO_ACTIVE_HIGH>;
214			gpio-hog;
215			line-name = "UART1_RS232_485_SEL";
216			output-high;	/* default RS232 */
217		};
218	};
219};
220
221&iomuxc {
222	pinctrl_lvds0: lvds0grp {
223		fsl,pins = <
224			MX8MP_IOMUXC_UART1_TXD__GPIO5_IO23	0x12
225		>;
226	};
227	pinctrl_rtc: rtcgrp {
228		fsl,pins = <
229			MX8MP_IOMUXC_UART2_TXD__GPIO5_IO25	0x1C0
230		>;
231	};
232};
233
234&lvds_bridge {
235	ports {
236		port@1 {
237			ldb_lvds_ch0: endpoint {
238				remote-endpoint = <&panel0_in>;
239			};
240		};
241	};
242};
243
244/* Mini PCIe */
245&pcie {
246	reset-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
247	vpcie-supply = <&reg_vdd_3v3>;
248	status = "okay";
249};
250
251&pcie_phy {
252	clocks = <&hsio_blk_ctrl>;
253	clock-names = "ref";
254	fsl,clkreq-unsupported;
255	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;
256	status = "okay";
257};
258
259&reg_vdd_io {
260	regulator-max-microvolt = <1800000>;
261	regulator-min-microvolt = <1800000>;
262};
263
264&rv3028 {
265	interrupt-parent = <&gpio5>;
266	interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
267	aux-voltage-chargeable = <1>;
268	pinctrl-0 = <&pinctrl_rtc>;
269	pinctrl-names = "default";
270	trickle-resistor-ohms = <3000>;
271	wakeup-source;
272};
273
274&snvs_pwrkey {
275	status = "okay";
276};
277
278/* debug console */
279&uart4 {
280	status = "okay";
281};
282
283/* SD-Card */
284&usdhc2 {
285	assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
286	assigned-clock-rates = <200000000>;
287	bus-width = <4>;
288	disable-wp;
289	status = "okay";
290};
291