xref: /linux/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen2.dts (revision 2f24482304ebd32c5aa374f31465b9941a860b92)
1*8c6d469fSLeonard Göhrs// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2*8c6d469fSLeonard Göhrs/*
3*8c6d469fSLeonard Göhrs * Copyright (C) 2024 Leonard Göhrs, Pengutronix
4*8c6d469fSLeonard Göhrs */
5*8c6d469fSLeonard Göhrs
6*8c6d469fSLeonard Göhrs/dts-v1/;
7*8c6d469fSLeonard Göhrs
8*8c6d469fSLeonard Göhrs#include "stm32mp153c-lxa-fairytux2.dtsi"
9*8c6d469fSLeonard Göhrs
10*8c6d469fSLeonard Göhrs/ {
11*8c6d469fSLeonard Göhrs	model = "Linux Automation GmbH FairyTux 2 Gen 2";
12*8c6d469fSLeonard Göhrs	compatible = "lxa,stm32mp153c-fairytux2-gen2", "oct,stm32mp153x-osd32", "st,stm32mp153";
13*8c6d469fSLeonard Göhrs
14*8c6d469fSLeonard Göhrs	gpio-keys {
15*8c6d469fSLeonard Göhrs		compatible = "gpio-keys";
16*8c6d469fSLeonard Göhrs
17*8c6d469fSLeonard Göhrs		button-left {
18*8c6d469fSLeonard Göhrs			label = "USER_BTN1";
19*8c6d469fSLeonard Göhrs			linux,code = <KEY_ESC>;
20*8c6d469fSLeonard Göhrs			gpios = <&gpioi 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
21*8c6d469fSLeonard Göhrs		};
22*8c6d469fSLeonard Göhrs
23*8c6d469fSLeonard Göhrs		button-right {
24*8c6d469fSLeonard Göhrs			label = "USER_BTN2";
25*8c6d469fSLeonard Göhrs			linux,code = <KEY_HOME>;
26*8c6d469fSLeonard Göhrs			gpios = <&gpioe 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
27*8c6d469fSLeonard Göhrs		};
28*8c6d469fSLeonard Göhrs	};
29*8c6d469fSLeonard Göhrs};
30*8c6d469fSLeonard Göhrs
31*8c6d469fSLeonard Göhrs&gpiof {
32*8c6d469fSLeonard Göhrs	gpio-line-names = "", "", "", "", "",				/*  0 */
33*8c6d469fSLeonard Göhrs			  "", "", "", "", "",				/*  5 */
34*8c6d469fSLeonard Göhrs			  "", "", "", "", "",				/* 10 */
35*8c6d469fSLeonard Göhrs			  "";						/* 15 */
36*8c6d469fSLeonard Göhrs};
37*8c6d469fSLeonard Göhrs
38*8c6d469fSLeonard Göhrs&gpioh {
39*8c6d469fSLeonard Göhrs	gpio-line-names = "", "", "", "", "LCD_RESET",			/*  0 */
40*8c6d469fSLeonard Göhrs			  "", "", "", "", "",				/*  5 */
41*8c6d469fSLeonard Göhrs			  "", "", "GPIO1", "GPIO_INT", "",		/* 10 */
42*8c6d469fSLeonard Göhrs			  "";						/* 15 */
43*8c6d469fSLeonard Göhrs};
44*8c6d469fSLeonard Göhrs
45*8c6d469fSLeonard Göhrs&gpioi {
46*8c6d469fSLeonard Göhrs	gpio-line-names = "GPIO2", "", "", "", "",			/*  0 */
47*8c6d469fSLeonard Göhrs			  "", "", "", "ETH_", "",			/*  5 */
48*8c6d469fSLeonard Göhrs			  "", "USER_BTN1";				/* 10 */
49*8c6d469fSLeonard Göhrs};
50*8c6d469fSLeonard Göhrs
51*8c6d469fSLeonard Göhrs&i2c1 {
52*8c6d469fSLeonard Göhrs	pinctrl-names = "default", "sleep";
53*8c6d469fSLeonard Göhrs	pinctrl-0 = <&i2c1_pins_b>;
54*8c6d469fSLeonard Göhrs	pinctrl-1 = <&i2c1_sleep_pins_b>;
55*8c6d469fSLeonard Göhrs	status = "okay";
56*8c6d469fSLeonard Göhrs
57*8c6d469fSLeonard Göhrs	io_board_gpio: gpio@20 {
58*8c6d469fSLeonard Göhrs		compatible = "ti,tca6408";
59*8c6d469fSLeonard Göhrs		reg = <0x20>;
60*8c6d469fSLeonard Göhrs		gpio-controller;
61*8c6d469fSLeonard Göhrs		#gpio-cells = <2>;
62*8c6d469fSLeonard Göhrs		interrupt-parent = <&gpioh>;
63*8c6d469fSLeonard Göhrs		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
64*8c6d469fSLeonard Göhrs		interrupt-controller;
65*8c6d469fSLeonard Göhrs		pinctrl-names = "default";
66*8c6d469fSLeonard Göhrs		pinctrl-0 = <&board_tca6408_pins>;
67*8c6d469fSLeonard Göhrs		#interrupt-cells = <2>;
68*8c6d469fSLeonard Göhrs		vcc-supply = <&v3v3_hdmi>;
69*8c6d469fSLeonard Göhrs		gpio-line-names = "LED1_GA_YK", "LED2_GA_YK", "LED1_GK_YA", "USB_CC_ALERT",
70*8c6d469fSLeonard Göhrs				  "RS485_EN", "RS485_120R", "USB_CC_RESET", "CAN_120R";
71*8c6d469fSLeonard Göhrs	};
72*8c6d469fSLeonard Göhrs
73*8c6d469fSLeonard Göhrs	usb_c: typec@28 {
74*8c6d469fSLeonard Göhrs		compatible = "st,stusb1600";
75*8c6d469fSLeonard Göhrs		reg = <0x28>;
76*8c6d469fSLeonard Göhrs		interrupt-parent = <&io_board_gpio>;
77*8c6d469fSLeonard Göhrs		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
78*8c6d469fSLeonard Göhrs		vdd-supply = <&reg_5v>;
79*8c6d469fSLeonard Göhrs		vsys-supply = <&v3v3_hdmi>;
80*8c6d469fSLeonard Göhrs
81*8c6d469fSLeonard Göhrs		connector {
82*8c6d469fSLeonard Göhrs			compatible = "usb-c-connector";
83*8c6d469fSLeonard Göhrs			label = "USB-C";
84*8c6d469fSLeonard Göhrs			power-role = "dual";
85*8c6d469fSLeonard Göhrs			typec-power-opmode = "default";
86*8c6d469fSLeonard Göhrs
87*8c6d469fSLeonard Göhrs			port {
88*8c6d469fSLeonard Göhrs				con_usbotg_hs_ep: endpoint {
89*8c6d469fSLeonard Göhrs					remote-endpoint = <&usbotg_hs_ep>;
90*8c6d469fSLeonard Göhrs				};
91*8c6d469fSLeonard Göhrs			};
92*8c6d469fSLeonard Göhrs		};
93*8c6d469fSLeonard Göhrs	};
94*8c6d469fSLeonard Göhrs
95*8c6d469fSLeonard Göhrs	temperature-sensor@48 {
96*8c6d469fSLeonard Göhrs		compatible = "national,lm75a";
97*8c6d469fSLeonard Göhrs		reg = <0x48>;
98*8c6d469fSLeonard Göhrs		/*
99*8c6d469fSLeonard Göhrs		 * The sensor itself is powered by a voltage divider from the
100*8c6d469fSLeonard Göhrs		 * always-on 5V supply.
101*8c6d469fSLeonard Göhrs		 * The required pull-up resistors however are on v3v3_hdmi.
102*8c6d469fSLeonard Göhrs		 */
103*8c6d469fSLeonard Göhrs		vs-supply = <&v3v3_hdmi>;
104*8c6d469fSLeonard Göhrs	};
105*8c6d469fSLeonard Göhrs
106*8c6d469fSLeonard Göhrs	io_board_eeprom: eeprom@56 {
107*8c6d469fSLeonard Göhrs		compatible = "atmel,24c04";
108*8c6d469fSLeonard Göhrs		reg = <0x56>;
109*8c6d469fSLeonard Göhrs		vcc-supply = <&v3v3_hdmi>;
110*8c6d469fSLeonard Göhrs	};
111*8c6d469fSLeonard Göhrs};
112*8c6d469fSLeonard Göhrs
113*8c6d469fSLeonard Göhrs&rtc {
114*8c6d469fSLeonard Göhrs	status = "okay";
115*8c6d469fSLeonard Göhrs};
116*8c6d469fSLeonard Göhrs
117*8c6d469fSLeonard Göhrs&led_controller_io {
118*8c6d469fSLeonard Göhrs	led-2 {
119*8c6d469fSLeonard Göhrs		color = <LED_COLOR_ID_ORANGE>;
120*8c6d469fSLeonard Göhrs		function = LED_FUNCTION_ACTIVITY;
121*8c6d469fSLeonard Göhrs		gpios = <&io_board_gpio 1 GPIO_ACTIVE_LOW>;
122*8c6d469fSLeonard Göhrs	};
123*8c6d469fSLeonard Göhrs};
124*8c6d469fSLeonard Göhrs
125*8c6d469fSLeonard Göhrs&usart3 {
126*8c6d469fSLeonard Göhrs	rts-gpios = <&gpiod 12 GPIO_ACTIVE_LOW>;
127*8c6d469fSLeonard Göhrs	cts-gpios = <&gpiod 11 GPIO_ACTIVE_LOW>;
128*8c6d469fSLeonard Göhrs};
129*8c6d469fSLeonard Göhrs
130*8c6d469fSLeonard Göhrs&usbotg_hs {
131*8c6d469fSLeonard Göhrs	usb-role-switch;
132*8c6d469fSLeonard Göhrs
133*8c6d469fSLeonard Göhrs	port {
134*8c6d469fSLeonard Göhrs		usbotg_hs_ep: endpoint {
135*8c6d469fSLeonard Göhrs			remote-endpoint = <&con_usbotg_hs_ep>;
136*8c6d469fSLeonard Göhrs		};
137*8c6d469fSLeonard Göhrs	};
138*8c6d469fSLeonard Göhrs};
139*8c6d469fSLeonard Göhrs
140*8c6d469fSLeonard Göhrs&pinctrl {
141*8c6d469fSLeonard Göhrs	board_tca6408_pins: stusb1600-0 {
142*8c6d469fSLeonard Göhrs		pins {
143*8c6d469fSLeonard Göhrs			pinmux = <STM32_PINMUX('H', 13, GPIO)>;
144*8c6d469fSLeonard Göhrs			bias-pull-up;
145*8c6d469fSLeonard Göhrs		};
146*8c6d469fSLeonard Göhrs	};
147*8c6d469fSLeonard Göhrs};
148