xref: /openbmc/u-boot/arch/arm/dts/am335x-pxm2.dtsi (revision 23e8bd7e)
1/*
2 * Copyright (C) 2014 DENX Software Engineering GmbH
3 * Heiko Schocher <hs@denx.de>
4 *
5 * Based on:
6 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#include "am33xx.dtsi"
14#include <dt-bindings/input/input.h>
15
16/ {
17	chosen {
18		stdout-path = &uart0;
19		tick-timer = &timer2;
20	};
21
22	cpus {
23		cpu@0 {
24			cpu0-supply = <&vdd1_reg>;
25		};
26	};
27
28	backlight0: backlight {
29		compatible = "pwm-backlight";
30		pwms = <&ecap0 0 50000 0>;
31		brightness-levels = <0 2 5 7 10 12 15 17 20 22 25 28 30 33 35
32				     38 40 43 45 48 51 53 56 58 61 63 66 68 71
33				     73 76 79 81 84 86 89 91 94 96 99 102 104
34				     107 109 112 114 117 119 122 124 127 130
35				     132 135 137 140 142 145 147 150 153 155
36				     158 160 163 165 168 170 173 175 178 181
37				     183 186 188 191 193 196 198 201 204 206
38				     209 211 214 216 219 221 224 226 229 232
39				     234 237 239 242 244 247 249 252 255>;
40		default-brightness-level = <80>;
41		power-supply = <&backlight_reg>;
42		enable-gpios = <&gpio3 16 0>;
43	};
44
45	backlight_reg: fixedregulator0 {
46		compatible = "regulator-fixed";
47		regulator-name = "backlight_reg";
48		regulator-boot-on;
49	};
50
51	gpio_keys: restart-keys {
52		compatible = "gpio-keys";
53		autorepeat;
54
55		restart0 {
56			label = "restart";
57			linux,code = <KEY_RESTART>;
58			gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
59			gpio-key,wakeup;
60		};
61	};
62
63	leds {
64		compatible = "gpio-leds";
65
66		led_blue {
67			label = "blue";
68			gpios = <&gpio3 20 0>;
69		};
70		led_green {
71			label = "green";
72			gpios = <&gpio1 31 0>;
73		};
74		led_red {
75			label = "red";
76			gpios = <&gpio3 21 0>;
77		};
78	};
79
80	memory {
81		device_type = "memory";
82		reg = <0x80000000 0x10000000>; /* 256 MB */
83	};
84
85	reg_lcd_3v3: fixedregulator1 {
86		compatible = "regulator-gpio";
87                regulator-name = "lcd-3v3";
88		regulator-min-microvolt = <1800000>;
89                regulator-max-microvolt = <3300000>;
90		regulator-type = "voltage";
91		startup-delay-us = <100>;
92		states = <1800000 0x1
93			  2900000 0x0>;
94		enable-at-boot;
95                gpios = <&gpio3 19 0>;
96                enable-active-high;
97        };
98
99	vbat: fixedregulator2 {
100		compatible = "regulator-fixed";
101		regulator-name = "vbat";
102		regulator-min-microvolt = <5000000>;
103		regulator-max-microvolt = <5000000>;
104		regulator-boot-on;
105	};
106
107	vmmc: fixedregulator3 {
108		compatible = "regulator-fixed";
109		regulator-name = "vmmc";
110		regulator-min-microvolt = <3300000>;
111		regulator-max-microvolt = <3300000>;
112	};
113};
114
115&cppi41dma  {
116	status = "okay";
117};
118
119&cpsw_emac0 {
120	phy_id = <&davinci_mdio>, <0>;
121	phy-mode = "rgmii-txid";
122};
123
124&cpsw_emac1 {
125	phy_id = <&davinci_mdio>, <1>;
126	phy-mode = "rgmii-txid";
127};
128
129&davinci_mdio {
130	pinctrl-names = "default", "sleep";
131	pinctrl-0 = <&davinci_mdio_default>;
132	pinctrl-1 = <&davinci_mdio_sleep>;
133	status = "okay";
134};
135
136&elm {
137	status = "okay";
138};
139
140&epwmss0 {
141	status = "okay";
142
143	ecap0: ecap@48300100 {
144		status = "okay";
145		pinctrl-names = "default";
146		pinctrl-0 = <&ecap0_pins>;
147	};
148};
149
150&gpmc {
151	pinctrl-names = "default";
152	pinctrl-0 = <&nandflash_pins>;
153	status = "okay";
154
155	ranges = <0 0 0x08000000 0x10000000>;	/* CS0: NAND */
156
157	nand@0,0 {
158		reg = <0 0 0>; /* CS0, offset 0 */
159		nand-bus-width = <8>;
160		ti,nand-ecc-opt = "bch8";
161		gpmc,device-nand = "true";
162		gpmc,device-width = <1>;
163		gpmc,sync-clk-ps = <0>;
164		gpmc,cs-on-ns = <0>;
165		gpmc,cs-rd-off-ns = <44>;
166		gpmc,cs-wr-off-ns = <44>;
167		gpmc,adv-on-ns = <6>;
168		gpmc,adv-rd-off-ns = <34>;
169		gpmc,adv-wr-off-ns = <44>;
170		gpmc,we-on-ns = <0>;
171		gpmc,we-off-ns = <40>;
172		gpmc,oe-on-ns = <0>;
173		gpmc,oe-off-ns = <54>;
174		gpmc,access-ns = <64>;
175		gpmc,rd-cycle-ns = <82>;
176		gpmc,wr-cycle-ns = <82>;
177		gpmc,wait-on-read = "true";
178		gpmc,wait-on-write = "true";
179		gpmc,bus-turnaround-ns = <0>;
180		gpmc,cycle2cycle-delay-ns = <0>;
181		gpmc,clk-activation-ns = <0>;
182		gpmc,wait-monitoring-ns = <0>;
183		gpmc,wr-access-ns = <40>;
184		gpmc,wr-data-mux-bus-ns = <0>;
185
186		#address-cells = <1>;
187		#size-cells = <1>;
188		elm_id = <&elm>;
189	};
190};
191
192&i2c0 {
193	pinctrl-names = "default";
194	pinctrl-0 = <&i2c0_pins>;
195	clock-frequency = <400000>;
196	status = "okay";
197
198	tps: tps@2d {
199		reg = <0x2d>;
200	};
201	eeprom: eeprom@50 {
202		compatible = "atmel,24c128";
203		reg = <0x50>;
204		pagesize = <32>;
205	};
206};
207
208&i2c1 {
209	pinctrl-names = "default";
210	pinctrl-0 = <&i2c1_pins>;
211	clock-frequency = <100000>;
212	status = "okay";
213
214	tsl2563: tsl2563@49 {
215		compatible = "amstaos,tsl2563";
216		reg = <0x49>;
217	};
218};
219
220&i2c2 {
221	pinctrl-names = "default";
222	pinctrl-0 = <&i2c2_pins>;
223	clock-frequency = <100000>;
224	status = "okay";
225
226	egalax_ts@04 {
227		compatible = "eeti,egalax_ts";
228		reg = <0x04>;
229		interrupt-parent = <&gpio1>;
230		interrupts = <24 2>;
231		wakeup-gpios = <&gpio1 25 0>;
232	};
233};
234
235&lcdc {
236	status = "okay";
237};
238
239&mac {
240	pinctrl-names = "default", "sleep";
241	pinctrl-0 = <&cpsw_default>;
242	pinctrl-1 = <&cpsw_sleep>;
243	status = "okay";
244};
245
246&mmc1 {
247	vmmc-supply = <&vmmc>;
248	bus-width = <4>;
249	cd-gpios = <&gpio0 6 0>;
250	wp-gpios = <&gpio3 18 0>;
251	status = "okay";
252};
253
254&phy_sel {
255	rgmii-no-delay;
256};
257
258#include "tps65910.dtsi"
259
260&tps {
261	vcc1-supply = <&vbat>;
262	vcc2-supply = <&vbat>;
263	vcc3-supply = <&vbat>;
264	vcc4-supply = <&vbat>;
265	vcc5-supply = <&vbat>;
266	vcc6-supply = <&vbat>;
267	vcc7-supply = <&vbat>;
268	vccio-supply = <&vbat>;
269
270	regulators {
271		vrtc_reg: regulator@0 {
272			regulator-always-on;
273		};
274
275		vio_reg: regulator@1 {
276			regulator-always-on;
277		};
278
279		vdd1_reg: regulator@2 {
280			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
281			regulator-name = "vdd_mpu";
282			regulator-min-microvolt = <912500>;
283			regulator-max-microvolt = <1312500>;
284			regulator-boot-on;
285			regulator-always-on;
286		};
287
288		vdd2_reg: regulator@3 {
289			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
290			regulator-name = "vdd_core";
291			regulator-min-microvolt = <912500>;
292			regulator-max-microvolt = <1150000>;
293			regulator-boot-on;
294			regulator-always-on;
295		};
296
297		vdd3_reg: regulator@4 {
298			regulator-always-on;
299		};
300
301		vdig1_reg: regulator@5 {
302			regulator-always-on;
303		};
304
305		vdig2_reg: regulator@6 {
306			regulator-always-on;
307		};
308
309		vpll_reg: regulator@7 {
310			regulator-always-on;
311		};
312
313		vdac_reg: regulator@8 {
314			regulator-always-on;
315		};
316
317		vaux1_reg: regulator@9 {
318			regulator-always-on;
319		};
320
321		vaux2_reg: regulator@10 {
322			regulator-always-on;
323		};
324
325		vaux33_reg: regulator@11 {
326			regulator-always-on;
327		};
328
329		vmmc_reg: regulator@12 {
330			regulator-min-microvolt = <1800000>;
331			regulator-max-microvolt = <3300000>;
332			regulator-always-on;
333		};
334	};
335};
336
337&uart0 {
338	pinctrl-names = "default";
339	pinctrl-0 = <&uart0_pins>;
340
341	status = "okay";
342};
343
344&usb {
345	status = "okay";
346};
347
348&usb_ctrl_mod {
349	status = "okay";
350};
351
352&usb0 {
353	status = "okay";
354};
355
356&usb1 {
357	dr_mode = "host";
358	status = "okay";
359};
360
361&usb0_phy {
362	status = "okay";
363};
364
365&usb1_phy {
366	status = "okay";
367};
368
369&am33xx_pinmux {
370	pinctrl-names = "default";
371	pinctrl-0 = <&clkout2_pin &gpio_pin>;
372
373	clkout2_pin: pinmux_clkout2_pin {
374		pinctrl-single,pins = <
375			0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
376		>;
377	};
378
379	cpsw_default: cpsw_default {
380		pinctrl-single,pins = <
381			/* Slave 1 */
382			0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txen.rgmii1_tctl */
383			0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxdv.rgmii1_rctl */
384			0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd3.rgmii1_td3 */
385			0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd2.rgmii1_td2 */
386			0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd1.rgmii1_td1 */
387			0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txd0.rgmii1_td0 */
388			0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2)	/* mii1_txclk.rgmii1_tclk */
389			0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxclk.rgmii1_rclk */
390			0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd3.rgmii1_rd3 */
391			0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd2.rgmii1_rd2 */
392			0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd1.rgmii1_rd1 */
393			0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2)	/* mii1_rxd0.rgmii1_rd0 */
394		>;
395	};
396
397	cpsw_sleep: cpsw_sleep {
398		pinctrl-single,pins = <
399			/* Slave 1 reset value */
400			0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
401			0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
402			0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
403			0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
404			0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
405			0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
406			0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
407			0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
408			0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
409			0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
410			0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
411			0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
412		>;
413	};
414
415	davinci_mdio_default: davinci_mdio_default {
416		pinctrl-single,pins = <
417			/* MDIO */
418			0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
419			0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
420		>;
421	};
422
423	davinci_mdio_sleep: davinci_mdio_sleep {
424		pinctrl-single,pins = <
425			/* MDIO reset value */
426			0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
427			0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
428		>;
429	};
430
431	ecap0_pins: ecap_pins {
432		pinctrl-single,pins = <
433			0x198 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* mcasp0_axr0.gpio3_16 Backlight enable */
434			0x164 (MUX_MODE0)	/* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */
435		>;
436	};
437
438
439	gpio_pin: gpio_pin {
440		pinctrl-single,pins = <
441			0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* gpmc_a6.gpio1_22 touch reset */
442			0x60 (PIN_INPUT_PULLUP | MUX_MODE7)	/* gpmc_a8.gpio1_24 touch irq */
443			0x64 (PIN_INPUT_PULLUP | MUX_MODE7)	/* gpmc_a9.gpio1_25 touch power */
444			0x6c (PIN_INPUT_PULLUP | MUX_MODE7)	/* gpmc_a11.gpio1_27 pad14 to DFU */
445			0x21c (MUX_MODE0)	/* usb0_drvvbus */
446			0x234 (MUX_MODE0)	/* usb1_drvvbus */
447			0x1a0 (PIN_INPUT_PULLUP | MUX_MODE4)	/* mcasp0_aclkr.mmc0_sdwp */
448			0x160 (PIN_INPUT_PULLUP | MUX_MODE5)	/* spi0_cs1.mmc0_sdcd */
449		>;
450	};
451
452	i2c0_pins: pinmux_i2c0_pins {
453		pinctrl-single,pins = <
454			0x188 (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
455			0x18c (PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
456		>;
457	};
458
459	i2c1_pins: pinmux_i2c1_pins {
460		pinctrl-single,pins = <
461			0x158 (PIN_INPUT_PULLUP | MUX_MODE2)	/* spi0_d1.i2c1_sda */
462			0x15c (PIN_INPUT_PULLUP | MUX_MODE2)	/* spi0_cs0.i2c1_scl */
463		>;
464	};
465
466	i2c2_pins: pinmux_i2c2_pins {
467		pinctrl-single,pins = <
468			0x150 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2)	/* spi0_sclk.i2c2_sda */
469			0x154 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2)	/* spi0_cs0.i2c2_scl */
470		>;
471	};
472
473	lcd_pins_s0: lcd_pins_s0 {
474		pinctrl-single,pins = <
475			0x20 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad8.lcd_data23 */
476			0x24 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad9.lcd_data22 */
477			0x28 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad10.lcd_data21 */
478			0x2c (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad11.lcd_data20 */
479			0x30 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad12.lcd_data19 */
480			0x34 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad13.lcd_data18 */
481			0x38 (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad14.lcd_data17 */
482			0x3c (PIN_OUTPUT_PULLDOWN | MUX_MODE1)	/* gpmc_ad15.lcd_data16 */
483			0xa0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data0.lcd_data0 */
484			0xa4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data1.lcd_data1 */
485			0xa8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data2.lcd_data2 */
486			0xac (PIN_OUTPUT | MUX_MODE0)		/* lcd_data3.lcd_data3 */
487			0xb0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data4.lcd_data4 */
488			0xb4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data5.lcd_data5 */
489			0xb8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data6.lcd_data6 */
490			0xbc (PIN_OUTPUT | MUX_MODE0)		/* lcd_data7.lcd_data7 */
491			0xc0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data8.lcd_data8 */
492			0xc4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data9.lcd_data9 */
493			0xc8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data10.lcd_data10 */
494			0xcc (PIN_OUTPUT | MUX_MODE0)		/* lcd_data11.lcd_data11 */
495			0xd0 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data12.lcd_data12 */
496			0xd4 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data13.lcd_data13 */
497			0xd8 (PIN_OUTPUT | MUX_MODE0)		/* lcd_data14.lcd_data14 */
498			0xdc (PIN_OUTPUT | MUX_MODE0)		/* lcd_data15.lcd_data15 */
499			0xe0 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* lcd_vsync.lcd_vsync */
500			0xe4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* lcd_hsync.lcd_hsync */
501			0xe8 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* lcd_pclk.lcd_pclk */
502			0xec (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* lcd_ac_bias_en.lcd_ac_bias_en */
503			0x194 (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* mcasp0_fsx.gpio3_15 LCD enable */
504		>;
505	};
506
507	nandflash_pins: pinmux_nandflash_pins {
508		pinctrl-single,pins = <
509			0x0 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad0.gpmc_ad0 */
510			0x4 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad1.gpmc_ad1 */
511			0x8 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad2.gpmc_ad2 */
512			0xc (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad3.gpmc_ad3 */
513			0x10 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad4.gpmc_ad4 */
514			0x14 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad5.gpmc_ad5 */
515			0x18 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad6.gpmc_ad6 */
516			0x1c (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad7.gpmc_ad7 */
517			0x70 (PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_wait0.gpmc_wait0 */
518			0x74 (PIN_INPUT_PULLUP | MUX_MODE7)	/* gpmc_wpn.gpio0_30 */
519			0x7c (PIN_OUTPUT | MUX_MODE0)		/* gpmc_csn0.gpmc_csn0 */
520			0x90 (PIN_OUTPUT | MUX_MODE0)		/* gpmc_advn_ale.gpmc_advn_ale */
521			0x94 (PIN_OUTPUT | MUX_MODE0)		/* gpmc_oen_ren.gpmc_oen_ren */
522			0x98 (PIN_OUTPUT | MUX_MODE0)		/* gpmc_wen.gpmc_wen */
523			0x9c (PIN_OUTPUT | MUX_MODE0)		/* gpmc_be0n_cle.gpmc_be0n_cle */
524		>;
525	};
526
527	uart0_pins: pinmux_uart0_pins {
528		pinctrl-single,pins = <
529			0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
530			0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart0_txd.uart0_txd */
531		>;
532	};
533};
534
535&wdt2 {
536	wdt-keep-enabled;
537};
538