// 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 = &i2c1;
		serial1 = &uart1;
	};

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

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

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

	regulators: regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

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

		vdd_1v5: fixed-regulator-vdd_1v5@1 {
			compatible = "regulator-fixed";
			regulator-name = "VDD_1V5";
			regulator-min-microvolt = <1500000>;
			regulator-max-microvolt = <1500000>;
			regulator-always-on;
			status = "okay";
		};

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

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

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

		sw1 {
			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";
		};
	};
};

&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 {
		compatible = "microchip,sam9x60-i2c";
		reg = <0x600 0x200>;
		interrupts = <5 IRQ_TYPE_LEVEL_HIGH 7>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx0_default>;
		atmel,fifo-size = <16>;
		i2c-analog-filter;
		i2c-digital-filter;
		i2c-digital-filter-width-ns = <35>;
		status = "okay";

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

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

	spi0: spi@400 {
		compatible = "microchip,sam9x60-spi", "atmel,at91rm9200-spi";
		reg = <0x400 0x200>;
		interrupts = <13 IRQ_TYPE_LEVEL_HIGH 7>;
		clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
		clock-names = "spi_clk";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx4_default>;
		atmel,fifo-size = <16>;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};
};

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

	uart1: serial@200 {
		compatible = "microchip,sam9x60-usart", "atmel,at91sam9260-usart";
		reg = <0x200 0x200>;
		interrupts = <14 IRQ_TYPE_LEVEL_HIGH 7>;
		dmas = <&dma0
			(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
			 AT91_XDMAC_DT_PERID(10))>,
		       <&dma0
			(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
			 AT91_XDMAC_DT_PERID(11))>;
		dma-names = "tx", "rx";
		clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
		clock-names = "usart";
		pinctrl-0 = <&pinctrl_flx5_default>;
		pinctrl-names = "default";
		atmel,use-dma-rx;
		atmel,use-dma-tx;
		status = "okay";
	};
};

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

	i2c1: i2c@600 {
		compatible = "microchip,sam9x60-i2c";
		reg = <0x600 0x200>;
		interrupts = <9 IRQ_TYPE_LEVEL_HIGH 7>;
		#address-cells = <1>;
		#size-cells = <0>;
		clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx6_default>;
		atmel,fifo-size = <16>;
		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>;
	};
};

&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: flx_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 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 = <80000000>;
		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";
};

