blob: 67578b5198aa20add8e2c59cdf4b34d919bf08fe [file] [log] [blame]
Wenyou Yangdf08ad72017-04-18 13:49:35 +08001/*
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 = "root=/dev/mtdblock1 rw rootfstype=jffs2";
18 stdout-path = "serial0:115200n8";
Simon Glassd3a98cb2023-02-13 08:56:33 -070019 bootph-all;
Wenyou Yangdf08ad72017-04-18 13:49:35 +080020 };
21
22 memory {
23 reg = <0x20000000 0x8000000>;
24 };
25
26 clocks {
27 slow_xtal {
28 clock-frequency = <32768>;
29 };
30
31 main_xtal {
32 clock-frequency = <16000000>;
33 };
34 };
35
36 ahb {
37 apb {
38 dbgu: serial@fffff200 {
Simon Glassd3a98cb2023-02-13 08:56:33 -070039 bootph-all;
Wenyou Yangdf08ad72017-04-18 13:49:35 +080040 status = "okay";
41 };
42
43 ssc0: ssc@f0010000 {
44 status = "okay";
45 };
46
47 i2c0: i2c@f8010000 {
48 status = "okay";
49
50 wm8904: codec@1a {
51 compatible = "wlf,wm8904";
52 reg = <0x1a>;
53 clocks = <&pck0>;
54 clock-names = "mclk";
55 };
56
57 qt1070: keyboard@1b {
58 compatible = "qt1070";
59 reg = <0x1b>;
60 interrupt-parent = <&pioA>;
61 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_qt1070_irq>;
64 };
65 };
66
67 mmc0: mmc@f0008000 {
68 pinctrl-names = "default";
69 pinctrl-0 = <
70 &pinctrl_board_mmc0
71 &pinctrl_mmc0_slot0_clk_cmd_dat0
72 &pinctrl_mmc0_slot0_dat1_3>;
73 status = "okay";
74 slot@0 {
75 reg = <0>;
76 bus-width = <4>;
77 cd-gpios = <&pioA 7 GPIO_ACTIVE_HIGH>;
78 };
79 };
80
81 pinctrl@fffff400 {
82 mmc0 {
83 pinctrl_board_mmc0: mmc0-board {
84 atmel,pins =
85 <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PA7 gpio CD pin pull up and deglitch */
86 };
87 };
88
89 qt1070 {
90 pinctrl_qt1070_irq: qt1070_irq {
91 atmel,pins =
92 <AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
93 };
94 };
95
96 sound {
97 pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
98 atmel,pins =
99 <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
100 };
101 };
102
103 usb1 {
104 pinctrl_usb1_vbus_sense: usb1_vbus_sense {
105 atmel,pins =
106 <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PB16 gpio usb vbus sense, no pull up and deglitch */
107 };
108 };
109 };
110
111 spi0: spi@f0000000 {
112 status = "okay";
113 cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
114 spi_flash@0 {
Neil Armstronga009fa72019-02-10 10:16:20 +0000115 compatible = "jedec,spi-nor";
Wenyou Yangdf08ad72017-04-18 13:49:35 +0800116 spi-max-frequency = <50000000>;
117 reg = <0>;
118 };
119 };
120
121 hlcdc: hlcdc@f8038000 {
122 status = "okay";
123
124 hlcdc-display-controller {
125 pinctrl-names = "default";
126 pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
127
128 port@0 {
129 hlcdc_panel_output: endpoint@0 {
130 reg = <0>;
131 remote-endpoint = <&panel_input>;
132 };
133 };
134 };
135 };
136
137 usb1: gadget@f803c000 {
138 pinctrl-names = "default";
139 pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
140 atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
141 status = "okay";
142 };
143
144 watchdog@fffffe40 {
145 status = "okay";
146 };
147
148 rtc@fffffeb0 {
149 status = "okay";
150 };
151 };
152
153 nand0: nand@40000000 {
154 nand-bus-width = <8>;
155 nand-ecc-mode = "hw";
156 atmel,has-pmecc;
157 atmel,pmecc-cap = <2>;
158 atmel,pmecc-sector-size = <512>;
159 nand-on-flash-bbt;
160 status = "okay";
161 };
162
163 usb0: ohci@00500000 {
164 num-ports = <1>;
165 atmel,vbus-gpio = <&pioB 7 GPIO_ACTIVE_LOW>;
166 status = "okay";
167 };
168 };
169
170 backlight: backlight {
171 compatible = "pwm-backlight";
172 pwms = <&hlcdc_pwm 0 50000 0>;
173 brightness-levels = <0 4 8 16 32 64 128 255>;
174 default-brightness-level = <6>;
175 power-supply = <&bl_reg>;
176 status = "okay";
177 };
178
179 bl_reg: backlight_regulator {
180 compatible = "regulator-fixed";
181 regulator-name = "backlight-power-supply";
182 regulator-min-microvolt = <5000000>;
183 regulator-max-microvolt = <5000000>;
184 status = "okay";
185 };
186
187 leds {
188 compatible = "gpio-leds";
189
190 d8 {
191 label = "d8";
192 gpios = <&pioB 4 GPIO_ACTIVE_LOW>;
193 linux,default-trigger = "mmc0";
194 };
195
196 d9 {
197 label = "d9";
198 gpios = <&pioB 5 GPIO_ACTIVE_LOW>;
199 linux,default-trigger = "nand-disk";
200 };
201
202 d10 {
203 label = "d10";
204 gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
205 linux,default-trigger = "heartbeat";
206 };
207 };
208
209 gpio_keys {
210 compatible = "gpio-keys";
211
212 enter {
213 label = "Enter";
214 gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
215 linux,code = <28>;
216 wakeup-source;
217 };
218 };
219
220 panel: panel {
221 compatible = "qiaodian,qd43003c0-40", "simple-panel";
222 backlight = <&backlight>;
223 power-supply = <&panel_reg>;
224 #address-cells = <1>;
225 #size-cells = <0>;
226 status = "okay";
227
228 port@0 {
229 reg = <0>;
230 #address-cells = <1>;
231 #size-cells = <0>;
232
233 panel_input: endpoint@0 {
234 reg = <0>;
235 remote-endpoint = <&hlcdc_panel_output>;
236 };
237 };
238 };
239
240 panel_reg: panel_regulator {
241 compatible = "regulator-fixed";
242 regulator-name = "panel-power-supply";
243 regulator-min-microvolt = <3300000>;
244 regulator-max-microvolt = <3300000>;
245 status = "okay";
246 };
247
248 sound {
249 compatible = "atmel,asoc-wm8904";
250 pinctrl-names = "default";
251 pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
252
253 atmel,model = "wm8904 @ AT91SAM9N12";
254 atmel,audio-routing =
255 "Headphone Jack", "HPOUTL",
256 "Headphone Jack", "HPOUTR",
257 "IN2L", "Line In Jack",
258 "IN2R", "Line In Jack",
259 "Mic", "MICBIAS",
260 "IN1L", "Mic";
261
262 atmel,ssc-controller = <&ssc0>;
263 atmel,audio-codec = <&wm8904>;
264 };
265};