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 "ste-nomadik-stn8815.dtsi"
9
10/ {
11	model = "Calao Systems USB-S8815";
12	compatible = "calaosystems,usb-s8815";
13
14	chosen {
15		bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
16	};
17
18	aliases {
19		serial0 = &uart0;
20		serial1 = &uart1;
21	};
22
23	gpio3: gpio@101e7000 {
24		/* This hog will bias the MMC/SD card detect line */
25		mmcsd-gpio {
26			gpio-hog;
27			gpios = <16 0x0>;
28			output-low;
29			line-name = "card detect bias";
30		};
31	};
32
33	src@101e0000 {
34		/* These chrystal drivers are not used on this board */
35		disable-sxtalo;
36		disable-mxtalo;
37	};
38
39	pinctrl {
40		/* Hog CD pins */
41		pinctrl-names = "default";
42		pinctrl-0 = <&cd_default_mode>;
43
44		uart0 {
45			/* Only use RX/TX pins */
46			uart0_s8815_mode: uart0_mux {
47				u0_default_mux {
48					function = "u0";
49					groups = "u0txrx_a_1";
50				};
51			};
52		};
53		mmcsd-cd {
54			cd_default_mode: cd_default {
55				cd_default_cfg1 {
56					/* CD input GPIO */
57					pins = "GPIO111_H21";
58					ste,input = <0>;
59				};
60				cd_default_cfg2 {
61					/* CD GPIO biasing */
62					pins = "GPIO112_J21";
63					ste,output = <0>;
64				};
65			};
66		};
67		gpioi2c {
68			gpioi2c_default_mode: gpioi2c_default {
69				gpioi2c_default_cfg {
70					pins = "GPIO73_C21", "GPIO74_C20";
71					ste,input = <0>;
72				};
73			};
74		};
75		user-led {
76			user_led_default_mode: user_led_default {
77				user_led_default_cfg {
78					pins = "GPIO2_C5";
79					ste,output = <1>;
80				};
81			};
82		};
83		user-button {
84			user_button_default_mode: user_button_default {
85				user_button_default_cfg {
86					pins = "GPIO3_A4";
87					ste,input = <0>;
88				};
89			};
90		};
91	};
92
93	/* Ethernet */
94	external-bus@34000000 {
95		compatible = "simple-bus";
96		reg = <0x34000000 0x1000000>;
97		#address-cells = <1>;
98		#size-cells = <1>;
99		ranges = <0 0x34000000 0x1000000>;
100		ethernet@300 {
101			compatible = "smsc,lan91c111";
102			reg = <0x300 0x0fd00>;
103			interrupt-parent = <&gpio3>;
104			interrupts = <8 IRQ_TYPE_EDGE_RISING>;
105		};
106	};
107
108	i2c1 {
109		lis3lv02dl@1d {
110			/* Accelerometer */
111			compatible = "st,lis3lv02dl-accel";
112			reg = <0x1d>;
113		};
114	};
115
116	/* GPIO I2C connected to the USB portions of the STw4811 only */
117	gpio-i2c {
118		compatible = "i2c-gpio";
119		gpios = <&gpio2 10 0>, /* sda */
120			<&gpio2 9 0>; /* scl */
121		#address-cells = <1>;
122		#size-cells = <0>;
123		pinctrl-names = "default";
124		pinctrl-0 = <&gpioi2c_default_mode>;
125
126		stw4811@2d {
127			   compatible = "st,stw4811-usb";
128			   reg = <0x2d>;
129		};
130	};
131
132
133	amba {
134		/* Activate RXTX on UART 0 */
135		uart0: uart@101fd000 {
136			pinctrl-names = "default";
137			pinctrl-0 = <&uart0_s8815_mode>;
138			status = "okay";
139		};
140		/* Configure card detect for the uSD slot */
141		mmcsd: sdi@101f6000 {
142			cd-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
143		};
144	};
145
146	/* The user LED on the board is set up to be used for heartbeat */
147	leds {
148		compatible = "gpio-leds";
149		user-led {
150			label = "user_led";
151			gpios = <&gpio0 2 0x1>;
152			default-state = "off";
153			linux,default-trigger = "heartbeat";
154			pinctrl-names = "default";
155			pinctrl-0 = <&user_led_default_mode>;
156		};
157	};
158
159	/* User key mapped in as "escape" */
160	gpio-keys {
161		compatible = "gpio-keys";
162		user-button {
163			label = "user_button";
164			gpios = <&gpio0 3 0x1>;
165			linux,code = <1>; /* KEY_ESC */
166			gpio-key,wakeup;
167			pinctrl-names = "default";
168			pinctrl-0 = <&user_button_default_mode>;
169		};
170	};
171};
172