1/*
2 * at91sam9n12ek.dts - Device Tree file for AT91SAM9N12-EK board
3 *
4 *  Copyright (C) 2012 Atmel,
5 *                2012 Hong Xu <hong.xu@atmel.com>
6 *
7 * Licensed under GPLv2 or later.
8 */
9/dts-v1/;
10#include "at91sam9n12.dtsi"
11
12/ {
13	model = "Atmel AT91SAM9N12-EK";
14	compatible = "atmel,at91sam9n12ek", "atmel,at91sam9n12", "atmel,at91sam9";
15
16	chosen {
17		bootargs = "console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2";
18	};
19
20	memory {
21		reg = <0x20000000 0x8000000>;
22	};
23
24	clocks {
25		#address-cells = <1>;
26		#size-cells = <1>;
27		ranges;
28
29		main_clock: clock@0 {
30			compatible = "atmel,osc", "fixed-clock";
31			clock-frequency = <16000000>;
32		};
33
34		slow_xtal {
35			clock-frequency = <32768>;
36		};
37
38		main_xtal {
39			clock-frequency = <16000000>;
40		};
41	};
42
43	ahb {
44		apb {
45			dbgu: serial@fffff200 {
46				status = "okay";
47			};
48
49			ssc0: ssc@f0010000 {
50				status = "okay";
51			};
52
53			i2c0: i2c@f8010000 {
54				status = "okay";
55
56				wm8904: codec@1a {
57					compatible = "wlf,wm8904";
58					reg = <0x1a>;
59					clocks = <&pck0>;
60					clock-names = "mclk";
61				};
62
63				qt1070: keyboard@1b {
64					compatible = "qt1070";
65					reg = <0x1b>;
66					interrupt-parent = <&pioA>;
67					interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
68					pinctrl-names = "default";
69					pinctrl-0 = <&pinctrl_qt1070_irq>;
70				};
71			};
72
73			i2c1: i2c@f8014000 {
74				status = "okay";
75			};
76
77			mmc0: mmc@f0008000 {
78				pinctrl-0 = <
79					&pinctrl_board_mmc0
80					&pinctrl_mmc0_slot0_clk_cmd_dat0
81					&pinctrl_mmc0_slot0_dat1_3>;
82				status = "okay";
83				slot@0 {
84					reg = <0>;
85					bus-width = <4>;
86					cd-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
87				};
88			};
89
90			pinctrl@fffff400 {
91				mmc0 {
92					pinctrl_board_mmc0: mmc0-board {
93						atmel,pins =
94							<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PA7 gpio CD pin pull up and deglitch */
95					};
96				};
97
98				qt1070 {
99					pinctrl_qt1070_irq: qt1070_irq {
100						atmel,pins =
101							<AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
102					};
103				};
104
105				sound {
106					pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
107						atmel,pins =
108							<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
109					};
110				};
111
112				usb1 {
113					pinctrl_usb1_vbus_sense: usb1_vbus_sense {
114						atmel,pins =
115							<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PB16 gpio usb vbus sense, no pull up and deglitch */
116					};
117				};
118			};
119
120			spi0: spi@f0000000 {
121				status = "okay";
122				cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
123				m25p80@0 {
124					compatible = "atmel,at25df321a";
125					spi-max-frequency = <50000000>;
126					reg = <0>;
127				};
128			};
129
130			usb1: gadget@f803c000 {
131				pinctrl-names = "default";
132				pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
133				atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
134				status = "okay";
135			};
136
137			watchdog@fffffe40 {
138				status = "okay";
139			};
140
141			rtc@fffffeb0 {
142				status = "okay";
143			};
144		};
145
146		nand0: nand@40000000 {
147			nand-bus-width = <8>;
148			nand-ecc-mode = "hw";
149			atmel,has-pmecc;
150			atmel,pmecc-cap = <2>;
151			atmel,pmecc-sector-size = <512>;
152			nand-on-flash-bbt;
153			status = "okay";
154		};
155
156		usb0: ohci@00500000 {
157			num-ports = <1>;
158			atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>;
159			status = "okay";
160		};
161	};
162
163	leds {
164		compatible = "gpio-leds";
165
166		d8 {
167			label = "d8";
168			gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
169			linux,default-trigger = "mmc0";
170		};
171
172		d9 {
173			label = "d6";
174			gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
175			linux,default-trigger = "nand-disk";
176		};
177
178		d10 {
179			label = "d7";
180			gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
181			linux,default-trigger = "heartbeat";
182		};
183	};
184
185	gpio_keys {
186		compatible = "gpio-keys";
187
188		enter {
189			label = "Enter";
190			gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
191			linux,code = <28>;
192			gpio-key,wakeup;
193		};
194	};
195
196	sound {
197		compatible = "atmel,asoc-wm8904";
198		pinctrl-names = "default";
199		pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
200
201		atmel,model = "wm8904 @ AT91SAM9N12";
202		atmel,audio-routing =
203			"Headphone Jack", "HPOUTL",
204			"Headphone Jack", "HPOUTR",
205			"IN2L", "Line In Jack",
206			"IN2R", "Line In Jack",
207			"Mic", "MICBIAS",
208			"IN1L", "Mic";
209
210		atmel,ssc-controller = <&ssc0>;
211		atmel,audio-codec = <&wm8904>;
212	};
213};
214