// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * at91-sam9x60ek.dts - Device Tree file for Microchip SAM9X60-EK board
 *
 * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
 *
 * Author: Sandeep Sheriker M <sandeepsheriker.mallikarjun@microchip.com>
 */
/dts-v1/;
#include "sam9x60.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "Microchip SAM9X60-EK";
	compatible = "microchip,sam9x60ek", "microchip,sam9x60", "atmel,at91sam9";

	aliases {
		i2c0 = &i2c0;
		i2c1 = &i2c6;
		serial1 = &uart5;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	clocks {
		slow_xtal {
			clock-frequency = <32768>;
		};

		main_xtal {
			clock-frequency = <24000000>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_key_gpio_default>;

		button-1 {
			label = "SW1";
			gpios = <&pioD 18 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
			wakeup-source;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_gpio_leds>;
		status = "okay"; /* Conflict with pwm0. */

		red {
			label = "red";
			gpios = <&pioB 11 GPIO_ACTIVE_HIGH>;
		};

		green {
			label = "green";
			gpios = <&pioB 12 GPIO_ACTIVE_HIGH>;
		};

		blue {
			label = "blue";
			gpios = <&pioB 13 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	vdd_1v8: fixed-regulator-vdd_1v8 {
		compatible = "regulator-fixed";
		regulator-name = "VDD_1V8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
	};

	vdd_1v15: fixed-regulator-vdd_1v15 {
		compatible = "regulator-fixed";
		regulator-name = "VDD_1V15";
		regulator-min-microvolt = <1150000>;
		regulator-max-microvolt = <1150000>;
		regulator-always-on;
	};

	vdd1_3v3: fixed-regulator-vdd1_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDD1_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	vdd2_3v3: regulator-fixed-vdd2_3v3 {
		compatible = "regulator-fixed";
		regulator-name = "VDD2_3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};
};

&adc {
	vddana-supply = <&vdd1_3v3>;
	vref-supply = <&vdd1_3v3>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
	status = "okay";
};

&can0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can0_rx_tx>;
	status = "disabled"; /* Conflict with dbgu. */
};

&can1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can1_rx_tx>;
	status = "okay";
};

&classd {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_classd_default>;
	atmel,pwm-type = "diff";
	atmel,non-overlap-time = <10>;
	status = "okay";
};

&dbgu {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_dbgu>;
	status = "okay"; /* Conflict with can0. */
};

&ebi {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>;
	status = "okay";

	nand_controller: nand-controller {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
		status = "okay";

		nand@3 {
			reg = <0x3 0x0 0x800000>;
			rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
			cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
			nand-bus-width = <8>;
			nand-ecc-mode = "hw";
			nand-ecc-strength = <8>;
			nand-ecc-step-size = <512>;
			nand-on-flash-bbt;
			label = "atmel_nand";

			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;

				at91bootstrap@0 {
					label = "at91bootstrap";
					reg = <0x0 0x40000>;
				};

				uboot@40000 {
					label = "u-boot";
					reg = <0x40000 0xc0000>;
				};

				ubootenvred@100000 {
					label = "U-Boot Env Redundant";
					reg = <0x100000 0x40000>;
				};

				ubootenv@140000 {
					label = "U-Boot Env";
					reg = <0x140000 0x40000>;
				};

				dtb@180000 {
					label = "device tree";
					reg = <0x180000 0x80000>;
				};

				kernel@200000 {
					label = "kernel";
					reg = <0x200000 0x600000>;
				};

				rootfs@800000 {
					label = "rootfs";
					reg = <0x800000 0x1f800000>;
				};
			};
		};
	};
};

&flx0 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
	status = "okay";

	i2c0: i2c@600 {
		#address-cells = <1>;
		#size-cells = <0>;
		dmas = <0>, <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx0_default>;
		i2c-analog-filter;
		i2c-digital-filter;
		i2c-digital-filter-width-ns = <35>;
		status = "okay";

		eeprom@53 {
			compatible = "atmel,24c02";
			reg = <0x53>;
			pagesize = <16>;
			status = "okay";
		};
	};
};

&flx4 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
	status = "disabled";

	spi4: spi@400 {
		dmas = <0>, <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx4_default>;
		status = "disabled";
	};
};

&flx5 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
	status = "okay";

	uart5: serial@200 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx5_default>;
		status = "okay";
	};
};

&flx6 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
	status = "okay";

	i2c6: i2c@600 {
		#address-cells = <1>;
		#size-cells = <0>;
		dmas = <0>, <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx6_default>;
		i2c-analog-filter;
		i2c-digital-filter;
		i2c-digital-filter-width-ns = <35>;
		status = "okay";

		gpio_exp: mcp23008@20 {
			compatible = "microchip,mcp23008";
			reg = <0x20>;
		};
	};
};

&gpbr {
	status = "okay";
};

&i2s {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2s_default>;
	#sound-dai-cells = <0>;
	status = "disabled"; /* Conflict with QSPI. */
};

&macb0 {
	phy-mode = "rmii";
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_macb0_rmii>;
	status = "okay";

	ethernet-phy@0 {
		reg = <0x0>;
		interrupt-parent = <&pioB>;
		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
	};
};

&pinctrl {
	adc {
		pinctrl_adc_default: adc_default {
			atmel,pins = <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
		};

		pinctrl_adtrg_default: adtrg_default {
			atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
		};
	};

	dbgu {
		pinctrl_dbgu: dbgu-0 {
			atmel,pins = <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
				      AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
		};
	};

	i2s {
		pinctrl_i2s_default: i2s {
			atmel,pins =
				<AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE		/* I2SCK */
				 AT91_PIOB 20 AT91_PERIPH_B AT91_PINCTRL_NONE		/* I2SWS */
				 AT91_PIOB 21 AT91_PERIPH_B AT91_PINCTRL_NONE		/* I2SDIN */
				 AT91_PIOB 22 AT91_PERIPH_B AT91_PINCTRL_NONE		/* I2SDOUT */
				 AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;		/* I2SMCK */
		};
	};

	qspi {
		pinctrl_qspi: qspi {
			atmel,pins =
				<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
				 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_SLEWRATE_DIS
				 AT91_PIOB 21 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOB 22 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOB 23 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOB 24 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_SLEWRATE_DIS)>;
		};
	};

	nand {
		pinctrl_nand_oe_we: nand-oe-we-0 {
			atmel,pins =
				<AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
		};

		pinctrl_nand_rb: nand-rb-0 {
			atmel,pins =
				<AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
		};

		pinctrl_nand_cs: nand-cs-0 {
			atmel,pins =
				<AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
		};
	};

	ebi {
		pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
			atmel,pins =
				<AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
		};

		pinctrl_ebi_data_0_15: ebi-data-msb-0 {
			atmel,pins =
				<AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 10 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 11 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 12 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 13 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 14 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 15 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 16 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 17 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 18 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 19 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 20 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOD 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;
		};

		pinctrl_ebi_addr_nand: ebi-addr-0 {
			atmel,pins =
				<AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
				 AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
		};
	};

	flexcom {
		pinctrl_flx0_default: flx0_twi {
			atmel,pins =
				<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
				 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
		};

		pinctrl_flx4_default: flx4_spi {
			atmel,pins =
				<AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE
				 AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;
		};

		pinctrl_flx5_default: flx5_uart {
			atmel,pins =
				<AT91_PIOA 7 AT91_PERIPH_C AT91_PINCTRL_NONE
				 AT91_PIOA 8 AT91_PERIPH_B AT91_PINCTRL_NONE
				 AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE
				 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
		};

		pinctrl_flx6_default: flx6_twi {
			atmel,pins =
				<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
				 AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
		};
	};

	classd {
		pinctrl_classd_default: classd {
			atmel,pins =
				<AT91_PIOA 24 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
				 AT91_PIOA 25 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN
				 AT91_PIOA 26 AT91_PERIPH_C AT91_PINCTRL_PULL_UP
				 AT91_PIOA 27 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN>;
		};
	};

	can0 {
		pinctrl_can0_rx_tx: can0_rx_tx {
			atmel,pins =
				<AT91_PIOA 9 AT91_PERIPH_B AT91_PINCTRL_NONE	/* CANRX0 */
				 AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE	/* CANTX0 */
				 AT91_PIOD 20 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN	/* Enable CAN0 mux */
				 AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>;	/* Enable CAN Transceivers */
		};
	};

	can1 {
		pinctrl_can1_rx_tx: can1_rx_tx {
			atmel,pins =
				<AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_NONE	/* CANRX1 RXD1 */
				 AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_NONE	/* CANTX1 TXD1 */
				 AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN	/* Enable CAN1 mux */
				 AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_DOWN>;	/* Enable CAN Transceivers */
		};
	};

	macb0 {
		pinctrl_macb0_rmii: macb0_rmii-0 {
			atmel,pins =
				<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB0 periph A */
				 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB1 periph A */
				 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB2 periph A */
				 AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB3 periph A */
				 AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB4 periph A */
				 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB5 periph A */
				 AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB6 periph A */
				 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB7 periph A */
				 AT91_PIOB 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE	/* PB8 IRQ GPIO */
				 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB9 periph A */
				 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB10 periph A */
		};
	};

	pwm0 {
		pinctrl_pwm0_0: pwm0_0 {
			atmel,pins = <AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>;
		};

		pinctrl_pwm0_1: pwm0_1 {
			atmel,pins = <AT91_PIOB 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
		};

		pinctrl_pwm0_2: pwm0_2 {
			atmel,pins = <AT91_PIOB 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
		};

		pinctrl_pwm0_3: pwm0_3 {
			atmel,pins = <AT91_PIOB 14 AT91_PERIPH_B AT91_PINCTRL_NONE>;
		};
	};

	sdmmc0 {
		pinctrl_sdmmc0_default: sdmmc0 {
			atmel,pins =
				<AT91_PIOA 17 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI)				/* PA17 CK  periph A with pullup */
				 AT91_PIOA 16 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA16 CMD periph A with pullup */
				 AT91_PIOA 15 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA15 DAT0 periph A */
				 AT91_PIOA 18 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA18 DAT1 periph A with pullup */
				 AT91_PIOA 19 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA19 DAT2 periph A with pullup */
				 AT91_PIOA 20 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>;	/* PA20 DAT3 periph A with pullup */
		};
		pinctrl_sdmmc0_cd: sdmmc0_cd {
			atmel,pins =
				<AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};

	sdmmc1 {
		pinctrl_sdmmc1_default: sdmmc1 {
			atmel,pins =
				<AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI)				/* PA13 CK periph B */
				 AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA12 CMD periph B with pullup */
				 AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA11 DAT0 periph B with pullup */
				 AT91_PIOA  2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA2 DAT1 periph B with pullup */
				 AT91_PIOA  3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)	/* PA3 DAT2 periph B with pullup */
				 AT91_PIOA  4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>;	/* PA4 DAT3 periph B with pullup */
		};
	};

	gpio_keys {
		pinctrl_key_gpio_default: pinctrl_key_gpio {
			atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};

	usb0 {
		pinctrl_usba_vbus: usba_vbus {
			atmel,pins = <AT91_PIOB 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};

	usb1 {
		pinctrl_usb_default: usb_default {
			atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
				      AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};

	leds {
		pinctrl_gpio_leds: gpio_leds {
			atmel,pins = <AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
				      AT91_PIOB 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
				      AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};
}; /* pinctrl */

&pwm0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_pwm0_0 &pinctrl_pwm0_1 &pinctrl_pwm0_2 &pinctrl_pwm0_3>;
	status = "disabled"; /* Conflict with leds. */
};

&sdmmc0 {
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc0_default &pinctrl_sdmmc0_cd>;
	status = "okay";
	cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
	disable-wp;
};

&sdmmc1 {
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc1_default>;
	no-1-8-v;
	non-removable;
	status = "disabled"; /* Conflict with flx4. */
};

&qspi {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_qspi>;
	status = "okay"; /* Conflict with i2s. */

	flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <104000000>;
		spi-cs-setup-ns = <7>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
		m25p,fast-read;

		at91bootstrap@0 {
			label = "qspi: at91bootstrap";
			reg = <0x0 0x40000>;
		};

		bootloader@40000 {
			label = "qspi: bootloader";
			reg = <0x40000 0xc0000>;
		};

		bootloaderenvred@100000 {
			label = "qspi: bootloader env redundant";
			reg = <0x100000 0x40000>;
		};

		bootloaderenv@140000 {
			label = "qspi: bootloader env";
			reg = <0x140000 0x40000>;
		};

		dtb@180000 {
			label = "qspi: device tree";
			reg = <0x180000 0x80000>;
		};

		kernel@200000 {
			label = "qspi: kernel";
			reg = <0x200000 0x600000>;
		};
	};
};

&rtt {
	atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
	status = "okay";
};

&shutdown_controller {
	debounce-delay-us = <976>;
	status = "okay";

	input@0 {
		reg = <0>;
	};
};

&tcb0 {
	timer0: timer@0 {
		compatible = "atmel,tcb-timer";
		reg = <0>;
	};

	timer1: timer@1 {
		compatible = "atmel,tcb-timer";
		reg = <1>;
	};
};

&usb0 {
	atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usba_vbus>;
	status = "okay";
};

&usb1 {
	num-ports = <3>;
	atmel,vbus-gpio = <0
			   &pioD 15 GPIO_ACTIVE_HIGH
			   &pioD 16 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb_default>;
	status = "okay";
};

&usb2 {
	status = "okay";
};

&watchdog {
	status = "okay";
};

