Linux Audio

Check our new training course

Real-Time Linux with PREEMPT_RT training

Feb 18-20, 2025
Register
Loading...
Note: File does not exist in v4.17.
  1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2/*
  3 * at91-sama5d4_xplained.dts - Device Tree file for SAMA5D4 Xplained board
  4 *
  5 *  Copyright (C) 2015 Atmel,
  6 *                2015 Josh Wu <josh.wu@atmel.com>
  7 */
  8/dts-v1/;
  9#include "sama5d4.dtsi"
 10#include <dt-bindings/input/input.h>
 11
 12/ {
 13	model = "Atmel SAMA5D4 Xplained";
 14	compatible = "atmel,sama5d4-xplained", "atmel,sama5d4", "atmel,sama5";
 15
 16	chosen {
 17		stdout-path = "serial0:115200n8";
 18	};
 19
 20	memory@20000000 {
 21		reg = <0x20000000 0x20000000>;
 22	};
 23
 24	clocks {
 25		slow_xtal {
 26			clock-frequency = <32768>;
 27		};
 28
 29		main_xtal {
 30			clock-frequency = <12000000>;
 31		};
 32	};
 33
 34	ahb {
 35		apb {
 36			uart0: serial@f8004000 {
 37				atmel,use-dma-rx;
 38				atmel,use-dma-tx;
 39				status = "okay";
 40			};
 41
 42			i2c0: i2c@f8014000 {
 43				i2c-digital-filter;
 44				status = "okay";
 45			};
 46
 47			macb0: ethernet@f8020000 {
 48				phy-mode = "rmii";
 49				status = "okay";
 50				pinctrl-names = "default";
 51				pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
 52
 53				phy0: ethernet-phy@1 {
 54					interrupt-parent = <&pioE>;
 55					interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
 56					reg = <1>;
 57				};
 58			};
 59
 60			mmc1: mmc@fc000000 {
 61				pinctrl-names = "default";
 62				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
 63				vmmc-supply = <&vcc_mmc1_reg>;
 64				vqmmc-supply = <&vcc_3v3_reg>;
 65				status = "okay";
 66				slot@0 {
 67					reg = <0>;
 68					bus-width = <4>;
 69					cd-gpios = <&pioE 3 0>;
 70				};
 71			};
 72
 73			usart3: serial@fc00c000 {
 74				atmel,use-dma-rx;
 75				atmel,use-dma-tx;
 76				status = "okay";
 77			};
 78
 79			usart4: serial@fc010000 {
 80				status = "okay";
 81			};
 82
 83			spi1: spi@fc018000 {
 84				pinctrl-names = "default", "cs";
 85				pinctrl-1 = <&pinctrl_spi1_cs>;
 86				cs-gpios = <&pioB 21 0>;
 87				status = "okay";
 88			};
 89
 90			tcb2: timer@fc024000 {
 91				timer0: timer@0 {
 92					compatible = "atmel,tcb-timer";
 93					reg = <0>;
 94				};
 95
 96				timer1: timer@1 {
 97					compatible = "atmel,tcb-timer";
 98					reg = <1>;
 99				};
100			};
101
102			adc0: adc@fc034000 {
103				pinctrl-names = "default";
104				pinctrl-0 = <
105					/* external trigger conflicts with USBA_VBUS */
106					&pinctrl_adc0_ad0
107					&pinctrl_adc0_ad1
108					&pinctrl_adc0_ad2
109					&pinctrl_adc0_ad3
110					&pinctrl_adc0_ad4
111					>;
112				atmel,adc-vref = <3300>;
113				status = "okay";
114			};
115
116			watchdog@fc068640 {
117				status = "okay";
118			};
119
120			pinctrl@fc06a000 {
121				board {
122					pinctrl_mmc1_cd: mmc1_cd {
123						atmel,pins =
124							<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
125					};
126					pinctrl_usba_vbus: usba_vbus {
127						atmel,pins =
128							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
129					};
130					pinctrl_usb_default: usb_default {
131						atmel,pins =
132							<AT91_PIOE 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
133							 AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
134					};
135					pinctrl_key_gpio: key_gpio_0 {
136						atmel,pins =
137							<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
138					};
139					pinctrl_macb0_phy_irq: macb0_phy_irq_0 {
140						atmel,pins =
141							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
142					};
143					pinctrl_spi1_cs: spi1_cs_default {
144						atmel,pins =
145							<AT91_PIOB 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
146					};
147					pinctrl_gpio_leds: gpio_leds_default {
148						atmel,pins =
149							<AT91_PIOD 30 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
150							 AT91_PIOE 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
151					};
152					pinctrl_vcc_mmc1_reg: vcc_mmc1_reg {
153						atmel,pins =
154							<AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
155					};
156				};
157			};
158		};
159
160		usb0: gadget@400000 {
161			atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
162			pinctrl-names = "default";
163			pinctrl-0 = <&pinctrl_usba_vbus>;
164			status = "okay";
165		};
166
167		usb1: ohci@500000 {
168			num-ports = <3>;
169			atmel,vbus-gpio = <0
170					   &pioE 11 GPIO_ACTIVE_HIGH
171					   &pioE 14 GPIO_ACTIVE_HIGH
172					  >;
173			pinctrl-names = "default";
174			pinctrl-0 = <&pinctrl_usb_default>;
175			status = "okay";
176		};
177
178		usb2: ehci@600000 {
179			status = "okay";
180		};
181
182		ebi: ebi@10000000 {
183			pinctrl-0 = <&pinctrl_ebi_cs3 &pinctrl_ebi_nrd_nandoe
184				     &pinctrl_ebi_nwe_nandwe &pinctrl_ebi_nandrdy
185				     &pinctrl_ebi_data_0_7 &pinctrl_ebi_nand_addr>;
186			pinctrl-names = "default";
187			status = "okay";
188
189			nand_controller: nand-controller {
190				status = "okay";
191
192				nand@3 {
193					reg = <0x3 0x0 0x2>;
194					atmel,rb = <0>;
195					nand-bus-width = <8>;
196					nand-ecc-mode = "hw";
197					nand-on-flash-bbt;
198					label = "atmel_nand";
199
200					partitions {
201						compatible = "fixed-partitions";
202						#address-cells = <1>;
203						#size-cells = <1>;
204
205						at91bootstrap@0 {
206							label = "at91bootstrap";
207							reg = <0x0 0x40000>;
208						};
209
210						bootloader@40000 {
211							label = "bootloader";
212							reg = <0x40000 0xc0000>;
213						};
214
215						bootloaderenvred@100000 {
216							label = "bootloader env redundant";
217							reg = <0x100000 0x40000>;
218						};
219
220						bootloaderenv@140000 {
221							label = "bootloader env";
222							reg = <0x140000 0x40000>;
223						};
224
225						dtb@180000 {
226							label = "device tree";
227							reg = <0x180000 0x80000>;
228						};
229
230						kernel@200000 {
231							label = "kernel";
232							reg = <0x200000 0x600000>;
233						};
234
235						rootfs@800000 {
236							label = "rootfs";
237							reg = <0x800000 0x1f800000>;
238						};
239					};
240				};
241			};
242		};
243	};
244
245	gpio-keys {
246		compatible = "gpio-keys";
247
248		pinctrl-names = "default";
249		pinctrl-0 = <&pinctrl_key_gpio>;
250
251		button {
252			label = "pb_user1";
253			gpios = <&pioE 8 GPIO_ACTIVE_HIGH>;
254			linux,code = <KEY_PROG1>;
255			wakeup-source;
256		};
257	};
258
259	leds {
260		compatible = "gpio-leds";
261		pinctrl-names = "default";
262		pinctrl-0 = <&pinctrl_gpio_leds>;
263		status = "okay";
264
265		led-d8 {
266			label = "d8";
267			gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
268			default-state = "on";
269		};
270
271		led-d10 {
272			label = "d10";
273			gpios = <&pioE 15 GPIO_ACTIVE_LOW>;
274			linux,default-trigger = "heartbeat";
275		};
276	};
277
278	vcc_3v3_reg: fixedregulator_3v3 {
279		compatible = "regulator-fixed";
280		regulator-name = "VCC 3V3";
281		regulator-min-microvolt = <3300000>;
282		regulator-max-microvolt = <3300000>;
283		regulator-boot-on;
284		regulator-always-on;
285	};
286
287	vcc_mmc1_reg: fixedregulator_mmc1 {
288		compatible = "regulator-fixed";
289		pinctrl-names = "default";
290		pinctrl-0 = <&pinctrl_vcc_mmc1_reg>;
291		gpio = <&pioE 4 GPIO_ACTIVE_LOW>;
292		regulator-name = "VDD MCI1";
293		regulator-min-microvolt = <3300000>;
294		regulator-max-microvolt = <3300000>;
295		vin-supply = <&vcc_3v3_reg>;
296		regulator-always-on;
297	};
298};