1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2*724ba675SRob Herring/*
3*724ba675SRob Herring * at91sam9n12ek.dts - Device Tree file for AT91SAM9N12-EK board
4*724ba675SRob Herring *
5*724ba675SRob Herring *  Copyright (C) 2012 Atmel,
6*724ba675SRob Herring *                2012 Hong Xu <hong.xu@atmel.com>
7*724ba675SRob Herring */
8*724ba675SRob Herring/dts-v1/;
9*724ba675SRob Herring#include "at91sam9n12.dtsi"
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	model = "Atmel AT91SAM9N12-EK";
13*724ba675SRob Herring	compatible = "atmel,at91sam9n12ek", "atmel,at91sam9n12", "atmel,at91sam9";
14*724ba675SRob Herring
15*724ba675SRob Herring	chosen {
16*724ba675SRob Herring		bootargs = "root=/dev/mtdblock1 rw rootfstype=jffs2";
17*724ba675SRob Herring		stdout-path = "serial0:115200n8";
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	memory@20000000 {
21*724ba675SRob Herring		reg = <0x20000000 0x8000000>;
22*724ba675SRob Herring	};
23*724ba675SRob Herring
24*724ba675SRob Herring	clocks {
25*724ba675SRob Herring		slow_xtal {
26*724ba675SRob Herring			clock-frequency = <32768>;
27*724ba675SRob Herring		};
28*724ba675SRob Herring
29*724ba675SRob Herring		main_xtal {
30*724ba675SRob Herring			clock-frequency = <16000000>;
31*724ba675SRob Herring		};
32*724ba675SRob Herring	};
33*724ba675SRob Herring
34*724ba675SRob Herring	ahb {
35*724ba675SRob Herring		apb {
36*724ba675SRob Herring			dbgu: serial@fffff200 {
37*724ba675SRob Herring				status = "okay";
38*724ba675SRob Herring			};
39*724ba675SRob Herring
40*724ba675SRob Herring			ssc0: ssc@f0010000 {
41*724ba675SRob Herring				status = "okay";
42*724ba675SRob Herring			};
43*724ba675SRob Herring
44*724ba675SRob Herring			tcb0: timer@f8008000 {
45*724ba675SRob Herring				timer@0 {
46*724ba675SRob Herring					compatible = "atmel,tcb-timer";
47*724ba675SRob Herring					reg = <0>;
48*724ba675SRob Herring				};
49*724ba675SRob Herring
50*724ba675SRob Herring				timer@1 {
51*724ba675SRob Herring					compatible = "atmel,tcb-timer";
52*724ba675SRob Herring					reg = <1>;
53*724ba675SRob Herring				};
54*724ba675SRob Herring			};
55*724ba675SRob Herring
56*724ba675SRob Herring			i2c0: i2c@f8010000 {
57*724ba675SRob Herring				status = "okay";
58*724ba675SRob Herring
59*724ba675SRob Herring				wm8904: codec@1a {
60*724ba675SRob Herring					compatible = "wlf,wm8904";
61*724ba675SRob Herring					reg = <0x1a>;
62*724ba675SRob Herring					clocks = <&pmc PMC_TYPE_SYSTEM 8>;
63*724ba675SRob Herring					clock-names = "mclk";
64*724ba675SRob Herring				};
65*724ba675SRob Herring
66*724ba675SRob Herring				qt1070: keyboard@1b {
67*724ba675SRob Herring					compatible = "qt1070";
68*724ba675SRob Herring					reg = <0x1b>;
69*724ba675SRob Herring					interrupt-parent = <&pioA>;
70*724ba675SRob Herring					interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
71*724ba675SRob Herring					pinctrl-names = "default";
72*724ba675SRob Herring					pinctrl-0 = <&pinctrl_qt1070_irq>;
73*724ba675SRob Herring				};
74*724ba675SRob Herring			};
75*724ba675SRob Herring
76*724ba675SRob Herring			mmc0: mmc@f0008000 {
77*724ba675SRob Herring				pinctrl-0 = <
78*724ba675SRob Herring					&pinctrl_board_mmc0
79*724ba675SRob Herring					&pinctrl_mmc0_slot0_clk_cmd_dat0
80*724ba675SRob Herring					&pinctrl_mmc0_slot0_dat1_3>;
81*724ba675SRob Herring				status = "okay";
82*724ba675SRob Herring				slot@0 {
83*724ba675SRob Herring					reg = <0>;
84*724ba675SRob Herring					bus-width = <4>;
85*724ba675SRob Herring					cd-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
86*724ba675SRob Herring				};
87*724ba675SRob Herring			};
88*724ba675SRob Herring
89*724ba675SRob Herring			pinctrl@fffff400 {
90*724ba675SRob Herring				mmc0 {
91*724ba675SRob Herring					pinctrl_board_mmc0: mmc0-board {
92*724ba675SRob Herring						atmel,pins =
93*724ba675SRob Herring							<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PA7 gpio CD pin pull up and deglitch */
94*724ba675SRob Herring					};
95*724ba675SRob Herring				};
96*724ba675SRob Herring
97*724ba675SRob Herring				qt1070 {
98*724ba675SRob Herring					pinctrl_qt1070_irq: qt1070_irq {
99*724ba675SRob Herring						atmel,pins =
100*724ba675SRob Herring							<AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
101*724ba675SRob Herring					};
102*724ba675SRob Herring				};
103*724ba675SRob Herring
104*724ba675SRob Herring				sound {
105*724ba675SRob Herring					pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
106*724ba675SRob Herring						atmel,pins =
107*724ba675SRob Herring							<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
108*724ba675SRob Herring					};
109*724ba675SRob Herring				};
110*724ba675SRob Herring
111*724ba675SRob Herring				usb1 {
112*724ba675SRob Herring					pinctrl_usb1_vbus_sense: usb1_vbus_sense {
113*724ba675SRob Herring						atmel,pins =
114*724ba675SRob Herring							<AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PB16 gpio usb vbus sense, no pull up and deglitch */
115*724ba675SRob Herring					};
116*724ba675SRob Herring				};
117*724ba675SRob Herring			};
118*724ba675SRob Herring
119*724ba675SRob Herring			spi0: spi@f0000000 {
120*724ba675SRob Herring				status = "okay";
121*724ba675SRob Herring				cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
122*724ba675SRob Herring				flash@0 {
123*724ba675SRob Herring					compatible = "atmel,at25df321a";
124*724ba675SRob Herring					spi-max-frequency = <50000000>;
125*724ba675SRob Herring					reg = <0>;
126*724ba675SRob Herring				};
127*724ba675SRob Herring			};
128*724ba675SRob Herring
129*724ba675SRob Herring			hlcdc: hlcdc@f8038000 {
130*724ba675SRob Herring				status = "okay";
131*724ba675SRob Herring
132*724ba675SRob Herring				hlcdc-display-controller {
133*724ba675SRob Herring					pinctrl-names = "default";
134*724ba675SRob Herring					pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
135*724ba675SRob Herring
136*724ba675SRob Herring					port@0 {
137*724ba675SRob Herring						hlcdc_panel_output: endpoint@0 {
138*724ba675SRob Herring							reg = <0>;
139*724ba675SRob Herring							remote-endpoint = <&panel_input>;
140*724ba675SRob Herring						};
141*724ba675SRob Herring					};
142*724ba675SRob Herring				};
143*724ba675SRob Herring			};
144*724ba675SRob Herring
145*724ba675SRob Herring			usb1: gadget@f803c000 {
146*724ba675SRob Herring				pinctrl-names = "default";
147*724ba675SRob Herring				pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
148*724ba675SRob Herring				atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
149*724ba675SRob Herring				status = "okay";
150*724ba675SRob Herring			};
151*724ba675SRob Herring
152*724ba675SRob Herring			watchdog@fffffe40 {
153*724ba675SRob Herring				status = "okay";
154*724ba675SRob Herring			};
155*724ba675SRob Herring
156*724ba675SRob Herring			rtc@fffffeb0 {
157*724ba675SRob Herring				status = "okay";
158*724ba675SRob Herring			};
159*724ba675SRob Herring		};
160*724ba675SRob Herring
161*724ba675SRob Herring		ebi: ebi@10000000 {
162*724ba675SRob Herring			status = "okay";
163*724ba675SRob Herring
164*724ba675SRob Herring			nand_controller: nand-controller {
165*724ba675SRob Herring				status = "okay";
166*724ba675SRob Herring				pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
167*724ba675SRob Herring				pinctrl-names = "default";
168*724ba675SRob Herring
169*724ba675SRob Herring				nand@3 {
170*724ba675SRob Herring					reg = <0x3 0x0 0x800000>;
171*724ba675SRob Herring					rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
172*724ba675SRob Herring					cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
173*724ba675SRob Herring					nand-bus-width = <8>;
174*724ba675SRob Herring					nand-ecc-mode = "soft";
175*724ba675SRob Herring					nand-ecc-strength = <2>;
176*724ba675SRob Herring					nand-ecc-step-size = <512>;
177*724ba675SRob Herring					nand-on-flash-bbt;
178*724ba675SRob Herring					label = "atmel_nand";
179*724ba675SRob Herring				};
180*724ba675SRob Herring			};
181*724ba675SRob Herring		};
182*724ba675SRob Herring
183*724ba675SRob Herring		usb0: ohci@500000 {
184*724ba675SRob Herring			num-ports = <1>;
185*724ba675SRob Herring			atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>;
186*724ba675SRob Herring			status = "okay";
187*724ba675SRob Herring		};
188*724ba675SRob Herring	};
189*724ba675SRob Herring
190*724ba675SRob Herring	backlight: backlight {
191*724ba675SRob Herring		compatible = "pwm-backlight";
192*724ba675SRob Herring		pwms = <&hlcdc_pwm 0 50000 0>;
193*724ba675SRob Herring		brightness-levels = <0 4 8 16 32 64 128 255>;
194*724ba675SRob Herring		default-brightness-level = <6>;
195*724ba675SRob Herring		power-supply = <&bl_reg>;
196*724ba675SRob Herring		status = "okay";
197*724ba675SRob Herring	};
198*724ba675SRob Herring
199*724ba675SRob Herring	bl_reg: backlight_regulator {
200*724ba675SRob Herring		compatible = "regulator-fixed";
201*724ba675SRob Herring		regulator-name = "backlight-power-supply";
202*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
203*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
204*724ba675SRob Herring		status = "okay";
205*724ba675SRob Herring	};
206*724ba675SRob Herring
207*724ba675SRob Herring	leds {
208*724ba675SRob Herring		compatible = "gpio-leds";
209*724ba675SRob Herring
210*724ba675SRob Herring		d8 {
211*724ba675SRob Herring			label = "d8";
212*724ba675SRob Herring			gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
213*724ba675SRob Herring			linux,default-trigger = "mmc0";
214*724ba675SRob Herring		};
215*724ba675SRob Herring
216*724ba675SRob Herring		d9 {
217*724ba675SRob Herring			label = "d9";
218*724ba675SRob Herring			gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
219*724ba675SRob Herring			linux,default-trigger = "nand-disk";
220*724ba675SRob Herring		};
221*724ba675SRob Herring
222*724ba675SRob Herring		d10 {
223*724ba675SRob Herring			label = "d10";
224*724ba675SRob Herring			gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
225*724ba675SRob Herring			linux,default-trigger = "heartbeat";
226*724ba675SRob Herring		};
227*724ba675SRob Herring	};
228*724ba675SRob Herring
229*724ba675SRob Herring	gpio-keys {
230*724ba675SRob Herring		compatible = "gpio-keys";
231*724ba675SRob Herring
232*724ba675SRob Herring		button-enter {
233*724ba675SRob Herring			label = "Enter";
234*724ba675SRob Herring			gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
235*724ba675SRob Herring			linux,code = <28>;
236*724ba675SRob Herring			wakeup-source;
237*724ba675SRob Herring		};
238*724ba675SRob Herring	};
239*724ba675SRob Herring
240*724ba675SRob Herring	panel: panel {
241*724ba675SRob Herring		compatible = "qiaodian,qd43003c0-40";
242*724ba675SRob Herring		backlight = <&backlight>;
243*724ba675SRob Herring		power-supply = <&panel_reg>;
244*724ba675SRob Herring		#address-cells = <1>;
245*724ba675SRob Herring		#size-cells = <0>;
246*724ba675SRob Herring		status = "okay";
247*724ba675SRob Herring
248*724ba675SRob Herring		port@0 {
249*724ba675SRob Herring			reg = <0>;
250*724ba675SRob Herring			#address-cells = <1>;
251*724ba675SRob Herring			#size-cells = <0>;
252*724ba675SRob Herring
253*724ba675SRob Herring			panel_input: endpoint@0 {
254*724ba675SRob Herring				reg = <0>;
255*724ba675SRob Herring				remote-endpoint = <&hlcdc_panel_output>;
256*724ba675SRob Herring			};
257*724ba675SRob Herring		};
258*724ba675SRob Herring	};
259*724ba675SRob Herring
260*724ba675SRob Herring	panel_reg: panel_regulator {
261*724ba675SRob Herring		compatible = "regulator-fixed";
262*724ba675SRob Herring		regulator-name = "panel-power-supply";
263*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
264*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
265*724ba675SRob Herring		status = "okay";
266*724ba675SRob Herring	};
267*724ba675SRob Herring
268*724ba675SRob Herring	sound {
269*724ba675SRob Herring		compatible = "atmel,asoc-wm8904";
270*724ba675SRob Herring		pinctrl-names = "default";
271*724ba675SRob Herring		pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
272*724ba675SRob Herring
273*724ba675SRob Herring		atmel,model = "wm8904 @ AT91SAM9N12";
274*724ba675SRob Herring		atmel,audio-routing =
275*724ba675SRob Herring			"Headphone Jack", "HPOUTL",
276*724ba675SRob Herring			"Headphone Jack", "HPOUTR",
277*724ba675SRob Herring			"IN2L", "Line In Jack",
278*724ba675SRob Herring			"IN2R", "Line In Jack",
279*724ba675SRob Herring			"Mic", "MICBIAS",
280*724ba675SRob Herring			"IN1L", "Mic";
281*724ba675SRob Herring
282*724ba675SRob Herring		atmel,ssc-controller = <&ssc0>;
283*724ba675SRob Herring		atmel,audio-codec = <&wm8904>;
284*724ba675SRob Herring	};
285*724ba675SRob Herring};
286