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