1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2015 Jablotron s.r.o. -- https://www.jablotron.com/
4 * Author: Rostislav Lisovy <lisovy@jablotron.cz>
5 */
6/dts-v1/;
7#include "am335x-chilisom.dtsi"
8
9/ {
10	model = "AM335x Chiliboard";
11	compatible = "grinn,am335x-chiliboard", "grinn,am335x-chilisom",
12		     "ti,am33xx";
13
14	chosen {
15		stdout-path = &uart0;
16	};
17
18	leds {
19		compatible = "gpio-leds";
20		pinctrl-names = "default";
21		pinctrl-0 = <&led_gpio_pins>;
22
23		led0 {
24			label = "led0";
25			gpios = <&gpio3 7 GPIO_ACTIVE_LOW>;
26			default-state = "keep";
27			linux,default-trigger = "heartbeat";
28		};
29
30		led1 {
31			label = "led1";
32			gpios = <&gpio3 8 GPIO_ACTIVE_LOW>;
33			default-state = "keep";
34		};
35	};
36};
37
38&am33xx_pinmux {
39	uart0_pins: pinmux_uart0_pins {
40		pinctrl-single,pins = <
41			AM33XX_PADCONF(AM335X_PIN_UART0_RXD, PIN_INPUT_PULLUP, MUX_MODE0)
42			AM33XX_PADCONF(AM335X_PIN_UART0_TXD, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
43		>;
44	};
45
46	cpsw_default: cpsw_default {
47		pinctrl-single,pins = <
48			/* Slave 1 */
49			AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE1)
50			AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLUP, MUX_MODE1)
51			AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
52			AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
53			AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_OUTPUT_PULLDOWN, MUX_MODE1)
54			AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE1)
55			AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLUP, MUX_MODE1)
56			AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE0)
57		>;
58	};
59
60	cpsw_sleep: cpsw_sleep {
61		pinctrl-single,pins = <
62			/* Slave 1 reset value */
63			AM33XX_PADCONF(AM335X_PIN_MII1_CRS, PIN_INPUT_PULLDOWN, MUX_MODE7)
64			AM33XX_PADCONF(AM335X_PIN_MII1_RX_ER, PIN_INPUT_PULLDOWN, MUX_MODE7)
65			AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLDOWN, MUX_MODE7)
66			AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_INPUT_PULLDOWN, MUX_MODE7)
67			AM33XX_PADCONF(AM335X_PIN_MII1_TXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)
68			AM33XX_PADCONF(AM335X_PIN_MII1_TXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)
69			AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLDOWN, MUX_MODE7)
70			AM33XX_PADCONF(AM335X_PIN_MII1_RXD0, PIN_INPUT_PULLDOWN, MUX_MODE7)
71			AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7)
72		>;
73	};
74
75	davinci_mdio_default: davinci_mdio_default {
76		pinctrl-single,pins = <
77			/* mdio_data.mdio_data */
78			AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLUP | SLEWCTRL_FAST, MUX_MODE0)
79			/* mdio_clk.mdio_clk */
80			AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLUP, MUX_MODE0)
81		>;
82	};
83
84	davinci_mdio_sleep: davinci_mdio_sleep {
85		pinctrl-single,pins = <
86			/* MDIO reset value */
87			AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT_PULLDOWN, MUX_MODE7)
88			AM33XX_PADCONF(AM335X_PIN_MDC, PIN_INPUT_PULLDOWN, MUX_MODE7)
89		>;
90	};
91
92	usb1_drvvbus: usb1_drvvbus {
93		pinctrl-single,pins = <
94			AM33XX_PADCONF(AM335X_PIN_USB1_DRVVBUS, PIN_OUTPUT_PULLDOWN, MUX_MODE0)
95		>;
96	};
97
98	sd_pins: pinmux_sd_card {
99		pinctrl-single,pins = <
100			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT3, PIN_INPUT, MUX_MODE0)
101			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT2, PIN_INPUT, MUX_MODE0)
102			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT1, PIN_INPUT, MUX_MODE0)
103			AM33XX_PADCONF(AM335X_PIN_MMC0_DAT0, PIN_INPUT, MUX_MODE0)
104			AM33XX_PADCONF(AM335X_PIN_MMC0_CLK, PIN_INPUT, MUX_MODE0)
105			AM33XX_PADCONF(AM335X_PIN_MMC0_CMD, PIN_INPUT, MUX_MODE0)
106			AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, PIN_INPUT, MUX_MODE7) /* spi0_cs1.gpio0_6 */
107		>;
108	};
109
110	led_gpio_pins: led_gpio_pins {
111		pinctrl-single,pins = <
112			AM33XX_PADCONF(AM335X_PIN_EMU0, PIN_OUTPUT, MUX_MODE7) /* emu0.gpio3_7 */
113			AM33XX_PADCONF(AM335X_PIN_EMU1, PIN_OUTPUT, MUX_MODE7) /* emu1.gpio3_8 */
114		>;
115	};
116};
117
118&uart0 {
119	pinctrl-names = "default";
120	pinctrl-0 = <&uart0_pins>;
121
122	status = "okay";
123};
124
125&ldo4_reg {
126	regulator-min-microvolt = <3300000>;
127	regulator-max-microvolt = <3300000>;
128};
129
130/* Ethernet */
131&mac {
132	slaves = <1>;
133	pinctrl-names = "default", "sleep";
134	pinctrl-0 = <&cpsw_default>;
135	pinctrl-1 = <&cpsw_sleep>;
136	status = "okay";
137};
138
139&davinci_mdio {
140	pinctrl-names = "default", "sleep";
141	pinctrl-0 = <&davinci_mdio_default>;
142	pinctrl-1 = <&davinci_mdio_sleep>;
143	status = "okay";
144
145	ethphy0: ethernet-phy@0 {
146		reg = <0>;
147	};
148};
149
150&cpsw_emac0 {
151	phy-handle = <&ethphy0>;
152	phy-mode = "rmii";
153};
154
155/* USB */
156&usb1 {
157	pinctrl-names = "default";
158	pinctrl-0 = <&usb1_drvvbus>;
159	dr_mode = "host";
160};
161
162/* microSD */
163&mmc1 {
164	pinctrl-names = "default";
165	pinctrl-0 = <&sd_pins>;
166	vmmc-supply = <&ldo4_reg>;
167	bus-width = <0x4>;
168	cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
169	status = "okay";
170};
171
172&tps {
173	interrupt-parent = <&intc>;
174	interrupts = <7>; /* NNMI */
175
176	charger {
177		status = "okay";
178	};
179
180	pwrbutton {
181		status = "okay";
182	};
183};
184