| // 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" | 
 |  | 
 | / { | 
 | 	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=<0x104>; | 
 | 			wakeup-source; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	leds { | 
 | 		compatible = "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>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &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 { | 
 | 	atmel,mux-mask = < | 
 | 			 /*	A	B	C	*/ | 
 | 			 0xFFFFFE7F 0xC0E0397F 0xEF00019D	/* pioA */ | 
 | 			 0x03FFFFFF 0x02FC7E68 0x00780000	/* pioB */ | 
 | 			 0xffffffff 0xF83FFFFF 0xB800F3FC	/* pioC */ | 
 | 			 0x003FFFFF 0x003F8000 0x00000000	/* pioD */ | 
 | 			 >; | 
 |  | 
 | 	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_UP | 
 | 				 AT91_PIOA 26 AT91_PERIPH_C AT91_PINCTRL_PULL_UP | 
 | 				 AT91_PIOA 27 AT91_PERIPH_C AT91_PINCTRL_PULL_UP>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	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 */ | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	gpio_keys { | 
 | 		pinctrl_key_gpio_default: pinctrl_key_gpio { | 
 | 			atmel,pins = <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>; | 
 | 		}; | 
 | 	}; | 
 | }; /* pinctrl */ | 
 |  | 
 | &pmc { | 
 | 	atmel,osc-bypass; | 
 | }; | 
 |  | 
 | &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>; | 
 | 	status = "okay"; | 
 | 	cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>; | 
 | 	disable-wp; | 
 | }; | 
 |  | 
 | &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>; | 
 | 		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>; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 | &shutdown_controller { | 
 | 	atmel,shdwc-debouncer = <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>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &usb1 { | 
 | 	num-ports = <3>; | 
 | 	atmel,vbus-gpio = <0 | 
 | 			   &pioD 15 GPIO_ACTIVE_HIGH | 
 | 			   &pioD 16 GPIO_ACTIVE_HIGH>; | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &usb2 { | 
 | 	status = "okay"; | 
 | }; |