xref: /openbmc/linux/arch/arm/boot/dts/microchip/at91sam9rlek.dts (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2*724ba675SRob Herring/*
3*724ba675SRob Herring * at91sam9rlek.dts - Device Tree file for Atmel at91sam9rl reference board
4*724ba675SRob Herring *
5*724ba675SRob Herring *  Copyright (C) 2014 Microchip
6*724ba675SRob Herring *  Alexandre Belloni <alexandre.belloni@free-electrons.com>
7*724ba675SRob Herring */
8*724ba675SRob Herring/dts-v1/;
9*724ba675SRob Herring#include "at91sam9rl.dtsi"
10*724ba675SRob Herring
11*724ba675SRob Herring/ {
12*724ba675SRob Herring	model = "Atmel at91sam9rlek";
13*724ba675SRob Herring	compatible = "atmel,at91sam9rlek", "atmel,at91sam9rl", "atmel,at91sam9";
14*724ba675SRob Herring
15*724ba675SRob Herring	chosen {
16*724ba675SRob Herring		bootargs = "rootfstype=ubifs root=ubi0:rootfs ubi.mtd=5 rw";
17*724ba675SRob Herring		stdout-path = "serial0:115200n8";
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	memory@20000000 {
21*724ba675SRob Herring		reg = <0x20000000 0x4000000>;
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 = <12000000>;
31*724ba675SRob Herring		};
32*724ba675SRob Herring	};
33*724ba675SRob Herring
34*724ba675SRob Herring	ahb {
35*724ba675SRob Herring		fb0: fb@500000 {
36*724ba675SRob Herring			display = <&display0>;
37*724ba675SRob Herring			status = "okay";
38*724ba675SRob Herring
39*724ba675SRob Herring			display0: panel {
40*724ba675SRob Herring				bits-per-pixel = <16>;
41*724ba675SRob Herring				atmel,lcdcon-backlight;
42*724ba675SRob Herring				atmel,dmacon = <0x1>;
43*724ba675SRob Herring				atmel,lcdcon2 = <0x80008002>;
44*724ba675SRob Herring				atmel,guard-time = <1>;
45*724ba675SRob Herring				atmel,lcd-wiring-mode = "RGB";
46*724ba675SRob Herring
47*724ba675SRob Herring				display-timings {
48*724ba675SRob Herring					native-mode = <&timing0>;
49*724ba675SRob Herring					timing0: timing0 {
50*724ba675SRob Herring						clock-frequency = <4965000>;
51*724ba675SRob Herring						hactive = <240>;
52*724ba675SRob Herring						vactive = <320>;
53*724ba675SRob Herring						hback-porch = <1>;
54*724ba675SRob Herring						hfront-porch = <33>;
55*724ba675SRob Herring						vback-porch = <1>;
56*724ba675SRob Herring						vfront-porch = <0>;
57*724ba675SRob Herring						hsync-len = <5>;
58*724ba675SRob Herring						vsync-len = <1>;
59*724ba675SRob Herring						hsync-active = <1>;
60*724ba675SRob Herring						vsync-active = <1>;
61*724ba675SRob Herring					};
62*724ba675SRob Herring				};
63*724ba675SRob Herring			};
64*724ba675SRob Herring		};
65*724ba675SRob Herring
66*724ba675SRob Herring		ebi: ebi@10000000 {
67*724ba675SRob Herring			pinctrl-0 = <&pinctrl_ebi_addr_nand>;
68*724ba675SRob Herring			pinctrl-names = "default";
69*724ba675SRob Herring			status = "okay";
70*724ba675SRob Herring
71*724ba675SRob Herring			nand_controller: nand-controller {
72*724ba675SRob Herring				status = "okay";
73*724ba675SRob Herring				pinctrl-0 = <&pinctrl_nand_oe_we
74*724ba675SRob Herring					     &pinctrl_nand_cs
75*724ba675SRob Herring					     &pinctrl_nand_rb>;
76*724ba675SRob Herring				pinctrl-names = "default";
77*724ba675SRob Herring
78*724ba675SRob Herring				nand@3 {
79*724ba675SRob Herring					reg = <0x3 0x0 0x800000>;
80*724ba675SRob Herring					rb-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
81*724ba675SRob Herring					cs-gpios = <&pioB 6 GPIO_ACTIVE_HIGH>;
82*724ba675SRob Herring					nand-bus-width = <8>;
83*724ba675SRob Herring					nand-ecc-mode = "soft";
84*724ba675SRob Herring					nand-on-flash-bbt;
85*724ba675SRob Herring					label = "atmel_nand";
86*724ba675SRob Herring
87*724ba675SRob Herring					partitions {
88*724ba675SRob Herring						compatible = "fixed-partitions";
89*724ba675SRob Herring						#address-cells = <1>;
90*724ba675SRob Herring						#size-cells = <1>;
91*724ba675SRob Herring
92*724ba675SRob Herring						at91bootstrap@0 {
93*724ba675SRob Herring							label = "at91bootstrap";
94*724ba675SRob Herring							reg = <0x0 0x40000>;
95*724ba675SRob Herring						};
96*724ba675SRob Herring
97*724ba675SRob Herring						bootloader@40000 {
98*724ba675SRob Herring							label = "bootloader";
99*724ba675SRob Herring							reg = <0x40000 0x80000>;
100*724ba675SRob Herring						};
101*724ba675SRob Herring
102*724ba675SRob Herring						bootloaderenv@c0000 {
103*724ba675SRob Herring							label = "bootloader env";
104*724ba675SRob Herring							reg = <0xc0000 0xc0000>;
105*724ba675SRob Herring						};
106*724ba675SRob Herring
107*724ba675SRob Herring						dtb@180000 {
108*724ba675SRob Herring							label = "device tree";
109*724ba675SRob Herring							reg = <0x180000 0x80000>;
110*724ba675SRob Herring						};
111*724ba675SRob Herring
112*724ba675SRob Herring						kernel@200000 {
113*724ba675SRob Herring							label = "kernel";
114*724ba675SRob Herring							reg = <0x200000 0x600000>;
115*724ba675SRob Herring						};
116*724ba675SRob Herring
117*724ba675SRob Herring						rootfs@800000 {
118*724ba675SRob Herring							label = "rootfs";
119*724ba675SRob Herring							reg = <0x800000 0x0f800000>;
120*724ba675SRob Herring						};
121*724ba675SRob Herring					};
122*724ba675SRob Herring				};
123*724ba675SRob Herring			};
124*724ba675SRob Herring		};
125*724ba675SRob Herring
126*724ba675SRob Herring		apb {
127*724ba675SRob Herring			tcb0: timer@fffa0000 {
128*724ba675SRob Herring				timer@0 {
129*724ba675SRob Herring					compatible = "atmel,tcb-timer";
130*724ba675SRob Herring					reg = <0>, <1>;
131*724ba675SRob Herring				};
132*724ba675SRob Herring
133*724ba675SRob Herring				timer@2 {
134*724ba675SRob Herring					compatible = "atmel,tcb-timer";
135*724ba675SRob Herring					reg = <2>;
136*724ba675SRob Herring				};
137*724ba675SRob Herring			};
138*724ba675SRob Herring
139*724ba675SRob Herring			mmc0: mmc@fffa4000 {
140*724ba675SRob Herring				pinctrl-0 = <
141*724ba675SRob Herring					&pinctrl_board_mmc0
142*724ba675SRob Herring					&pinctrl_mmc0_clk
143*724ba675SRob Herring					&pinctrl_mmc0_slot0_cmd_dat0
144*724ba675SRob Herring					&pinctrl_mmc0_slot0_dat1_3>;
145*724ba675SRob Herring				status = "okay";
146*724ba675SRob Herring				slot@0 {
147*724ba675SRob Herring					reg = <0>;
148*724ba675SRob Herring					bus-width = <4>;
149*724ba675SRob Herring					cd-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
150*724ba675SRob Herring				};
151*724ba675SRob Herring			};
152*724ba675SRob Herring
153*724ba675SRob Herring			usart0: serial@fffb0000 {
154*724ba675SRob Herring				pinctrl-0 = <
155*724ba675SRob Herring					&pinctrl_usart0
156*724ba675SRob Herring					&pinctrl_usart0_rts
157*724ba675SRob Herring					&pinctrl_usart0_cts>;
158*724ba675SRob Herring				status = "okay";
159*724ba675SRob Herring			};
160*724ba675SRob Herring
161*724ba675SRob Herring			adc0: adc@fffd0000 {
162*724ba675SRob Herring				pinctrl-names = "default";
163*724ba675SRob Herring				pinctrl-0 = <
164*724ba675SRob Herring					&pinctrl_adc0_ad0
165*724ba675SRob Herring					&pinctrl_adc0_ad1
166*724ba675SRob Herring					&pinctrl_adc0_ad2
167*724ba675SRob Herring					&pinctrl_adc0_ad3
168*724ba675SRob Herring					&pinctrl_adc0_ad4
169*724ba675SRob Herring					&pinctrl_adc0_ad5
170*724ba675SRob Herring					&pinctrl_adc0_adtrg>;
171*724ba675SRob Herring				atmel,adc-ts-wires = <4>;
172*724ba675SRob Herring				status = "okay";
173*724ba675SRob Herring			};
174*724ba675SRob Herring
175*724ba675SRob Herring			usb0: gadget@fffd4000 {
176*724ba675SRob Herring				atmel,vbus-gpio = <&pioA 8 GPIO_ACTIVE_HIGH>;
177*724ba675SRob Herring				status = "okay";
178*724ba675SRob Herring			};
179*724ba675SRob Herring
180*724ba675SRob Herring			spi0: spi@fffcc000 {
181*724ba675SRob Herring				status = "okay";
182*724ba675SRob Herring				cs-gpios = <&pioA 28 0>, <0>, <0>, <0>;
183*724ba675SRob Herring				flash@0 {
184*724ba675SRob Herring					compatible = "atmel,at45", "atmel,dataflash";
185*724ba675SRob Herring					spi-max-frequency = <15000000>;
186*724ba675SRob Herring					reg = <0>;
187*724ba675SRob Herring				};
188*724ba675SRob Herring			};
189*724ba675SRob Herring
190*724ba675SRob Herring			pwm0: pwm@fffc8000 {
191*724ba675SRob Herring				status = "okay";
192*724ba675SRob Herring
193*724ba675SRob Herring				pinctrl-names = "default";
194*724ba675SRob Herring				pinctrl-0 = <&pinctrl_pwm0_pwm1_2>,
195*724ba675SRob Herring					<&pinctrl_pwm0_pwm2_2>;
196*724ba675SRob Herring			};
197*724ba675SRob Herring
198*724ba675SRob Herring			dbgu: serial@fffff200 {
199*724ba675SRob Herring				status = "okay";
200*724ba675SRob Herring			};
201*724ba675SRob Herring
202*724ba675SRob Herring			pinctrl@fffff400 {
203*724ba675SRob Herring				mmc0 {
204*724ba675SRob Herring					pinctrl_board_mmc0: mmc0-board {
205*724ba675SRob Herring						atmel,pins =
206*724ba675SRob Herring							<AT91_PIOA 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
207*724ba675SRob Herring					};
208*724ba675SRob Herring				};
209*724ba675SRob Herring			};
210*724ba675SRob Herring
211*724ba675SRob Herring			watchdog@fffffd40 {
212*724ba675SRob Herring				status = "okay";
213*724ba675SRob Herring			};
214*724ba675SRob Herring
215*724ba675SRob Herring			rtc@fffffd20 {
216*724ba675SRob Herring				atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
217*724ba675SRob Herring			};
218*724ba675SRob Herring
219*724ba675SRob Herring			rtc@fffffe00 {
220*724ba675SRob Herring				status = "okay";
221*724ba675SRob Herring			};
222*724ba675SRob Herring		};
223*724ba675SRob Herring	};
224*724ba675SRob Herring
225*724ba675SRob Herring	led-controller-1 {
226*724ba675SRob Herring		compatible = "pwm-leds";
227*724ba675SRob Herring
228*724ba675SRob Herring		led-1 {
229*724ba675SRob Herring			label = "ds1";
230*724ba675SRob Herring			pwms = <&pwm0 1 5000 PWM_POLARITY_INVERTED>;
231*724ba675SRob Herring			max-brightness = <255>;
232*724ba675SRob Herring		};
233*724ba675SRob Herring
234*724ba675SRob Herring		led-2 {
235*724ba675SRob Herring			label = "ds2";
236*724ba675SRob Herring			pwms = <&pwm0 2 5000 PWM_POLARITY_INVERTED>;
237*724ba675SRob Herring			max-brightness = <255>;
238*724ba675SRob Herring		};
239*724ba675SRob Herring	};
240*724ba675SRob Herring
241*724ba675SRob Herring	led-controller-2 {
242*724ba675SRob Herring		compatible = "gpio-leds";
243*724ba675SRob Herring
244*724ba675SRob Herring		led-3 {
245*724ba675SRob Herring			label = "ds3";
246*724ba675SRob Herring			gpios = <&pioD 14 GPIO_ACTIVE_HIGH>;
247*724ba675SRob Herring			linux,default-trigger = "heartbeat";
248*724ba675SRob Herring		};
249*724ba675SRob Herring	};
250*724ba675SRob Herring
251*724ba675SRob Herring	gpio-keys {
252*724ba675SRob Herring		compatible = "gpio-keys";
253*724ba675SRob Herring
254*724ba675SRob Herring		button-right-click {
255*724ba675SRob Herring			label = "right_click";
256*724ba675SRob Herring			gpios = <&pioB 0 GPIO_ACTIVE_LOW>;
257*724ba675SRob Herring			linux,code = <273>;
258*724ba675SRob Herring			wakeup-source;
259*724ba675SRob Herring		};
260*724ba675SRob Herring
261*724ba675SRob Herring		button-left-click {
262*724ba675SRob Herring			label = "left_click";
263*724ba675SRob Herring			gpios = <&pioB 1 GPIO_ACTIVE_LOW>;
264*724ba675SRob Herring			linux,code = <272>;
265*724ba675SRob Herring			wakeup-source;
266*724ba675SRob Herring		};
267*724ba675SRob Herring	};
268*724ba675SRob Herring
269*724ba675SRob Herring	i2c-gpio-0 {
270*724ba675SRob Herring		status = "okay";
271*724ba675SRob Herring	};
272*724ba675SRob Herring
273*724ba675SRob Herring	i2c-gpio-1 {
274*724ba675SRob Herring		status = "okay";
275*724ba675SRob Herring	};
276*724ba675SRob Herring};
277