// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * sam9x60.dtsi - Device Tree Include file for Microchip SAM9X60 SoC
 *
 * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
 *
 * Author: Sandeep Sheriker M <sandeepsheriker.mallikarjun@microchip.com>
 */

#include <dt-bindings/dma/at91.h>
#include <dt-bindings/pinctrl/at91.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/at91.h>
#include <dt-bindings/mfd/at91-usart.h>
#include <dt-bindings/mfd/atmel-flexcom.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	model = "Microchip SAM9X60 SoC";
	compatible = "microchip,sam9x60";
	interrupt-parent = <&aic>;

	aliases {
		serial0 = &dbgu;
		gpio0 = &pioA;
		gpio1 = &pioB;
		gpio2 = &pioC;
		gpio3 = &pioD;
		tcb0 = &tcb0;
		tcb1 = &tcb1;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,arm926ej-s";
			device_type = "cpu";
			reg = <0>;
		};
	};

	memory@20000000 {
		device_type = "memory";
		reg = <0x20000000 0x10000000>;
	};

	clocks {
		slow_xtal: slow_xtal {
			compatible = "fixed-clock";
			#clock-cells = <0>;
		};

		main_xtal: main_xtal {
			compatible = "fixed-clock";
			#clock-cells = <0>;
		};
	};

	sram: sram@300000 {
		compatible = "mmio-sram";
		reg = <0x00300000 0x100000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x00300000 0x100000>;
	};

	ahb {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		usb0: gadget@500000 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "microchip,sam9x60-udc";
			reg = <0x00500000 0x100000
				0xf803c000 0x400>;
			interrupts = <23 IRQ_TYPE_LEVEL_HIGH 2>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 23>, <&pmc PMC_TYPE_CORE PMC_UTMI>;
			clock-names = "pclk", "hclk";
			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
			assigned-clock-rates = <480000000>;
			status = "disabled";
		};

		usb1: ohci@600000 {
			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
			reg = <0x00600000 0x100000>;
			interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_PERIPHERAL 22>, <&pmc PMC_TYPE_SYSTEM 6>;
			clock-names = "ohci_clk", "hclk", "uhpck";
			status = "disabled";
		};

		usb2: ehci@700000 {
			compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
			reg = <0x00700000 0x100000>;
			interrupts = <22 IRQ_TYPE_LEVEL_HIGH 2>;
			clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>, <&pmc PMC_TYPE_PERIPHERAL 22>;
			clock-names = "usb_clk", "ehci_clk";
			assigned-clocks = <&pmc PMC_TYPE_CORE PMC_UTMI>;
			assigned-clock-rates = <480000000>;
			status = "disabled";
		};

		ebi: ebi@10000000 {
			compatible = "microchip,sam9x60-ebi";
			#address-cells = <2>;
			#size-cells = <1>;
			atmel,smc = <&smc>;
			microchip,sfr = <&sfr>;
			reg = <0x10000000 0x60000000>;
			ranges = <0x0 0x0 0x10000000 0x10000000
				  0x1 0x0 0x20000000 0x10000000
				  0x2 0x0 0x30000000 0x10000000
				  0x3 0x0 0x40000000 0x10000000
				  0x4 0x0 0x50000000 0x10000000
				  0x5 0x0 0x60000000 0x10000000>;
			clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
			status = "disabled";

			nand_controller: nand-controller {
				compatible = "microchip,sam9x60-nand-controller";
				ecc-engine = <&pmecc>;
				#address-cells = <2>;
				#size-cells = <1>;
				ranges;
				status = "disabled";
			};
		};

		sdmmc0: sdio-host@80000000 {
			compatible = "microchip,sam9x60-sdhci";
			reg = <0x80000000 0x300>;
			interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 12>, <&pmc PMC_TYPE_GCK 12>;
			clock-names = "hclock", "multclk";
			assigned-clocks = <&pmc PMC_TYPE_GCK 12>;
			assigned-clock-rates = <100000000>;
			status = "disabled";
		};

		sdmmc1: sdio-host@90000000 {
			compatible = "microchip,sam9x60-sdhci";
			reg = <0x90000000 0x300>;
			interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_GCK 26>;
			clock-names = "hclock", "multclk";
			assigned-clocks = <&pmc PMC_TYPE_GCK 26>;
			assigned-clock-rates = <100000000>;
			status = "disabled";
		};

		apb {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			ranges;

			flx4: flexcom@f0000000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf0000000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf0000000 0x800>;
				status = "disabled";
			};

			flx5: flexcom@f0004000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf0004000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf0004000 0x800>;
				status = "disabled";
			};

			dma0: dma-controller@f0008000 {
				compatible = "microchip,sam9x60-dma", "atmel,sama5d4-dma";
				reg = <0xf0008000 0x1000>;
				interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
				#dma-cells = <1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
				clock-names = "dma_clk";
			};

			ssc: ssc@f0010000 {
				compatible = "atmel,at91sam9g45-ssc";
				reg = <0xf0010000 0x4000>;
				interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(38))>,
				       <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(39))>;
				dma-names = "tx", "rx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
				clock-names = "pclk";
				status = "disabled";
			};

			qspi: spi@f0014000 {
				compatible = "microchip,sam9x60-qspi";
				reg = <0xf0014000 0x100>, <0x70000000 0x10000000>;
				reg-names = "qspi_base", "qspi_mmap";
				interrupts = <35 IRQ_TYPE_LEVEL_HIGH 7>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(26))>,
				       <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(27))>;
				dma-names = "tx", "rx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 35>, <&pmc PMC_TYPE_SYSTEM 19>;
				clock-names = "pclk", "qspick";
				atmel,pmc = <&pmc>;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "disabled";
			};

			i2s: i2s@f001c000 {
				compatible = "microchip,sam9x60-i2smcc";
				reg = <0xf001c000 0x100>;
				interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(36))>,
				       <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(37))>;
				dma-names = "tx", "rx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 34>, <&pmc PMC_TYPE_GCK 34>;
				clock-names = "pclk", "gclk";
				status = "disabled";
			};

			flx11: flexcom@f0020000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf0020000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 32>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf0020000 0x800>;
				status = "disabled";
			};

			flx12: flexcom@f0024000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf0024000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 33>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf0024000 0x800>;
				status = "disabled";
			};

			pit64b: timer@f0028000 {
				compatible = "microchip,sam9x60-pit64b";
				reg = <0xf0028000 0x100>;
				interrupts = <37 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 37>, <&pmc PMC_TYPE_GCK 37>;
				clock-names = "pclk", "gclk";
			};

			sha: crypto@f002c000 {
				compatible = "atmel,at91sam9g46-sha";
				reg = <0xf002c000 0x100>;
				interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(34))>;
				dma-names = "tx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 41>;
				clock-names = "sha_clk";
			};

			trng: trng@f0030000 {
				compatible = "microchip,sam9x60-trng";
				reg = <0xf0030000 0x100>;
				interrupts = <38 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 38>;
			};

			aes: crypto@f0034000 {
				compatible = "atmel,at91sam9g46-aes";
				reg = <0xf0034000 0x100>;
				interrupts = <39 IRQ_TYPE_LEVEL_HIGH 0>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(32))>,
				       <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(33))>;
				dma-names = "tx", "rx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 39>;
				clock-names = "aes_clk";
			};

			tdes: crypto@f0038000 {
				compatible = "atmel,at91sam9g46-tdes";
				reg = <0xf0038000 0x100>;
				interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(31))>,
				       <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(30))>;
				dma-names = "tx", "rx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 40>;
				clock-names = "tdes_clk";
			};

			classd: classd@f003c000 {
				compatible = "atmel,sama5d2-classd";
				reg = <0xf003c000 0x100>;
				interrupts = <42 IRQ_TYPE_LEVEL_HIGH 7>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(35))>;
				dma-names = "tx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 42>, <&pmc PMC_TYPE_GCK 42>;
				clock-names = "pclk", "gclk";
				status = "disabled";
			};

			can0: can@f8000000 {
				compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
				reg = <0xf8000000 0x300>;
				interrupts = <29 IRQ_TYPE_LEVEL_HIGH 3>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 29>;
				clock-names = "can_clk";
				status = "disabled";
			};

			can1: can@f8004000 {
				compatible = "microchip,sam9x60-can", "atmel,at91sam9x5-can";
				reg = <0xf8004000 0x300>;
				interrupts = <30 IRQ_TYPE_LEVEL_HIGH 3>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 30>;
				clock-names = "can_clk";
				status = "disabled";
			};

			tcb0: timer@f8008000 {
				compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0xf8008000 0x100>;
				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&clk32k 0>;
				clock-names = "t0_clk", "slow_clk";
			};

			tcb1: timer@f800c000 {
				compatible = "microchip,sam9x60-tcb", "atmel,at91sam9x5-tcb", "simple-mfd", "syscon";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0xf800c000 0x100>;
				interrupts = <45 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 45>, <&clk32k 0>;
				clock-names = "t0_clk", "slow_clk";
			};

			flx6: flexcom@f8010000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8010000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8010000 0x800>;
				status = "disabled";
			};

			flx7: flexcom@f8014000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8014000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8014000 0x800>;
				status = "disabled";
			};

			flx8: flexcom@f8018000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8018000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8018000 0x800>;
				status = "disabled";
			};

			flx0: flexcom@f801c000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf801c000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf801c000 0x800>;
				status = "disabled";
			};

			flx1: flexcom@f8020000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8020000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8020000 0x800>;
				status = "disabled";
			};

			flx2: flexcom@f8024000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8024000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8024000 0x800>;
				status = "disabled";
			};

			flx3: flexcom@f8028000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8028000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8028000 0x800>;
				status = "disabled";
			};

			macb0: ethernet@f802c000 {
				compatible = "cdns,sam9x60-macb", "cdns,macb";
				reg = <0xf802c000 0x1000>;
				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 3>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_PERIPHERAL 24>;
				clock-names = "hclk", "pclk";
				status = "disabled";
			};

			macb1: ethernet@f8030000 {
				compatible = "cdns,sam9x60-macb", "cdns,macb";
				reg = <0xf8030000 0x1000>;
				interrupts = <27 IRQ_TYPE_LEVEL_HIGH 3>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 27>;
				clock-names = "hclk", "pclk";
				status = "disabled";
			};

			pwm0: pwm@f8034000 {
				compatible = "microchip,sam9x60-pwm";
				reg = <0xf8034000 0x300>;
				interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
				#pwm-cells = <3>;
				status = "disabled";
			};

			hlcdc: hlcdc@f8038000 {
				compatible = "microchip,sam9x60-hlcdc";
				reg = <0xf8038000 0x4000>;
				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&clk32k 1>;
				clock-names = "periph_clk","sys_clk", "slow_clk";
				assigned-clocks = <&pmc PMC_TYPE_GCK 25>;
				assigned-clock-parents = <&pmc PMC_TYPE_CORE PMC_MCK>;
				status = "disabled";

				hlcdc-display-controller {
					compatible = "atmel,hlcdc-display-controller";
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						#address-cells = <1>;
						#size-cells = <0>;
						reg = <0>;
					};
				};

				hlcdc_pwm: hlcdc-pwm {
					compatible = "atmel,hlcdc-pwm";
					#pwm-cells = <3>;
				};
			};

			flx9: flexcom@f8040000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8040000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8040000 0x800>;
				status = "disabled";
			};

			flx10: flexcom@f8044000 {
				compatible = "atmel,sama5d2-flexcom";
				reg = <0xf8044000 0x200>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0x0 0xf8044000 0x800>;
				status = "disabled";
			};

			isi: isi@f8048000 {
				compatible = "microchip,sam9x60-isi", "atmel,at91sam9g45-isi";
				reg = <0xf8048000 0x100>;
				interrupts = <43 IRQ_TYPE_LEVEL_HIGH 5>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 43>;
				clock-names = "isi_clk";
				status = "disabled";
				port {
					#address-cells = <1>;
					#size-cells = <0>;
				};
			};

			adc: adc@f804c000 {
				compatible = "microchip,sam9x60-adc", "atmel,sama5d2-adc";
				reg = <0xf804c000 0x100>;
				interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 19>;
				clock-names = "adc_clk";
				dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(40))>;
				dma-names = "rx";
				atmel,min-sample-rate-hz = <200000>;
				atmel,max-sample-rate-hz = <20000000>;
				atmel,startup-time-ms = <4>;
				atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
				#io-channel-cells = <1>;
				status = "disabled";
			};

			sfr: sfr@f8050000 {
				compatible = "microchip,sam9x60-sfr", "syscon";
				reg = <0xf8050000 0x100>;
			};

			matrix: matrix@ffffde00 {
				compatible = "microchip,sam9x60-matrix", "atmel,at91sam9x5-matrix", "syscon";
				reg = <0xffffde00 0x200>;
			};

			pmecc: ecc-engine@ffffe000 {
				compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
				reg = <0xffffe000 0x300>,
				      <0xffffe600 0x100>;
			};

			mpddrc: mpddrc@ffffe800 {
				compatible = "microchip,sam9x60-ddramc", "atmel,sama5d3-ddramc";
				reg = <0xffffe800 0x200>;
				clocks = <&pmc PMC_TYPE_SYSTEM 2>, <&pmc PMC_TYPE_PERIPHERAL 49>;
				clock-names = "ddrck", "mpddr";
			};

			smc: smc@ffffea00 {
				compatible = "microchip,sam9x60-smc", "atmel,at91sam9260-smc", "syscon";
				reg = <0xffffea00 0x100>;
			};

			aic: interrupt-controller@fffff100 {
				compatible = "microchip,sam9x60-aic";
				#interrupt-cells = <3>;
				interrupt-controller;
				reg = <0xfffff100 0x100>;
				atmel,external-irqs = <31>;
			};

			dbgu: serial@fffff200 {
				compatible = "microchip,sam9x60-dbgu", "microchip,sam9x60-usart", "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
				reg = <0xfffff200 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <47 IRQ_TYPE_LEVEL_HIGH 7>;
				dmas = <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(28))>,
				       <&dma0
					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
					 AT91_XDMAC_DT_PERID(29))>;
				dma-names = "tx", "rx";
				clocks = <&pmc PMC_TYPE_PERIPHERAL 47>;
				clock-names = "usart";
				status = "disabled";
			};

			pinctrl: pinctrl@fffff400 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
				ranges = <0xfffff400 0xfffff400 0x800>;

				/* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
				atmel,mux-mask = <
						 /*	A	B	C	*/
						 0xffffffff 0xffe03fff 0xef00019d	/* pioA */
						 0x03ffffff 0x02fc7e7f 0x00780000	/* pioB */
						 0xffffffff 0xffffffff 0xf83fffff	/* pioC */
						 0x003fffff 0x003f8000 0x00000000	/* pioD */
						 >;

				pioA: gpio@fffff400 {
					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
					reg = <0xfffff400 0x200>;
					interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
				};

				pioB: gpio@fffff600 {
					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
					reg = <0xfffff600 0x200>;
					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					#gpio-lines = <26>;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
				};

				pioC: gpio@fffff800 {
					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
					reg = <0xfffff800 0x200>;
					interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
				};

				pioD: gpio@fffffa00 {
					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
					reg = <0xfffffa00 0x200>;
					interrupts = <44 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					#gpio-lines = <22>;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 44>;
				};
			};

			pmc: pmc@fffffc00 {
				compatible = "microchip,sam9x60-pmc", "syscon";
				reg = <0xfffffc00 0x200>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				#clock-cells = <2>;
				clocks = <&clk32k 1>, <&clk32k 0>, <&main_xtal>;
				clock-names = "td_slck", "md_slck", "main_xtal";
			};

			reset_controller: reset-controller@fffffe00 {
				compatible = "microchip,sam9x60-rstc";
				reg = <0xfffffe00 0x10>;
				clocks = <&clk32k 0>;
			};

			shutdown_controller: shdwc@fffffe10 {
				compatible = "microchip,sam9x60-shdwc";
				reg = <0xfffffe10 0x10>;
				clocks = <&clk32k 0>;
				#address-cells = <1>;
				#size-cells = <0>;
				atmel,wakeup-rtc-timer;
				atmel,wakeup-rtt-timer;
				status = "disabled";
			};

			rtt: rtc@fffffe20 {
				compatible = "microchip,sam9x60-rtt", "atmel,at91sam9260-rtt";
				reg = <0xfffffe20 0x20>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&clk32k 0>;
			};

			pit: timer@fffffe40 {
				compatible = "atmel,at91sam9260-pit";
				reg = <0xfffffe40 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
			};

			clk32k: sckc@fffffe50 {
				compatible = "microchip,sam9x60-sckc";
				reg = <0xfffffe50 0x4>;
				clocks = <&slow_xtal>;
				#clock-cells = <1>;
			};

			gpbr: syscon@fffffe60 {
				compatible = "microchip,sam9x60-gpbr", "atmel,at91sam9260-gpbr", "syscon";
				reg = <0xfffffe60 0x10>;
			};

			rtc: rtc@fffffea8 {
				compatible = "microchip,sam9x60-rtc", "atmel,at91sam9x5-rtc";
				reg = <0xfffffea8 0x100>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&clk32k 0>;
			};

			watchdog: watchdog@ffffff80 {
				compatible = "microchip,sam9x60-wdt";
				reg = <0xffffff80 0x24>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&clk32k 0>;
				status = "disabled";
			};
		};
	};
};
