xref: /optee_os/core/arch/arm/dts/at91-sama5d2_xplained.dts (revision d16bc0a9b8585461f5502f5621e25ddfa93c3eac)
1dd7e1845SClément Léger// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2dd7e1845SClément Léger/*
3dd7e1845SClément Léger * at91-sama5d2_xplained.dts - Device Tree file for SAMA5D2 Xplained board
4dd7e1845SClément Léger *
5dd7e1845SClément Léger *  Copyright (C) 2015 Atmel,
6dd7e1845SClément Léger *                2015 Nicolas Ferre <nicolas.ferre@atmel.com>
7dd7e1845SClément Léger */
8dd7e1845SClément Léger/dts-v1/;
9dd7e1845SClément Léger#include "sama5d2.dtsi"
10dd7e1845SClément Léger#include "sama5d2-pinfunc.h"
11dd7e1845SClément Léger#include <dt-bindings/mfd/atmel-flexcom.h>
12dd7e1845SClément Léger#include <dt-bindings/gpio/gpio.h>
13dd7e1845SClément Léger#include <dt-bindings/regulator/active-semi,8945a-regulator.h>
14dd7e1845SClément Léger
15dd7e1845SClément Léger/ {
16dd7e1845SClément Léger	model = "Atmel SAMA5D2 Xplained";
17dd7e1845SClément Léger	compatible = "atmel,sama5d2-xplained", "atmel,sama5d2", "atmel,sama5";
18dd7e1845SClément Léger
19dd7e1845SClément Léger	aliases {
20dd7e1845SClément Léger		serial0 = &uart1;	/* DBGU */
21dd7e1845SClément Léger		i2c0 = &i2c0;
22dd7e1845SClément Léger		i2c1 = &i2c1;
23dd7e1845SClément Léger		i2c2 = &i2c2;		/* XPRO EXT2 */
24dd7e1845SClément Léger	};
25dd7e1845SClément Léger
26dd7e1845SClément Léger	chosen {
27dd7e1845SClément Léger		stdout-path = "serial0:115200n8";
28dd7e1845SClément Léger	};
29dd7e1845SClément Léger
30dd7e1845SClément Léger	clocks {
31dd7e1845SClément Léger		slow_xtal {
32dd7e1845SClément Léger			clock-frequency = <32768>;
33dd7e1845SClément Léger		};
34dd7e1845SClément Léger
35dd7e1845SClément Léger		main_xtal {
36dd7e1845SClément Léger			clock-frequency = <12000000>;
37dd7e1845SClément Léger		};
38dd7e1845SClément Léger	};
39dd7e1845SClément Léger
40dd7e1845SClément Léger	ahb {
41dd7e1845SClément Léger		usb0: gadget@300000 {
42dd7e1845SClément Léger			atmel,vbus-gpio = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
43dd7e1845SClément Léger			pinctrl-names = "default";
44dd7e1845SClément Léger			pinctrl-0 = <&pinctrl_usba_vbus>;
45dd7e1845SClément Léger			status = "okay";
46dd7e1845SClément Léger		};
47dd7e1845SClément Léger
48dd7e1845SClément Léger		usb1: ohci@400000 {
49dd7e1845SClément Léger			num-ports = <3>;
50dd7e1845SClément Léger			atmel,vbus-gpio = <0 /* &pioA PIN_PB9 GPIO_ACTIVE_HIGH */
51dd7e1845SClément Léger					   &pioA PIN_PB10 GPIO_ACTIVE_HIGH
52dd7e1845SClément Léger					   0
53dd7e1845SClément Léger					  >;
54dd7e1845SClément Léger			pinctrl-names = "default";
55dd7e1845SClément Léger			pinctrl-0 = <&pinctrl_usb_default>;
56dd7e1845SClément Léger			status = "okay";
57dd7e1845SClément Léger		};
58dd7e1845SClément Léger
59dd7e1845SClément Léger		usb2: ehci@500000 {
60dd7e1845SClément Léger			status = "okay";
61dd7e1845SClément Léger		};
62dd7e1845SClément Léger
63dd7e1845SClément Léger		sdmmc0: sdio-host@a0000000 {
64dd7e1845SClément Léger			bus-width = <8>;
65dd7e1845SClément Léger			pinctrl-names = "default";
66dd7e1845SClément Léger			pinctrl-0 = <&pinctrl_sdmmc0_default>;
67dd7e1845SClément Léger			non-removable;
68dd7e1845SClément Léger			mmc-ddr-1_8v;
69dd7e1845SClément Léger			status = "okay";
70dd7e1845SClément Léger		};
71dd7e1845SClément Léger
72dd7e1845SClément Léger		sdmmc1: sdio-host@b0000000 {
73dd7e1845SClément Léger			bus-width = <4>;
74dd7e1845SClément Léger			pinctrl-names = "default";
75dd7e1845SClément Léger			pinctrl-0 = <&pinctrl_sdmmc1_default>;
76dd7e1845SClément Léger			status = "okay"; /* conflict with qspi0 */
77dd7e1845SClément Léger			vqmmc-supply = <&vdd_3v3_reg>;
78dd7e1845SClément Léger			vmmc-supply = <&vdd_3v3_reg>;
79dd7e1845SClément Léger		};
80dd7e1845SClément Léger
81dd7e1845SClément Léger		apb {
82dd7e1845SClément Léger			qspi0: spi@f0020000 {
83dd7e1845SClément Léger				pinctrl-names = "default";
84dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_qspi0_default>;
85dd7e1845SClément Léger				status = "disabled"; /* conflict with sdmmc1 */
86dd7e1845SClément Léger
87dd7e1845SClément Léger				flash@0 {
88dd7e1845SClément Léger					#address-cells = <1>;
89dd7e1845SClément Léger					#size-cells = <1>;
90dd7e1845SClément Léger					compatible = "jedec,spi-nor";
91dd7e1845SClément Léger					reg = <0>;
92dd7e1845SClément Léger					spi-max-frequency = <80000000>;
93dd7e1845SClément Léger					spi-tx-bus-width = <4>;
94dd7e1845SClément Léger					spi-rx-bus-width = <4>;
95dd7e1845SClément Léger					m25p,fast-read;
96dd7e1845SClément Léger
97dd7e1845SClément Léger					at91bootstrap@0 {
98dd7e1845SClément Léger						label = "at91bootstrap";
99dd7e1845SClément Léger						reg = <0x00000000 0x00040000>;
100dd7e1845SClément Léger					};
101dd7e1845SClément Léger
102dd7e1845SClément Léger					bootloader@40000 {
103dd7e1845SClément Léger						label = "bootloader";
104dd7e1845SClément Léger						reg = <0x00040000 0x000c0000>;
105dd7e1845SClément Léger					};
106dd7e1845SClément Léger
107dd7e1845SClément Léger					bootloaderenvred@100000 {
108dd7e1845SClément Léger						label = "bootloader env redundant";
109dd7e1845SClément Léger						reg = <0x00100000 0x00040000>;
110dd7e1845SClément Léger					};
111dd7e1845SClément Léger
112dd7e1845SClément Léger					bootloaderenv@140000 {
113dd7e1845SClément Léger						label = "bootloader env";
114dd7e1845SClément Léger						reg = <0x00140000 0x00040000>;
115dd7e1845SClément Léger					};
116dd7e1845SClément Léger
117dd7e1845SClément Léger					dtb@180000 {
118dd7e1845SClément Léger						label = "device tree";
119dd7e1845SClément Léger						reg = <0x00180000 0x00080000>;
120dd7e1845SClément Léger					};
121dd7e1845SClément Léger
122dd7e1845SClément Léger					kernel@200000 {
123dd7e1845SClément Léger						label = "kernel";
124dd7e1845SClément Léger						reg = <0x00200000 0x00600000>;
125dd7e1845SClément Léger					};
126dd7e1845SClément Léger
127dd7e1845SClément Léger					misc@800000 {
128dd7e1845SClément Léger						label = "misc";
129dd7e1845SClément Léger						reg = <0x00800000 0x00000000>;
130dd7e1845SClément Léger					};
131dd7e1845SClément Léger				};
132dd7e1845SClément Léger			};
133dd7e1845SClément Léger
134dd7e1845SClément Léger			spi0: spi@f8000000 {
135dd7e1845SClément Léger				pinctrl-names = "default";
136dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_spi0_default>;
137dd7e1845SClément Léger				status = "okay";
138dd7e1845SClément Léger
139dd7e1845SClément Léger				m25p80@0 {
140dd7e1845SClément Léger					compatible = "atmel,at25df321a";
141dd7e1845SClément Léger					reg = <0>;
142dd7e1845SClément Léger					spi-max-frequency = <50000000>;
143dd7e1845SClément Léger				};
144dd7e1845SClément Léger			};
145dd7e1845SClément Léger
146dd7e1845SClément Léger			macb0: ethernet@f8008000 {
147dd7e1845SClément Léger				pinctrl-names = "default";
148dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq>;
149dd7e1845SClément Léger				phy-mode = "rmii";
150dd7e1845SClément Léger				status = "okay";
151dd7e1845SClément Léger
152dd7e1845SClément Léger				ethernet-phy@1 {
153dd7e1845SClément Léger					reg = <0x1>;
154dd7e1845SClément Léger					interrupt-parent = <&pioA>;
155dd7e1845SClément Léger					interrupts = <PIN_PC9 IRQ_TYPE_LEVEL_LOW>;
156dd7e1845SClément Léger				};
157dd7e1845SClément Léger			};
158dd7e1845SClément Léger
159dd7e1845SClément Léger			tcb0: timer@f800c000 {
160dd7e1845SClément Léger				timer0: timer@0 {
161dd7e1845SClément Léger					compatible = "atmel,tcb-timer";
162dd7e1845SClément Léger					reg = <0>;
163dd7e1845SClément Léger				};
164dd7e1845SClément Léger
165dd7e1845SClément Léger				timer1: timer@1 {
166dd7e1845SClément Léger					compatible = "atmel,tcb-timer";
167dd7e1845SClément Léger					reg = <1>;
168dd7e1845SClément Léger				};
169dd7e1845SClément Léger			};
170dd7e1845SClément Léger
171dd7e1845SClément Léger			uart1: serial@f8020000 {
172dd7e1845SClément Léger				pinctrl-names = "default";
173dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_uart1_default>;
174dd7e1845SClément Léger				atmel,use-dma-rx;
175dd7e1845SClément Léger				atmel,use-dma-tx;
176dd7e1845SClément Léger				status = "okay";
177dd7e1845SClément Léger			};
178dd7e1845SClément Léger
179dd7e1845SClément Léger			i2c0: i2c@f8028000 {
180dd7e1845SClément Léger				dmas = <0>, <0>;
181dd7e1845SClément Léger				pinctrl-names = "default", "gpio";
182dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_i2c0_default>;
183dd7e1845SClément Léger				pinctrl-1 = <&pinctrl_i2c0_gpio>;
184dd7e1845SClément Léger				sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
185dd7e1845SClément Léger				scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
186dd7e1845SClément Léger				i2c-sda-hold-time-ns = <350>;
187dd7e1845SClément Léger				status = "okay";
188dd7e1845SClément Léger
189dd7e1845SClément Léger				pmic@5b {
190dd7e1845SClément Léger					compatible = "active-semi,act8945a";
191dd7e1845SClément Léger					reg = <0x5b>;
192dd7e1845SClément Léger					active-semi,vsel-high;
193dd7e1845SClément Léger					status = "okay";
194dd7e1845SClément Léger
195dd7e1845SClément Léger					regulators {
196dd7e1845SClément Léger						vdd_1v35_reg: REG_DCDC1 {
197dd7e1845SClément Léger							regulator-name = "VDD_1V35";
198dd7e1845SClément Léger							regulator-min-microvolt = <1350000>;
199dd7e1845SClément Léger							regulator-max-microvolt = <1350000>;
200dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
201dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
202dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
203dd7e1845SClément Léger							regulator-always-on;
204dd7e1845SClément Léger
205dd7e1845SClément Léger							regulator-state-mem {
206dd7e1845SClément Léger								regulator-on-in-suspend;
207dd7e1845SClément Léger								regulator-suspend-min-microvolt=<1400000>;
208dd7e1845SClément Léger								regulator-suspend-max-microvolt=<1400000>;
209dd7e1845SClément Léger								regulator-changeable-in-suspend;
210dd7e1845SClément Léger								regulator-mode=<ACT8945A_REGULATOR_MODE_LOWPOWER>;
211dd7e1845SClément Léger							};
212dd7e1845SClément Léger						};
213dd7e1845SClément Léger
214dd7e1845SClément Léger						vdd_1v2_reg: REG_DCDC2 {
215dd7e1845SClément Léger							regulator-name = "VDD_1V2";
216dd7e1845SClément Léger							regulator-min-microvolt = <1100000>;
217dd7e1845SClément Léger							regulator-max-microvolt = <1300000>;
218dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
219dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
220dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
221dd7e1845SClément Léger							regulator-always-on;
222dd7e1845SClément Léger
223dd7e1845SClément Léger							regulator-state-mem {
224dd7e1845SClément Léger								regulator-off-in-suspend;
225dd7e1845SClément Léger							};
226dd7e1845SClément Léger						};
227dd7e1845SClément Léger
228dd7e1845SClément Léger						vdd_3v3_reg: REG_DCDC3 {
229dd7e1845SClément Léger							regulator-name = "VDD_3V3";
230dd7e1845SClément Léger							regulator-min-microvolt = <3300000>;
231dd7e1845SClément Léger							regulator-max-microvolt = <3300000>;
232dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
233dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
234dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
235dd7e1845SClément Léger							regulator-always-on;
236dd7e1845SClément Léger
237dd7e1845SClément Léger							regulator-state-mem {
238dd7e1845SClément Léger								regulator-off-in-suspend;
239dd7e1845SClément Léger							};
240dd7e1845SClément Léger						};
241dd7e1845SClément Léger
242dd7e1845SClément Léger						vdd_fuse_reg: REG_LDO1 {
243dd7e1845SClément Léger							regulator-name = "VDD_FUSE";
244dd7e1845SClément Léger							regulator-min-microvolt = <2500000>;
245dd7e1845SClément Léger							regulator-max-microvolt = <2500000>;
246dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
247dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
248dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
249dd7e1845SClément Léger							regulator-always-on;
250dd7e1845SClément Léger
251dd7e1845SClément Léger							regulator-state-mem {
252dd7e1845SClément Léger								regulator-off-in-suspend;
253dd7e1845SClément Léger							};
254dd7e1845SClément Léger						};
255dd7e1845SClément Léger
256dd7e1845SClément Léger						vdd_3v3_lp_reg: REG_LDO2 {
257dd7e1845SClément Léger							regulator-name = "VDD_3V3_LP";
258dd7e1845SClément Léger							regulator-min-microvolt = <3300000>;
259dd7e1845SClément Léger							regulator-max-microvolt = <3300000>;
260dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
261dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
262dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
263dd7e1845SClément Léger							regulator-always-on;
264dd7e1845SClément Léger
265dd7e1845SClément Léger							regulator-state-mem {
266dd7e1845SClément Léger								regulator-off-in-suspend;
267dd7e1845SClément Léger							};
268dd7e1845SClément Léger						};
269dd7e1845SClément Léger
270dd7e1845SClément Léger						vdd_led_reg: REG_LDO3 {
271dd7e1845SClément Léger							regulator-name = "VDD_LED";
272dd7e1845SClément Léger							regulator-min-microvolt = <3300000>;
273dd7e1845SClément Léger							regulator-max-microvolt = <3300000>;
274dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
275dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
276dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
277dd7e1845SClément Léger							regulator-always-on;
278dd7e1845SClément Léger
279dd7e1845SClément Léger							regulator-state-mem {
280dd7e1845SClément Léger								regulator-off-in-suspend;
281dd7e1845SClément Léger							};
282dd7e1845SClément Léger						};
283dd7e1845SClément Léger
284dd7e1845SClément Léger						vdd_sdhc_1v8_reg: REG_LDO4 {
285dd7e1845SClément Léger							regulator-name = "VDD_SDHC_1V8";
286dd7e1845SClément Léger							regulator-min-microvolt = <1800000>;
287dd7e1845SClément Léger							regulator-max-microvolt = <1800000>;
288dd7e1845SClément Léger							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
289dd7e1845SClément Léger										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
290dd7e1845SClément Léger							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
291dd7e1845SClément Léger							regulator-always-on;
292dd7e1845SClément Léger
293dd7e1845SClément Léger							regulator-state-mem {
294dd7e1845SClément Léger								regulator-off-in-suspend;
295dd7e1845SClément Léger							};
296dd7e1845SClément Léger						};
297dd7e1845SClément Léger					};
298dd7e1845SClément Léger
299dd7e1845SClément Léger					charger {
300dd7e1845SClément Léger						compatible = "active-semi,act8945a-charger";
301dd7e1845SClément Léger						pinctrl-names = "default";
302dd7e1845SClément Léger						pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
303dd7e1845SClément Léger						interrupt-parent = <&pioA>;
304dd7e1845SClément Léger						interrupts = <PIN_PB13 IRQ_TYPE_EDGE_RISING>;
305dd7e1845SClément Léger
306dd7e1845SClément Léger						active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
307dd7e1845SClément Léger						active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
308dd7e1845SClément Léger						active-semi,input-voltage-threshold-microvolt = <6600>;
309dd7e1845SClément Léger						active-semi,precondition-timeout = <40>;
310dd7e1845SClément Léger						active-semi,total-timeout = <3>;
311dd7e1845SClément Léger						status = "okay";
312dd7e1845SClément Léger					};
313dd7e1845SClément Léger				};
314dd7e1845SClément Léger			};
315dd7e1845SClément Léger
316dd7e1845SClément Léger			pwm0: pwm@f802c000 {
317dd7e1845SClément Léger				pinctrl-names = "default";
318dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
319dd7e1845SClément Léger				status = "disabled"; /* conflict with leds */
320dd7e1845SClément Léger			};
321dd7e1845SClément Léger
322dd7e1845SClément Léger			flx0: flexcom@f8034000 {
323dd7e1845SClément Léger				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
324dd7e1845SClément Léger				status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */
325dd7e1845SClément Léger
326dd7e1845SClément Léger				uart5: serial@200 {
327dd7e1845SClément Léger					dmas = <0>, <0>;
328dd7e1845SClément Léger					pinctrl-names = "default";
329dd7e1845SClément Léger					pinctrl-0 = <&pinctrl_flx0_default>;
330dd7e1845SClément Léger					status = "okay";
331dd7e1845SClément Léger				};
332dd7e1845SClément Léger
333dd7e1845SClément Léger				i2c2: i2c@600 {
334dd7e1845SClément Léger					dmas = <0>, <0>;
335dd7e1845SClément Léger					pinctrl-names = "default", "gpio";
336dd7e1845SClément Léger					pinctrl-0 = <&pinctrl_flx0_default>;
337dd7e1845SClément Léger					pinctrl-1 = <&pinctrl_i2c2_gpio>;
338dd7e1845SClément Léger					sda-gpios = <&pioA PIN_PB28 GPIO_ACTIVE_HIGH>;
339dd7e1845SClément Léger					scl-gpios = <&pioA PIN_PB29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
340dd7e1845SClément Léger					i2c-sda-hold-time-ns = <350>;
341dd7e1845SClément Léger					i2c-analog-filter;
342dd7e1845SClément Léger					i2c-digital-filter;
343dd7e1845SClément Léger					i2c-digital-filter-width-ns = <35>;
344dd7e1845SClément Léger					status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */
345dd7e1845SClément Léger				};
346dd7e1845SClément Léger			};
347dd7e1845SClément Léger
348dd7e1845SClément Léger			shdwc@f8048010 {
349dd7e1845SClément Léger				debounce-delay-us = <976>;
350dd7e1845SClément Léger				atmel,wakeup-rtc-timer;
351dd7e1845SClément Léger
352dd7e1845SClément Léger				input@0 {
353dd7e1845SClément Léger					reg = <0>;
354dd7e1845SClément Léger				};
355dd7e1845SClément Léger			};
356dd7e1845SClément Léger
357dd7e1845SClément Léger			i2s0: i2s@f8050000 {
358dd7e1845SClément Léger				pinctrl-names = "default";
359dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_i2s0_default>;
360dd7e1845SClément Léger				status = "disabled"; /* conflict with can0 */
361dd7e1845SClément Léger			};
362dd7e1845SClément Léger
363dd7e1845SClément Léger			can0: can@f8054000 {
364dd7e1845SClément Léger				pinctrl-names = "default";
365dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_can0_default>;
366dd7e1845SClément Léger				status = "okay";
367dd7e1845SClément Léger			};
368dd7e1845SClément Léger
369dd7e1845SClément Léger			uart3: serial@fc008000 {
370dd7e1845SClément Léger				atmel,use-dma-rx;
371dd7e1845SClément Léger				atmel,use-dma-tx;
372dd7e1845SClément Léger				pinctrl-names = "default";
373dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_uart3_default>;
374dd7e1845SClément Léger				status = "okay";
375dd7e1845SClément Léger			};
376dd7e1845SClément Léger
377dd7e1845SClément Léger			flx4: flexcom@fc018000 {
378dd7e1845SClément Léger				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
379dd7e1845SClément Léger				status = "okay";
380dd7e1845SClément Léger
381dd7e1845SClément Léger				i2c6: i2c@600 {
382dd7e1845SClément Léger					dmas = <0>, <0>;
383dd7e1845SClément Léger					pinctrl-names = "default", "gpio";
384dd7e1845SClément Léger					pinctrl-0 = <&pinctrl_flx4_default>;
385dd7e1845SClément Léger					pinctrl-1 = <&pinctrl_flx4_gpio>;
386dd7e1845SClément Léger					sda-gpios = <&pioA PIN_PD12 GPIO_ACTIVE_HIGH>;
387dd7e1845SClément Léger					scl-gpios = <&pioA PIN_PD13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
388dd7e1845SClément Léger					i2c-analog-filter;
389dd7e1845SClément Léger					i2c-digital-filter;
390dd7e1845SClément Léger					i2c-digital-filter-width-ns = <35>;
391dd7e1845SClément Léger					status = "okay";
392dd7e1845SClément Léger				};
393dd7e1845SClément Léger			};
394dd7e1845SClément Léger
395dd7e1845SClément Léger			i2c1: i2c@fc028000 {
396dd7e1845SClément Léger				dmas = <0>, <0>;
397dd7e1845SClément Léger				pinctrl-names = "default", "gpio";
398dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_i2c1_default>;
399dd7e1845SClément Léger				i2c-analog-filter;
400dd7e1845SClément Léger				i2c-digital-filter;
401dd7e1845SClément Léger				i2c-digital-filter-width-ns = <35>;
402dd7e1845SClément Léger				pinctrl-1 = <&pinctrl_i2c1_gpio>;
403dd7e1845SClément Léger				sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>;
404dd7e1845SClément Léger				scl-gpios = <&pioA PIN_PD5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
405dd7e1845SClément Léger				status = "okay";
406dd7e1845SClément Léger
407dd7e1845SClément Léger				at24@54 {
408dd7e1845SClément Léger					compatible = "atmel,24c02";
409dd7e1845SClément Léger					reg = <0x54>;
410dd7e1845SClément Léger					pagesize = <16>;
411dd7e1845SClément Léger				};
412dd7e1845SClément Léger			};
413dd7e1845SClément Léger
414dd7e1845SClément Léger			adc: adc@fc030000 {
415dd7e1845SClément Léger				vddana-supply = <&vdd_3v3_lp_reg>;
416dd7e1845SClément Léger				vref-supply = <&vdd_3v3_lp_reg>;
417dd7e1845SClément Léger				pinctrl-names = "default";
418dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
419dd7e1845SClément Léger				status = "okay";
420dd7e1845SClément Léger			};
421dd7e1845SClément Léger
422*d16bc0a9SClément Léger			pinctrl@fc039000 {
423dd7e1845SClément Léger				/*
424dd7e1845SClément Léger				 * There is no real pinmux for ADC, if the pin
425dd7e1845SClément Léger				 * is not requested by another peripheral then
426dd7e1845SClément Léger				 * the muxing is done when channel is enabled.
427dd7e1845SClément Léger				 * Requesting pins for ADC is GPIO is
428dd7e1845SClément Léger				 * encouraged to prevent conflicts and to
429dd7e1845SClément Léger				 * disable bias in order to be in the same
430dd7e1845SClément Léger				 * state when the pin is not muxed to the adc.
431dd7e1845SClément Léger				 */
432dd7e1845SClément Léger				pinctrl_adc_default: adc_default {
433dd7e1845SClément Léger					pinmux = <PIN_PD23__GPIO>;
434dd7e1845SClément Léger					bias-disable;
435dd7e1845SClément Léger				};
436dd7e1845SClément Léger
437dd7e1845SClément Léger				pinctrl_can0_default: can0_default {
438dd7e1845SClément Léger					pinmux = <PIN_PC10__CANTX0>,
439dd7e1845SClément Léger						 <PIN_PC11__CANRX0>;
440dd7e1845SClément Léger					bias-disable;
441dd7e1845SClément Léger				};
442dd7e1845SClément Léger
443dd7e1845SClément Léger				pinctrl_can1_default: can1_default {
444dd7e1845SClément Léger					pinmux = <PIN_PC26__CANTX1>,
445dd7e1845SClément Léger						 <PIN_PC27__CANRX1>;
446dd7e1845SClément Léger					bias-disable;
447dd7e1845SClément Léger				};
448dd7e1845SClément Léger
449dd7e1845SClément Léger				/*
450dd7e1845SClément Léger				 * The ADTRG pin can work on any edge type.
451dd7e1845SClément Léger				 * In here it's being pulled up, so need to
452dd7e1845SClément Léger				 * connect it to ground to get an edge e.g.
453dd7e1845SClément Léger				 * Trigger can be configured on falling, rise
454dd7e1845SClément Léger				 * or any edge, and the pull-up can be changed
455dd7e1845SClément Léger				 * to pull-down or left floating according to
456dd7e1845SClément Léger				 * needs.
457dd7e1845SClément Léger				 */
458dd7e1845SClément Léger				pinctrl_adtrg_default: adtrg_default {
459dd7e1845SClément Léger					pinmux = <PIN_PD31__ADTRG>;
460dd7e1845SClément Léger					bias-pull-up;
461dd7e1845SClément Léger				};
462dd7e1845SClément Léger
463dd7e1845SClément Léger				pinctrl_charger_chglev: charger_chglev {
464dd7e1845SClément Léger					pinmux = <PIN_PA12__GPIO>;
465dd7e1845SClément Léger					bias-disable;
466dd7e1845SClément Léger				};
467dd7e1845SClément Léger
468dd7e1845SClément Léger				pinctrl_charger_irq: charger_irq {
469dd7e1845SClément Léger					pinmux = <PIN_PB13__GPIO>;
470dd7e1845SClément Léger					bias-disable;
471dd7e1845SClément Léger				};
472dd7e1845SClément Léger
473dd7e1845SClément Léger				pinctrl_charger_lbo: charger_lbo {
474dd7e1845SClément Léger					pinmux = <PIN_PC8__GPIO>;
475dd7e1845SClément Léger					bias-pull-up;
476dd7e1845SClément Léger				};
477dd7e1845SClément Léger
478dd7e1845SClément Léger				pinctrl_classd_default_pfets: classd_default_pfets {
479dd7e1845SClément Léger					pinmux = <PIN_PB1__CLASSD_R0>,
480dd7e1845SClément Léger						 <PIN_PB3__CLASSD_R2>;
481dd7e1845SClément Léger					bias-pull-up;
482dd7e1845SClément Léger				};
483dd7e1845SClément Léger
484dd7e1845SClément Léger				pinctrl_classd_default_nfets: classd_default_nfets {
485dd7e1845SClément Léger					pinmux = <PIN_PB2__CLASSD_R1>,
486dd7e1845SClément Léger						 <PIN_PB4__CLASSD_R3>;
487dd7e1845SClément Léger					bias-pull-down;
488dd7e1845SClément Léger				};
489dd7e1845SClément Léger
490dd7e1845SClément Léger				pinctrl_flx0_default: flx0_default {
491dd7e1845SClément Léger					pinmux = <PIN_PB28__FLEXCOM0_IO0>,
492dd7e1845SClément Léger						 <PIN_PB29__FLEXCOM0_IO1>;
493dd7e1845SClément Léger					bias-disable;
494dd7e1845SClément Léger				};
495dd7e1845SClément Léger
496dd7e1845SClément Léger				pinctrl_flx4_default: flx4_default {
497dd7e1845SClément Léger					pinmux = <PIN_PD12__FLEXCOM4_IO0>,
498dd7e1845SClément Léger						 <PIN_PD13__FLEXCOM4_IO1>;
499dd7e1845SClément Léger					bias-disable;
500dd7e1845SClément Léger				};
501dd7e1845SClément Léger
502dd7e1845SClément Léger				pinctrl_flx4_gpio: flx4_gpio {
503dd7e1845SClément Léger					pinmux = <PIN_PD12__GPIO>,
504dd7e1845SClément Léger						 <PIN_PD13__GPIO>;
505dd7e1845SClément Léger					bias-disable;
506dd7e1845SClément Léger				};
507dd7e1845SClément Léger
508dd7e1845SClément Léger				pinctrl_i2c0_default: i2c0_default {
509dd7e1845SClément Léger					pinmux = <PIN_PD21__TWD0>,
510dd7e1845SClément Léger						 <PIN_PD22__TWCK0>;
511dd7e1845SClément Léger					bias-disable;
512dd7e1845SClément Léger				};
513dd7e1845SClément Léger
514dd7e1845SClément Léger				pinctrl_i2c0_gpio: i2c0_gpio {
515dd7e1845SClément Léger					pinmux = <PIN_PD21__GPIO>,
516dd7e1845SClément Léger						 <PIN_PD22__GPIO>;
517dd7e1845SClément Léger					bias-disable;
518dd7e1845SClément Léger				};
519dd7e1845SClément Léger
520dd7e1845SClément Léger				pinctrl_i2c1_default: i2c1_default {
521dd7e1845SClément Léger					pinmux = <PIN_PD4__TWD1>,
522dd7e1845SClément Léger						 <PIN_PD5__TWCK1>;
523dd7e1845SClément Léger					bias-disable;
524dd7e1845SClément Léger				};
525dd7e1845SClément Léger
526dd7e1845SClément Léger				pinctrl_i2c1_gpio: i2c1_gpio {
527dd7e1845SClément Léger					pinmux = <PIN_PD4__GPIO>,
528dd7e1845SClément Léger						 <PIN_PD5__GPIO>;
529dd7e1845SClément Léger					bias-disable;
530dd7e1845SClément Léger				};
531dd7e1845SClément Léger
532dd7e1845SClément Léger				pinctrl_i2c2_gpio: i2c2_gpio {
533dd7e1845SClément Léger					pinmux = <PIN_PB28__GPIO>,
534dd7e1845SClément Léger						 <PIN_PB29__GPIO>;
535dd7e1845SClément Léger					bias-disable;
536dd7e1845SClément Léger				};
537dd7e1845SClément Léger
538dd7e1845SClément Léger				pinctrl_i2s0_default: i2s0_default {
539dd7e1845SClément Léger					pinmux = <PIN_PC1__I2SC0_CK>,
540dd7e1845SClément Léger						 <PIN_PC2__I2SC0_MCK>,
541dd7e1845SClément Léger						 <PIN_PC3__I2SC0_WS>,
542dd7e1845SClément Léger						 <PIN_PC4__I2SC0_DI0>,
543dd7e1845SClément Léger						 <PIN_PC5__I2SC0_DO0>;
544dd7e1845SClément Léger					bias-disable;
545dd7e1845SClément Léger				};
546dd7e1845SClément Léger
547dd7e1845SClément Léger				pinctrl_i2s1_default: i2s1_default {
548dd7e1845SClément Léger					pinmux = <PIN_PA15__I2SC1_CK>,
549dd7e1845SClément Léger						 <PIN_PA14__I2SC1_MCK>,
550dd7e1845SClément Léger						 <PIN_PA16__I2SC1_WS>,
551dd7e1845SClément Léger						 <PIN_PA17__I2SC1_DI0>,
552dd7e1845SClément Léger						 <PIN_PA18__I2SC1_DO0>;
553dd7e1845SClément Léger					bias-disable;
554dd7e1845SClément Léger				};
555dd7e1845SClément Léger
556dd7e1845SClément Léger				pinctrl_key_gpio_default: key_gpio_default {
557dd7e1845SClément Léger					pinmux = <PIN_PB9__GPIO>;
558dd7e1845SClément Léger					bias-pull-up;
559dd7e1845SClément Léger				};
560dd7e1845SClément Léger
561dd7e1845SClément Léger				pinctrl_led_gpio_default: led_gpio_default {
562dd7e1845SClément Léger					pinmux = <PIN_PB0__GPIO>,
563dd7e1845SClément Léger						 <PIN_PB5__GPIO>,
564dd7e1845SClément Léger						 <PIN_PB6__GPIO>;
565dd7e1845SClément Léger					bias-pull-up;
566dd7e1845SClément Léger				};
567dd7e1845SClément Léger
568dd7e1845SClément Léger				pinctrl_macb0_default: macb0_default {
569dd7e1845SClément Léger					pinmux = <PIN_PB14__GTXCK>,
570dd7e1845SClément Léger						 <PIN_PB15__GTXEN>,
571dd7e1845SClément Léger						 <PIN_PB16__GRXDV>,
572dd7e1845SClément Léger						 <PIN_PB17__GRXER>,
573dd7e1845SClément Léger						 <PIN_PB18__GRX0>,
574dd7e1845SClément Léger						 <PIN_PB19__GRX1>,
575dd7e1845SClément Léger						 <PIN_PB20__GTX0>,
576dd7e1845SClément Léger						 <PIN_PB21__GTX1>,
577dd7e1845SClément Léger						 <PIN_PB22__GMDC>,
578dd7e1845SClément Léger						 <PIN_PB23__GMDIO>;
579dd7e1845SClément Léger					bias-disable;
580dd7e1845SClément Léger				};
581dd7e1845SClément Léger
582dd7e1845SClément Léger				pinctrl_macb0_phy_irq: macb0_phy_irq {
583dd7e1845SClément Léger					pinmux = <PIN_PC9__GPIO>;
584dd7e1845SClément Léger					bias-disable;
585dd7e1845SClément Léger				};
586dd7e1845SClément Léger
587dd7e1845SClément Léger				pinctrl_qspi0_default: qspi0_default {
588dd7e1845SClément Léger					sck_cs {
589dd7e1845SClément Léger						pinmux = <PIN_PA22__QSPI0_SCK>,
590dd7e1845SClément Léger							 <PIN_PA23__QSPI0_CS>;
591dd7e1845SClément Léger						bias-disable;
592dd7e1845SClément Léger					};
593dd7e1845SClément Léger
594dd7e1845SClément Léger					data {
595dd7e1845SClément Léger						pinmux = <PIN_PA24__QSPI0_IO0>,
596dd7e1845SClément Léger							 <PIN_PA25__QSPI0_IO1>,
597dd7e1845SClément Léger							 <PIN_PA26__QSPI0_IO2>,
598dd7e1845SClément Léger							 <PIN_PA27__QSPI0_IO3>;
599dd7e1845SClément Léger						bias-pull-up;
600dd7e1845SClément Léger					};
601dd7e1845SClément Léger				};
602dd7e1845SClément Léger
603dd7e1845SClément Léger				pinctrl_sdmmc0_default: sdmmc0_default {
604dd7e1845SClément Léger					cmd_data {
605dd7e1845SClément Léger						pinmux = <PIN_PA1__SDMMC0_CMD>,
606dd7e1845SClément Léger							 <PIN_PA2__SDMMC0_DAT0>,
607dd7e1845SClément Léger							 <PIN_PA3__SDMMC0_DAT1>,
608dd7e1845SClément Léger							 <PIN_PA4__SDMMC0_DAT2>,
609dd7e1845SClément Léger							 <PIN_PA5__SDMMC0_DAT3>,
610dd7e1845SClément Léger							 <PIN_PA6__SDMMC0_DAT4>,
611dd7e1845SClément Léger							 <PIN_PA7__SDMMC0_DAT5>,
612dd7e1845SClément Léger							 <PIN_PA8__SDMMC0_DAT6>,
613dd7e1845SClément Léger							 <PIN_PA9__SDMMC0_DAT7>;
614dd7e1845SClément Léger						bias-disable;
615dd7e1845SClément Léger					};
616dd7e1845SClément Léger
617dd7e1845SClément Léger					ck_cd_rstn_vddsel {
618dd7e1845SClément Léger						pinmux = <PIN_PA0__SDMMC0_CK>,
619dd7e1845SClément Léger							 <PIN_PA10__SDMMC0_RSTN>,
620dd7e1845SClément Léger							 <PIN_PA11__SDMMC0_VDDSEL>,
621dd7e1845SClément Léger							 <PIN_PA13__SDMMC0_CD>;
622dd7e1845SClément Léger						bias-disable;
623dd7e1845SClément Léger					};
624dd7e1845SClément Léger				};
625dd7e1845SClément Léger
626dd7e1845SClément Léger				pinctrl_sdmmc1_default: sdmmc1_default {
627dd7e1845SClément Léger					cmd_data {
628dd7e1845SClément Léger						pinmux = <PIN_PA28__SDMMC1_CMD>,
629dd7e1845SClément Léger							 <PIN_PA18__SDMMC1_DAT0>,
630dd7e1845SClément Léger							 <PIN_PA19__SDMMC1_DAT1>,
631dd7e1845SClément Léger							 <PIN_PA20__SDMMC1_DAT2>,
632dd7e1845SClément Léger							 <PIN_PA21__SDMMC1_DAT3>;
633dd7e1845SClément Léger						bias-disable;
634dd7e1845SClément Léger					};
635dd7e1845SClément Léger
636dd7e1845SClément Léger					conf-ck_cd {
637dd7e1845SClément Léger						pinmux = <PIN_PA22__SDMMC1_CK>,
638dd7e1845SClément Léger							 <PIN_PA30__SDMMC1_CD>;
639dd7e1845SClément Léger						bias-disable;
640dd7e1845SClément Léger					};
641dd7e1845SClément Léger				};
642dd7e1845SClément Léger
643dd7e1845SClément Léger				pinctrl_spi0_default: spi0_default {
644dd7e1845SClément Léger					pinmux = <PIN_PA14__SPI0_SPCK>,
645dd7e1845SClément Léger						 <PIN_PA15__SPI0_MOSI>,
646dd7e1845SClément Léger						 <PIN_PA16__SPI0_MISO>,
647dd7e1845SClément Léger						 <PIN_PA17__SPI0_NPCS0>;
648dd7e1845SClément Léger					bias-disable;
649dd7e1845SClément Léger				};
650dd7e1845SClément Léger
651dd7e1845SClément Léger				pinctrl_uart1_default: uart1_default {
652dd7e1845SClément Léger					pinmux = <PIN_PD2__URXD1>,
653dd7e1845SClément Léger						 <PIN_PD3__UTXD1>;
654dd7e1845SClément Léger					bias-disable;
655dd7e1845SClément Léger				};
656dd7e1845SClément Léger
657dd7e1845SClément Léger				pinctrl_uart3_default: uart3_default {
658dd7e1845SClément Léger					pinmux = <PIN_PB11__URXD3>,
659dd7e1845SClément Léger						 <PIN_PB12__UTXD3>;
660dd7e1845SClément Léger					bias-disable;
661dd7e1845SClément Léger				};
662dd7e1845SClément Léger
663dd7e1845SClément Léger				pinctrl_usb_default: usb_default {
664dd7e1845SClément Léger					pinmux = <PIN_PB10__GPIO>;
665dd7e1845SClément Léger					bias-disable;
666dd7e1845SClément Léger				};
667dd7e1845SClément Léger
668dd7e1845SClément Léger				pinctrl_usba_vbus: usba_vbus {
669dd7e1845SClément Léger					pinmux = <PIN_PA31__GPIO>;
670dd7e1845SClément Léger					bias-disable;
671dd7e1845SClément Léger				};
672dd7e1845SClément Léger
673dd7e1845SClément Léger				pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
674dd7e1845SClément Léger					pinmux = <PIN_PB5__PWMH2>,
675dd7e1845SClément Léger						 <PIN_PB6__PWML2>;
676dd7e1845SClément Léger					bias-pull-up;
677dd7e1845SClément Léger				};
678dd7e1845SClément Léger			};
679dd7e1845SClément Léger
680dd7e1845SClément Léger			classd: classd@fc048000 {
681dd7e1845SClément Léger				pinctrl-names = "default";
682dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_classd_default_pfets &pinctrl_classd_default_nfets>;
683dd7e1845SClément Léger				atmel,pwm-type = "diff";
684dd7e1845SClément Léger				atmel,non-overlap-time = <10>;
685dd7e1845SClément Léger				status = "okay";
686dd7e1845SClément Léger			};
687dd7e1845SClément Léger
688dd7e1845SClément Léger			i2s1: i2s@fc04c000 {
689dd7e1845SClément Léger				pinctrl-names = "default";
690dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_i2s1_default>;
691dd7e1845SClément Léger				status = "disabled"; /* conflict with spi0, sdmmc1 */
692dd7e1845SClément Léger			};
693dd7e1845SClément Léger
694dd7e1845SClément Léger			can1: can@fc050000 {
695dd7e1845SClément Léger				pinctrl-names = "default";
696dd7e1845SClément Léger				pinctrl-0 = <&pinctrl_can1_default>;
697dd7e1845SClément Léger				status = "okay";
698dd7e1845SClément Léger			};
699dd7e1845SClément Léger		};
700dd7e1845SClément Léger	};
701dd7e1845SClément Léger
702dd7e1845SClément Léger	gpio_keys {
703dd7e1845SClément Léger		compatible = "gpio-keys";
704dd7e1845SClément Léger
705dd7e1845SClément Léger		pinctrl-names = "default";
706dd7e1845SClément Léger		pinctrl-0 = <&pinctrl_key_gpio_default>;
707dd7e1845SClément Léger
708dd7e1845SClément Léger		bp1 {
709dd7e1845SClément Léger			label = "PB_USER";
710dd7e1845SClément Léger			gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>;
711dd7e1845SClément Léger			/* linux,code = <KEY_PROG1>; BSD license issue */
712dd7e1845SClément Léger			wakeup-source;
713dd7e1845SClément Léger		};
714dd7e1845SClément Léger	};
715dd7e1845SClément Léger
716dd7e1845SClément Léger	leds {
717dd7e1845SClément Léger		compatible = "gpio-leds";
718dd7e1845SClément Léger		pinctrl-names = "default";
719dd7e1845SClément Léger		pinctrl-0 = <&pinctrl_led_gpio_default>;
720dd7e1845SClément Léger		status = "okay"; /* conflict with pwm0 */
721dd7e1845SClément Léger
722dd7e1845SClément Léger		red {
723dd7e1845SClément Léger			label = "red";
724dd7e1845SClément Léger			gpios = <&pioA PIN_PB6 GPIO_ACTIVE_LOW>;
725dd7e1845SClément Léger		};
726dd7e1845SClément Léger
727dd7e1845SClément Léger
728dd7e1845SClément Léger		green {
729dd7e1845SClément Léger			label = "green";
730dd7e1845SClément Léger			gpios = <&pioA PIN_PB5 GPIO_ACTIVE_LOW>;
731dd7e1845SClément Léger		};
732dd7e1845SClément Léger
733dd7e1845SClément Léger		blue {
734dd7e1845SClément Léger			label = "blue";
735dd7e1845SClément Léger			gpios = <&pioA PIN_PB0 GPIO_ACTIVE_LOW>;
736dd7e1845SClément Léger			linux,default-trigger = "heartbeat";
737dd7e1845SClément Léger		};
738dd7e1845SClément Léger	};
739dd7e1845SClément Léger};
740