blob: 5566fde51489cc73a05a054d4c7c2593153bfb64 [file] [log] [blame]
Wenyou Yang35736f52017-03-24 09:18:41 +08001/*
2 * sama5d3xmb_cmp.dts - Device Tree file for SAMA5D3x CMP mother board
3 *
4 * Copyright (C) 2016 Atmel,
5 *
6 * Licensed under GPLv2 or later.
7 */
8#include "sama5d3xcm_cmp.dtsi"
9
10/ {
11 compatible = "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d3", "atmel,sama5";
12
13 chosen {
14 u-boot,dm-pre-reloc;
15 stdout-path = &dbgu;
16 };
17
18 ahb {
19 apb {
20 mmc0: mmc@f0000000 {
21 pinctrl-names = "default";
22 pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
23 status = "okay";
24 slot@0 {
25 reg = <0>;
26 bus-width = <4>;
27 cd-gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
28 };
29 };
30
31 spi0: spi@f0004000 {
32 dmas = <0>, <0>; /* Do not use DMA for spi0 */
33
34 spi_flash@0 {
Neil Armstronga009fa72019-02-10 10:16:20 +000035 compatible = "jedec,spi-nor";
Wenyou Yang35736f52017-03-24 09:18:41 +080036 spi-max-frequency = <50000000>;
37 reg = <0>;
38 };
39 };
40
41 ssc0: ssc@f0008000 {
42 atmel,clk-from-rk-pin;
43 };
44
45 /*
46 * i2c0 conflicts with ISI:
47 * disable it to allow the use of ISI
48 * can not enable audio when i2c0 disabled
49 */
50 i2c0: i2c@f0014000 {
51 wm8904: wm8904@1a {
52 compatible = "wlf,wm8904";
53 reg = <0x1a>;
54 clocks = <&pck0>;
55 clock-names = "mclk";
56 };
57 };
58
59 i2c1: i2c@f0018000 {
60 ov2640: camera@0x30 {
61 compatible = "ovti,ov2640";
62 reg = <0x30>;
63 pinctrl-names = "default";
64 pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
65 resetb-gpios = <&pioE 24 GPIO_ACTIVE_LOW>;
66 pwdn-gpios = <&pioE 29 GPIO_ACTIVE_HIGH>;
67 /* use pck1 for the master clock of ov2640 */
68 clocks = <&pck1>;
69 clock-names = "xvclk";
70 assigned-clocks = <&pck1>;
71 assigned-clock-rates = <25000000>;
72
73 port {
74 ov2640_0: endpoint {
75 remote-endpoint = <&isi_0>;
76 bus-width = <8>;
77 };
78 };
79 };
80 };
81
82 usart1: serial@f0020000 {
83 dmas = <0>, <0>; /* Do not use DMA for usart1 */
84 pinctrl-names = "default";
85 pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
86 status = "okay";
87 };
88
89 isi: isi@f0034000 {
90 port {
91 isi_0: endpoint {
92 remote-endpoint = <&ov2640_0>;
93 bus-width = <8>;
94 vsync-active = <1>;
95 hsync-active = <1>;
96 };
97 };
98 };
99
100 mmc1: mmc@f8000000 {
101 pinctrl-names = "default";
102 pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
103 status = "okay";
104 slot@0 {
105 reg = <0>;
106 bus-width = <4>;
107 cd-gpios = <&pioD 18 GPIO_ACTIVE_HIGH>;
108 };
109 };
110
111 adc0: adc@f8018000 {
112 pinctrl-names = "default";
113 pinctrl-0 = <
114 &pinctrl_adc0_adtrg
115 &pinctrl_adc0_ad0
116 &pinctrl_adc0_ad1
117 &pinctrl_adc0_ad2
118 &pinctrl_adc0_ad3
119 &pinctrl_adc0_ad4
120 >;
121 status = "okay";
122 };
123
124 macb1: ethernet@f802c000 {
125 phy-mode = "rmii";
126
127 #address-cells = <1>;
128 #size-cells = <0>;
129 phy0: ethernet-phy@1 {
130 /*interrupt-parent = <&pioE>;*/
131 /*interrupts = <30 IRQ_TYPE_EDGE_FALLING>;*/
132 reg = <1>;
133 };
134 };
135
136 pinctrl@fffff200 {
137 board {
138 pinctrl_gpio_keys: gpio_keys {
139 atmel,pins =
140 <AT91_PIOE 27 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
141 };
142
143 pinctrl_mmc0_cd: mmc0_cd {
144 atmel,pins =
145 <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD17 GPIO with pullup deglitch */
146 };
147
148 pinctrl_mmc1_cd: mmc1_cd {
149 atmel,pins =
150 <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD18 GPIO with pullup deglitch */
151 };
152
153 pinctrl_pck0_as_audio_mck: pck0_as_audio_mck {
154 atmel,pins =
155 <AT91_PIOD 30 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD30 periph B */
156 };
157
158 pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
159 atmel,pins =
160 <AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PD31 periph B ISI_MCK */
161 };
162
163 pinctrl_sensor_reset: sensor_reset-0 {
164 atmel,pins =
165 <AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE24 gpio */
166 };
167
168 pinctrl_sensor_power: sensor_power-0 {
169 atmel,pins =
170 <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; /* PE29 gpio */
171 };
172
173 pinctrl_usba_vbus: usba_vbus {
174 atmel,pins =
175 <AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>; /* PD29 GPIO with deglitch */
176 };
177 };
178 };
179
180 dbgu: serial@ffffee00 {
181 dmas = <0>, <0>; /* Do not use DMA for dbgu */
182 status = "okay";
183 u-boot,dm-pre-reloc;
184 };
185
186 watchdog@fffffe40 {
187 status = "okay";
188 };
189 };
190
191 usb0: gadget@00500000 {
192 atmel,vbus-gpio = <&pioD 29 GPIO_ACTIVE_HIGH>;
193 pinctrl-names = "default";
194 pinctrl-0 = <&pinctrl_usba_vbus>;
195 status = "okay";
196 };
197 };
198
199 sound {
200 compatible = "atmel,asoc-wm8904";
201 pinctrl-names = "default";
202 pinctrl-0 = <&pinctrl_pck0_as_audio_mck>;
203
204 atmel,model = "wm8904 @ SAMA5D3EK";
205 atmel,audio-routing =
206 "Headphone Jack", "HPOUTL",
207 "Headphone Jack", "HPOUTR",
208 "IN2L", "Line In Jack",
209 "IN2R", "Line In Jack",
210 "Mic", "MICBIAS",
211 "IN1L", "Mic";
212
213 atmel,ssc-controller = <&ssc0>;
214 atmel,audio-codec = <&wm8904>;
215
216 status = "disabled";
217 };
218
219 /* Conflict with LCD pins */
220 gpio_keys {
221 compatible = "gpio-keys";
222 status = "okay";
223
Wenyou Yang35736f52017-03-24 09:18:41 +0800224 pinctrl-names = "default";
225 pinctrl-0 = <&pinctrl_gpio_keys>;
226
227 pb_user1 {
228 label = "pb_user1";
229 gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
230 linux,code = <0x100>;
231 gpio-key,wakeup;
232 };
233 };
234};