xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx95-libra-rdk-fpsc.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1*911e3962SYannic Moog// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*911e3962SYannic Moog/*
3*911e3962SYannic Moog * Copyright 2025 PHYTEC Messtechnik GmbH
4*911e3962SYannic Moog */
5*911e3962SYannic Moog
6*911e3962SYannic Moog/dts-v1/;
7*911e3962SYannic Moog
8*911e3962SYannic Moog#include <dt-bindings/leds/leds-pca9532.h>
9*911e3962SYannic Moog#include <dt-bindings/pwm/pwm.h>
10*911e3962SYannic Moog
11*911e3962SYannic Moog#include "imx95-phycore-fpsc.dtsi"
12*911e3962SYannic Moog
13*911e3962SYannic Moog/ {
14*911e3962SYannic Moog	compatible = "phytec,imx95-libra-rdk-fpsc",
15*911e3962SYannic Moog		"phytec,imx95-phycore-fpsc", "fsl,imx95";
16*911e3962SYannic Moog	model = "PHYTEC Libra i.MX95 RDK FPSC";
17*911e3962SYannic Moog
18*911e3962SYannic Moog	aliases {
19*911e3962SYannic Moog		can1 = &flexcan2;
20*911e3962SYannic Moog		can2 = &flexcan1;
21*911e3962SYannic Moog		ethernet0 = &enetc_port0;
22*911e3962SYannic Moog		serial0 = &lpuart7;
23*911e3962SYannic Moog		serial1 = &lpuart8;
24*911e3962SYannic Moog	};
25*911e3962SYannic Moog
26*911e3962SYannic Moog	chosen {
27*911e3962SYannic Moog		stdout-path = &lpuart7;
28*911e3962SYannic Moog	};
29*911e3962SYannic Moog
30*911e3962SYannic Moog	backlight_lvds0: backlight0 {
31*911e3962SYannic Moog		compatible = "pwm-backlight";
32*911e3962SYannic Moog		pinctrl-0 = <&pinctrl_lvds0>;
33*911e3962SYannic Moog		power-supply = <&reg_vdd_12v0>;
34*911e3962SYannic Moog		status = "disabled";
35*911e3962SYannic Moog	};
36*911e3962SYannic Moog
37*911e3962SYannic Moog	transceiver1: can-phy {
38*911e3962SYannic Moog		compatible = "ti,tcan1043";
39*911e3962SYannic Moog		#phy-cells = <0>;
40*911e3962SYannic Moog		max-bitrate = <8000000>;
41*911e3962SYannic Moog		enable-gpios = <&gpio_expander 10 GPIO_ACTIVE_LOW>;
42*911e3962SYannic Moog	};
43*911e3962SYannic Moog
44*911e3962SYannic Moog	transceiver2: can-phy {
45*911e3962SYannic Moog		compatible = "ti,tcan1043";
46*911e3962SYannic Moog		#phy-cells = <0>;
47*911e3962SYannic Moog		max-bitrate = <8000000>;
48*911e3962SYannic Moog		enable-gpios = <&gpio_expander 9 GPIO_ACTIVE_LOW>;
49*911e3962SYannic Moog	};
50*911e3962SYannic Moog
51*911e3962SYannic Moog	panel0_lvds: panel-lvds0 {
52*911e3962SYannic Moog		backlight = <&backlight_lvds0>;
53*911e3962SYannic Moog		power-supply = <&reg_vdd_3v3>;
54*911e3962SYannic Moog		status = "disabled";
55*911e3962SYannic Moog	};
56*911e3962SYannic Moog
57*911e3962SYannic Moog	reg_vdd_12v0: regulator-vdd-12v0 {
58*911e3962SYannic Moog		compatible = "regulator-fixed";
59*911e3962SYannic Moog		regulator-always-on;
60*911e3962SYannic Moog		regulator-boot-on;
61*911e3962SYannic Moog		regulator-max-microvolt = <12000000>;
62*911e3962SYannic Moog		regulator-min-microvolt = <12000000>;
63*911e3962SYannic Moog		regulator-name = "VDD_12V0";
64*911e3962SYannic Moog	};
65*911e3962SYannic Moog
66*911e3962SYannic Moog	reg_vdd_1v8: regulator-vdd-1v8 {
67*911e3962SYannic Moog		compatible = "regulator-fixed";
68*911e3962SYannic Moog		regulator-always-on;
69*911e3962SYannic Moog		regulator-boot-on;
70*911e3962SYannic Moog		regulator-max-microvolt = <1800000>;
71*911e3962SYannic Moog		regulator-min-microvolt = <1800000>;
72*911e3962SYannic Moog		regulator-name = "VDD_1V8";
73*911e3962SYannic Moog	};
74*911e3962SYannic Moog
75*911e3962SYannic Moog	reg_vdd_3v3: regulator-vdd-3v3 {
76*911e3962SYannic Moog		compatible = "regulator-fixed";
77*911e3962SYannic Moog		regulator-always-on;
78*911e3962SYannic Moog		regulator-boot-on;
79*911e3962SYannic Moog		regulator-max-microvolt = <3300000>;
80*911e3962SYannic Moog		regulator-min-microvolt = <3300000>;
81*911e3962SYannic Moog		regulator-name = "VDD_3V3";
82*911e3962SYannic Moog	};
83*911e3962SYannic Moog
84*911e3962SYannic Moog	reg_vdd_5v0: regulator-vdd-5v0 {
85*911e3962SYannic Moog		compatible = "regulator-fixed";
86*911e3962SYannic Moog		regulator-always-on;
87*911e3962SYannic Moog		regulator-boot-on;
88*911e3962SYannic Moog		regulator-max-microvolt = <5000000>;
89*911e3962SYannic Moog		regulator-min-microvolt = <5000000>;
90*911e3962SYannic Moog		regulator-name = "VDD_5V0";
91*911e3962SYannic Moog	};
92*911e3962SYannic Moog};
93*911e3962SYannic Moog
94*911e3962SYannic Moog&enetc_port0 {
95*911e3962SYannic Moog	phy-handle = <&ethphy0>;
96*911e3962SYannic Moog	status = "okay";
97*911e3962SYannic Moog};
98*911e3962SYannic Moog
99*911e3962SYannic Moog&enetc_port2 {
100*911e3962SYannic Moog	managed = "in-band-status";
101*911e3962SYannic Moog	phy-handle = <&ethphy2>;
102*911e3962SYannic Moog	phy-mode = "10gbase-r";
103*911e3962SYannic Moog};
104*911e3962SYannic Moog
105*911e3962SYannic Moog/* CAN FD */
106*911e3962SYannic Moog&flexcan1 {
107*911e3962SYannic Moog	phys = <&transceiver1>;
108*911e3962SYannic Moog	status = "okay";
109*911e3962SYannic Moog};
110*911e3962SYannic Moog
111*911e3962SYannic Moog&flexcan2 {
112*911e3962SYannic Moog	phys = <&transceiver2>;
113*911e3962SYannic Moog	status = "okay";
114*911e3962SYannic Moog};
115*911e3962SYannic Moog
116*911e3962SYannic Moog/* SPI-NOR */
117*911e3962SYannic Moog&flexspi1 {
118*911e3962SYannic Moog	pinctrl-0 = <&pinctrl_flexspi>;
119*911e3962SYannic Moog	pinctrl-names = "default";
120*911e3962SYannic Moog	status = "okay";
121*911e3962SYannic Moog
122*911e3962SYannic Moog	spi_nor: flash@0 {
123*911e3962SYannic Moog		compatible = "jedec,spi-nor";
124*911e3962SYannic Moog		reg = <0>;
125*911e3962SYannic Moog		spi-max-frequency = <166000000>;
126*911e3962SYannic Moog		spi-rx-bus-width = <4>;
127*911e3962SYannic Moog		spi-tx-bus-width = <4>;
128*911e3962SYannic Moog		vcc-supply = <&reg_vdd_1v8>;
129*911e3962SYannic Moog	};
130*911e3962SYannic Moog};
131*911e3962SYannic Moog
132*911e3962SYannic Moog&gpio2 {
133*911e3962SYannic Moog	gpio-line-names = "", "", "", "", "",
134*911e3962SYannic Moog			  "", "", "", "", "",
135*911e3962SYannic Moog			  "", "", "", "", "",
136*911e3962SYannic Moog			  "", "RGMII2_nINT", "GPIO4", "RTC_INT", "",
137*911e3962SYannic Moog			  "LVDS1_BL_EN";
138*911e3962SYannic Moog};
139*911e3962SYannic Moog
140*911e3962SYannic Moog&lpi2c1 {
141*911e3962SYannic Moog	temperature-sensor@4f {
142*911e3962SYannic Moog		compatible = "nxp,p3t1755";
143*911e3962SYannic Moog		reg = <0x4f>;
144*911e3962SYannic Moog		vs-supply = <&reg_vdd_1v8>;
145*911e3962SYannic Moog	};
146*911e3962SYannic Moog};
147*911e3962SYannic Moog
148*911e3962SYannic Moog&lpi2c3 {
149*911e3962SYannic Moog	status = "okay";
150*911e3962SYannic Moog
151*911e3962SYannic Moog	leds@62 {
152*911e3962SYannic Moog		compatible = "nxp,pca9533";
153*911e3962SYannic Moog		reg = <0x62>;
154*911e3962SYannic Moog
155*911e3962SYannic Moog		led-1 {
156*911e3962SYannic Moog			type = <PCA9532_TYPE_LED>;
157*911e3962SYannic Moog		};
158*911e3962SYannic Moog
159*911e3962SYannic Moog		led-2 {
160*911e3962SYannic Moog			type = <PCA9532_TYPE_LED>;
161*911e3962SYannic Moog		};
162*911e3962SYannic Moog
163*911e3962SYannic Moog		led-3 {
164*911e3962SYannic Moog			type = <PCA9532_TYPE_LED>;
165*911e3962SYannic Moog		};
166*911e3962SYannic Moog	};
167*911e3962SYannic Moog};
168*911e3962SYannic Moog
169*911e3962SYannic Moog&lpi2c4 {
170*911e3962SYannic Moog	status = "okay";
171*911e3962SYannic Moog
172*911e3962SYannic Moog	gpio_expander: gpio@20 {
173*911e3962SYannic Moog		compatible = "ti,tca6416";
174*911e3962SYannic Moog		reg = <0x20>;
175*911e3962SYannic Moog		interrupt-parent = <&gpio2>;
176*911e3962SYannic Moog		interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
177*911e3962SYannic Moog		#gpio-cells = <2>;
178*911e3962SYannic Moog		gpio-controller;
179*911e3962SYannic Moog		gpio-line-names = "CSI1_CTRL1", "CSI1_CTRL2", "CSI1_CTRL3",
180*911e3962SYannic Moog				  "CSI1_CTRL4", "CSI2_CTRL1", "CSI2_CTRL2",
181*911e3962SYannic Moog				  "CSI2_CTRL3", "CSI2_CTRL4", "CLK_EN_AV",
182*911e3962SYannic Moog				  "nCAN2_EN", "nCAN1_EN", "PCIE1_nWAKE",
183*911e3962SYannic Moog				  "PCIE2_nWAKE", "PCIE2_nALERT_3V3",
184*911e3962SYannic Moog				  "UART1_BT_RS_SEL", "UART1_RS232_485_SEL";
185*911e3962SYannic Moog		vcc-supply = <&reg_vdd_1v8>;
186*911e3962SYannic Moog
187*911e3962SYannic Moog		uart1_bt_rs_sel: bt-rs-hog {
188*911e3962SYannic Moog			gpios = <14 GPIO_ACTIVE_HIGH>;
189*911e3962SYannic Moog			gpio-hog;
190*911e3962SYannic Moog			line-name = "UART1_BT_RS_SEL";
191*911e3962SYannic Moog			output-low;
192*911e3962SYannic Moog		};
193*911e3962SYannic Moog	};
194*911e3962SYannic Moog};
195*911e3962SYannic Moog
196*911e3962SYannic Moog&lpi2c5 {
197*911e3962SYannic Moog	status = "okay";
198*911e3962SYannic Moog
199*911e3962SYannic Moog	eeprom@51 {
200*911e3962SYannic Moog		compatible = "atmel,24c02";
201*911e3962SYannic Moog		reg = <0x51>;
202*911e3962SYannic Moog		pagesize = <16>;
203*911e3962SYannic Moog		vcc-supply = <&reg_vdd_1v8>;
204*911e3962SYannic Moog	};
205*911e3962SYannic Moog};
206*911e3962SYannic Moog
207*911e3962SYannic Moog/* Used for M33 debug */
208*911e3962SYannic Moog&lpuart2 {
209*911e3962SYannic Moog	pinctrl-0 = <&pinctrl_lpuart2>;
210*911e3962SYannic Moog	pinctrl-names = "default";
211*911e3962SYannic Moog};
212*911e3962SYannic Moog
213*911e3962SYannic Moog/* A-55 debug UART */
214*911e3962SYannic Moog&lpuart7 {
215*911e3962SYannic Moog	status = "okay";
216*911e3962SYannic Moog};
217*911e3962SYannic Moog
218*911e3962SYannic Moog/* RS232/RS485/BT */
219*911e3962SYannic Moog&lpuart8 {
220*911e3962SYannic Moog	uart-has-rtscts;
221*911e3962SYannic Moog	status = "okay";
222*911e3962SYannic Moog};
223*911e3962SYannic Moog
224*911e3962SYannic Moog&netc_emdio { /* RGMII2 */
225*911e3962SYannic Moog	ethphy0: ethernet-phy@1 {
226*911e3962SYannic Moog		compatible = "ethernet-phy-ieee802.3-c22";
227*911e3962SYannic Moog		reg = <0x1>;
228*911e3962SYannic Moog		interrupt-parent = <&gpio2>;
229*911e3962SYannic Moog		interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
230*911e3962SYannic Moog		enet-phy-lane-no-swap;
231*911e3962SYannic Moog		ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
232*911e3962SYannic Moog		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
233*911e3962SYannic Moog		ti,rx-internal-delay = <DP83867_RGMIIDCTL_1_50_NS>;
234*911e3962SYannic Moog		ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
235*911e3962SYannic Moog	};
236*911e3962SYannic Moog
237*911e3962SYannic Moog	ethphy2: ethernet-phy@8 {
238*911e3962SYannic Moog		compatible = "ethernet-phy-ieee802.3-c45";
239*911e3962SYannic Moog		reg = <0x8>;
240*911e3962SYannic Moog		max-speed = <10000>; /* 10Gbit/s */
241*911e3962SYannic Moog		status = "disabled";
242*911e3962SYannic Moog	};
243*911e3962SYannic Moog};
244*911e3962SYannic Moog
245*911e3962SYannic Moog&pcie0 {
246*911e3962SYannic Moog	reset-gpio = <&gpio1 10 GPIO_ACTIVE_LOW>;
247*911e3962SYannic Moog	vpcie-supply = <&reg_vdd_3v3>;
248*911e3962SYannic Moog	status = "okay";
249*911e3962SYannic Moog};
250*911e3962SYannic Moog
251*911e3962SYannic Moog&pcie1 {
252*911e3962SYannic Moog	reset-gpio = <&gpio1 14 GPIO_ACTIVE_LOW>;
253*911e3962SYannic Moog	vpcie-supply = <&reg_vdd_3v3>;
254*911e3962SYannic Moog	status = "okay";
255*911e3962SYannic Moog};
256*911e3962SYannic Moog
257*911e3962SYannic Moog&rv3028 {
258*911e3962SYannic Moog	pinctrl-names = "default";
259*911e3962SYannic Moog	pinctrl-0 = <&pinctrl_rtc>;
260*911e3962SYannic Moog	interrupt-parent = <&gpio2>;
261*911e3962SYannic Moog	interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
262*911e3962SYannic Moog	aux-voltage-chargeable = <1>;
263*911e3962SYannic Moog	wakeup-source;
264*911e3962SYannic Moog	trickle-resistor-ohms = <3000>;
265*911e3962SYannic Moog};
266*911e3962SYannic Moog
267*911e3962SYannic Moog&scmi_iomuxc {
268*911e3962SYannic Moog	pinctrl_lpuart2: lpuart2grp { /* FPSC proprietary */
269*911e3962SYannic Moog		fsl,pins = <
270*911e3962SYannic Moog			IMX95_PAD_UART2_TXD__AONMIX_TOP_LPUART2_TX	0x31e
271*911e3962SYannic Moog			IMX95_PAD_UART2_RXD__AONMIX_TOP_LPUART2_RX	0x31e
272*911e3962SYannic Moog		>;
273*911e3962SYannic Moog	};
274*911e3962SYannic Moog
275*911e3962SYannic Moog	pinctrl_lvds0: lvds0grp {
276*911e3962SYannic Moog		fsl,pins = <
277*911e3962SYannic Moog			IMX95_PAD_GPIO_IO20__GPIO2_IO_BIT20	0x31e
278*911e3962SYannic Moog		>;
279*911e3962SYannic Moog	};
280*911e3962SYannic Moog
281*911e3962SYannic Moog	pinctrl_rtc: rtcgrp {
282*911e3962SYannic Moog		fsl,pins = <
283*911e3962SYannic Moog			IMX95_PAD_GPIO_IO18__GPIO2_IO_BIT18	0x31e
284*911e3962SYannic Moog		>;
285*911e3962SYannic Moog	};
286*911e3962SYannic Moog
287*911e3962SYannic Moog	pinctrl_tpm4: tpm4grp {
288*911e3962SYannic Moog		fsl,pins = <
289*911e3962SYannic Moog			IMX95_PAD_GPIO_IO21__TPM4_CH1	0x51e
290*911e3962SYannic Moog		>;
291*911e3962SYannic Moog	};
292*911e3962SYannic Moog};
293*911e3962SYannic Moog
294*911e3962SYannic Moog&tpm4 {
295*911e3962SYannic Moog	pinctrl-0 = <&pinctrl_tpm4>;
296*911e3962SYannic Moog	pinctrl-names = "default";
297*911e3962SYannic Moog};
298*911e3962SYannic Moog
299*911e3962SYannic Moog&usb3 {
300*911e3962SYannic Moog	fsl,over-current-active-low;
301*911e3962SYannic Moog	fsl,power-active-low;
302*911e3962SYannic Moog	status = "okay";
303*911e3962SYannic Moog};
304*911e3962SYannic Moog
305*911e3962SYannic Moog&usb3_dwc3 {
306*911e3962SYannic Moog	dr_mode = "peripheral";
307*911e3962SYannic Moog	status = "okay";
308*911e3962SYannic Moog};
309*911e3962SYannic Moog
310*911e3962SYannic Moog&usb3_phy {
311*911e3962SYannic Moog	vbus-supply = <&reg_vdd_5v0>;
312*911e3962SYannic Moog	status = "okay";
313*911e3962SYannic Moog};
314*911e3962SYannic Moog
315*911e3962SYannic Moog/* uSD Card */
316*911e3962SYannic Moog&usdhc2 {
317*911e3962SYannic Moog	status = "okay";
318*911e3962SYannic Moog};
319