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	cpus {
11		cpu@0 {
12			cpu0-supply = <&dcdc2_reg>;
13		};
14	};
15
16	chosen {
17		stdout-path = &uart0;
18		tick-timer = &timer2;
19	};
20
21	memory {
22		device_type = "memory";
23		reg = <0x80000000 0x10000000>; /* 256 MB */
24	};
25
26	leds {
27		pinctrl-names = "default";
28		pinctrl-0 = <&user_leds_s0>;
29
30		compatible = "gpio-leds";
31
32		led@2 {
33			label = "beaglebone:green:heartbeat";
34			gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
35			linux,default-trigger = "heartbeat";
36			default-state = "off";
37		};
38
39		led@3 {
40			label = "beaglebone:green:mmc0";
41			gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
42			linux,default-trigger = "mmc0";
43			default-state = "off";
44		};
45
46		led@4 {
47			label = "beaglebone:green:usr2";
48			gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
49			linux,default-trigger = "cpu0";
50			default-state = "off";
51		};
52
53		led@5 {
54			label = "beaglebone:green:usr3";
55			gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
56			linux,default-trigger = "mmc1";
57			default-state = "off";
58		};
59	};
60
61	vmmcsd_fixed: fixedregulator@0 {
62		compatible = "regulator-fixed";
63		regulator-name = "vmmcsd_fixed";
64		regulator-min-microvolt = <3300000>;
65		regulator-max-microvolt = <3300000>;
66	};
67};
68
69&am33xx_pinmux {
70	pinctrl-names = "default";
71	pinctrl-0 = <&clkout2_pin>;
72
73	user_leds_s0: user_leds_s0 {
74		pinctrl-single,pins = <
75			0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a5.gpio1_21 */
76			0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a6.gpio1_22 */
77			0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a7.gpio1_23 */
78			0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a8.gpio1_24 */
79		>;
80	};
81
82	i2c0_pins: pinmux_i2c0_pins {
83		pinctrl-single,pins = <
84			0x188 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
85			0x18c (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
86		>;
87	};
88
89	i2c2_pins: pinmux_i2c2_pins {
90		pinctrl-single,pins = <
91			0x178 (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_ctsn.i2c2_sda */
92			0x17c (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_rtsn.i2c2_scl */
93		>;
94	};
95
96	uart0_pins: pinmux_uart0_pins {
97		pinctrl-single,pins = <
98			0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
99			0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart0_txd.uart0_txd */
100		>;
101	};
102
103	clkout2_pin: pinmux_clkout2_pin {
104		pinctrl-single,pins = <
105			0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
106		>;
107	};
108
109	cpsw_default: cpsw_default {
110		pinctrl-single,pins = <
111			/* Slave 1 */
112			0x110 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxerr.mii1_rxerr */
113			0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txen.mii1_txen */
114			0x118 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxdv.mii1_rxdv */
115			0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd3.mii1_txd3 */
116			0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd2.mii1_txd2 */
117			0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd1.mii1_txd1 */
118			0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd0.mii1_txd0 */
119			0x12c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_txclk.mii1_txclk */
120			0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxclk.mii1_rxclk */
121			0x134 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd3.mii1_rxd3 */
122			0x138 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd2.mii1_rxd2 */
123			0x13c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd1.mii1_rxd1 */
124			0x140 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd0.mii1_rxd0 */
125		>;
126	};
127
128	cpsw_sleep: cpsw_sleep {
129		pinctrl-single,pins = <
130			/* Slave 1 reset value */
131			0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
132			0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
133			0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
134			0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
135			0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
136			0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
137			0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
138			0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
139			0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
140			0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
141			0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
142			0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
143			0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
144		>;
145	};
146
147	davinci_mdio_default: davinci_mdio_default {
148		pinctrl-single,pins = <
149			/* MDIO */
150			0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
151			0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
152		>;
153	};
154
155	davinci_mdio_sleep: davinci_mdio_sleep {
156		pinctrl-single,pins = <
157			/* MDIO reset value */
158			0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
159			0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
160		>;
161	};
162
163	mmc1_pins: pinmux_mmc1_pins {
164		pinctrl-single,pins = <
165			0x160 (PIN_INPUT | MUX_MODE7) /* GPIO0_6 */
166		>;
167	};
168
169	emmc_pins: pinmux_emmc_pins {
170		pinctrl-single,pins = <
171			0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
172			0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
173			0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
174			0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
175			0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
176			0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
177			0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
178			0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
179			0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
180			0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
181		>;
182	};
183};
184
185&uart0 {
186	pinctrl-names = "default";
187	pinctrl-0 = <&uart0_pins>;
188
189	status = "okay";
190};
191
192&usb {
193	status = "okay";
194};
195
196&usb_ctrl_mod {
197	status = "okay";
198};
199
200&usb0_phy {
201	status = "okay";
202};
203
204&usb1_phy {
205	status = "okay";
206};
207
208&usb0 {
209	status = "okay";
210	dr_mode = "peripheral";
211};
212
213&usb1 {
214	status = "okay";
215	dr_mode = "host";
216};
217
218&cppi41dma  {
219	status = "okay";
220};
221
222&i2c0 {
223	pinctrl-names = "default";
224	pinctrl-0 = <&i2c0_pins>;
225
226	status = "okay";
227	clock-frequency = <400000>;
228
229	tps: tps@24 {
230		reg = <0x24>;
231	};
232
233	baseboard_eeprom: baseboard_eeprom@50 {
234		compatible = "at,24c256";
235		reg = <0x50>;
236
237		#address-cells = <1>;
238		#size-cells = <1>;
239		baseboard_data: baseboard_data@0 {
240			reg = <0 0x100>;
241		};
242	};
243};
244
245&i2c2 {
246	pinctrl-names = "default";
247	pinctrl-0 = <&i2c2_pins>;
248
249	status = "okay";
250	clock-frequency = <100000>;
251
252	cape_eeprom0: cape_eeprom0@54 {
253		compatible = "at,24c256";
254		reg = <0x54>;
255		#address-cells = <1>;
256		#size-cells = <1>;
257		cape0_data: cape_data@0 {
258			reg = <0 0x100>;
259		};
260	};
261
262	cape_eeprom1: cape_eeprom1@55 {
263		compatible = "at,24c256";
264		reg = <0x55>;
265		#address-cells = <1>;
266		#size-cells = <1>;
267		cape1_data: cape_data@0 {
268			reg = <0 0x100>;
269		};
270	};
271
272	cape_eeprom2: cape_eeprom2@56 {
273		compatible = "at,24c256";
274		reg = <0x56>;
275		#address-cells = <1>;
276		#size-cells = <1>;
277		cape2_data: cape_data@0 {
278			reg = <0 0x100>;
279		};
280	};
281
282	cape_eeprom3: cape_eeprom3@57 {
283		compatible = "at,24c256";
284		reg = <0x57>;
285		#address-cells = <1>;
286		#size-cells = <1>;
287		cape3_data: cape_data@0 {
288			reg = <0 0x100>;
289		};
290	};
291};
292
293
294/include/ "tps65217.dtsi"
295
296&tps {
297	/*
298	 * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
299	 * mode") at poweroff.  Most BeagleBone versions do not support RTC-only
300	 * mode and risk hardware damage if this mode is entered.
301	 *
302	 * For details, see linux-omap mailing list May 2015 thread
303	 *	[PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
304	 * In particular, messages:
305	 *	http://www.spinics.net/lists/linux-omap/msg118585.html
306	 *	http://www.spinics.net/lists/linux-omap/msg118615.html
307	 *
308	 * You can override this later with
309	 *	&tps {  /delete-property/ ti,pmic-shutdown-controller;  }
310	 * if you want to use RTC-only mode and made sure you are not affected
311	 * by the hardware problems. (Tip: double-check by performing a current
312	 * measurement after shutdown: it should be less than 1 mA.)
313	 */
314	ti,pmic-shutdown-controller;
315
316	regulators {
317		dcdc1_reg: regulator@0 {
318			regulator-name = "vdds_dpr";
319			regulator-always-on;
320		};
321
322		dcdc2_reg: regulator@1 {
323			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
324			regulator-name = "vdd_mpu";
325			regulator-min-microvolt = <925000>;
326			regulator-max-microvolt = <1325000>;
327			regulator-boot-on;
328			regulator-always-on;
329		};
330
331		dcdc3_reg: regulator@2 {
332			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
333			regulator-name = "vdd_core";
334			regulator-min-microvolt = <925000>;
335			regulator-max-microvolt = <1150000>;
336			regulator-boot-on;
337			regulator-always-on;
338		};
339
340		ldo1_reg: regulator@3 {
341			regulator-name = "vio,vrtc,vdds";
342			regulator-always-on;
343		};
344
345		ldo2_reg: regulator@4 {
346			regulator-name = "vdd_3v3aux";
347			regulator-always-on;
348		};
349
350		ldo3_reg: regulator@5 {
351			regulator-name = "vdd_1v8";
352			regulator-always-on;
353		};
354
355		ldo4_reg: regulator@6 {
356			regulator-name = "vdd_3v3a";
357			regulator-always-on;
358		};
359	};
360};
361
362&cpsw_emac0 {
363	phy-handle = <&ethphy0>;
364	phy-mode = "mii";
365};
366
367&mac {
368	slaves = <1>;
369	pinctrl-names = "default", "sleep";
370	pinctrl-0 = <&cpsw_default>;
371	pinctrl-1 = <&cpsw_sleep>;
372	status = "okay";
373};
374
375&davinci_mdio {
376	pinctrl-names = "default", "sleep";
377	pinctrl-0 = <&davinci_mdio_default>;
378	pinctrl-1 = <&davinci_mdio_sleep>;
379	status = "okay";
380
381	ethphy0: ethernet-phy@0 {
382		reg = <0>;
383	};
384};
385
386&mmc1 {
387	status = "okay";
388	bus-width = <0x4>;
389	pinctrl-names = "default";
390	pinctrl-0 = <&mmc1_pins>;
391	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
392};
393
394&aes {
395	status = "okay";
396};
397
398&sham {
399	status = "okay";
400};
401