1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2019 Phytec Messtechnik GmbH
4 * Author: Teresa Remmet <t.remmet@phytec.de>
5 *
6 */
7
8/ {
9	model = "Phytec AM335x phyBOARD-REGOR";
10	compatible = "phytec,am335x-regor", "phytec,am335x-phycore-som", "ti,am33xx";
11
12	vcc3v3: fixedregulator@1 {
13		compatible = "regulator-fixed";
14		regulator-name = "vcc3v3";
15		regulator-min-microvolt = <3300000>;
16		regulator-max-microvolt = <3300000>;
17		regulator-boot-on;
18	};
19
20	/* User IO */
21	user_leds: user-leds {
22		compatible = "gpio-leds";
23		pinctrl-names = "default";
24		pinctrl-0 = <&user_leds_pins>;
25
26		run_stop-led {
27			gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
28			linux,default-trigger = "gpio";
29			default-state = "off";
30		};
31
32		error-led {
33			gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
34			linux,default-trigger = "gpio";
35			default-state = "off";
36		};
37	};
38};
39
40/* User Leds */
41&am33xx_pinmux {
42	user_leds_pins: pinmux-user-leds-pins {
43		pinctrl-single,pins = <
44			AM33XX_PADCONF(AM335X_PIN_LCD_VSYNC, PIN_OUTPUT_PULLDOWN, MUX_MODE7)	/* lcd_hsync.gpio2_22 */
45			AM33XX_PADCONF(AM335X_PIN_MCASP0_FSX, PIN_OUTPUT_PULLDOWN, MUX_MODE7)	/* mcasp0_fsx.gpio3_15 */
46		>;
47	};
48};
49
50/* CAN Busses */
51&am33xx_pinmux {
52	dcan1_pins: pinmux-dcan1-pins {
53		pinctrl-single,pins = <
54			AM33XX_PADCONF(AM335X_PIN_UART0_CTSN, PIN_OUTPUT_PULLUP, MUX_MODE2)	/* uart0_ctsn.d_can1_tx */
55			AM33XX_PADCONF(AM335X_PIN_UART0_RTSN, PIN_INPUT_PULLUP, MUX_MODE2)	/* uart0_rtsn.d_can1_rx */
56		>;
57	};
58};
59
60&dcan1 {
61	pinctrl-names = "default";
62	pinctrl-0 = <&dcan1_pins>;
63	status = "okay";
64};
65
66/* Ethernet */
67&am33xx_pinmux {
68	ethernet1_pins: pinmux-ethernet1-pins {
69		pinctrl-single,pins = <
70			AM33XX_PADCONF(AM335X_PIN_GPMC_A0, PIN_OUTPUT, MUX_MODE1)		/* gpmc_a0.mii2_txen */
71			AM33XX_PADCONF(AM335X_PIN_GPMC_A1, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_a1.mii2_rxdv */
72			AM33XX_PADCONF(AM335X_PIN_GPMC_A2, PIN_OUTPUT, MUX_MODE1)		/* gpmc_a2.mii2_txd3 */
73			AM33XX_PADCONF(AM335X_PIN_GPMC_A3, PIN_OUTPUT, MUX_MODE1)		/* gpmc_a3.mii2_txd2 */
74			AM33XX_PADCONF(AM335X_PIN_GPMC_A4, PIN_OUTPUT, MUX_MODE1)		/* gpmc_a4.mii2_txd1 */
75			AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT, MUX_MODE1)		/* gpmc_a5.mii2_txd0 */
76			AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_a6.mii2_txclk */
77			AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_a7.mii2_rxclk */
78			AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_a8.mii2_rxd3 */
79			AM33XX_PADCONF(AM335X_PIN_GPMC_A9, PIN_INPUT_PULLDOWN, MUX_MODE1)	 /* gpmc_a9.mii2_rxd2 */
80			AM33XX_PADCONF(AM335X_PIN_GPMC_A10, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_a10.mii2_rxd1 */
81			AM33XX_PADCONF(AM335X_PIN_GPMC_A11, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_a11.mii2_rxd0 */
82			AM33XX_PADCONF(AM335X_PIN_GPMC_WPN, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_wpn.mii2_rxerr */
83			AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_INPUT_PULLDOWN, MUX_MODE1)	/* gpmc_ben1.mii2_col */
84		>;
85	};
86};
87
88&cpsw_port2 {
89	status = "okay";
90	phy-handle = <&phy1>;
91	phy-mode = "mii";
92	ti,dual-emac-pvid = <2>;
93};
94
95&davinci_mdio_sw {
96	phy1: ethernet-phy@1 {
97		reg = <1>;
98	};
99};
100
101&mac_sw {
102	pinctrl-names = "default";
103	pinctrl-0 = <&ethernet0_pins &ethernet1_pins>;
104};
105
106/* GPIOs */
107&am33xx_pinmux {
108	pinctrl-names = "default";
109	pinctrl-0 = <&user_gpios_pins>;
110
111	user_gpios_pins: pinmux-user-gpios-pins {
112		pinctrl-single,pins = <
113			/* DIGIN 1-4 */
114			AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT, MUX_MODE7)		/* gpmc_ad11.gpio0_27 */
115			AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_INPUT, MUX_MODE7)		/* gpmc_ad10.gpio0_26 */
116			AM33XX_PADCONF(AM335X_PIN_GPMC_AD9, PIN_INPUT, MUX_MODE7)		/* gpmc_ad9.gpio0_23 */
117			AM33XX_PADCONF(AM335X_PIN_GPMC_AD8, PIN_INPUT, MUX_MODE7)		/* gpmc_ad8.gpio0_22 */
118			/* DIGOUT 1-4 */
119			AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_OUTPUT, MUX_MODE7)		/* gpmc_ad15.gpio1_15 */
120			AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_OUTPUT, MUX_MODE7)		/* gpmc_ad14.gpio1_14 */
121			AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_OUTPUT, MUX_MODE7)		/* gpmc_ad13.gpio1_13 */
122			AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_OUTPUT, MUX_MODE7)		/* gpmc_ad12.gpio1_12 */
123		>;
124	};
125};
126
127/* MMC */
128&am33xx_pinmux {
129	mmc1_pins: pinmux-mmc1-pins {
130		pinctrl-single,pins = <
131			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT_PULLUP, MUX_MODE0)
132			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT_PULLUP, MUX_MODE0)
133			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT_PULLUP, MUX_MODE0)
134			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT_PULLUP, MUX_MODE0)
135			AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT_PULLUP, MUX_MODE0)
136			AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT_PULLUP, MUX_MODE0)
137			AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT_PULLUP, MUX_MODE7)	/* spi0_cs1.mmc0_sdcd */
138		>;
139	};
140};
141
142&mmc1 {
143	vmmc-supply = <&vcc3v3>;
144	bus-width = <4>;
145	pinctrl-names = "default";
146	pinctrl-0 = <&mmc1_pins>;
147	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
148	status = "okay";
149};
150
151/* RTC */
152&i2c_rtc {
153	status = "okay";
154};
155
156/* UARTs */
157&am33xx_pinmux {
158	uart0_pins: pinmux-uart0-pins {
159		pinctrl-single,pins = <
160			AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
161			AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
162		>;
163	};
164
165	uart2_pins: pinmux-uart2-pins {
166		pinctrl-single,pins = <
167			AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_INPUT_PULLUP, MUX_MODE1)	/* mii1_tx_clk.uart2_rxd */
168			AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE1)	/* mii1_rx_clk.uart2_txd */
169		>;
170	};
171};
172
173&uart0 {
174	pinctrl-names = "default";
175	pinctrl-0 = <&uart0_pins>;
176	status = "okay";
177};
178
179&uart2 {
180	pinctrl-names = "default";
181	pinctrl-0 = <&uart2_pins>;
182	status = "okay";
183};
184
185/* RS485 - UART1 */
186&am33xx_pinmux {
187	uart1_rs485_pins: pinmux-uart1-rs485-pins {
188		pinctrl-single,pins = <
189			AM33XX_PADCONF(AM335X_PIN_UART1_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
190			AM33XX_PADCONF(AM335X_PIN_UART1_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
191			AM33XX_PADCONF(AM335X_PIN_UART1_RTSN, PIN_OUTPUT_PULLUP, MUX_MODE0)
192		>;
193	};
194};
195
196&uart1 {
197	pinctrl-names = "default";
198	pinctrl-0 = <&uart1_rs485_pins>;
199	status = "okay";
200	linux,rs485-enabled-at-boot-time;
201};
202