summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts/st/stm32mp153c-lxa-fairytux2-gen1.dts
blob: 3a0e84262424313ab102c907d22695b8f8eb758b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
 * Copyright (C) 2024 Leonard Göhrs, Pengutronix
 */

/dts-v1/;

#include "stm32mp153c-lxa-fairytux2.dtsi"

/ {
	model = "Linux Automation GmbH FairyTux 2 Gen 1";
	compatible = "lxa,stm32mp153c-fairytux2-gen1", "oct,stm32mp153x-osd32", "st,stm32mp153";

	gpio-keys {
		compatible = "gpio-keys";

		button-left {
			label = "USER_BTN1";
			linux,code = <KEY_ESC>;
			gpios = <&gpioi 11 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
		};

		button-right {
			label = "USER_BTN2";
			linux,code = <KEY_HOME>;
			gpios = <&gpioe 9 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
		};
	};
};

&gpiof {
	gpio-line-names = "GPIO1", "GPIO2", "", "", "",			/*  0 */
			  "", "", "", "", "",				/*  5 */
			  "", "", "", "", "",				/* 10 */
			  "";						/* 15 */
};

&gpioh {
	gpio-line-names = "", "", "", "", "LCD_RESET",			/*  0 */
			  "", "", "", "", "",				/*  5 */
			  "", "", "", "GPIO3", "",			/* 10 */
			  "";						/* 15 */
};

&gpioi {
	gpio-line-names = "", "", "", "", "",				/*  0 */
			  "", "", "", "ETH_", "",			/*  5 */
			  "", "USER_BTN1";				/* 10 */
};

&i2c1 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&i2c1_pins_b>;
	pinctrl-1 = <&i2c1_sleep_pins_b>;
	status = "okay";

	io_board_gpio: gpio@20 {
		compatible = "ti,tca6408";
		reg = <0x20>;
		gpio-controller;
		#gpio-cells = <2>;
		vcc-supply = <&v3v3_hdmi>;
		gpio-line-names = "LED1_GA_YK", "LED2_GA_YK", "LED1_GK_YA", "LED2_GK_YA",
				  "RS485_EN", "RS485_120R", "", "CAN_120R";
	};
};

&led_controller_io {
	/*
	 * led-2 and led-3 are internally connected antiparallel to one
	 * another inside the ethernet jack like this:
	 * GPIO1 ---+---|led-2|>--+--- GPIO3
	 *          +--<|led-3|---+
	 * E.g. only one of the LEDs can be illuminated at a time while
	 * the other output must be driven low.
	 * This should likely be implemented using a multi color LED
	 * driver for antiparallel LEDs.
	 */
	led-2 {
		color = <LED_COLOR_ID_GREEN>;
		function = LED_FUNCTION_ACTIVITY;
		gpios = <&io_board_gpio 1 GPIO_ACTIVE_HIGH>;
	};

	led-3 {
		color = <LED_COLOR_ID_ORANGE>;
		function = LED_FUNCTION_ACTIVITY;
		gpios = <&io_board_gpio 3 GPIO_ACTIVE_HIGH>;
	};
};

&usart3 {
	/*
	 * On Gen 1 FairyTux 2 only RTS can be used and not CTS as well,
	 * Because pins PD11 (CTS) and PI11 (USER_BTN1) share the same
	 * interrupt and only one of them can be used at a time.
	 */
	rts-gpios = <&gpiod 12 GPIO_ACTIVE_LOW>;
};

&usbotg_hs {
	dr_mode = "peripheral";
};