xref: /linux/arch/arm/boot/dts/microchip/at91-sama5d2_xplained.dts (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2724ba675SRob Herring/*
3724ba675SRob Herring * at91-sama5d2_xplained.dts - Device Tree file for SAMA5D2 Xplained board
4724ba675SRob Herring *
5724ba675SRob Herring *  Copyright (C) 2015 Atmel,
6724ba675SRob Herring *                2015 Nicolas Ferre <nicolas.ferre@atmel.com>
7724ba675SRob Herring */
8724ba675SRob Herring/dts-v1/;
9724ba675SRob Herring#include "sama5d2.dtsi"
10724ba675SRob Herring#include "sama5d2-pinfunc.h"
11724ba675SRob Herring#include <dt-bindings/mfd/atmel-flexcom.h>
12724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
13724ba675SRob Herring#include <dt-bindings/input/input.h>
14724ba675SRob Herring#include <dt-bindings/regulator/active-semi,8945a-regulator.h>
15724ba675SRob Herring
16724ba675SRob Herring/ {
17724ba675SRob Herring	model = "Atmel SAMA5D2 Xplained";
18724ba675SRob Herring	compatible = "atmel,sama5d2-xplained", "atmel,sama5d2", "atmel,sama5";
19724ba675SRob Herring
20724ba675SRob Herring	aliases {
21724ba675SRob Herring		serial0 = &uart1;	/* DBGU */
22724ba675SRob Herring		i2c0 = &i2c0;
23724ba675SRob Herring		i2c1 = &i2c1;
24724ba675SRob Herring		i2c2 = &i2c2;		/* XPRO EXT2 */
25724ba675SRob Herring	};
26724ba675SRob Herring
27724ba675SRob Herring	chosen {
28724ba675SRob Herring		stdout-path = "serial0:115200n8";
29724ba675SRob Herring	};
30724ba675SRob Herring
31724ba675SRob Herring	clocks {
32724ba675SRob Herring		slow_xtal {
33724ba675SRob Herring			clock-frequency = <32768>;
34724ba675SRob Herring		};
35724ba675SRob Herring
36724ba675SRob Herring		main_xtal {
37724ba675SRob Herring			clock-frequency = <12000000>;
38724ba675SRob Herring		};
39724ba675SRob Herring	};
40724ba675SRob Herring
41724ba675SRob Herring	ahb {
42724ba675SRob Herring		usb0: gadget@300000 {
43724ba675SRob Herring			atmel,vbus-gpio = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
44724ba675SRob Herring			pinctrl-names = "default";
45724ba675SRob Herring			pinctrl-0 = <&pinctrl_usba_vbus>;
46724ba675SRob Herring			status = "okay";
47724ba675SRob Herring		};
48724ba675SRob Herring
49724ba675SRob Herring		usb1: ohci@400000 {
50724ba675SRob Herring			num-ports = <3>;
51724ba675SRob Herring			atmel,vbus-gpio = <0 /* &pioA PIN_PB9 GPIO_ACTIVE_HIGH */
52724ba675SRob Herring					   &pioA PIN_PB10 GPIO_ACTIVE_HIGH
53724ba675SRob Herring					   0
54724ba675SRob Herring					  >;
55724ba675SRob Herring			pinctrl-names = "default";
56724ba675SRob Herring			pinctrl-0 = <&pinctrl_usb_default>;
57724ba675SRob Herring			status = "okay";
58724ba675SRob Herring		};
59724ba675SRob Herring
60724ba675SRob Herring		usb2: ehci@500000 {
61724ba675SRob Herring			status = "okay";
62724ba675SRob Herring		};
63724ba675SRob Herring
64724ba675SRob Herring		sdmmc0: sdio-host@a0000000 {
65724ba675SRob Herring			bus-width = <8>;
66724ba675SRob Herring			pinctrl-names = "default";
67724ba675SRob Herring			pinctrl-0 = <&pinctrl_sdmmc0_default>;
68724ba675SRob Herring			non-removable;
69724ba675SRob Herring			mmc-ddr-3_3v;
70724ba675SRob Herring			status = "okay";
71724ba675SRob Herring		};
72724ba675SRob Herring
73724ba675SRob Herring		sdmmc1: sdio-host@b0000000 {
74724ba675SRob Herring			bus-width = <4>;
75724ba675SRob Herring			pinctrl-names = "default";
76724ba675SRob Herring			pinctrl-0 = <&pinctrl_sdmmc1_default>;
77724ba675SRob Herring			status = "okay"; /* conflict with qspi0 */
78724ba675SRob Herring			vqmmc-supply = <&vdd_3v3_reg>;
79724ba675SRob Herring			vmmc-supply = <&vdd_3v3_reg>;
80724ba675SRob Herring		};
81724ba675SRob Herring
82724ba675SRob Herring		apb {
83724ba675SRob Herring			qspi0: spi@f0020000 {
84724ba675SRob Herring				pinctrl-names = "default";
85724ba675SRob Herring				pinctrl-0 = <&pinctrl_qspi0_default>;
86724ba675SRob Herring				status = "disabled"; /* conflict with sdmmc1 */
87724ba675SRob Herring
88724ba675SRob Herring				flash@0 {
89724ba675SRob Herring					#address-cells = <1>;
90724ba675SRob Herring					#size-cells = <1>;
91724ba675SRob Herring					compatible = "jedec,spi-nor";
92724ba675SRob Herring					reg = <0>;
93724ba675SRob Herring					spi-max-frequency = <80000000>;
94724ba675SRob Herring					spi-tx-bus-width = <4>;
95724ba675SRob Herring					spi-rx-bus-width = <4>;
96724ba675SRob Herring					m25p,fast-read;
97724ba675SRob Herring
98724ba675SRob Herring					at91bootstrap@0 {
99724ba675SRob Herring						label = "at91bootstrap";
100724ba675SRob Herring						reg = <0x00000000 0x00040000>;
101724ba675SRob Herring					};
102724ba675SRob Herring
103724ba675SRob Herring					bootloader@40000 {
104724ba675SRob Herring						label = "bootloader";
105724ba675SRob Herring						reg = <0x00040000 0x000c0000>;
106724ba675SRob Herring					};
107724ba675SRob Herring
108724ba675SRob Herring					bootloaderenvred@100000 {
109724ba675SRob Herring						label = "bootloader env redundant";
110724ba675SRob Herring						reg = <0x00100000 0x00040000>;
111724ba675SRob Herring					};
112724ba675SRob Herring
113724ba675SRob Herring					bootloaderenv@140000 {
114724ba675SRob Herring						label = "bootloader env";
115724ba675SRob Herring						reg = <0x00140000 0x00040000>;
116724ba675SRob Herring					};
117724ba675SRob Herring
118724ba675SRob Herring					dtb@180000 {
119724ba675SRob Herring						label = "device tree";
120724ba675SRob Herring						reg = <0x00180000 0x00080000>;
121724ba675SRob Herring					};
122724ba675SRob Herring
123724ba675SRob Herring					kernel@200000 {
124724ba675SRob Herring						label = "kernel";
125724ba675SRob Herring						reg = <0x00200000 0x00600000>;
126724ba675SRob Herring					};
127724ba675SRob Herring
128724ba675SRob Herring					misc@800000 {
129724ba675SRob Herring						label = "misc";
130724ba675SRob Herring						reg = <0x00800000 0x00000000>;
131724ba675SRob Herring					};
132724ba675SRob Herring				};
133724ba675SRob Herring			};
134724ba675SRob Herring
135724ba675SRob Herring			spi0: spi@f8000000 {
136724ba675SRob Herring				pinctrl-names = "default";
137724ba675SRob Herring				pinctrl-0 = <&pinctrl_spi0_default>;
138724ba675SRob Herring				status = "okay";
139724ba675SRob Herring
140724ba675SRob Herring				flash@0 {
141724ba675SRob Herring					compatible = "atmel,at25df321a";
142724ba675SRob Herring					reg = <0>;
143724ba675SRob Herring					spi-max-frequency = <50000000>;
144724ba675SRob Herring				};
145724ba675SRob Herring			};
146724ba675SRob Herring
147724ba675SRob Herring			macb0: ethernet@f8008000 {
148724ba675SRob Herring				pinctrl-names = "default";
149724ba675SRob Herring				pinctrl-0 = <&pinctrl_macb0_default &pinctrl_macb0_phy_irq>;
150724ba675SRob Herring				#address-cells = <1>;
151724ba675SRob Herring				#size-cells = <0>;
152724ba675SRob Herring				phy-mode = "rmii";
153724ba675SRob Herring				status = "okay";
154724ba675SRob Herring
155724ba675SRob Herring				ethernet-phy@1 {
156724ba675SRob Herring					reg = <0x1>;
157724ba675SRob Herring					interrupt-parent = <&pioA>;
158724ba675SRob Herring					interrupts = <PIN_PC9 IRQ_TYPE_LEVEL_LOW>;
159724ba675SRob Herring				};
160724ba675SRob Herring			};
161724ba675SRob Herring
162724ba675SRob Herring			tcb0: timer@f800c000 {
163724ba675SRob Herring				timer0: timer@0 {
164724ba675SRob Herring					compatible = "atmel,tcb-timer";
165724ba675SRob Herring					reg = <0>;
166724ba675SRob Herring				};
167724ba675SRob Herring
168724ba675SRob Herring				timer1: timer@1 {
169724ba675SRob Herring					compatible = "atmel,tcb-timer";
170724ba675SRob Herring					reg = <1>;
171724ba675SRob Herring				};
172724ba675SRob Herring			};
173724ba675SRob Herring
174724ba675SRob Herring			uart1: serial@f8020000 {
175724ba675SRob Herring				pinctrl-names = "default";
176724ba675SRob Herring				pinctrl-0 = <&pinctrl_uart1_default>;
177724ba675SRob Herring				atmel,use-dma-rx;
178724ba675SRob Herring				atmel,use-dma-tx;
179724ba675SRob Herring				status = "okay";
180724ba675SRob Herring			};
181724ba675SRob Herring
182724ba675SRob Herring			i2c0: i2c@f8028000 {
183724ba675SRob Herring				dmas = <0>, <0>;
184724ba675SRob Herring				pinctrl-names = "default", "gpio";
185724ba675SRob Herring				pinctrl-0 = <&pinctrl_i2c0_default>;
186724ba675SRob Herring				pinctrl-1 = <&pinctrl_i2c0_gpio>;
187724ba675SRob Herring				sda-gpios = <&pioA PIN_PD21 GPIO_ACTIVE_HIGH>;
188724ba675SRob Herring				scl-gpios = <&pioA PIN_PD22 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
189724ba675SRob Herring				i2c-sda-hold-time-ns = <350>;
190724ba675SRob Herring				status = "okay";
191724ba675SRob Herring
192724ba675SRob Herring				pmic@5b {
193724ba675SRob Herring					compatible = "active-semi,act8945a";
194724ba675SRob Herring					reg = <0x5b>;
195724ba675SRob Herring					active-semi,vsel-high;
196724ba675SRob Herring					status = "okay";
197724ba675SRob Herring
198724ba675SRob Herring					regulators {
199724ba675SRob Herring						vdd_1v35_reg: REG_DCDC1 {
200724ba675SRob Herring							regulator-name = "VDD_1V35";
201724ba675SRob Herring							regulator-min-microvolt = <1350000>;
202724ba675SRob Herring							regulator-max-microvolt = <1350000>;
203724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
204724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
205724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
206724ba675SRob Herring							regulator-always-on;
207724ba675SRob Herring
208724ba675SRob Herring							regulator-state-mem {
209724ba675SRob Herring								regulator-on-in-suspend;
210724ba675SRob Herring								regulator-suspend-min-microvolt = <1400000>;
211724ba675SRob Herring								regulator-suspend-max-microvolt = <1400000>;
212724ba675SRob Herring								regulator-changeable-in-suspend;
213724ba675SRob Herring								regulator-mode = <ACT8945A_REGULATOR_MODE_LOWPOWER>;
214724ba675SRob Herring							};
215724ba675SRob Herring						};
216724ba675SRob Herring
217724ba675SRob Herring						vdd_1v2_reg: REG_DCDC2 {
218724ba675SRob Herring							regulator-name = "VDD_1V2";
219724ba675SRob Herring							regulator-min-microvolt = <1100000>;
220724ba675SRob Herring							regulator-max-microvolt = <1300000>;
221724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
222724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
223724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
224724ba675SRob Herring							regulator-always-on;
225724ba675SRob Herring
226724ba675SRob Herring							regulator-state-mem {
227724ba675SRob Herring								regulator-off-in-suspend;
228724ba675SRob Herring							};
229724ba675SRob Herring						};
230724ba675SRob Herring
231724ba675SRob Herring						vdd_3v3_reg: REG_DCDC3 {
232724ba675SRob Herring							regulator-name = "VDD_3V3";
233724ba675SRob Herring							regulator-min-microvolt = <3300000>;
234724ba675SRob Herring							regulator-max-microvolt = <3300000>;
235724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_FIXED>,
236724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
237724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_FIXED>;
238724ba675SRob Herring							regulator-always-on;
239724ba675SRob Herring
240724ba675SRob Herring							regulator-state-mem {
241724ba675SRob Herring								regulator-off-in-suspend;
242724ba675SRob Herring							};
243724ba675SRob Herring						};
244724ba675SRob Herring
245724ba675SRob Herring						vdd_fuse_reg: REG_LDO1 {
246724ba675SRob Herring							regulator-name = "VDD_FUSE";
247724ba675SRob Herring							regulator-min-microvolt = <2500000>;
248724ba675SRob Herring							regulator-max-microvolt = <2500000>;
249724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
250724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
251724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
252724ba675SRob Herring							regulator-always-on;
253724ba675SRob Herring
254724ba675SRob Herring							regulator-state-mem {
255724ba675SRob Herring								regulator-off-in-suspend;
256724ba675SRob Herring							};
257724ba675SRob Herring						};
258724ba675SRob Herring
259724ba675SRob Herring						vdd_3v3_lp_reg: REG_LDO2 {
260724ba675SRob Herring							regulator-name = "VDD_3V3_LP";
261724ba675SRob Herring							regulator-min-microvolt = <3300000>;
262724ba675SRob Herring							regulator-max-microvolt = <3300000>;
263724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
264724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
265724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
266724ba675SRob Herring							regulator-always-on;
267724ba675SRob Herring
268724ba675SRob Herring							regulator-state-mem {
269724ba675SRob Herring								regulator-off-in-suspend;
270724ba675SRob Herring							};
271724ba675SRob Herring						};
272724ba675SRob Herring
273724ba675SRob Herring						vdd_led_reg: REG_LDO3 {
274724ba675SRob Herring							regulator-name = "VDD_LED";
275724ba675SRob Herring							regulator-min-microvolt = <3300000>;
276724ba675SRob Herring							regulator-max-microvolt = <3300000>;
277724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
278724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
279724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
280724ba675SRob Herring							regulator-always-on;
281724ba675SRob Herring
282724ba675SRob Herring							regulator-state-mem {
283724ba675SRob Herring								regulator-off-in-suspend;
284724ba675SRob Herring							};
285724ba675SRob Herring						};
286724ba675SRob Herring
287724ba675SRob Herring						vdd_sdhc_1v8_reg: REG_LDO4 {
288724ba675SRob Herring							regulator-name = "VDD_SDHC_1V8";
289724ba675SRob Herring							regulator-min-microvolt = <1800000>;
290724ba675SRob Herring							regulator-max-microvolt = <1800000>;
291724ba675SRob Herring							regulator-allowed-modes = <ACT8945A_REGULATOR_MODE_NORMAL>,
292724ba675SRob Herring										  <ACT8945A_REGULATOR_MODE_LOWPOWER>;
293724ba675SRob Herring							regulator-initial-mode = <ACT8945A_REGULATOR_MODE_NORMAL>;
294724ba675SRob Herring							regulator-always-on;
295724ba675SRob Herring
296724ba675SRob Herring							regulator-state-mem {
297724ba675SRob Herring								regulator-off-in-suspend;
298724ba675SRob Herring							};
299724ba675SRob Herring						};
300724ba675SRob Herring					};
301724ba675SRob Herring
302724ba675SRob Herring					charger {
303724ba675SRob Herring						compatible = "active-semi,act8945a-charger";
304724ba675SRob Herring						pinctrl-names = "default";
305724ba675SRob Herring						pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
306724ba675SRob Herring						interrupt-parent = <&pioA>;
307724ba675SRob Herring						interrupts = <PIN_PB13 IRQ_TYPE_EDGE_RISING>;
308724ba675SRob Herring
309724ba675SRob Herring						active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
310724ba675SRob Herring						active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
311724ba675SRob Herring						active-semi,input-voltage-threshold-microvolt = <6600>;
312724ba675SRob Herring						active-semi,precondition-timeout = <40>;
313724ba675SRob Herring						active-semi,total-timeout = <3>;
314724ba675SRob Herring						status = "okay";
315724ba675SRob Herring					};
316724ba675SRob Herring				};
317724ba675SRob Herring			};
318724ba675SRob Herring
319724ba675SRob Herring			pwm0: pwm@f802c000 {
320724ba675SRob Herring				pinctrl-names = "default";
321724ba675SRob Herring				pinctrl-0 = <&pinctrl_pwm0_pwm2_default>;
322724ba675SRob Herring				status = "disabled"; /* conflict with leds */
323724ba675SRob Herring			};
324724ba675SRob Herring
325724ba675SRob Herring			flx0: flexcom@f8034000 {
326724ba675SRob Herring				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
327724ba675SRob Herring				status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */
328724ba675SRob Herring
329724ba675SRob Herring				uart5: serial@200 {
330724ba675SRob Herring					dmas = <0>, <0>;
331724ba675SRob Herring					pinctrl-names = "default";
332724ba675SRob Herring					pinctrl-0 = <&pinctrl_flx0_default>;
333724ba675SRob Herring					status = "okay";
334724ba675SRob Herring				};
335724ba675SRob Herring
336724ba675SRob Herring				i2c2: i2c@600 {
337724ba675SRob Herring					dmas = <0>, <0>;
338724ba675SRob Herring					pinctrl-names = "default", "gpio";
339724ba675SRob Herring					pinctrl-0 = <&pinctrl_flx0_default>;
340724ba675SRob Herring					pinctrl-1 = <&pinctrl_i2c2_gpio>;
341724ba675SRob Herring					sda-gpios = <&pioA PIN_PB28 GPIO_ACTIVE_HIGH>;
342724ba675SRob Herring					scl-gpios = <&pioA PIN_PB29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
343724ba675SRob Herring					i2c-sda-hold-time-ns = <350>;
344724ba675SRob Herring					i2c-analog-filter;
345724ba675SRob Herring					i2c-digital-filter;
346724ba675SRob Herring					i2c-digital-filter-width-ns = <35>;
347724ba675SRob Herring					status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */
348724ba675SRob Herring				};
349724ba675SRob Herring			};
350724ba675SRob Herring
351*a4bd03e7SArnd Bergmann			poweroff@f8048010 {
352724ba675SRob Herring				debounce-delay-us = <976>;
353724ba675SRob Herring				atmel,wakeup-rtc-timer;
354724ba675SRob Herring
355724ba675SRob Herring				input@0 {
356724ba675SRob Herring					reg = <0>;
357724ba675SRob Herring				};
358724ba675SRob Herring			};
359724ba675SRob Herring
360724ba675SRob Herring			watchdog@f8048040 {
361724ba675SRob Herring				status = "okay";
362724ba675SRob Herring			};
363724ba675SRob Herring
364724ba675SRob Herring			i2s0: i2s@f8050000 {
365724ba675SRob Herring				pinctrl-names = "default";
366724ba675SRob Herring				pinctrl-0 = <&pinctrl_i2s0_default>;
367724ba675SRob Herring				status = "disabled"; /* conflict with can0 */
368724ba675SRob Herring			};
369724ba675SRob Herring
370724ba675SRob Herring			can0: can@f8054000 {
371724ba675SRob Herring				pinctrl-names = "default";
372724ba675SRob Herring				pinctrl-0 = <&pinctrl_can0_default>;
373724ba675SRob Herring				status = "okay";
374724ba675SRob Herring			};
375724ba675SRob Herring
376724ba675SRob Herring			uart3: serial@fc008000 {
377724ba675SRob Herring				atmel,use-dma-rx;
378724ba675SRob Herring				atmel,use-dma-tx;
379724ba675SRob Herring				pinctrl-names = "default";
380724ba675SRob Herring				pinctrl-0 = <&pinctrl_uart3_default>;
381724ba675SRob Herring				status = "okay";
382724ba675SRob Herring			};
383724ba675SRob Herring
384724ba675SRob Herring			flx4: flexcom@fc018000 {
385724ba675SRob Herring				atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
386724ba675SRob Herring				status = "okay";
387724ba675SRob Herring
388724ba675SRob Herring				i2c6: i2c@600 {
389724ba675SRob Herring					dmas = <0>, <0>;
390724ba675SRob Herring					pinctrl-names = "default", "gpio";
391724ba675SRob Herring					pinctrl-0 = <&pinctrl_flx4_default>;
392724ba675SRob Herring					pinctrl-1 = <&pinctrl_flx4_gpio>;
393724ba675SRob Herring					sda-gpios = <&pioA PIN_PD12 GPIO_ACTIVE_HIGH>;
394724ba675SRob Herring					scl-gpios = <&pioA PIN_PD13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
395724ba675SRob Herring					i2c-analog-filter;
396724ba675SRob Herring					i2c-digital-filter;
397724ba675SRob Herring					i2c-digital-filter-width-ns = <35>;
398724ba675SRob Herring					status = "okay";
399724ba675SRob Herring				};
400724ba675SRob Herring			};
401724ba675SRob Herring
402724ba675SRob Herring			i2c1: i2c@fc028000 {
403724ba675SRob Herring				dmas = <0>, <0>;
404724ba675SRob Herring				pinctrl-names = "default", "gpio";
405724ba675SRob Herring				pinctrl-0 = <&pinctrl_i2c1_default>;
406724ba675SRob Herring				i2c-analog-filter;
407724ba675SRob Herring				i2c-digital-filter;
408724ba675SRob Herring				i2c-digital-filter-width-ns = <35>;
409724ba675SRob Herring				pinctrl-1 = <&pinctrl_i2c1_gpio>;
410724ba675SRob Herring				sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>;
411724ba675SRob Herring				scl-gpios = <&pioA PIN_PD5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
412724ba675SRob Herring				status = "okay";
413724ba675SRob Herring
414724ba675SRob Herring				at24@54 {
415724ba675SRob Herring					compatible = "atmel,24c02";
416724ba675SRob Herring					reg = <0x54>;
417724ba675SRob Herring					pagesize = <16>;
418724ba675SRob Herring				};
419724ba675SRob Herring			};
420724ba675SRob Herring
421724ba675SRob Herring			adc: adc@fc030000 {
422724ba675SRob Herring				vddana-supply = <&vdd_3v3_lp_reg>;
423724ba675SRob Herring				vref-supply = <&vdd_3v3_lp_reg>;
424724ba675SRob Herring				pinctrl-names = "default";
425724ba675SRob Herring				pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
426724ba675SRob Herring				status = "okay";
427724ba675SRob Herring			};
428724ba675SRob Herring
429724ba675SRob Herring			pinctrl@fc038000 {
430724ba675SRob Herring				/*
431724ba675SRob Herring				 * There is no real pinmux for ADC, if the pin
432724ba675SRob Herring				 * is not requested by another peripheral then
433724ba675SRob Herring				 * the muxing is done when channel is enabled.
434724ba675SRob Herring				 * Requesting pins for ADC is GPIO is
435724ba675SRob Herring				 * encouraged to prevent conflicts and to
436724ba675SRob Herring				 * disable bias in order to be in the same
437724ba675SRob Herring				 * state when the pin is not muxed to the adc.
438724ba675SRob Herring				 */
439724ba675SRob Herring				pinctrl_adc_default: adc_default {
440724ba675SRob Herring					pinmux = <PIN_PD23__GPIO>;
441724ba675SRob Herring					bias-disable;
442724ba675SRob Herring				};
443724ba675SRob Herring
444724ba675SRob Herring				pinctrl_can0_default: can0_default {
445724ba675SRob Herring					pinmux = <PIN_PC10__CANTX0>,
446724ba675SRob Herring						 <PIN_PC11__CANRX0>;
447724ba675SRob Herring					bias-disable;
448724ba675SRob Herring				};
449724ba675SRob Herring
450724ba675SRob Herring				pinctrl_can1_default: can1_default {
451724ba675SRob Herring					pinmux = <PIN_PC26__CANTX1>,
452724ba675SRob Herring						 <PIN_PC27__CANRX1>;
453724ba675SRob Herring					bias-disable;
454724ba675SRob Herring				};
455724ba675SRob Herring
456724ba675SRob Herring				/*
457724ba675SRob Herring				 * The ADTRG pin can work on any edge type.
458724ba675SRob Herring				 * In here it's being pulled up, so need to
459724ba675SRob Herring				 * connect it to ground to get an edge e.g.
460724ba675SRob Herring				 * Trigger can be configured on falling, rise
461724ba675SRob Herring				 * or any edge, and the pull-up can be changed
462724ba675SRob Herring				 * to pull-down or left floating according to
463724ba675SRob Herring				 * needs.
464724ba675SRob Herring				 */
465724ba675SRob Herring				pinctrl_adtrg_default: adtrg_default {
466724ba675SRob Herring					pinmux = <PIN_PD31__ADTRG>;
467724ba675SRob Herring					bias-pull-up;
468724ba675SRob Herring				};
469724ba675SRob Herring
470724ba675SRob Herring				pinctrl_charger_chglev: charger_chglev {
471724ba675SRob Herring					pinmux = <PIN_PA12__GPIO>;
472724ba675SRob Herring					bias-disable;
473724ba675SRob Herring				};
474724ba675SRob Herring
475724ba675SRob Herring				pinctrl_charger_irq: charger_irq {
476724ba675SRob Herring					pinmux = <PIN_PB13__GPIO>;
477724ba675SRob Herring					bias-disable;
478724ba675SRob Herring				};
479724ba675SRob Herring
480724ba675SRob Herring				pinctrl_charger_lbo: charger_lbo {
481724ba675SRob Herring					pinmux = <PIN_PC8__GPIO>;
482724ba675SRob Herring					bias-pull-up;
483724ba675SRob Herring				};
484724ba675SRob Herring
485724ba675SRob Herring				pinctrl_classd_default_pfets: classd_default_pfets {
486724ba675SRob Herring					pinmux = <PIN_PB1__CLASSD_R0>,
487724ba675SRob Herring						 <PIN_PB3__CLASSD_R2>;
488724ba675SRob Herring					bias-pull-up;
489724ba675SRob Herring				};
490724ba675SRob Herring
491724ba675SRob Herring				pinctrl_classd_default_nfets: classd_default_nfets {
492724ba675SRob Herring					pinmux = <PIN_PB2__CLASSD_R1>,
493724ba675SRob Herring						 <PIN_PB4__CLASSD_R3>;
494724ba675SRob Herring					bias-pull-down;
495724ba675SRob Herring				};
496724ba675SRob Herring
497724ba675SRob Herring				pinctrl_flx0_default: flx0_default {
498724ba675SRob Herring					pinmux = <PIN_PB28__FLEXCOM0_IO0>,
499724ba675SRob Herring						 <PIN_PB29__FLEXCOM0_IO1>;
500724ba675SRob Herring					bias-disable;
501724ba675SRob Herring				};
502724ba675SRob Herring
503724ba675SRob Herring				pinctrl_flx4_default: flx4_default {
504724ba675SRob Herring					pinmux = <PIN_PD12__FLEXCOM4_IO0>,
505724ba675SRob Herring						 <PIN_PD13__FLEXCOM4_IO1>;
506724ba675SRob Herring					bias-disable;
507724ba675SRob Herring				};
508724ba675SRob Herring
509724ba675SRob Herring				pinctrl_flx4_gpio: flx4_gpio {
510724ba675SRob Herring					pinmux = <PIN_PD12__GPIO>,
511724ba675SRob Herring						 <PIN_PD13__GPIO>;
512724ba675SRob Herring					bias-disable;
513724ba675SRob Herring				};
514724ba675SRob Herring
515724ba675SRob Herring				pinctrl_i2c0_default: i2c0_default {
516724ba675SRob Herring					pinmux = <PIN_PD21__TWD0>,
517724ba675SRob Herring						 <PIN_PD22__TWCK0>;
518724ba675SRob Herring					bias-disable;
519724ba675SRob Herring				};
520724ba675SRob Herring
521724ba675SRob Herring				pinctrl_i2c0_gpio: i2c0_gpio {
522724ba675SRob Herring					pinmux = <PIN_PD21__GPIO>,
523724ba675SRob Herring						 <PIN_PD22__GPIO>;
524724ba675SRob Herring					bias-disable;
525724ba675SRob Herring				};
526724ba675SRob Herring
527724ba675SRob Herring				pinctrl_i2c1_default: i2c1_default {
528724ba675SRob Herring					pinmux = <PIN_PD4__TWD1>,
529724ba675SRob Herring						 <PIN_PD5__TWCK1>;
530724ba675SRob Herring					bias-disable;
531724ba675SRob Herring				};
532724ba675SRob Herring
533724ba675SRob Herring				pinctrl_i2c1_gpio: i2c1_gpio {
534724ba675SRob Herring					pinmux = <PIN_PD4__GPIO>,
535724ba675SRob Herring						 <PIN_PD5__GPIO>;
536724ba675SRob Herring					bias-disable;
537724ba675SRob Herring				};
538724ba675SRob Herring
539724ba675SRob Herring				pinctrl_i2c2_gpio: i2c2_gpio {
540724ba675SRob Herring					pinmux = <PIN_PB28__GPIO>,
541724ba675SRob Herring						 <PIN_PB29__GPIO>;
542724ba675SRob Herring					bias-disable;
543724ba675SRob Herring				};
544724ba675SRob Herring
545724ba675SRob Herring				pinctrl_i2s0_default: i2s0_default {
546724ba675SRob Herring					pinmux = <PIN_PC1__I2SC0_CK>,
547724ba675SRob Herring						 <PIN_PC2__I2SC0_MCK>,
548724ba675SRob Herring						 <PIN_PC3__I2SC0_WS>,
549724ba675SRob Herring						 <PIN_PC4__I2SC0_DI0>,
550724ba675SRob Herring						 <PIN_PC5__I2SC0_DO0>;
551724ba675SRob Herring					bias-disable;
552724ba675SRob Herring				};
553724ba675SRob Herring
554724ba675SRob Herring				pinctrl_i2s1_default: i2s1_default {
555724ba675SRob Herring					pinmux = <PIN_PA15__I2SC1_CK>,
556724ba675SRob Herring						 <PIN_PA14__I2SC1_MCK>,
557724ba675SRob Herring						 <PIN_PA16__I2SC1_WS>,
558724ba675SRob Herring						 <PIN_PA17__I2SC1_DI0>,
559724ba675SRob Herring						 <PIN_PA18__I2SC1_DO0>;
560724ba675SRob Herring					bias-disable;
561724ba675SRob Herring				};
562724ba675SRob Herring
563724ba675SRob Herring				pinctrl_key_gpio_default: key_gpio_default {
564724ba675SRob Herring					pinmux = <PIN_PB9__GPIO>;
565724ba675SRob Herring					bias-pull-up;
566724ba675SRob Herring				};
567724ba675SRob Herring
568724ba675SRob Herring				pinctrl_led_gpio_default: led_gpio_default {
569724ba675SRob Herring					pinmux = <PIN_PB0__GPIO>,
570724ba675SRob Herring						 <PIN_PB5__GPIO>,
571724ba675SRob Herring						 <PIN_PB6__GPIO>;
572724ba675SRob Herring					bias-pull-up;
573724ba675SRob Herring				};
574724ba675SRob Herring
575724ba675SRob Herring				pinctrl_macb0_default: macb0_default {
576724ba675SRob Herring					pinmux = <PIN_PB14__GTXCK>,
577724ba675SRob Herring						 <PIN_PB15__GTXEN>,
578724ba675SRob Herring						 <PIN_PB16__GRXDV>,
579724ba675SRob Herring						 <PIN_PB17__GRXER>,
580724ba675SRob Herring						 <PIN_PB18__GRX0>,
581724ba675SRob Herring						 <PIN_PB19__GRX1>,
582724ba675SRob Herring						 <PIN_PB20__GTX0>,
583724ba675SRob Herring						 <PIN_PB21__GTX1>,
584724ba675SRob Herring						 <PIN_PB22__GMDC>,
585724ba675SRob Herring						 <PIN_PB23__GMDIO>;
586724ba675SRob Herring					bias-disable;
587724ba675SRob Herring				};
588724ba675SRob Herring
589724ba675SRob Herring				pinctrl_macb0_phy_irq: macb0_phy_irq {
590724ba675SRob Herring					pinmux = <PIN_PC9__GPIO>;
591724ba675SRob Herring					bias-disable;
592724ba675SRob Herring				};
593724ba675SRob Herring
594724ba675SRob Herring				pinctrl_qspi0_default: qspi0_default {
595724ba675SRob Herring					sck_cs {
596724ba675SRob Herring						pinmux = <PIN_PA22__QSPI0_SCK>,
597724ba675SRob Herring							 <PIN_PA23__QSPI0_CS>;
598724ba675SRob Herring						bias-disable;
599724ba675SRob Herring					};
600724ba675SRob Herring
601724ba675SRob Herring					data {
602724ba675SRob Herring						pinmux = <PIN_PA24__QSPI0_IO0>,
603724ba675SRob Herring							 <PIN_PA25__QSPI0_IO1>,
604724ba675SRob Herring							 <PIN_PA26__QSPI0_IO2>,
605724ba675SRob Herring							 <PIN_PA27__QSPI0_IO3>;
606724ba675SRob Herring						bias-pull-up;
607724ba675SRob Herring					};
608724ba675SRob Herring				};
609724ba675SRob Herring
610724ba675SRob Herring				pinctrl_sdmmc0_default: sdmmc0_default {
611724ba675SRob Herring					cmd_data {
612724ba675SRob Herring						pinmux = <PIN_PA1__SDMMC0_CMD>,
613724ba675SRob Herring							 <PIN_PA2__SDMMC0_DAT0>,
614724ba675SRob Herring							 <PIN_PA3__SDMMC0_DAT1>,
615724ba675SRob Herring							 <PIN_PA4__SDMMC0_DAT2>,
616724ba675SRob Herring							 <PIN_PA5__SDMMC0_DAT3>,
617724ba675SRob Herring							 <PIN_PA6__SDMMC0_DAT4>,
618724ba675SRob Herring							 <PIN_PA7__SDMMC0_DAT5>,
619724ba675SRob Herring							 <PIN_PA8__SDMMC0_DAT6>,
620724ba675SRob Herring							 <PIN_PA9__SDMMC0_DAT7>;
621724ba675SRob Herring						bias-disable;
622724ba675SRob Herring					};
623724ba675SRob Herring
624724ba675SRob Herring					ck_cd_rstn {
625724ba675SRob Herring						pinmux = <PIN_PA0__SDMMC0_CK>,
626724ba675SRob Herring							 <PIN_PA10__SDMMC0_RSTN>,
627724ba675SRob Herring							 <PIN_PA13__SDMMC0_CD>;
628724ba675SRob Herring						bias-disable;
629724ba675SRob Herring					};
630724ba675SRob Herring				};
631724ba675SRob Herring
632724ba675SRob Herring				pinctrl_sdmmc1_default: sdmmc1_default {
633724ba675SRob Herring					cmd_data {
634724ba675SRob Herring						pinmux = <PIN_PA28__SDMMC1_CMD>,
635724ba675SRob Herring							 <PIN_PA18__SDMMC1_DAT0>,
636724ba675SRob Herring							 <PIN_PA19__SDMMC1_DAT1>,
637724ba675SRob Herring							 <PIN_PA20__SDMMC1_DAT2>,
638724ba675SRob Herring							 <PIN_PA21__SDMMC1_DAT3>;
639724ba675SRob Herring						bias-disable;
640724ba675SRob Herring					};
641724ba675SRob Herring
642724ba675SRob Herring					conf-ck_cd {
643724ba675SRob Herring						pinmux = <PIN_PA22__SDMMC1_CK>,
644724ba675SRob Herring							 <PIN_PA30__SDMMC1_CD>;
645724ba675SRob Herring						bias-disable;
646724ba675SRob Herring					};
647724ba675SRob Herring				};
648724ba675SRob Herring
649724ba675SRob Herring				pinctrl_spi0_default: spi0_default {
650724ba675SRob Herring					pinmux = <PIN_PA14__SPI0_SPCK>,
651724ba675SRob Herring						 <PIN_PA15__SPI0_MOSI>,
652724ba675SRob Herring						 <PIN_PA16__SPI0_MISO>,
653724ba675SRob Herring						 <PIN_PA17__SPI0_NPCS0>;
654724ba675SRob Herring					bias-disable;
655724ba675SRob Herring				};
656724ba675SRob Herring
657724ba675SRob Herring				pinctrl_uart1_default: uart1_default {
658724ba675SRob Herring					pinmux = <PIN_PD2__URXD1>,
659724ba675SRob Herring						 <PIN_PD3__UTXD1>;
660724ba675SRob Herring					bias-disable;
661724ba675SRob Herring				};
662724ba675SRob Herring
663724ba675SRob Herring				pinctrl_uart3_default: uart3_default {
664724ba675SRob Herring					pinmux = <PIN_PB11__URXD3>,
665724ba675SRob Herring						 <PIN_PB12__UTXD3>;
666724ba675SRob Herring					bias-disable;
667724ba675SRob Herring				};
668724ba675SRob Herring
669724ba675SRob Herring				pinctrl_usb_default: usb_default {
670724ba675SRob Herring					pinmux = <PIN_PB10__GPIO>;
671724ba675SRob Herring					bias-disable;
672724ba675SRob Herring				};
673724ba675SRob Herring
674724ba675SRob Herring				pinctrl_usba_vbus: usba_vbus {
675724ba675SRob Herring					pinmux = <PIN_PA31__GPIO>;
676724ba675SRob Herring					bias-disable;
677724ba675SRob Herring				};
678724ba675SRob Herring
679724ba675SRob Herring				pinctrl_pwm0_pwm2_default: pwm0_pwm2_default {
680724ba675SRob Herring					pinmux = <PIN_PB5__PWMH2>,
681724ba675SRob Herring						 <PIN_PB6__PWML2>;
682724ba675SRob Herring					bias-pull-up;
683724ba675SRob Herring				};
684724ba675SRob Herring			};
685724ba675SRob Herring
686724ba675SRob Herring			classd: classd@fc048000 {
687724ba675SRob Herring				pinctrl-names = "default";
688724ba675SRob Herring				pinctrl-0 = <&pinctrl_classd_default_pfets &pinctrl_classd_default_nfets>;
689724ba675SRob Herring				atmel,pwm-type = "diff";
690724ba675SRob Herring				atmel,non-overlap-time = <10>;
691724ba675SRob Herring				status = "okay";
692724ba675SRob Herring			};
693724ba675SRob Herring
694724ba675SRob Herring			i2s1: i2s@fc04c000 {
695724ba675SRob Herring				pinctrl-names = "default";
696724ba675SRob Herring				pinctrl-0 = <&pinctrl_i2s1_default>;
697724ba675SRob Herring				status = "disabled"; /* conflict with spi0, sdmmc1 */
698724ba675SRob Herring			};
699724ba675SRob Herring
700724ba675SRob Herring			can1: can@fc050000 {
701724ba675SRob Herring				pinctrl-names = "default";
702724ba675SRob Herring				pinctrl-0 = <&pinctrl_can1_default>;
703724ba675SRob Herring				status = "okay";
704724ba675SRob Herring			};
705724ba675SRob Herring		};
706724ba675SRob Herring	};
707724ba675SRob Herring
708724ba675SRob Herring	gpio-keys {
709724ba675SRob Herring		compatible = "gpio-keys";
710724ba675SRob Herring
711724ba675SRob Herring		pinctrl-names = "default";
712724ba675SRob Herring		pinctrl-0 = <&pinctrl_key_gpio_default>;
713724ba675SRob Herring
714724ba675SRob Herring		button {
715724ba675SRob Herring			label = "PB_USER";
716724ba675SRob Herring			gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>;
717724ba675SRob Herring			linux,code = <KEY_PROG1>;
718724ba675SRob Herring			wakeup-source;
719724ba675SRob Herring		};
720724ba675SRob Herring	};
721724ba675SRob Herring
722724ba675SRob Herring	leds {
723724ba675SRob Herring		compatible = "gpio-leds";
724724ba675SRob Herring		pinctrl-names = "default";
725724ba675SRob Herring		pinctrl-0 = <&pinctrl_led_gpio_default>;
726724ba675SRob Herring		status = "okay"; /* conflict with pwm0 */
727724ba675SRob Herring
728724ba675SRob Herring		led-red {
729724ba675SRob Herring			label = "red";
730724ba675SRob Herring			gpios = <&pioA PIN_PB6 GPIO_ACTIVE_LOW>;
731724ba675SRob Herring		};
732724ba675SRob Herring
733724ba675SRob Herring
734724ba675SRob Herring		led-green {
735724ba675SRob Herring			label = "green";
736724ba675SRob Herring			gpios = <&pioA PIN_PB5 GPIO_ACTIVE_LOW>;
737724ba675SRob Herring		};
738724ba675SRob Herring
739724ba675SRob Herring		led-blue {
740724ba675SRob Herring			label = "blue";
741724ba675SRob Herring			gpios = <&pioA PIN_PB0 GPIO_ACTIVE_LOW>;
742724ba675SRob Herring			linux,default-trigger = "heartbeat";
743724ba675SRob Herring		};
744724ba675SRob Herring	};
745724ba675SRob Herring};
746