xref: /openbmc/u-boot/arch/arm/dts/at91-sama5d4ek.dts (revision 74d90d17eebfeeefd91776e3deb7901c122bef7f)
140e14221SWenyou Yang/*
240e14221SWenyou Yang * at91-sama5d4ek.dts - Device Tree file for SAMA5D4 Evaluation Kit
340e14221SWenyou Yang *
440e14221SWenyou Yang *  Copyright (C) 2014 Atmel,
540e14221SWenyou Yang *                2014 Nicolas Ferre <nicolas.ferre@atmel.com>
640e14221SWenyou Yang *
740e14221SWenyou Yang * This file is dual-licensed: you can use it either under the terms
840e14221SWenyou Yang * of the GPL or the X11 license, at your option. Note that this dual
940e14221SWenyou Yang * licensing only applies to this file, and not this project as a
1040e14221SWenyou Yang * whole.
1140e14221SWenyou Yang *
1240e14221SWenyou Yang *  a) This file is free software; you can redistribute it and/or
1340e14221SWenyou Yang *     modify it under the terms of the GNU General Public License as
1440e14221SWenyou Yang *     published by the Free Software Foundation; either version 2 of the
1540e14221SWenyou Yang *     License, or (at your option) any later version.
1640e14221SWenyou Yang *
1740e14221SWenyou Yang *     This file is distributed in the hope that it will be useful,
1840e14221SWenyou Yang *     but WITHOUT ANY WARRANTY; without even the implied warranty of
1940e14221SWenyou Yang *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2040e14221SWenyou Yang *     GNU General Public License for more details.
2140e14221SWenyou Yang *
2240e14221SWenyou Yang * Or, alternatively,
2340e14221SWenyou Yang *
2440e14221SWenyou Yang *  b) Permission is hereby granted, free of charge, to any person
2540e14221SWenyou Yang *     obtaining a copy of this software and associated documentation
2640e14221SWenyou Yang *     files (the "Software"), to deal in the Software without
2740e14221SWenyou Yang *     restriction, including without limitation the rights to use,
2840e14221SWenyou Yang *     copy, modify, merge, publish, distribute, sublicense, and/or
2940e14221SWenyou Yang *     sell copies of the Software, and to permit persons to whom the
3040e14221SWenyou Yang *     Software is furnished to do so, subject to the following
3140e14221SWenyou Yang *     conditions:
3240e14221SWenyou Yang *
3340e14221SWenyou Yang *     The above copyright notice and this permission notice shall be
3440e14221SWenyou Yang *     included in all copies or substantial portions of the Software.
3540e14221SWenyou Yang *
3640e14221SWenyou Yang *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
3740e14221SWenyou Yang *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
3840e14221SWenyou Yang *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
3940e14221SWenyou Yang *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
4040e14221SWenyou Yang *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4140e14221SWenyou Yang *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4240e14221SWenyou Yang *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4340e14221SWenyou Yang *     OTHER DEALINGS IN THE SOFTWARE.
4440e14221SWenyou Yang */
4540e14221SWenyou Yang/dts-v1/;
4640e14221SWenyou Yang#include "sama5d4.dtsi"
4740e14221SWenyou Yang
4840e14221SWenyou Yang/ {
4940e14221SWenyou Yang	model = "Atmel SAMA5D4-EK";
5040e14221SWenyou Yang	compatible = "atmel,sama5d4ek", "atmel,sama5d4", "atmel,sama5";
5140e14221SWenyou Yang
5240e14221SWenyou Yang	aliases {
5340e14221SWenyou Yang		spi0 = &spi0;
5440e14221SWenyou Yang	};
5540e14221SWenyou Yang
5640e14221SWenyou Yang	chosen {
5740e14221SWenyou Yang		u-boot,dm-pre-reloc;
5840e14221SWenyou Yang		stdout-path = &usart3;
5940e14221SWenyou Yang	};
6040e14221SWenyou Yang
6140e14221SWenyou Yang
6240e14221SWenyou Yang	memory {
6340e14221SWenyou Yang		reg = <0x20000000 0x20000000>;
6440e14221SWenyou Yang	};
6540e14221SWenyou Yang
6640e14221SWenyou Yang	clocks {
6740e14221SWenyou Yang		slow_xtal {
6840e14221SWenyou Yang			clock-frequency = <32768>;
6940e14221SWenyou Yang		};
7040e14221SWenyou Yang
7140e14221SWenyou Yang		main_xtal {
7240e14221SWenyou Yang			clock-frequency = <12000000>;
7340e14221SWenyou Yang		};
7440e14221SWenyou Yang	};
7540e14221SWenyou Yang
7640e14221SWenyou Yang	ahb {
7740e14221SWenyou Yang		apb {
78*4b0467dbSWenyou Yang			hlcdc: hlcdc@f0000000 {
79*4b0467dbSWenyou Yang				atmel,vl-bpix = <4>;
80*4b0467dbSWenyou Yang				atmel,output-mode = <18>;
81*4b0467dbSWenyou Yang				atmel,guard-time = <1>;
82*4b0467dbSWenyou Yang				pinctrl-names = "default";
83*4b0467dbSWenyou Yang				pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_pwm &pinctrl_lcd_rgb666>;
84*4b0467dbSWenyou Yang				status = "okay";
85*4b0467dbSWenyou Yang				u-boot,dm-pre-reloc;
86*4b0467dbSWenyou Yang
87*4b0467dbSWenyou Yang				display-timings {
88*4b0467dbSWenyou Yang					u-boot,dm-pre-reloc;
89*4b0467dbSWenyou Yang					800x480 {
90*4b0467dbSWenyou Yang						clock-frequency = <33260000>;
91*4b0467dbSWenyou Yang						hactive = <800>;
92*4b0467dbSWenyou Yang						vactive = <480>;
93*4b0467dbSWenyou Yang						hsync-len = <5>;
94*4b0467dbSWenyou Yang						hfront-porch = <128>;
95*4b0467dbSWenyou Yang						hback-porch = <0>;
96*4b0467dbSWenyou Yang						vfront-porch = <23>;
97*4b0467dbSWenyou Yang						vback-porch = <22>;
98*4b0467dbSWenyou Yang						vsync-len = <5>;
99*4b0467dbSWenyou Yang						u-boot,dm-pre-reloc;
100*4b0467dbSWenyou Yang					};
101*4b0467dbSWenyou Yang				};
102*4b0467dbSWenyou Yang			};
103*4b0467dbSWenyou Yang
10440e14221SWenyou Yang			adc0: adc@fc034000 {
10540e14221SWenyou Yang				pinctrl-names = "default";
10640e14221SWenyou Yang				pinctrl-0 = <
10740e14221SWenyou Yang					/* external trigger conflicts with USBA_VBUS */
10840e14221SWenyou Yang					&pinctrl_adc0_ad0
10940e14221SWenyou Yang					&pinctrl_adc0_ad1
11040e14221SWenyou Yang					&pinctrl_adc0_ad2
11140e14221SWenyou Yang					&pinctrl_adc0_ad3
11240e14221SWenyou Yang					&pinctrl_adc0_ad4
11340e14221SWenyou Yang					>;
11440e14221SWenyou Yang				/* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */
11540e14221SWenyou Yang				atmel,adc-vref = <3300>;
11640e14221SWenyou Yang				/*atmel,adc-ts-wires = <4>;*/	/* Set up ADC touch screen */
11740e14221SWenyou Yang				status = "okay";		/* Enable ADC IIO support */
11840e14221SWenyou Yang			};
11940e14221SWenyou Yang
12040e14221SWenyou Yang			mmc0: mmc@f8000000 {
12140e14221SWenyou Yang				pinctrl-names = "default";
12240e14221SWenyou Yang				pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
12340e14221SWenyou Yang				slot@0 {
12440e14221SWenyou Yang					reg = <0>;
12540e14221SWenyou Yang					bus-width = <4>;
12640e14221SWenyou Yang					cd-gpios = <&pioE 5 0>;
12740e14221SWenyou Yang				};
12840e14221SWenyou Yang			};
12940e14221SWenyou Yang
13040e14221SWenyou Yang			ssc0: ssc@f8008000 {
13140e14221SWenyou Yang				status = "okay";
13240e14221SWenyou Yang			};
13340e14221SWenyou Yang
13440e14221SWenyou Yang			spi0: spi@f8010000 {
13540e14221SWenyou Yang				u-boot,dm-pre-reloc;
13640e14221SWenyou Yang				cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
13740e14221SWenyou Yang				status = "okay";
13840e14221SWenyou Yang				spi_flash@0 {
13940e14221SWenyou Yang					u-boot,dm-pre-reloc;
14040e14221SWenyou Yang					compatible = "spi-flash";
14140e14221SWenyou Yang					spi-max-frequency = <50000000>;
14240e14221SWenyou Yang					reg = <0>;
14340e14221SWenyou Yang				};
14440e14221SWenyou Yang			};
14540e14221SWenyou Yang
14640e14221SWenyou Yang			i2c0: i2c@f8014000 {
14740e14221SWenyou Yang				status = "okay";
14840e14221SWenyou Yang
14940e14221SWenyou Yang				wm8904: codec@1a {
15040e14221SWenyou Yang					compatible = "wlf,wm8904";
15140e14221SWenyou Yang					reg = <0x1a>;
15240e14221SWenyou Yang					clocks = <&pck2>;
15340e14221SWenyou Yang					clock-names = "mclk";
15440e14221SWenyou Yang				};
15540e14221SWenyou Yang
15640e14221SWenyou Yang				qt1070:keyboard@1b {
15740e14221SWenyou Yang					compatible = "qt1070";
15840e14221SWenyou Yang					reg = <0x1b>;
15940e14221SWenyou Yang					interrupt-parent = <&pioE>;
16040e14221SWenyou Yang					interrupts = <25 0x0>;
16140e14221SWenyou Yang					pinctrl-names = "default";
16240e14221SWenyou Yang					pinctrl-0 = <&pinctrl_qt1070_irq>;
16340e14221SWenyou Yang					wakeup-source;
16440e14221SWenyou Yang				};
16540e14221SWenyou Yang
16640e14221SWenyou Yang				atmel_mxt_ts@4c {
16740e14221SWenyou Yang					compatible = "atmel,atmel_mxt_ts";
16840e14221SWenyou Yang					reg = <0x4c>;
16940e14221SWenyou Yang					interrupt-parent = <&pioE>;
17040e14221SWenyou Yang					interrupts = <24 0x0>;
17140e14221SWenyou Yang					pinctrl-names = "default";
17240e14221SWenyou Yang					pinctrl-0 = <&pinctrl_mxt_ts>;
17340e14221SWenyou Yang				};
17440e14221SWenyou Yang			};
17540e14221SWenyou Yang
17640e14221SWenyou Yang			macb0: ethernet@f8020000 {
17740e14221SWenyou Yang				pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
17840e14221SWenyou Yang				phy-mode = "rmii";
17940e14221SWenyou Yang				status = "okay";
18040e14221SWenyou Yang
18140e14221SWenyou Yang				ethernet-phy@1 {
18240e14221SWenyou Yang					reg = <0x1>;
18340e14221SWenyou Yang					interrupt-parent = <&pioE>;
18440e14221SWenyou Yang					interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
18540e14221SWenyou Yang				};
18640e14221SWenyou Yang			};
18740e14221SWenyou Yang
18840e14221SWenyou Yang			mmc1: mmc@fc000000 {
18940e14221SWenyou Yang				u-boot,dm-pre-reloc;
19040e14221SWenyou Yang				pinctrl-names = "default";
19140e14221SWenyou Yang				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
19240e14221SWenyou Yang				status = "okay";
19340e14221SWenyou Yang				slot@0 {
19440e14221SWenyou Yang					reg = <0>;
19540e14221SWenyou Yang					bus-width = <4>;
19640e14221SWenyou Yang					cd-gpios = <&pioE 6 0>;
19740e14221SWenyou Yang				};
19840e14221SWenyou Yang			};
19940e14221SWenyou Yang
20040e14221SWenyou Yang			usart2: serial@fc008000 {
20140e14221SWenyou Yang				status = "okay";
20240e14221SWenyou Yang			};
20340e14221SWenyou Yang
20440e14221SWenyou Yang			usart3: serial@fc00c000 {
20540e14221SWenyou Yang				u-boot,dm-pre-reloc;
20640e14221SWenyou Yang				status = "okay";
20740e14221SWenyou Yang			};
20840e14221SWenyou Yang
20940e14221SWenyou Yang			usart4: serial@fc010000 {
21040e14221SWenyou Yang				status = "okay";
21140e14221SWenyou Yang			};
21240e14221SWenyou Yang
21340e14221SWenyou Yang			watchdog@fc068640 {
21440e14221SWenyou Yang				status = "okay";
21540e14221SWenyou Yang			};
21640e14221SWenyou Yang
21740e14221SWenyou Yang			pinctrl@fc06a000 {
21840e14221SWenyou Yang				board {
21940e14221SWenyou Yang					u-boot,dm-pre-reloc;
22040e14221SWenyou Yang					pinctrl_macb0_phy_irq: macb0_phy_irq {
22140e14221SWenyou Yang						atmel,pins =
22240e14221SWenyou Yang							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
22340e14221SWenyou Yang					};
22440e14221SWenyou Yang					pinctrl_mmc0_cd: mmc0_cd {
22540e14221SWenyou Yang						atmel,pins =
22640e14221SWenyou Yang							<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
22740e14221SWenyou Yang					};
22840e14221SWenyou Yang					pinctrl_mmc1_cd: mmc1_cd {
22940e14221SWenyou Yang						u-boot,dm-pre-reloc;
23040e14221SWenyou Yang						atmel,pins =
23140e14221SWenyou Yang							<AT91_PIOE 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
23240e14221SWenyou Yang					};
23340e14221SWenyou Yang					pinctrl_pck2_as_audio_mck: pck2_as_audio_mck {
23440e14221SWenyou Yang						atmel,pins =
23540e14221SWenyou Yang							<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
23640e14221SWenyou Yang					};
23740e14221SWenyou Yang					pinctrl_usba_vbus: usba_vbus {
23840e14221SWenyou Yang						atmel,pins =
23940e14221SWenyou Yang							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
24040e14221SWenyou Yang					};
24140e14221SWenyou Yang					pinctrl_key_gpio: key_gpio_0 {
24240e14221SWenyou Yang						atmel,pins =
24340e14221SWenyou Yang							<AT91_PIOE 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PE13 gpio */
24440e14221SWenyou Yang					};
24540e14221SWenyou Yang					pinctrl_qt1070_irq: qt1070_irq {
24640e14221SWenyou Yang						atmel,pins =
24740e14221SWenyou Yang							<AT91_PIOE 25 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
24840e14221SWenyou Yang					};
24940e14221SWenyou Yang					pinctrl_mxt_ts: mxt_irq {
25040e14221SWenyou Yang						atmel,pins =
25140e14221SWenyou Yang							<AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
25240e14221SWenyou Yang					};
25340e14221SWenyou Yang				};
25440e14221SWenyou Yang			};
25540e14221SWenyou Yang		};
25640e14221SWenyou Yang
25740e14221SWenyou Yang		usb0: gadget@00400000 {
25840e14221SWenyou Yang			atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
25940e14221SWenyou Yang			pinctrl-names = "default";
26040e14221SWenyou Yang			pinctrl-0 = <&pinctrl_usba_vbus>;
26140e14221SWenyou Yang			status = "okay";
26240e14221SWenyou Yang		};
26340e14221SWenyou Yang
26440e14221SWenyou Yang		usb1: ohci@00500000 {
26540e14221SWenyou Yang			num-ports = <3>;
26640e14221SWenyou Yang			atmel,vbus-gpio = <0 /* &pioE 10 GPIO_ACTIVE_LOW */
26740e14221SWenyou Yang					   &pioE 11 GPIO_ACTIVE_LOW
26840e14221SWenyou Yang					   &pioE 12 GPIO_ACTIVE_LOW
26940e14221SWenyou Yang					  >;
27040e14221SWenyou Yang			status = "okay";
27140e14221SWenyou Yang		};
27240e14221SWenyou Yang
27340e14221SWenyou Yang		usb2: ehci@00600000 {
27440e14221SWenyou Yang			status = "okay";
27540e14221SWenyou Yang		};
27640e14221SWenyou Yang
27740e14221SWenyou Yang		nand0: nand@80000000 {
27840e14221SWenyou Yang			nand-bus-width = <8>;
27940e14221SWenyou Yang			nand-ecc-mode = "hw";
28040e14221SWenyou Yang			nand-on-flash-bbt;
28140e14221SWenyou Yang			atmel,has-pmecc;
28240e14221SWenyou Yang			status = "okay";
28340e14221SWenyou Yang
28440e14221SWenyou Yang			at91bootstrap@0 {
28540e14221SWenyou Yang				label = "at91bootstrap";
28640e14221SWenyou Yang				reg = <0x0 0x40000>;
28740e14221SWenyou Yang			};
28840e14221SWenyou Yang
28940e14221SWenyou Yang			bootloader@40000 {
29040e14221SWenyou Yang				label = "bootloader";
29140e14221SWenyou Yang				reg = <0x40000 0x80000>;
29240e14221SWenyou Yang			};
29340e14221SWenyou Yang
29440e14221SWenyou Yang			bootloaderenv@c0000 {
29540e14221SWenyou Yang				label = "bootloader env";
29640e14221SWenyou Yang				reg = <0xc0000 0xc0000>;
29740e14221SWenyou Yang			};
29840e14221SWenyou Yang
29940e14221SWenyou Yang			dtb@180000 {
30040e14221SWenyou Yang				label = "device tree";
30140e14221SWenyou Yang				reg = <0x180000 0x80000>;
30240e14221SWenyou Yang			};
30340e14221SWenyou Yang
30440e14221SWenyou Yang			kernel@200000 {
30540e14221SWenyou Yang				label = "kernel";
30640e14221SWenyou Yang				reg = <0x200000 0x600000>;
30740e14221SWenyou Yang			};
30840e14221SWenyou Yang
30940e14221SWenyou Yang			rootfs@800000 {
31040e14221SWenyou Yang				label = "rootfs";
31140e14221SWenyou Yang				reg = <0x800000 0x0f800000>;
31240e14221SWenyou Yang			};
31340e14221SWenyou Yang		};
31440e14221SWenyou Yang	};
31540e14221SWenyou Yang
31640e14221SWenyou Yang	gpio_keys {
31740e14221SWenyou Yang		compatible = "gpio-keys";
31840e14221SWenyou Yang
31940e14221SWenyou Yang		pinctrl-names = "default";
32040e14221SWenyou Yang		pinctrl-0 = <&pinctrl_key_gpio>;
32140e14221SWenyou Yang
32240e14221SWenyou Yang		pb_user1 {
32340e14221SWenyou Yang			label = "pb_user1";
32440e14221SWenyou Yang			gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
32540e14221SWenyou Yang			linux,code = <0x100>;
32640e14221SWenyou Yang			wakeup-source;
32740e14221SWenyou Yang		};
32840e14221SWenyou Yang	};
32940e14221SWenyou Yang
33040e14221SWenyou Yang	leds {
33140e14221SWenyou Yang		compatible = "gpio-leds";
33240e14221SWenyou Yang		status = "okay";
33340e14221SWenyou Yang
33440e14221SWenyou Yang		d8 {
33540e14221SWenyou Yang			label = "d8";
33640e14221SWenyou Yang			/* PE28, conflicts with usart4 rts pin */
33740e14221SWenyou Yang			gpios = <&pioE 28 GPIO_ACTIVE_LOW>;
33840e14221SWenyou Yang		};
33940e14221SWenyou Yang
34040e14221SWenyou Yang		d9 {
34140e14221SWenyou Yang			label = "d9";
34240e14221SWenyou Yang			gpios = <&pioE 9 GPIO_ACTIVE_HIGH>;
34340e14221SWenyou Yang		};
34440e14221SWenyou Yang
34540e14221SWenyou Yang		d10 {
34640e14221SWenyou Yang			label = "d10";
34740e14221SWenyou Yang			gpios = <&pioE 8 GPIO_ACTIVE_LOW>;
34840e14221SWenyou Yang			linux,default-trigger = "heartbeat";
34940e14221SWenyou Yang		};
35040e14221SWenyou Yang	};
35140e14221SWenyou Yang
35240e14221SWenyou Yang	sound {
35340e14221SWenyou Yang		compatible = "atmel,asoc-wm8904";
35440e14221SWenyou Yang		pinctrl-names = "default";
35540e14221SWenyou Yang		pinctrl-0 = <&pinctrl_pck2_as_audio_mck>;
35640e14221SWenyou Yang
35740e14221SWenyou Yang		atmel,model = "wm8904 @ SAMA5D4EK";
35840e14221SWenyou Yang		atmel,audio-routing =
35940e14221SWenyou Yang			"Headphone Jack", "HPOUTL",
36040e14221SWenyou Yang			"Headphone Jack", "HPOUTR",
36140e14221SWenyou Yang			"IN1L", "Line In Jack",
36240e14221SWenyou Yang			"IN1R", "Line In Jack";
36340e14221SWenyou Yang
36440e14221SWenyou Yang		atmel,ssc-controller = <&ssc0>;
36540e14221SWenyou Yang		atmel,audio-codec = <&wm8904>;
36640e14221SWenyou Yang	};
36740e14221SWenyou Yang};
368