1/*
2 * Device Tree for the ST-Ericsson Nomadik S8815 board
3 * Produced by Calao Systems
4 */
5
6/dts-v1/;
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/gpio/gpio.h>
9#include "ste-nomadik-stn8815.dtsi"
10
11/ {
12	model = "Nomadik STN8815NHK";
13	compatible = "st,nomadik-nhk-15";
14
15	chosen {
16		bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
17	};
18
19	aliases {
20		serial0 = &uart0;
21		serial1 = &uart1;
22		stmpe-i2c0 = &stmpe0;
23		stmpe-i2c1 = &stmpe1;
24	};
25
26	pinctrl {
27		uart0 {
28			uart0_nhk_mode: uart0_mux {
29				u0_default_mux {
30					function = "u0";
31					groups = "u0txrx_a_1", "u0ctsrts_a_1";
32				};
33			};
34		};
35
36		stmpe2401_1 {
37			stmpe2401_1_nhk_mode: stmpe2401_1_nhk {
38				nhk_cfg1 {
39					pins = "GPIO76_B20"; // IRQ line
40					ste,input = <0>;
41				};
42				nhk_cfg2 {
43					pins = "GPIO77_B8"; // reset line
44					ste,output = <1>;
45				};
46			};
47		};
48		stmpe2401_2 {
49			stmpe2401_2_nhk_mode: stmpe2401_2_nhk {
50				nhk_cfg1 {
51					pins = "GPIO78_A8"; // IRQ line
52					ste,input = <0>;
53				};
54				nhk_cfg2 {
55					pins = "GPIO79_C9"; // reset line
56					ste,output = <1>;
57				};
58			};
59		};
60	};
61
62	src@101e0000 {
63		/* These chrystal outputs are not used on this board */
64		disable-sxtalo;
65		disable-mxtalo;
66	};
67
68	/* This is where the interrupt is routed on the NHK-15 debug board */
69	external-bus@34000000 {
70		compatible = "simple-bus";
71		reg = <0x34000000 0x1000000>;
72		#address-cells = <1>;
73		#size-cells = <1>;
74		ranges = <0 0x34000000 0x1000000>;
75		ethernet@300 {
76			compatible = "smsc,lan91c111";
77			reg = <0x300 0x0fd00>;
78			reg-io-width = <2>;
79			reset-gpios = <&stmpe_gpio44 10 GPIO_ACTIVE_HIGH>;
80			interrupt-parent = <&stmpe_gpio44>;
81			interrupts = <11 IRQ_TYPE_EDGE_RISING>;
82		};
83	};
84
85	i2c0 {
86		lis3lv02dl@1d {
87			/* Accelerometer */
88			compatible = "st,lis3lv02dl-accel";
89			reg = <0x1d>;
90		};
91		stmpe0: stmpe2401@43 {
92			compatible = "st,stmpe2401";
93			reg = <0x43>;
94			reset-gpios = <&gpio2 13 GPIO_ACTIVE_LOW>; // GPIO77
95			interrupts = <12 IRQ_TYPE_EDGE_FALLING>; // GPIO76
96			interrupt-parent = <&gpio2>;
97			interrupt-controller;
98			wakeup-source;
99			pinctrl-names = "default";
100			pinctrl-0 = <&stmpe2401_1_nhk_mode>;
101			stmpe_gpio43: stmpe_gpio {
102				compatible = "st,stmpe-gpio";
103				gpio-controller;
104				#gpio-cells = <2>;
105				interrupt-controller;
106				#interrupt-cells = <2>;
107				/* Some pins in alternate functions */
108				st,norequest-mask = <0xf0f002>;
109			};
110			stmpe_keypad {
111				compatible = "st,stmpe-keypad";
112				debounce-interval = <64>;
113				st,scan-count = <8>;
114				st,no-autorepeat;
115				keypad,num-rows = <8>;
116				keypad,num-columns = <8>;
117				linux,keymap = <0x00020072 // Vol down
118						0x00030073 // Vol up
119						0x0100009e // Back
120						0x010100e3 // TV out
121						0x01020098 // Lock
122						0x0103013b // Start
123						0x020000a3 // Next
124						0x020100a4 // Play
125						0x020200a5 // Prev
126						0x02030160 // OK
127						0x03000069 // Left
128						0x0301006a // Right
129						0x03020067 // Up
130						0x0303006c>; // Down
131			};
132		};
133		stmpe1: stmpe2401@44 {
134			compatible = "st,stmpe2401";
135			reg = <0x44>;
136			reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; // GPIO79
137			interrupts = <14 IRQ_TYPE_EDGE_FALLING>; // GPIO78
138			interrupt-parent = <&gpio2>;
139			interrupt-controller;
140			wakeup-source;
141			pinctrl-names = "default";
142			pinctrl-0 = <&stmpe2401_2_nhk_mode>;
143			stmpe_gpio44: stmpe_gpio {
144				compatible = "st,stmpe-gpio";
145				gpio-controller;
146				#gpio-cells = <2>;
147				interrupt-controller;
148				#interrupt-cells = <2>;
149				/*
150				 * This will turn off SATA so that MMC/SD
151				 * can thrive
152				 */
153				mmcsd-gpio {
154					gpio-hog;
155					gpios = <2 0x0>;
156					output-low;
157					line-name = "SATA EN";
158				};
159			};
160		};
161	};
162
163	amba {
164		/* Activate RX/TX and CTS/RTS on UART 0 */
165		uart0: uart@101fd000 {
166			pinctrl-names = "default";
167			pinctrl-0 = <&uart0_nhk_mode>;
168			status = "okay";
169		};
170		mmcsd: sdi@101f6000 {
171			cd-gpios = <&stmpe_gpio44 7 GPIO_ACTIVE_LOW>;
172			wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
173		};
174	};
175};
176