1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/ {
10	model = "TI AM335x BeagleBone";
11	compatible = "ti,am335x-bone", "ti,am33xx";
12
13	chosen {
14		stdout-path = &uart0;
15	};
16
17	cpus {
18		cpu@0 {
19			cpu0-supply = <&dcdc2_reg>;
20		};
21	};
22
23	memory {
24		device_type = "memory";
25		reg = <0x80000000 0x10000000>; /* 256 MB */
26	};
27
28	am33xx_pinmux: pinmux@44e10800 {
29		pinctrl-names = "default";
30		pinctrl-0 = <&clkout2_pin>;
31
32		user_leds_s0: user_leds_s0 {
33			pinctrl-single,pins = <
34				0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a5.gpio1_21 */
35				0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a6.gpio1_22 */
36				0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a7.gpio1_23 */
37				0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a8.gpio1_24 */
38			>;
39		};
40
41		i2c0_pins: pinmux_i2c0_pins {
42			pinctrl-single,pins = <
43				0x188 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
44				0x18c (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
45			>;
46		};
47
48		uart0_pins: pinmux_uart0_pins {
49			pinctrl-single,pins = <
50				0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
51				0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart0_txd.uart0_txd */
52			>;
53		};
54
55		clkout2_pin: pinmux_clkout2_pin {
56			pinctrl-single,pins = <
57				0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
58			>;
59		};
60
61		cpsw_default: cpsw_default {
62			pinctrl-single,pins = <
63				/* Slave 1 */
64				0x110 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxerr.mii1_rxerr */
65				0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txen.mii1_txen */
66				0x118 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxdv.mii1_rxdv */
67				0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd3.mii1_txd3 */
68				0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd2.mii1_txd2 */
69				0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd1.mii1_txd1 */
70				0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd0.mii1_txd0 */
71				0x12c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_txclk.mii1_txclk */
72				0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxclk.mii1_rxclk */
73				0x134 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd3.mii1_rxd3 */
74				0x138 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd2.mii1_rxd2 */
75				0x13c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd1.mii1_rxd1 */
76				0x140 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd0.mii1_rxd0 */
77			>;
78		};
79
80		cpsw_sleep: cpsw_sleep {
81			pinctrl-single,pins = <
82				/* Slave 1 reset value */
83				0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
84				0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
85				0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
86				0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
87				0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
88				0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
89				0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
90				0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
91				0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
92				0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
93				0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
94				0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
95				0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
96			>;
97		};
98
99		davinci_mdio_default: davinci_mdio_default {
100			pinctrl-single,pins = <
101				/* MDIO */
102				0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
103				0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
104			>;
105		};
106
107		davinci_mdio_sleep: davinci_mdio_sleep {
108			pinctrl-single,pins = <
109				/* MDIO reset value */
110				0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
111				0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
112			>;
113		};
114	};
115
116	ocp {
117		uart0: serial@44e09000 {
118			pinctrl-names = "default";
119			pinctrl-0 = <&uart0_pins>;
120
121			status = "okay";
122		};
123
124		musb: usb@47400000 {
125			status = "okay";
126
127			control@44e10000 {
128				status = "okay";
129			};
130
131			usb-phy@47401300 {
132				status = "okay";
133			};
134
135			usb-phy@47401b00 {
136				status = "okay";
137			};
138
139			usb@47401000 {
140				status = "okay";
141			};
142
143			usb@47401800 {
144				status = "okay";
145				dr_mode = "host";
146			};
147
148			dma-controller@07402000  {
149				status = "okay";
150			};
151		};
152
153		i2c0: i2c@44e0b000 {
154			pinctrl-names = "default";
155			pinctrl-0 = <&i2c0_pins>;
156
157			status = "okay";
158			clock-frequency = <400000>;
159
160			tps: tps@24 {
161				reg = <0x24>;
162			};
163
164		};
165	};
166
167	leds {
168		pinctrl-names = "default";
169		pinctrl-0 = <&user_leds_s0>;
170
171		compatible = "gpio-leds";
172
173		led@2 {
174			label = "beaglebone:green:heartbeat";
175			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
176			linux,default-trigger = "heartbeat";
177			default-state = "off";
178		};
179
180		led@3 {
181			label = "beaglebone:green:mmc0";
182			gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
183			linux,default-trigger = "mmc0";
184			default-state = "off";
185		};
186
187		led@4 {
188			label = "beaglebone:green:usr2";
189			gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
190			default-state = "off";
191		};
192
193		led@5 {
194			label = "beaglebone:green:usr3";
195			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
196			default-state = "off";
197		};
198	};
199};
200
201/include/ "tps65217.dtsi"
202
203&tps {
204	regulators {
205		dcdc1_reg: regulator@0 {
206			regulator-always-on;
207		};
208
209		dcdc2_reg: regulator@1 {
210			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
211			regulator-name = "vdd_mpu";
212			regulator-min-microvolt = <925000>;
213			regulator-max-microvolt = <1325000>;
214			regulator-boot-on;
215			regulator-always-on;
216		};
217
218		dcdc3_reg: regulator@2 {
219			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
220			regulator-name = "vdd_core";
221			regulator-min-microvolt = <925000>;
222			regulator-max-microvolt = <1150000>;
223			regulator-boot-on;
224			regulator-always-on;
225		};
226
227		ldo1_reg: regulator@3 {
228			regulator-always-on;
229		};
230
231		ldo2_reg: regulator@4 {
232			regulator-always-on;
233		};
234
235		ldo3_reg: regulator@5 {
236			regulator-always-on;
237		};
238
239		ldo4_reg: regulator@6 {
240			regulator-always-on;
241		};
242	};
243};
244
245&cpsw_emac0 {
246	phy_id = <&davinci_mdio>, <0>;
247	phy-mode = "mii";
248};
249
250&cpsw_emac1 {
251	phy_id = <&davinci_mdio>, <1>;
252	phy-mode = "mii";
253};
254
255&mac {
256	pinctrl-names = "default", "sleep";
257	pinctrl-0 = <&cpsw_default>;
258	pinctrl-1 = <&cpsw_sleep>;
259
260};
261
262&davinci_mdio {
263	pinctrl-names = "default", "sleep";
264	pinctrl-0 = <&davinci_mdio_default>;
265	pinctrl-1 = <&davinci_mdio_sleep>;
266};
267