1262569Simp/*
2262569Simp * at91sam9m10g45ek.dts - Device Tree file for AT91SAM9M10G45-EK board
3262569Simp *
4262569Simp *  Copyright (C) 2011 Atmel,
5262569Simp *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>
6262569Simp *
7262569Simp * Licensed under GPLv2 or later.
8262569Simp */
9262569Simp/dts-v1/;
10262569Simp#include "at91sam9g45.dtsi"
11270864Simp#include <dt-bindings/pwm/pwm.h>
12262569Simp
13262569Simp/ {
14262569Simp	model = "Atmel AT91SAM9M10G45-EK";
15262569Simp	compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9";
16262569Simp
17262569Simp	chosen {
18262569Simp		bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2";
19262569Simp	};
20262569Simp
21262569Simp	memory {
22262569Simp		reg = <0x70000000 0x4000000>;
23262569Simp	};
24262569Simp
25262569Simp	clocks {
26262569Simp		#address-cells = <1>;
27262569Simp		#size-cells = <1>;
28262569Simp		ranges;
29262569Simp
30262569Simp		main_clock: clock@0 {
31262569Simp			compatible = "atmel,osc", "fixed-clock";
32262569Simp			clock-frequency = <12000000>;
33262569Simp		};
34270864Simp
35270864Simp		slow_xtal {
36270864Simp		      clock-frequency = <32768>;
37270864Simp		};
38270864Simp
39270864Simp		main_xtal {
40270864Simp		      clock-frequency = <12000000>;
41270864Simp		};
42262569Simp	};
43262569Simp
44262569Simp	ahb {
45262569Simp		apb {
46262569Simp			dbgu: serial@ffffee00 {
47262569Simp				status = "okay";
48262569Simp			};
49262569Simp
50262569Simp			usart1: serial@fff90000 {
51262569Simp				pinctrl-0 =
52262569Simp					<&pinctrl_usart1
53262569Simp					 &pinctrl_usart1_rts
54262569Simp					 &pinctrl_usart1_cts>;
55262569Simp				status = "okay";
56262569Simp			};
57262569Simp
58262569Simp			macb0: ethernet@fffbc000 {
59262569Simp				phy-mode = "rmii";
60262569Simp				status = "okay";
61262569Simp			};
62262569Simp
63262569Simp			i2c0: i2c@fff84000 {
64262569Simp				status = "okay";
65262569Simp			};
66262569Simp
67262569Simp			i2c1: i2c@fff88000 {
68262569Simp				status = "okay";
69262569Simp			};
70262569Simp
71262569Simp			watchdog@fffffd40 {
72262569Simp				status = "okay";
73262569Simp			};
74262569Simp
75262569Simp			mmc0: mmc@fff80000 {
76262569Simp				pinctrl-0 = <
77262569Simp					&pinctrl_board_mmc0
78262569Simp					&pinctrl_mmc0_slot0_clk_cmd_dat0
79262569Simp					&pinctrl_mmc0_slot0_dat1_3>;
80262569Simp				status = "okay";
81262569Simp				slot@0 {
82262569Simp					reg = <0>;
83262569Simp					bus-width = <4>;
84262569Simp					cd-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>;
85262569Simp				};
86262569Simp			};
87262569Simp
88262569Simp			mmc1: mmc@fffd0000 {
89262569Simp				pinctrl-0 = <
90262569Simp					&pinctrl_board_mmc1
91262569Simp					&pinctrl_mmc1_slot0_clk_cmd_dat0
92262569Simp					&pinctrl_mmc1_slot0_dat1_3>;
93262569Simp				status = "okay";
94262569Simp				slot@0 {
95262569Simp					reg = <0>;
96262569Simp					bus-width = <4>;
97262569Simp					cd-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>;
98262569Simp					wp-gpios = <&pioD 29 GPIO_ACTIVE_HIGH>;
99262569Simp				};
100262569Simp			};
101262569Simp
102262569Simp			pinctrl@fffff200 {
103262569Simp				mmc0 {
104262569Simp					pinctrl_board_mmc0: mmc0-board {
105262569Simp						atmel,pins =
106262569Simp							<AT91_PIOD 10 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PD10 gpio CD pin pull up and deglitch */
107262569Simp					};
108262569Simp				};
109262569Simp
110262569Simp				mmc1 {
111262569Simp					pinctrl_board_mmc1: mmc1-board {
112262569Simp						atmel,pins =
113262569Simp							<AT91_PIOD 11 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH	/* PD11 gpio CD pin pull up and deglitch */
114262569Simp							 AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;	/* PD29 gpio WP pin pull up */
115262569Simp					};
116262569Simp				};
117262569Simp
118262569Simp				pwm0 {
119262569Simp					pinctrl_pwm_leds: pwm-led {
120262569Simp						atmel,pins =
121262569Simp							<AT91_PIOD 0  AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PD0 periph B */
122262569Simp							 AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PD31 periph B */
123262569Simp					};
124262569Simp				};
125262569Simp			};
126262569Simp
127262569Simp			spi0: spi@fffa4000{
128262569Simp				status = "okay";
129262569Simp				cs-gpios = <&pioB 3 0>, <0>, <0>, <0>;
130262569Simp				mtd_dataflash@0 {
131262569Simp					compatible = "atmel,at45", "atmel,dataflash";
132262569Simp					spi-max-frequency = <13000000>;
133262569Simp					reg = <0>;
134262569Simp				};
135262569Simp			};
136262569Simp
137262569Simp			usb2: gadget@fff78000 {
138262569Simp				atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>;
139262569Simp				status = "okay";
140262569Simp			};
141262569Simp
142270864Simp			adc0: adc@fffb0000 {
143270864Simp				pinctrl-names = "default";
144270864Simp				pinctrl-0 = <
145270864Simp					&pinctrl_adc0_ad0
146270864Simp					&pinctrl_adc0_ad1
147270864Simp					&pinctrl_adc0_ad2
148270864Simp					&pinctrl_adc0_ad3
149270864Simp					&pinctrl_adc0_ad4
150270864Simp					&pinctrl_adc0_ad5
151270864Simp					&pinctrl_adc0_ad6
152270864Simp					&pinctrl_adc0_ad7>;
153270864Simp				atmel,adc-ts-wires = <4>;
154270864Simp				status = "okay";
155270864Simp			};
156270864Simp
157262569Simp			pwm0: pwm@fffb8000 {
158262569Simp				status = "okay";
159262569Simp
160262569Simp				pinctrl-names = "default";
161262569Simp				pinctrl-0 = <&pinctrl_pwm_leds>;
162262569Simp			};
163284090Sian
164284090Sian			rtc@fffffd20 {
165284090Sian				atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
166284090Sian				status = "okay";
167284090Sian			};
168284090Sian
169284090Sian			gpbr: syscon@fffffd60 {
170284090Sian				status = "okay";
171284090Sian			};
172284090Sian
173284090Sian			rtc@fffffdb0 {
174284090Sian				status = "okay";
175284090Sian			};
176262569Simp		};
177262569Simp
178262569Simp		fb0: fb@0x00500000 {
179262569Simp			display = <&display0>;
180262569Simp			status = "okay";
181262569Simp
182262569Simp			display0: display {
183262569Simp				bits-per-pixel = <32>;
184262569Simp				atmel,lcdcon-backlight;
185262569Simp				atmel,dmacon = <0x1>;
186262569Simp				atmel,lcdcon2 = <0x80008002>;
187262569Simp				atmel,guard-time = <9>;
188262569Simp				atmel,lcd-wiring-mode = "RGB";
189262569Simp
190262569Simp				display-timings {
191262569Simp					native-mode = <&timing0>;
192262569Simp					timing0: timing0 {
193262569Simp						clock-frequency = <9000000>;
194262569Simp						hactive = <480>;
195262569Simp						vactive = <272>;
196262569Simp						hback-porch = <1>;
197262569Simp						hfront-porch = <1>;
198262569Simp						vback-porch = <40>;
199262569Simp						vfront-porch = <1>;
200262569Simp						hsync-len = <45>;
201262569Simp						vsync-len = <1>;
202262569Simp					};
203262569Simp				};
204262569Simp			};
205262569Simp		};
206262569Simp
207262569Simp		nand0: nand@40000000 {
208262569Simp			nand-bus-width = <8>;
209262569Simp			nand-ecc-mode = "soft";
210262569Simp			nand-on-flash-bbt;
211262569Simp			status = "okay";
212262569Simp
213262569Simp			boot@0 {
214262569Simp				label = "bootstrap/uboot/kernel";
215262569Simp				reg = <0x0 0x400000>;
216262569Simp			};
217262569Simp
218262569Simp			rootfs@400000 {
219262569Simp				label = "rootfs";
220262569Simp				reg = <0x400000 0x3C00000>;
221262569Simp			};
222262569Simp
223262569Simp			data@4000000 {
224262569Simp				label = "data";
225262569Simp				reg = <0x4000000 0xC000000>;
226262569Simp			};
227262569Simp		};
228262569Simp
229262569Simp		usb0: ohci@00700000 {
230262569Simp			status = "okay";
231262569Simp			num-ports = <2>;
232262569Simp			atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW
233262569Simp					   &pioD 3 GPIO_ACTIVE_LOW>;
234262569Simp		};
235262569Simp
236262569Simp		usb1: ehci@00800000 {
237262569Simp			status = "okay";
238262569Simp		};
239262569Simp	};
240262569Simp
241262569Simp	leds {
242262569Simp		compatible = "gpio-leds";
243262569Simp
244262569Simp		d8 {
245262569Simp			label = "d8";
246262569Simp			gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
247262569Simp			linux,default-trigger = "heartbeat";
248262569Simp		};
249262569Simp	};
250262569Simp
251262569Simp	pwmleds {
252262569Simp		compatible = "pwm-leds";
253262569Simp
254262569Simp		d6 {
255262569Simp			label = "d6";
256270864Simp			pwms = <&pwm0 3 5000 PWM_POLARITY_INVERTED>;
257262569Simp			max-brightness = <255>;
258262569Simp			linux,default-trigger = "nand-disk";
259262569Simp		};
260262569Simp
261262569Simp		d7 {
262262569Simp			label = "d7";
263270864Simp			pwms = <&pwm0 1 5000 PWM_POLARITY_INVERTED>;
264262569Simp			max-brightness = <255>;
265262569Simp			linux,default-trigger = "mmc0";
266262569Simp		};
267262569Simp	};
268262569Simp
269262569Simp	gpio_keys {
270262569Simp		compatible = "gpio-keys";
271262569Simp
272262569Simp		left_click {
273262569Simp			label = "left_click";
274262569Simp			gpios = <&pioB 6 GPIO_ACTIVE_LOW>;
275262569Simp			linux,code = <272>;
276262569Simp			gpio-key,wakeup;
277262569Simp		};
278262569Simp
279262569Simp		right_click {
280262569Simp			label = "right_click";
281262569Simp			gpios = <&pioB 7 GPIO_ACTIVE_LOW>;
282262569Simp			linux,code = <273>;
283262569Simp			gpio-key,wakeup;
284262569Simp		};
285262569Simp
286262569Simp		left {
287262569Simp			label = "Joystick Left";
288262569Simp			gpios = <&pioB 14 GPIO_ACTIVE_LOW>;
289262569Simp			linux,code = <105>;
290262569Simp		};
291262569Simp
292262569Simp		right {
293262569Simp			label = "Joystick Right";
294262569Simp			gpios = <&pioB 15 GPIO_ACTIVE_LOW>;
295262569Simp			linux,code = <106>;
296262569Simp		};
297262569Simp
298262569Simp		up {
299262569Simp			label = "Joystick Up";
300262569Simp			gpios = <&pioB 16 GPIO_ACTIVE_LOW>;
301262569Simp			linux,code = <103>;
302262569Simp		};
303262569Simp
304262569Simp		down {
305262569Simp			label = "Joystick Down";
306262569Simp			gpios = <&pioB 17 GPIO_ACTIVE_LOW>;
307262569Simp			linux,code = <108>;
308262569Simp		};
309262569Simp
310262569Simp		enter {
311262569Simp			label = "Joystick Press";
312262569Simp			gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
313262569Simp			linux,code = <28>;
314262569Simp		};
315262569Simp	};
316262569Simp};
317