code:
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91sam9260.dtsi - Device Tree Include file for AT91SAM9260 family SoC
 *
 *  Copyright (C) 2011 Atmel,
 *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>,
 *                2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */

#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>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	model = "Atmel AT91SAM9260 family SoC";
	compatible = "atmel,at91sam9260";
	interrupt-parent = <&aic>;

	aliases {
		serial0 = &dbgu;
		serial1 = &usart0;
		serial2 = &usart1;
		serial3 = &usart2;
		serial4 = &usart3;
		serial5 = &uart0;
		serial6 = &uart1;
		gpio0 = &pioA;
		gpio1 = &pioB;
		gpio2 = &pioC;
		tcb0 = &tcb0;
		tcb1 = &tcb1;
		i2c0 = &i2c0;
		ssc0 = &ssc0;
	};
	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 0x04000000>;
	};

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

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

		adc_op_clk: adc_op_clk{
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <5000000>;
		};
	};

	sram0: sram@2ff000 {
		compatible = "mmio-sram";
		reg = <0x002ff000 0x2000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x002ff000 0x2000>;
	};

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

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

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
				atmel,external-irqs = <29 30 31>;
			};

			ramc0: ramc@ffffea00 {
				compatible = "atmel,at91sam9260-sdramc";
				reg = <0xffffea00 0x200>;
			};

			smc: smc@ffffec00 {
				compatible = "atmel,at91sam9260-smc", "syscon";
				reg = <0xffffec00 0x200>;
			};

			matrix: matrix@ffffee00 {
				compatible = "atmel,at91sam9260-matrix", "syscon";
				reg = <0xffffee00 0x200>;
			};

			pmc: pmc@fffffc00 {
				compatible = "atmel,at91sam9260-pmc", "syscon";
				reg = <0xfffffc00 0x100>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				#clock-cells = <2>;
				clocks = <&slow_xtal>, <&main_xtal>;
				clock-names = "slow_xtal", "main_xtal";
			};

			reset-controller@fffffd00 {
				compatible = "atmel,at91sam9260-rstc";
				reg = <0xfffffd00 0x10>;
				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
			};

			shdwc@fffffd10 {
				compatible = "atmel,at91sam9260-shdwc";
				reg = <0xfffffd10 0x10>;
				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
			};

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

			tcb0: timer@fffa0000 {
				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0xfffa0000 0x100>;
				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
					      18 IRQ_TYPE_LEVEL_HIGH 0
					      19 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 19>, <&pmc PMC_TYPE_CORE PMC_SLOW>;
				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
			};

			tcb1: timer@fffdc000 {
				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0xfffdc000 0x100>;
				interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0
					      27 IRQ_TYPE_LEVEL_HIGH 0
					      28 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_PERIPHERAL 27>, <&pmc PMC_TYPE_PERIPHERAL 28>, <&pmc PMC_TYPE_CORE PMC_SLOW>;
				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
			};

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

				atmel,mux-mask = <
				      /*    A         B     */
				       0xffffffff 0xffc00c3b  /* pioA */
				       0xffffffff 0x7fff3ccf  /* pioB */
				       0xffffffff 0x007fffff  /* pioC */
				      >;

				/* shared pinctrl settings */
				dbgu {
					pinctrl_dbgu: dbgu-0 {
						atmel,pins =
							<AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				usart0 {
					pinctrl_usart0: usart0-0 {
						atmel,pins =
							<AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart0_rts: usart0_rts-0 {
						atmel,pins =
							<AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB26 periph A */
					};

					pinctrl_usart0_cts: usart0_cts-0 {
						atmel,pins =
							<AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB27 periph A */
					};

					pinctrl_usart0_dtr_dsr: usart0_dtr_dsr-0 {
						atmel,pins =
							<AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB24 periph A */
							 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB22 periph A */
					};

					pinctrl_usart0_dcd: usart0_dcd-0 {
						atmel,pins =
							<AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB23 periph A */
					};

					pinctrl_usart0_ri: usart0_ri-0 {
						atmel,pins =
							<AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB25 periph A */
					};
				};

				usart1 {
					pinctrl_usart1: usart1-0 {
						atmel,pins =
							<AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart1_rts: usart1_rts-0 {
						atmel,pins =
							<AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB28 periph A */
					};

					pinctrl_usart1_cts: usart1_cts-0 {
						atmel,pins =
							<AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB29 periph A */
					};
				};

				usart2 {
					pinctrl_usart2: usart2-0 {
						atmel,pins =
							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart2_rts: usart2_rts-0 {
						atmel,pins =
							<AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA4 periph A */
					};

					pinctrl_usart2_cts: usart2_cts-0 {
						atmel,pins =
							<AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA5 periph A */
					};
				};

				usart3 {
					pinctrl_usart3: usart3-0 {
						atmel,pins =
							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart3_rts: usart3_rts-0 {
						atmel,pins =
							<AT91_PIOC 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_usart3_cts: usart3_cts-0 {
						atmel,pins =
							<AT91_PIOC 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				uart0 {
					pinctrl_uart0: uart0-0 {
						atmel,pins =
							<AT91_PIOA 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP
							 AT91_PIOA 30 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
					};
				};

				uart1 {
					pinctrl_uart1: uart1-0 {
						atmel,pins =
							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};
				};

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

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

				macb {
					pinctrl_macb_rmii: macb_rmii-0 {
						atmel,pins =
							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA12 periph A */
							 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA13 periph A */
							 AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA14 periph A */
							 AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA15 periph A */
							 AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA16 periph A */
							 AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA17 periph A */
							 AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA18 periph A */
							 AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA19 periph A */
							 AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA20 periph A */
							 AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA21 periph A */
					};

					pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
						atmel,pins =
							<AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
							 AT91_PIOA 23 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA23 periph B */
							 AT91_PIOA 24 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA24 periph B */
							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
					};

					pinctrl_macb_rmii_mii_alt: macb_rmii_mii-1 {
						atmel,pins =
							<AT91_PIOA 10 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA10 periph B */
							 AT91_PIOA 11 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA11 periph B */
							 AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA22 periph B */
							 AT91_PIOA 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA25 periph B */
							 AT91_PIOA 26 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA26 periph B */
							 AT91_PIOA 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA27 periph B */
							 AT91_PIOA 28 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA28 periph B */
							 AT91_PIOA 29 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA29 periph B */
					};
				};

				mmc0 {
					pinctrl_mmc0_clk: mmc0_clk-0 {
						atmel,pins =
							<AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA8 periph A */
					};

					pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA7 periph A with pullup */
							 AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA6 periph A with pullup */
					};

					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA9 periph A with pullup */
							 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA10 periph A with pullup */
							 AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA11 periph A with pullup */
					};

					pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA1 periph B with pullup */
							 AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA0 periph B with pullup */
					};

					pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA5 periph B with pullup */
							 AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PA4 periph B with pullup */
							 AT91_PIOA 3 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PA3 periph B with pullup */
					};
				};

				ssc0 {
					pinctrl_ssc0_tx: ssc0_tx-0 {
						atmel,pins =
							<AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB16 periph A */
							 AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB17 periph A */
							 AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB18 periph A */
					};

					pinctrl_ssc0_rx: ssc0_rx-0 {
						atmel,pins =
							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB19 periph A */
							 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB20 periph A */
							 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB21 periph A */
					};
				};

				spi0 {
					pinctrl_spi0: spi0-0 {
						atmel,pins =
							<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA0 periph A SPI0_MISO pin */
							 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PA1 periph A SPI0_MOSI pin */
							 AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA2 periph A SPI0_SPCK pin */
					};
				};

				spi1 {
					pinctrl_spi1: spi1-0 {
						atmel,pins =
							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB0 periph A SPI1_MISO pin */
							 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB1 periph A SPI1_MOSI pin */
							 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB2 periph A SPI1_SPCK pin */
					};
				};

				i2c_gpio0 {
					pinctrl_i2c_gpio0: i2c_gpio0-0 {
						atmel,pins =
							<AT91_PIOA 23 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE
							 AT91_PIOA 24 AT91_PERIPH_GPIO AT91_PINCTRL_MULTI_DRIVE>;
					};
				};

				tcb0 {
					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
						atmel,pins = <AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
						atmel,pins = <AT91_PIOB 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
						atmel,pins = <AT91_PIOB 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
						atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
						atmel,pins = <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
						atmel,pins = <AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
						atmel,pins = <AT91_PIOC 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
						atmel,pins = <AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
						atmel,pins = <AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				tcb1 {
					pinctrl_tcb1_tclk0: tcb1_tclk0-0 {
						atmel,pins = <AT91_PIOB 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tclk1: tcb1_tclk1-0 {
						atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tclk2: tcb1_tclk2-0 {
						atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tioa0: tcb1_tioa0-0 {
						atmel,pins = <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tioa1: tcb1_tioa1-0 {
						atmel,pins = <AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tioa2: tcb1_tioa2-0 {
						atmel,pins = <AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tiob0: tcb1_tiob0-0 {
						atmel,pins = <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tiob1: tcb1_tiob1-0 {
						atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb1_tiob2: tcb1_tiob2-0 {
						atmel,pins = <AT91_PIOB 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				pioA: gpio@fffff400 {
					compatible = "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 = "atmel,at91rm9200-gpio";
					reg = <0xfffff600 0x200>;
					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
				};

				pioC: gpio@fffff800 {
					compatible = "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>;
				};
			};

			dbgu: serial@fffff200 {
				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
				reg = <0xfffff200 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_dbgu>;
				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
				clock-names = "usart";
				status = "disabled";
			};

			usart0: serial@fffb0000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb0000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
				clock-names = "usart";
				status = "disabled";
			};

			usart1: serial@fffb4000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb4000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
				clock-names = "usart";
				status = "disabled";
			};

			usart2: serial@fffb8000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb8000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart2>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
				clock-names = "usart";
				status = "disabled";
			};

			usart3: serial@fffd0000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffd0000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <23 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart3>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 23>;
				clock-names = "usart";
				status = "disabled";
			};

			uart0: serial@fffd4000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffd4000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_uart0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>;
				clock-names = "usart";
				status = "disabled";
			};

			uart1: serial@fffd8000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffd8000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <25 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_uart1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 25>;
				clock-names = "usart";
				status = "disabled";
			};

			macb0: ethernet@fffc4000 {
				compatible = "cdns,at91sam9260-macb", "cdns,macb";
				reg = <0xfffc4000 0x100>;
				interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_macb_rmii>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_PERIPHERAL 21>;
				clock-names = "hclk", "pclk";
				status = "disabled";
			};

			usb1: gadget@fffa4000 {
				compatible = "atmel,at91sam9260-udc";
				reg = <0xfffa4000 0x4000>;
				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>, <&pmc PMC_TYPE_SYSTEM 7>;
				clock-names = "pclk", "hclk";
				status = "disabled";
			};

			i2c0: i2c@fffac000 {
				compatible = "atmel,at91sam9260-i2c";
				reg = <0xfffac000 0x100>;
				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
				status = "disabled";
			};

			mmc0: mmc@fffa8000 {
				compatible = "atmel,hsmci";
				reg = <0xfffa8000 0x600>;
				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
				clock-names = "mci_clk";
				status = "disabled";
			};

			ssc0: ssc@fffbc000 {
				compatible = "atmel,at91rm9200-ssc";
				reg = <0xfffbc000 0x4000>;
				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
				clock-names = "pclk";
				status = "disabled";
			};

			spi0: spi@fffc8000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "atmel,at91rm9200-spi";
				reg = <0xfffc8000 0x200>;
				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_spi0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
				clock-names = "spi_clk";
				status = "disabled";
			};

			spi1: spi@fffcc000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "atmel,at91rm9200-spi";
				reg = <0xfffcc000 0x200>;
				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_spi1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
				clock-names = "spi_clk";
				status = "disabled";
			};

			adc0: adc@fffe0000 {
				compatible = "atmel,at91sam9260-adc";
				reg = <0xfffe0000 0x100>;
				interrupts = <5 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 5>, <&adc_op_clk>;
				clock-names = "adc_clk", "adc_op_clk";
				atmel,adc-use-external-triggers;
				atmel,adc-channels-used = <0xf>;
				atmel,adc-vref = <3300>;
				atmel,adc-startup-time = <15>;
			};

			rtc@fffffd20 {
				compatible = "atmel,at91sam9260-rtt";
				reg = <0xfffffd20 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
				status = "disabled";
			};

			watchdog: watchdog@fffffd40 {
				compatible = "atmel,at91sam9260-wdt";
				reg = <0xfffffd40 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&pmc PMC_TYPE_CORE PMC_SLOW>;
				atmel,watchdog-type = "hardware";
				atmel,reset-type = "all";
				atmel,dbg-halt;
				status = "disabled";
			};

			gpbr: syscon@fffffd50 {
				compatible = "atmel,at91sam9260-gpbr", "syscon";
				reg = <0xfffffd50 0x10>;
				status = "disabled";
			};
		};

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

		ebi: ebi@10000000 {
			compatible = "atmel,at91sam9260-ebi";
			#address-cells = <2>;
			#size-cells = <1>;
			atmel,smc = <&smc>;
			atmel,matrix = <&matrix>;
			reg = <0x10000000 0x80000000>;
			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
				  0x6 0x0 0x70000000 0x10000000
				  0x7 0x0 0x80000000 0x10000000>;
			clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
			status = "disabled";

			nand_controller: nand-controller {
				compatible = "atmel,at91sam9260-nand-controller";
				#address-cells = <2>;
				#size-cells = <1>;
				ranges;
				status = "disabled";
			};
		};
	};

	i2c_gpio0: i2c-gpio-0 {
		compatible = "i2c-gpio";
		gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
			 &pioA 24 GPIO_ACTIVE_HIGH /* scl */
			>;
		i2c-gpio,sda-open-drain;
		i2c-gpio,scl-open-drain;
		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c_gpio0>;
		status = "disabled";
	};
};


code:
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Device Tree file for Atmel at91sam9260 Evaluation Kit
 *
 *  Copyright (C) 2016 Atmel,
 *		  2016 Nicolas Ferre <nicolas.ferre@atmel.com>
 */
/dts-v1/;
#include "at91sam9260.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "Atmel at91sam9260ek";
	compatible = "atmel,at91sam9260ek", "atmel,at91sam9260", "atmel,at91sam9";

	chosen {
		stdout-path = &dbgu;
	};

	memory@20000000 {
		reg = <0x20000000 0x4000000>;
	};

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

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

	ahb {
		apb {
			tcb0: timer@fffa0000 {
				timer@0 {
					compatible = "atmel,tcb-timer";
					reg = <0>, <1>;
				};

				timer@2 {
					compatible = "atmel,tcb-timer";
					reg = <2>;
				};
			};

			usb1: gadget@fffa4000 {
				atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			mmc0: mmc@fffa8000 {
				pinctrl-0 = <
					&pinctrl_board_mmc0_slot1
					&pinctrl_mmc0_clk
					&pinctrl_mmc0_slot1_cmd_dat0
					&pinctrl_mmc0_slot1_dat1_3>;
				pinctrl-names = "default";
				status = "okay";
				slot@1 {
					reg = <1>;
					bus-width = <4>;
					cd-gpios = <&pioC 9 GPIO_ACTIVE_HIGH>;
				};
			};

			usart0: serial@fffb0000 {
				pinctrl-0 =
					<&pinctrl_usart0
					 &pinctrl_usart0_rts
					 &pinctrl_usart0_cts
					 &pinctrl_usart0_dtr_dsr
					 &pinctrl_usart0_dcd
					 &pinctrl_usart0_ri>;
				status = "okay";
			};

			usart1: serial@fffb4000 {
				status = "okay";
			};

			ssc0: ssc@fffbc000 {
				status = "okay";
				pinctrl-0 = <&pinctrl_ssc0_tx>;
			};

			macb0: ethernet@fffc4000 {
				phy-mode = "rmii";
				status = "okay";
			};

			spi0: spi@fffc8000 {
				cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
				flash@1 {
					compatible = "atmel,at45", "atmel,dataflash";
					spi-max-frequency = <50000000>;
					reg = <1>;
				};
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

			pinctrl@fffff400 {
				board {
					pinctrl_board_mmc0_slot1: mmc0_slot1-board {
						atmel,pins =
							<AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
					};
				};
			};

			shdwc@fffffd10 {
				atmel,wakeup-counter = <10>;
				atmel,wakeup-rtt-timer;
			};

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

			watchdog@fffffd40 {
				status = "okay";
			};

			gpbr: syscon@fffffd50 {
				status = "okay";
			};
		};

		usb0: ohci@500000 {
			num-ports = <2>;
			status = "okay";
		};

		nand0: nand@40000000 {
			nand-bus-width = <8>;
			nand-ecc-mode = "soft";
			nand-on-flash-bbt;
			status = "okay";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		button-3 {
			label = "Button 3";
			gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
			linux,code = <0x103>;
			wakeup-source;
		};

		button-4 {
			label = "Button 4";
			gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
			wakeup-source;
		};
	};

	i2c-gpio-0 {
		status = "okay";

		24c512@50 {
			compatible = "atmel,24c512";
			reg = <0x50>;
		};
	};

	leds {
		compatible = "gpio-leds";

		ds1 {
			label = "ds1";
			gpios = <&pioA 9 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		ds5 {
			label = "ds5";
			gpios = <&pioA 6 GPIO_ACTIVE_LOW>;
		};
	};
};

repo_name: angery/linux


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9261.dtsi - Device Tree Include file for AT91SAM9261 SoC
 *
 *  Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
 */

#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>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	model = "Atmel AT91SAM9261 family SoC";
	compatible = "atmel,at91sam9261";
	interrupt-parent = <&aic>;

	aliases {
		serial0 = &dbgu;
		serial1 = &usart0;
		serial2 = &usart1;
		serial3 = &usart2;
		gpio0 = &pioA;
		gpio1 = &pioB;
		gpio2 = &pioC;
		tcb0 = &tcb0;
		i2c0 = &i2c0;
		ssc0 = &ssc0;
		ssc1 = &ssc1;
		ssc2 = &ssc2;
	};

	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 0x08000000>;
	};

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

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

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

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

		usb0: ohci@500000 {
			compatible = "atmel,at91rm9200-ohci", "usb-ohci";
			reg = <0x00500000 0x100000>;
			interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 20>, <&pmc PMC_TYPE_SYSTEM 16>, <&pmc PMC_TYPE_SYSTEM 6>;
			clock-names = "ohci_clk", "hclk", "uhpck";
			status = "disabled";
		};

		fb0: fb@600000 {
			compatible = "atmel,at91sam9261-lcdc";
			reg = <0x00600000 0x1000>;
			interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_fb>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_SYSTEM 17>;
			clock-names = "lcdc_clk", "hclk";
			status = "disabled";
		};

		ebi: ebi@10000000 {
			compatible = "atmel,at91sam9261-ebi";
			#address-cells = <2>;
			#size-cells = <1>;
			atmel,smc = <&smc>;
			atmel,matrix = <&matrix>;
			reg = <0x10000000 0x80000000>;
			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
				  0x6 0x0 0x70000000 0x10000000
				  0x7 0x0 0x80000000 0x10000000>;
			clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
			status = "disabled";

			nand_controller: nand-controller {
				compatible = "atmel,at91sam9261-nand-controller";
				#address-cells = <2>;
				#size-cells = <1>;
				ranges;
				status = "disabled";
			};
		};

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

			tcb0: timer@fffa0000 {
				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0xfffa0000 0x100>;
				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
					     <18 IRQ_TYPE_LEVEL_HIGH 0>,
					     <19 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>, <&pmc PMC_TYPE_PERIPHERAL 18>, <&pmc PMC_TYPE_PERIPHERAL 19>, <&slow_xtal>;
				clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
			};

			usb1: gadget@fffa4000 {
				compatible = "atmel,at91sam9261-udc";
				reg = <0xfffa4000 0x4000>;
				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 2>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>, <&pmc PMC_TYPE_SYSTEM 7>;
				clock-names = "pclk", "hclk";
				atmel,matrix = <&matrix>;
				status = "disabled";
			};

			mmc0: mmc@fffa8000 {
				compatible = "atmel,hsmci";
				reg = <0xfffa8000 0x600>;
				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_mmc0_clk>, <&pinctrl_mmc0_slot0_cmd_dat0>, <&pinctrl_mmc0_slot0_dat1_3>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
				clock-names = "mci_clk";
				status = "disabled";
			};

			i2c0: i2c@fffac000 {
				compatible = "atmel,at91sam9261-i2c";
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_i2c_twi>;
				reg = <0xfffac000 0x100>;
				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 6>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
				status = "disabled";
			};

			usart0: serial@fffb0000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb0000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 6>;
				clock-names = "usart";
				status = "disabled";
			};

			usart1: serial@fffb4000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb4000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
				clock-names = "usart";
				status = "disabled";
			};

			usart2: serial@fffb8000{
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfffb8000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart2>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
				clock-names = "usart";
				status = "disabled";
			};

			ssc0: ssc@fffbc000 {
				compatible = "atmel,at91rm9200-ssc";
				reg = <0xfffbc000 0x4000>;
				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
				clock-names = "pclk";
				status = "disabled";
			};

			ssc1: ssc@fffc0000 {
				compatible = "atmel,at91rm9200-ssc";
				reg = <0xfffc0000 0x4000>;
				interrupts = <15 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
				clock-names = "pclk";
				status = "disabled";
			};

			ssc2: ssc@fffc4000 {
				compatible = "atmel,at91rm9200-ssc";
				reg = <0xfffc4000 0x4000>;
				interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ssc2_tx &pinctrl_ssc2_rx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
				clock-names = "pclk";
				status = "disabled";
			};

			spi0: spi@fffc8000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "atmel,at91rm9200-spi";
				reg = <0xfffc8000 0x200>;
				cs-gpios = <0>, <0>, <0>, <0>;
				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_spi0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
				clock-names = "spi_clk";
				status = "disabled";
			};

			spi1: spi@fffcc000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "atmel,at91rm9200-spi";
				reg = <0xfffcc000 0x200>;
				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_spi1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
				clock-names = "spi_clk";
				status = "disabled";
			};

			ramc: ramc@ffffea00 {
				compatible = "atmel,at91sam9260-sdramc";
				reg = <0xffffea00 0x200>;
			};

			smc: smc@ffffec00 {
				compatible = "atmel,at91sam9260-smc", "syscon";
				reg = <0xffffec00 0x200>;
			};

			matrix: matrix@ffffee00 {
				compatible = "atmel,at91sam9261-matrix", "syscon";
				reg = <0xffffee00 0x200>;
			};

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
				atmel,external-irqs = <29 30 31>;
			};

			dbgu: serial@fffff200 {
				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
				reg = <0xfffff200 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_dbgu>;
				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
				clock-names = "usart";
				status = "disabled";
			};

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

				atmel,mux-mask =
				      /*    A         B     */
				      <0xffffffff 0xfffffff7>,  /* pioA */
				      <0xffffffff 0xfffffff4>,  /* pioB */
				      <0xffffffff 0xffffff07>;  /* pioC */

				/* shared pinctrl settings */
				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>;
					};
				};

				usart0 {
					pinctrl_usart0: usart0-0 {
						atmel,pins =
							<AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
							<AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart0_rts: usart0_rts-0 {
						atmel,pins =
							<AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_usart0_cts: usart0_cts-0 {
						atmel,pins =
							<AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				usart1 {
					pinctrl_usart1: usart1-0 {
						atmel,pins =
							<AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
							<AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart1_rts: usart1_rts-0 {
						atmel,pins =
							<AT91_PIOA 12 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_usart1_cts: usart1_cts-0 {
						atmel,pins =
							<AT91_PIOA 13 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				usart2 {
					pinctrl_usart2: usart2-0 {
						atmel,pins =
							<AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
							<AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart2_rts: usart2_rts-0 {
						atmel,pins =
							<AT91_PIOA 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_usart2_cts: usart2_cts-0 {
						atmel,pins =
							<AT91_PIOA 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

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

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

				mmc0 {
					pinctrl_mmc0_clk: mmc0_clk-0 {
						atmel,pins =
							<AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
							<AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 4 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
							<AT91_PIOA 5 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
							<AT91_PIOA 6 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
					};
					};

				ssc0 {
					pinctrl_ssc0_tx: ssc0_tx-0 {
						atmel,pins =
							<AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_ssc0_rx: ssc0_rx-0 {
						atmel,pins =
							<AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				ssc1 {
					pinctrl_ssc1_tx: ssc1_tx-0 {
						atmel,pins =
							<AT91_PIOA 17 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_ssc1_rx: ssc1_rx-0 {
						atmel,pins =
							<AT91_PIOA 20 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOA 21 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOA 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				ssc2 {
					pinctrl_ssc2_tx: ssc2_tx-0 {
						atmel,pins =
							<AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOC 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_ssc2_rx: ssc2_rx-0 {
						atmel,pins =
							<AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOC 29 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOC 30 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				spi0 {
					pinctrl_spi0: spi0-0 {
						atmel,pins =
							<AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOA 2 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
					};

				spi1 {
					pinctrl_spi1: spi1-0 {
						atmel,pins =
							<AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				tcb0 {
					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
						atmel,pins = <AT91_PIOC 16 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
						atmel,pins = <AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
						atmel,pins = <AT91_PIOC 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
						atmel,pins = <AT91_PIOC 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
						atmel,pins = <AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
						atmel,pins = <AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
						atmel,pins = <AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
						atmel,pins = <AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
						atmel,pins = <AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				i2c0 {
					pinctrl_i2c_bitbang: i2c-0-bitbang {
						atmel,pins =
							<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>,
							<AT91_PIOA 8 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
					};
					pinctrl_i2c_twi: i2c-0-twi {
						atmel,pins =
							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				fb {
					pinctrl_fb: fb-0 {
						atmel,pins =
							<AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 8 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 16 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 17 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 18 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 19 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE>,
							<AT91_PIOB 23 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOB 24 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOB 25 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOB 26 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOB 27 AT91_PERIPH_B AT91_PINCTRL_NONE>,
							<AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				pioA: gpio@fffff400 {
					compatible = "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 = "atmel,at91rm9200-gpio";
					reg = <0xfffff600 0x200>;
					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
				};

				pioC: gpio@fffff800 {
					compatible = "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>;
				};
			};

			pmc: pmc@fffffc00 {
				compatible = "atmel,at91sam9261-pmc", "syscon";
				reg = <0xfffffc00 0x100>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				#clock-cells = <2>;
				clocks = <&slow_xtal>, <&main_xtal>;
				clock-names = "slow_xtal", "main_xtal";
			};

			reset-controller@fffffd00 {
				compatible = "atmel,at91sam9260-rstc";
				reg = <0xfffffd00 0x10>;
				clocks = <&slow_xtal>;
			};

			shdwc@fffffd10 {
				compatible = "atmel,at91sam9260-shdwc";
				reg = <0xfffffd10 0x10>;
				clocks = <&slow_xtal>;
			};

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

			rtc@fffffd20 {
				compatible = "atmel,at91sam9260-rtt";
				reg = <0xfffffd20 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&slow_xtal>;
				status = "disabled";
			};

			watchdog@fffffd40 {
				compatible = "atmel,at91sam9260-wdt";
				reg = <0xfffffd40 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&slow_xtal>;
				status = "disabled";
			};

			gpbr: syscon@fffffd50 {
				compatible = "atmel,at91sam9260-gpbr", "syscon";
				reg = <0xfffffd50 0x10>;
				status = "disabled";
			};
		};
	};

	i2c-gpio-0 {
		compatible = "i2c-gpio";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c_bitbang>;
		gpios = <&pioA 7 GPIO_ACTIVE_HIGH>, /* sda */
			<&pioA 8 GPIO_ACTIVE_HIGH>; /* scl */
		i2c-gpio,sda-open-drain;
		i2c-gpio,scl-open-drain;
		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9261ek.dts - Device Tree file for Atmel at91sam9261 reference board
 *
 *  Copyright (C) 2013 Jean-Jacques Hiblot <jjhiblot@traphandler.com>
 */
/dts-v1/;
#include "at91sam9261.dtsi"

/ {
	model = "Atmel at91sam9261ek";
	compatible = "atmel,at91sam9261ek", "atmel,at91sam9261", "atmel,at91sam9";

	chosen {
		bootargs = "rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs rw";
		stdout-path = "serial0:115200n8";
	};

	memory@20000000 {
		reg = <0x20000000 0x4000000>;
	};

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

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

	ahb {
		usb0: ohci@500000 {
			status = "okay";
		};

		fb0: fb@600000 {
			display = <&display0>;
			atmel,power-control-gpio = <&pioA 12 GPIO_ACTIVE_LOW>;
			status = "okay";

			display0: panel {
				bits-per-pixel = <16>;
				atmel,lcdcon-backlight;
				atmel,dmacon = <0x1>;
				atmel,lcdcon2 = <0x80008002>;
				atmel,guard-time = <1>;
				atmel,lcd-wiring-mode = "BRG";

				display-timings {
					native-mode = <&timing0>;
					timing0: timing0 {
						clock-frequency = <4965000>;
						hactive = <240>;
						vactive = <320>;
						hback-porch = <1>;
						hfront-porch = <33>;
						vback-porch = <1>;
						vfront-porch = <0>;
						hsync-len = <5>;
						vsync-len = <1>;
						hsync-active = <1>;
						vsync-active = <1>;
					};
				};
			};
		};

		ebi: ebi@10000000 {
			status = "okay";

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

				nand@3 {
					reg = <0x3 0x0 0x800000>;
					rb-gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
					cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
					nand-bus-width = <8>;
					nand-ecc-mode = "soft";
					nand-on-flash-bbt;
					label = "atmel_nand";

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

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

						bootloader@40000 {
							label = "bootloader";
							reg = <0x40000 0x80000>;
						};

						bootloaderenv@c0000 {
							label = "bootloader env";
							reg = <0xc0000 0xc0000>;
						};

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

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

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

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

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

			usb1: gadget@fffa4000 {
				atmel,vbus-gpio = <&pioB 29 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			spi0: spi@fffc8000 {
				cs-gpios = <&pioA 3 0>, <0>, <&pioA 28 0>, <0>;
				status = "okay";

				flash@0 {
					compatible = "atmel,at45", "atmel,dataflash";
					reg = <0>;
					spi-max-frequency = <15000000>;
				};

				tsc2046@2 {
					reg = <2>;
					compatible = "ti,ads7843";
					interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
					spi-max-frequency = <3000000>;
					pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;

					ti,x-min = /bits/ 16 <150>;
					ti,x-max = /bits/ 16 <3830>;
					ti,y-min = /bits/ 16 <190>;
					ti,y-max = /bits/ 16 <3830>;
					ti,vref-delay-usecs = /bits/ 16 <450>;
					ti,x-plate-ohms = /bits/ 16 <450>;
					ti,y-plate-ohms = /bits/ 16 <250>;
					ti,pressure-max = /bits/ 16 <15000>;
					ti,debounce-rep = /bits/ 16 <0>;
					ti,debounce-tol = /bits/ 16 <65535>;
					ti,debounce-max = /bits/ 16 <1>;

					wakeup-source;
				};
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

			rtc@fffffd20 {
				atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
			};

			watchdog@fffffd40 {
				status = "okay";
			};

		};
	};

	leds {
		compatible = "gpio-leds";

		ds8 {
			label = "ds8";
			gpios = <&pioA 13 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "none";
		};

		ds7 {
			label = "ds7";
			gpios = <&pioA 14 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "nand-disk";
		};

		ds1 {
			label = "ds1";
			gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		button-0 {
			label = "button_0";
			gpios = <&pioA 27 GPIO_ACTIVE_LOW>;
			linux,code = <256>;
			wakeup-source;
		};

		button-1 {
			label = "button_1";
			gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
			linux,code = <257>;
			wakeup-source;
		};

		button-2 {
			label = "button_2";
			gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
			linux,code = <258>;
			wakeup-source;
		};

		button-3 {
			label = "button_3";
			gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
			linux,code = <259>;
			wakeup-source;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9263.dtsi - Device Tree Include file for AT91SAM9263 family SoC
 *
 *  Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */

#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>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	model = "Atmel AT91SAM9263 family SoC";
	compatible = "atmel,at91sam9263";
	interrupt-parent = <&aic>;

	aliases {
		serial0 = &dbgu;
		serial1 = &usart0;
		serial2 = &usart1;
		serial3 = &usart2;
		gpio0 = &pioA;
		gpio1 = &pioB;
		gpio2 = &pioC;
		gpio3 = &pioD;
		gpio4 = &pioE;
		tcb0 = &tcb0;
		i2c0 = &i2c0;
		ssc0 = &ssc0;
		ssc1 = &ssc1;
		pwm0 = &pwm0;
	};

	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 0x08000000>;
	};

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

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

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

	sram1: sram@500000 {
		compatible = "mmio-sram";
		reg = <0x00500000 0x4000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x00500000 0x4000>;
	};

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

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

			aic: interrupt-controller@fffff000 {
				#interrupt-cells = <3>;
				compatible = "atmel,at91rm9200-aic";
				interrupt-controller;
				reg = <0xfffff000 0x200>;
				atmel,external-irqs = <30 31>;
			};

			pmc: pmc@fffffc00 {
				compatible = "atmel,at91sam9263-pmc", "syscon";
				reg = <0xfffffc00 0x100>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				#clock-cells = <2>;
				clocks = <&slow_xtal>, <&main_xtal>;
				clock-names = "slow_xtal", "main_xtal";
			};

			ramc0: ramc@ffffe200 {
				compatible = "atmel,at91sam9260-sdramc";
				reg = <0xffffe200 0x200>;
			};

			smc0: smc@ffffe400 {
				compatible = "atmel,at91sam9260-smc", "syscon";
				reg = <0xffffe400 0x200>;
			};

			ramc1: ramc@ffffe800 {
				compatible = "atmel,at91sam9260-sdramc";
				reg = <0xffffe800 0x200>;
			};

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

			matrix: matrix@ffffec00 {
				compatible = "atmel,at91sam9263-matrix", "syscon";
				reg = <0xffffec00 0x200>;
			};

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

			tcb0: timer@fff7c000 {
				compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0xfff7c000 0x100>;
				interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 19>, <&slow_xtal>;
				clock-names = "t0_clk", "slow_clk";
			};

			reset-controller@fffffd00 {
				compatible = "atmel,at91sam9260-rstc";
				reg = <0xfffffd00 0x10>;
				clocks = <&slow_xtal>;
			};

			shdwc@fffffd10 {
				compatible = "atmel,at91sam9260-shdwc";
				reg = <0xfffffd10 0x10>;
				clocks = <&slow_xtal>;
			};

			pinctrl@fffff200 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "atmel,at91rm9200-pinctrl", "simple-bus";
				ranges = <0xfffff200 0xfffff200 0xa00>;

				atmel,mux-mask = <
				      /*    A         B     */
				       0xfffffffb 0xffffe07f  /* pioA */
				       0x0007ffff 0x39072fff  /* pioB */
				       0xffffffff 0x3ffffff8  /* pioC */
				       0xfffffbff 0xffffffff  /* pioD */
				       0xffe00fff 0xfbfcff00  /* pioE */
				      >;

				/* shared pinctrl settings */
				dbgu {
					pinctrl_dbgu: dbgu-0 {
						atmel,pins =
							<AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOC 31 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};
				};

				usart0 {
					pinctrl_usart0: usart0-0 {
						atmel,pins =
							<AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart0_rts: usart0_rts-0 {
						atmel,pins =
							<AT91_PIOA 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA28 periph A */
					};

					pinctrl_usart0_cts: usart0_cts-0 {
						atmel,pins =
							<AT91_PIOA 29 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA29 periph A */
					};
				};

				usart1 {
					pinctrl_usart1: usart1-0 {
						atmel,pins =
							<AT91_PIOD 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOD 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart1_rts: usart1_rts-0 {
						atmel,pins =
							<AT91_PIOD 7 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PD7 periph B */
					};

					pinctrl_usart1_cts: usart1_cts-0 {
						atmel,pins =
							<AT91_PIOD 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PD8 periph B */
					};
				};

				usart2 {
					pinctrl_usart2: usart2-0 {
						atmel,pins =
							<AT91_PIOD 2 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
							 AT91_PIOD 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
					};

					pinctrl_usart2_rts: usart2_rts-0 {
						atmel,pins =
							<AT91_PIOD 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PD5 periph B */
					};

					pinctrl_usart2_cts: usart2_cts-0 {
						atmel,pins =
							<AT91_PIOD 6 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PD6 periph B */
					};
				};

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

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

				macb {
					pinctrl_macb_rmii: macb_rmii-0 {
						atmel,pins =
							<AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC25 periph B */
							 AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE21 periph A */
							 AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE23 periph A */
							 AT91_PIOE 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE24 periph A */
							 AT91_PIOE 25 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE25 periph A */
							 AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE26 periph A */
							 AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE27 periph A */
							 AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE28 periph A */
							 AT91_PIOE 29 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PE29 periph A */
							 AT91_PIOE 30 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PE30 periph A */
					};

					pinctrl_macb_rmii_mii: macb_rmii_mii-0 {
						atmel,pins =
							<AT91_PIOC 20 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC20 periph B */
							 AT91_PIOC 21 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC21 periph B */
							 AT91_PIOC 22 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC22 periph B */
							 AT91_PIOC 23 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC23 periph B */
							 AT91_PIOC 24 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC24 periph B */
							 AT91_PIOC 25 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC25 periph B */
							 AT91_PIOC 27 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC27 periph B */
							 AT91_PIOE 22 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PE22 periph B */
					};
				};

				mmc0 {
					pinctrl_mmc0_clk: mmc0_clk-0 {
						atmel,pins =
							<AT91_PIOA 12 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA12 periph A */
					};

					pinctrl_mmc0_slot0_cmd_dat0: mmc0_slot0_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA1 periph A with pullup */
							 AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA0 periph A with pullup */
					};

					pinctrl_mmc0_slot0_dat1_3: mmc0_slot0_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 3 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA3 periph A with pullup */
							 AT91_PIOA 4 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA4 periph A with pullup */
							 AT91_PIOA 5 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA5 periph A with pullup */
					};

					pinctrl_mmc0_slot1_cmd_dat0: mmc0_slot1_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 16 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA16 periph A with pullup */
							 AT91_PIOA 17 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA17 periph A with pullup */
					};

					pinctrl_mmc0_slot1_dat1_3: mmc0_slot1_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA18 periph A with pullup */
							 AT91_PIOA 19 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA19 periph A with pullup */
							 AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA20 periph A with pullup */
					};
				};

				mmc1 {
					pinctrl_mmc1_clk: mmc1_clk-0 {
						atmel,pins =
							<AT91_PIOA 6 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PA6 periph A */
					};

					pinctrl_mmc1_slot0_cmd_dat0: mmc1_slot0_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 7 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA7 periph A with pullup */
							 AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA8 periph A with pullup */
					};

					pinctrl_mmc1_slot0_dat1_3: mmc1_slot0_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA9 periph A with pullup */
							 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA10 periph A with pullup */
							 AT91_PIOA 11 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA11 periph A with pullup */
					};

					pinctrl_mmc1_slot1_cmd_dat0: mmc1_slot1_cmd_dat0-0 {
						atmel,pins =
							<AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA21 periph A with pullup */
							 AT91_PIOA 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA22 periph A with pullup */
					};

					pinctrl_mmc1_slot1_dat1_3: mmc1_slot1_dat1_3-0 {
						atmel,pins =
							<AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA23 periph A with pullup */
							 AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_PULL_UP	/* PA24 periph A with pullup */
							 AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;	/* PA25 periph A with pullup */
					};
				};

				ssc0 {
					pinctrl_ssc0_tx: ssc0_tx-0 {
						atmel,pins =
							<AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PB0 periph B */
							 AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PB1 periph B */
							 AT91_PIOB 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PB2 periph B */
					};

					pinctrl_ssc0_rx: ssc0_rx-0 {
						atmel,pins =
							<AT91_PIOB 3 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PB3 periph B */
							 AT91_PIOB 4 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PB4 periph B */
							 AT91_PIOB 5 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PB5 periph B */
					};
				};

				ssc1 {
					pinctrl_ssc1_tx: ssc1_tx-0 {
						atmel,pins =
							<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_A AT91_PINCTRL_NONE>;	/* PB8 periph A */
					};

					pinctrl_ssc1_rx: ssc1_rx-0 {
						atmel,pins =
							<AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB9 periph A */
							 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB10 periph A */
							 AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB11 periph A */
					};
				};

				spi0 {
					pinctrl_spi0: spi0-0 {
						atmel,pins =
							<AT91_PIOA 0 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA0 periph B SPI0_MISO pin */
							 AT91_PIOA 1 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PA1 periph B SPI0_MOSI pin */
							 AT91_PIOA 2 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PA2 periph B SPI0_SPCK pin */
					};
				};

				spi1 {
					pinctrl_spi1: spi1-0 {
						atmel,pins =
							<AT91_PIOB 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB12 periph A SPI1_MISO pin */
							 AT91_PIOB 13 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB13 periph A SPI1_MOSI pin */
							 AT91_PIOB 14 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB14 periph A SPI1_SPCK pin */
					};
				};

				tcb0 {
					pinctrl_tcb0_tclk0: tcb0_tclk0-0 {
						atmel,pins = <AT91_PIOB 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tclk1: tcb0_tclk1-0 {
						atmel,pins = <AT91_PIOC 28 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tclk2: tcb0_tclk2-0 {
						atmel,pins = <AT91_PIOA 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa0: tcb0_tioa0-0 {
						atmel,pins = <AT91_PIOE 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa1: tcb0_tioa1-0 {
						atmel,pins = <AT91_PIOE 8 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tioa2: tcb0_tioa2-0 {
						atmel,pins = <AT91_PIOB 17 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob0: tcb0_tiob0-0 {
						atmel,pins = <AT91_PIOE 19 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob1: tcb0_tiob1-0 {
						atmel,pins = <AT91_PIOE 9 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};

					pinctrl_tcb0_tiob2: tcb0_tiob2-0 {
						atmel,pins = <AT91_PIOB 18 AT91_PERIPH_B AT91_PINCTRL_NONE>;
					};
				};

				fb {
					pinctrl_fb: fb-0 {
						atmel,pins =
							<AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC1 periph A */
							 AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC2 periph A */
							 AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC3 periph A */
							 AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PB9 periph B */
							 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC6 periph A */
							 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC7 periph A */
							 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC8 periph A */
							 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC9 periph A */
							 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC10 periph A */
							 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC11 periph A */
							 AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC14 periph A */
							 AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC15 periph A */
							 AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC16 periph A */
							 AT91_PIOC 12 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC12 periph B */
							 AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC18 periph A */
							 AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC19 periph A */
							 AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC22 periph A */
							 AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC23 periph A */
							 AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC24 periph A */
							 AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE	/* PC17 periph B */
							 AT91_PIOC 26 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PC26 periph A */
							 AT91_PIOC 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PC27 periph A */
					};
				};

				can {
					pinctrl_can_rx_tx: can_rx_tx {
						atmel,pins =
							<AT91_PIOA 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* CANRX, conflicts with IRQ0 */
							 AT91_PIOA 13 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* CANTX, conflicts with PCK0 */
					};
				};

				ac97 {
					pinctrl_ac97: ac97-0 {
						atmel,pins =
							<AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB12 periph A AC97FS pin */
							 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB13 periph A AC97CK pin */
							 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE	/* PB14 periph A AC97TX pin */
							 AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* PB14 periph A AC97RX pin */
					};
				};

				pioA: gpio@fffff200 {
					compatible = "atmel,at91rm9200-gpio";
					reg = <0xfffff200 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@fffff400 {
					compatible = "atmel,at91rm9200-gpio";
					reg = <0xfffff400 0x200>;
					interrupts = <3 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 3>;
				};

				pioC: gpio@fffff600 {
					compatible = "atmel,at91rm9200-gpio";
					reg = <0xfffff600 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@fffff800 {
					compatible = "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>;
				};

				pioE: gpio@fffffa00 {
					compatible = "atmel,at91rm9200-gpio";
					reg = <0xfffffa00 0x200>;
					interrupts = <4 IRQ_TYPE_LEVEL_HIGH 1>;
					#gpio-cells = <2>;
					gpio-controller;
					interrupt-controller;
					#interrupt-cells = <2>;
					clocks = <&pmc PMC_TYPE_PERIPHERAL 4>;
				};
			};

			dbgu: serial@ffffee00 {
				compatible = "atmel,at91sam9260-dbgu", "atmel,at91sam9260-usart";
				reg = <0xffffee00 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_dbgu>;
				clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
				clock-names = "usart";
				status = "disabled";
			};

			usart0: serial@fff8c000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff8c000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <7 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 7>;
				clock-names = "usart";
				status = "disabled";
			};

			usart1: serial@fff90000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff90000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 8>;
				clock-names = "usart";
				status = "disabled";
			};

			usart2: serial@fff94000 {
				compatible = "atmel,at91sam9260-usart";
				reg = <0xfff94000 0x200>;
				atmel,usart-mode = <AT91_USART_MODE_SERIAL>;
				interrupts = <9 IRQ_TYPE_LEVEL_HIGH 5>;
				atmel,use-dma-rx;
				atmel,use-dma-tx;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_usart2>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 9>;
				clock-names = "usart";
				status = "disabled";
			};

			ssc0: ssc@fff98000 {
				compatible = "atmel,at91rm9200-ssc";
				reg = <0xfff98000 0x4000>;
				interrupts = <16 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 16>;
				clock-names = "pclk";
				status = "disabled";
			};

			ssc1: ssc@fff9c000 {
				compatible = "atmel,at91rm9200-ssc";
				reg = <0xfff9c000 0x4000>;
				interrupts = <17 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ssc1_tx &pinctrl_ssc1_rx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 17>;
				clock-names = "pclk";
				status = "disabled";
			};

			ac97: sound@fffa0000 {
				compatible = "atmel,at91sam9263-ac97c";
				reg = <0xfffa0000 0x4000>;
				interrupts = <18 IRQ_TYPE_LEVEL_HIGH 5>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_ac97>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 18>;
				clock-names = "ac97_clk";
				status = "disabled";
			};

			macb0: ethernet@fffbc000 {
				compatible = "cdns,at91sam9260-macb", "cdns,macb";
				reg = <0xfffbc000 0x100>;
				interrupts = <21 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_macb_rmii>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 21>, <&pmc PMC_TYPE_PERIPHERAL 21>;
				clock-names = "hclk", "pclk";
				status = "disabled";
			};

			usb1: gadget@fff78000 {
				compatible = "atmel,at91sam9263-udc";
				reg = <0xfff78000 0x4000>;
				interrupts = <24 IRQ_TYPE_LEVEL_HIGH 2>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 24>, <&pmc PMC_TYPE_SYSTEM 7>;
				clock-names = "pclk", "hclk";
				status = "disabled";
			};

			i2c0: i2c@fff88000 {
				compatible = "atmel,at91sam9260-i2c";
				reg = <0xfff88000 0x100>;
				interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 13>;
				status = "disabled";
			};

			mmc0: mmc@fff80000 {
				compatible = "atmel,hsmci";
				reg = <0xfff80000 0x600>;
				interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 10>;
				clock-names = "mci_clk";
				status = "disabled";
			};

			mmc1: mmc@fff84000 {
				compatible = "atmel,hsmci";
				reg = <0xfff84000 0x600>;
				interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>;
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 11>;
				clock-names = "mci_clk";
				status = "disabled";
			};

			watchdog@fffffd40 {
				compatible = "atmel,at91sam9260-wdt";
				reg = <0xfffffd40 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&slow_xtal>;
				atmel,watchdog-type = "hardware";
				atmel,reset-type = "all";
				atmel,dbg-halt;
				status = "disabled";
			};

			spi0: spi@fffa4000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "atmel,at91rm9200-spi";
				reg = <0xfffa4000 0x200>;
				interrupts = <14 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_spi0>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
				clock-names = "spi_clk";
				status = "disabled";
			};

			spi1: spi@fffa8000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "atmel,at91rm9200-spi";
				reg = <0xfffa8000 0x200>;
				interrupts = <15 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_spi1>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 15>;
				clock-names = "spi_clk";
				status = "disabled";
			};

			pwm0: pwm@fffb8000 {
				compatible = "atmel,at91sam9rl-pwm";
				reg = <0xfffb8000 0x300>;
				interrupts = <20 IRQ_TYPE_LEVEL_HIGH 4>;
				#pwm-cells = <3>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
				clock-names = "pwm_clk";
				status = "disabled";
			};

			can: can@fffac000 {
				compatible = "atmel,at91sam9263-can";
				reg = <0xfffac000 0x300>;
				interrupts = <12 IRQ_TYPE_LEVEL_HIGH 3>;
				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_can_rx_tx>;
				clocks = <&pmc PMC_TYPE_PERIPHERAL 12>;
				clock-names = "can_clk";
			};

			rtc@fffffd20 {
				compatible = "atmel,at91sam9260-rtt";
				reg = <0xfffffd20 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&slow_xtal>;
				status = "disabled";
			};

			rtc@fffffd50 {
				compatible = "atmel,at91sam9260-rtt";
				reg = <0xfffffd50 0x10>;
				interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
				clocks = <&slow_xtal>;
				status = "disabled";
			};

			gpbr: syscon@fffffd60 {
				compatible = "atmel,at91sam9260-gpbr", "syscon";
				reg = <0xfffffd60 0x50>;
				status = "disabled";
			};
		};

		fb0: fb@700000 {
			compatible = "atmel,at91sam9263-lcdc";
			reg = <0x00700000 0x1000>;
			interrupts = <26 IRQ_TYPE_LEVEL_HIGH 3>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_fb>;
			clocks = <&pmc PMC_TYPE_PERIPHERAL 26>, <&pmc PMC_TYPE_PERIPHERAL 26>;
			clock-names = "lcdc_clk", "hclk";
			status = "disabled";
		};

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

		ebi0: ebi@10000000 {
			compatible = "atmel,at91sam9263-ebi0";
			#address-cells = <2>;
			#size-cells = <1>;
			atmel,smc = <&smc0>;
			atmel,matrix = <&matrix>;
			reg = <0x10000000 0x80000000>;
			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_controller0: nand-controller {
				compatible = "atmel,at91sam9260-nand-controller";
				#address-cells = <2>;
				#size-cells = <1>;
				ranges;
				status = "disabled";
			};
		};

		ebi1: ebi@70000000 {
			compatible = "atmel,at91sam9263-ebi1";
			#address-cells = <2>;
			#size-cells = <1>;
			atmel,smc = <&smc1>;
			atmel,matrix = <&matrix>;
			reg = <0x80000000 0x20000000>;
			ranges = <0x0 0x0 0x80000000 0x10000000
				  0x1 0x0 0x90000000 0x10000000>;
			clocks = <&pmc PMC_TYPE_CORE PMC_MCK>;
			status = "disabled";

			nand_controller1: nand-controller {
				compatible = "atmel,at91sam9260-nand-controller";
				#address-cells = <2>;
				#size-cells = <1>;
				ranges;
				status = "disabled";
			};
		};
	};

	i2c-gpio-0 {
		compatible = "i2c-gpio";
		gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
			 &pioB 5 GPIO_ACTIVE_HIGH /* scl */
			>;
		i2c-gpio,sda-open-drain;
		i2c-gpio,scl-open-drain;
		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9263ek.dts - Device Tree file for Atmel at91sam9263 reference board
 *
 *  Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */
/dts-v1/;
#include "at91sam9263.dtsi"

/ {
	model = "Atmel at91sam9263ek";
	compatible = "atmel,at91sam9263ek", "atmel,at91sam9263", "atmel,at91sam9";

	chosen {
		bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs";
		stdout-path = "serial0:115200n8";
	};

	memory@20000000 {
		reg = <0x20000000 0x4000000>;
	};

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

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

	ahb {
		apb {
			dbgu: serial@ffffee00 {
				status = "okay";
			};

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

				timer@2 {
					compatible = "atmel,tcb-timer";
					reg = <2>;
				};
			};

			usart0: serial@fff8c000 {
				pinctrl-0 = <
					&pinctrl_usart0
					&pinctrl_usart0_rts
					&pinctrl_usart0_cts>;
				status = "okay";
			};

			macb0: ethernet@fffbc000 {
				phy-mode = "rmii";
				status = "okay";
			};

			usb1: gadget@fff78000 {
				atmel,vbus-gpio = <&pioA 25 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			mmc0: mmc@fff80000 {
				pinctrl-0 = <
					&pinctrl_board_mmc0
					&pinctrl_mmc0_clk
					&pinctrl_mmc0_slot0_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				pinctrl-names = "default";
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
					cd-gpios = <&pioE 18 GPIO_ACTIVE_HIGH>;
					wp-gpios = <&pioE 19 GPIO_ACTIVE_HIGH>;
				};
			};

			pinctrl@fffff200 {
				mmc0 {
					pinctrl_board_mmc0: mmc0-board {
						atmel,pins =
							<AT91_PIOE 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH 	/* PE18 gpio CD pin pull up and deglitch */
							 AT91_PIOE 19 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;	/* PE19 gpio WP pin pull up */
					};
				};
			};

			spi0: spi@fffa4000 {
				status = "okay";
				cs-gpios = <&pioA 5 0>, <0>, <0>, <0>;
				flash@0 {
					compatible = "atmel,at45", "atmel,dataflash";
					spi-max-frequency = <50000000>;
					reg = <0>;
				};
			};

			rtc@fffffd20 {
				atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
			};

			watchdog@fffffd40 {
				status = "okay";
			};
		};

		fb0: fb@700000 {
			display = <&display0>;
			status = "okay";

			display0: panel {
				bits-per-pixel = <16>;
				atmel,lcdcon-backlight;
				atmel,dmacon = <0x1>;
				atmel,lcdcon2 = <0x80008002>;
				atmel,guard-time = <1>;

				display-timings {
					native-mode = <&timing0>;
					timing0: timing0 {
						clock-frequency = <4965000>;
						hactive = <240>;
						vactive = <320>;
						hback-porch = <1>;
						hfront-porch = <33>;
						vback-porch = <1>;
						vfront-porch = <0>;
						hsync-len = <5>;
						vsync-len = <1>;
						hsync-active = <1>;
						vsync-active = <1>;
					};
				};
			};
		};

		ebi0: ebi@10000000 {
			status = "okay";

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

				nand@3 {
					reg = <0x3 0x0 0x800000>;
					rb-gpios = <&pioA 22 GPIO_ACTIVE_HIGH>;
					cs-gpios = <&pioA 15 GPIO_ACTIVE_HIGH>;
					nand-bus-width = <8>;
					nand-ecc-mode = "soft";
					nand-on-flash-bbt;
					label = "atmel_nand";

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

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

						barebox@20000 {
							label = "barebox";
							reg = <0x20000 0x40000>;
						};

						bareboxenv@60000 {
							label = "bareboxenv";
							reg = <0x60000 0x20000>;
						};

						bareboxenv2@80000 {
							label = "bareboxenv2";
							reg = <0x80000 0x20000>;
						};

						oftree@80000 {
							label = "oftree";
							reg = <0xa0000 0x20000>;
						};

						kernel@a0000 {
							label = "kernel";
							reg = <0xc0000 0x400000>;
						};

						rootfs@4a0000 {
							label = "rootfs";
							reg = <0x4c0000 0x7800000>;
						};

						data@7ca0000 {
							label = "data";
							reg = <0x7cc0000 0x8340000>;
						};
					};
				};
			};
		};

		usb0: ohci@a00000 {
			num-ports = <2>;
			status = "okay";
			atmel,vbus-gpio = <&pioA 24 GPIO_ACTIVE_HIGH
					   &pioA 21 GPIO_ACTIVE_HIGH
					  >;
		};
	};

	leds {
		compatible = "gpio-leds";

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

		d2 {
			label = "d2";
			gpios = <&pioC 29 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "nand-disk";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		button-left-click {
			label = "left_click";
			gpios = <&pioC 5 GPIO_ACTIVE_LOW>;
			linux,code = <272>;
			wakeup-source;
		};

		button-right-click {
			label = "right_click";
			gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
			linux,code = <273>;
			wakeup-source;
		};
	};

	i2c-gpio-0 {
		status = "okay";

		24c512@50 {
			compatible = "atmel,24c512";
			reg = <0x50>;
			pagesize = <128>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g15.dtsi - Device Tree Include file for AT91SAM9G15 SoC
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */

#include "at91sam9x5.dtsi"
#include "at91sam9x5_lcd.dtsi"

/ {
	model = "Atmel AT91SAM9G15 SoC";
	compatible = "atmel,at91sam9g15", "atmel,at91sam9x5";
};

&pinctrl {
	atmel,mux-mask = <
	      /*    A         B          C     */
	       0xffffffff 0xffe0399f 0x00000000  /* pioA */
	       0x00040000 0x00047e3f 0x00000000  /* pioB */
	       0xfdffffff 0x00000000 0xb83fffff  /* pioC */
	       0x003fffff 0x003f8000 0x00000000  /* pioD */
	      >;
};

&pmc {
	compatible = "atmel,at91sam9g15-pmc", "atmel,at91sam9x5-pmc", "syscon";
};


code:
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91sam9g15ek.dts - Device Tree file for AT91SAM9G15-EK board
 *
 *  Copyright (C) 2012 Atmel,
 *                2012 Nicolas Ferre <nicolas.ferre@atmel.com>
 */
/dts-v1/;
#include "at91sam9g15.dtsi"
#include "at91sam9x5dm.dtsi"
#include "at91sam9x5ek.dtsi"

/ {
	model = "Atmel AT91SAM9G15-EK";
	compatible = "atmel,at91sam9g15ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";

	backlight: backlight {
		status = "okay";
	};

	bl_reg: backlight_regulator {
		status = "okay";
	};

	panel: panel {
		status = "okay";
	};

	panel_reg: panel_regulator {
		status = "okay";
	};
};

&hlcdc {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g20.dtsi - Device Tree Include file for AT91SAM9G20 family SoC
 *
 *  Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */

#include "at91sam9260.dtsi"

/ {
	model = "Atmel AT91SAM9G20 family SoC";
	compatible = "atmel,at91sam9g20";

	memory@20000000 {
		reg = <0x20000000 0x08000000>;
	};

	sram0: sram@2ff000 {
		status = "disabled";
	};

	sram1: sram@2fc000 {
		compatible = "mmio-sram";
		reg = <0x002fc000 0x8000>;
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0x002fc000 0x8000>;
	};

	ahb {
		apb {
			i2c0: i2c@fffac000 {
				compatible = "atmel,at91sam9g20-i2c";
			};

			ssc0: ssc@fffbc000 {
				compatible = "atmel,at91sam9rl-ssc";
			};

			adc0: adc@fffe0000 {
				atmel,adc-startup-time = <40>;
			};

			pmc: pmc@fffffc00 {
				compatible = "atmel,at91sam9g20-pmc", "atmel,at91sam9260-pmc", "syscon";
			};
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g20ek.dts - Device Tree file for Atmel at91sam9g20ek board
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */
/dts-v1/;
#include "at91sam9g20ek_common.dtsi"

/ {
	model = "Atmel at91sam9g20ek";
	compatible = "atmel,at91sam9g20ek", "atmel,at91sam9g20", "atmel,at91sam9";

	leds {
		compatible = "gpio-leds";

		ds1 {
			label = "ds1";
			gpios = <&pioA 9 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		ds5 {
			label = "ds5";
			gpios = <&pioA 6 GPIO_ACTIVE_LOW>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g20ek_2mmc.dts - Device Tree file for Atmel at91sam9g20ek 2 MMC board
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */
/dts-v1/;
#include "at91sam9g20ek_common.dtsi"

/ {
	model = "Atmel at91sam9g20ek 2 mmc";
	compatible = "atmel,at91sam9g20ek_2mmc", "atmel,at91sam9g20", "atmel,at91sam9";

	ahb {
		apb{
			mmc0: mmc@fffa8000 {
				/* clk already mux wuth slot0 */
				pinctrl-0 = <
					&pinctrl_board_mmc0_slot0
					&pinctrl_mmc0_slot0_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
				slot@0 {
					reg = <0>;
					bus-width = <4>;
					cd-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;
				};
			};

			pinctrl@fffff400 {
				mmc0_slot0 {
					pinctrl_board_mmc0_slot0: mmc0_slot0-board {
						atmel,pins =
							<AT91_PIOC 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PC2 gpio CD pin pull up and deglitch */
					};
				};
			};
		};
	};

	leds {
		compatible = "gpio-leds";

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

		ds5 {
			label = "ds5";
			gpios = <&pioB 8 GPIO_ACTIVE_LOW>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g20ek_common.dtsi - Device Tree file for Atmel at91sam9g20ek board
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */
#include "at91sam9g20.dtsi"
#include <dt-bindings/input/input.h>

/ {

	chosen {
		bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs";
		stdout-path = "serial0:115200n8";
	};

	memory@20000000 {
		reg = <0x20000000 0x4000000>;
	};

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

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

	ahb {
		apb {
			pinctrl@fffff400 {
				board {
					pinctrl_pck0_as_mck: pck0_as_mck {
						atmel,pins =
							<AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PC1 periph B */
					};

				};

				usb1 {
					pinctrl_usb1_vbus_gpio: usb1_vbus_gpio {
						atmel,pins =
							<AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PC5 GPIO */
					};
				};

				mmc0_slot1 {
					pinctrl_board_mmc0_slot1: mmc0_slot1-board {
						atmel,pins =
							<AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PC9 gpio CD pin pull up and deglitch */
					};
				};
			};

			dbgu: serial@fffff200 {
				status = "okay";
			};

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

				timer@2 {
					compatible = "atmel,tcb-timer";
					reg = <2>;
				};
			};

			usart0: serial@fffb0000 {
				pinctrl-0 =
					<&pinctrl_usart0
					 &pinctrl_usart0_rts
					 &pinctrl_usart0_cts
					 &pinctrl_usart0_dtr_dsr
					 &pinctrl_usart0_dcd
					 &pinctrl_usart0_ri>;
				status = "okay";
			};

			usart1: serial@fffb4000 {
				status = "okay";
			};

			macb0: ethernet@fffc4000 {
				phy-mode = "rmii";
				status = "okay";
			};

			usb1: gadget@fffa4000 {
				pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
				pinctrl-names = "default";
				atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};

			mmc0: mmc@fffa8000 {
				pinctrl-0 = <
					&pinctrl_board_mmc0_slot1
					&pinctrl_mmc0_clk
					&pinctrl_mmc0_slot1_cmd_dat0
					&pinctrl_mmc0_slot1_dat1_3>;
				pinctrl-names = "default";
				status = "okay";
				slot@1 {
					reg = <1>;
					bus-width = <4>;
					cd-gpios = <&pioC 9 GPIO_ACTIVE_HIGH>;
				};
			};

			ssc0: ssc@fffbc000 {
				status = "okay";
				pinctrl-0 = <&pinctrl_ssc0_tx>;
			};

			spi0: spi@fffc8000 {
				cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
				flash@1 {
					compatible = "atmel,at45", "atmel,dataflash";
					spi-max-frequency = <50000000>;
					reg = <1>;
				};
			};

			shdwc@fffffd10 {
				atmel,wakeup-counter = <10>;
				atmel,wakeup-rtt-timer;
			};

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

			watchdog@fffffd40 {
				status = "okay";
			};

			gpbr: syscon@fffffd50 {
				status = "okay";
			};
		};

		ebi: ebi@10000000 {
			status = "okay";

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

				nand@3 {
					reg = <0x3 0x0 0x800000>;
					rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
					cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
					nand-bus-width = <8>;
					nand-ecc-mode = "soft";
					nand-on-flash-bbt;
					label = "atmel_nand";

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

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

						barebox@20000 {
							label = "barebox";
							reg = <0x20000 0x40000>;
						};

						bareboxenv@60000 {
							label = "bareboxenv";
							reg = <0x60000 0x20000>;
						};

						bareboxenv2@80000 {
							label = "bareboxenv2";
							reg = <0x80000 0x20000>;
						};

						oftree@80000 {
							label = "oftree";
							reg = <0xa0000 0x20000>;
						};

						kernel@a0000 {
							label = "kernel";
							reg = <0xc0000 0x400000>;
						};

						rootfs@4a0000 {
							label = "rootfs";
							reg = <0x4c0000 0x7800000>;
						};

						data@7ca0000 {
							label = "data";
							reg = <0x7cc0000 0x8340000>;
						};
					};
				};
			};
		};

		usb0: ohci@500000 {
			num-ports = <2>;
			status = "okay";
		};
	};

	i2c-gpio-0 {
		status = "okay";

		24c512@50 {
			compatible = "atmel,24c512";
			reg = <0x50>;
			vcc-supply = <&reg_3v3>;
		};

		wm8731: wm8731@1b {
			compatible = "wm8731";
			reg = <0x1b>;

			/* PCK0 at 12MHz */
			clocks = <&pmc PMC_TYPE_SYSTEM 8>;
			clock-names = "mclk";
			assigned-clocks = <&pmc PMC_TYPE_SYSTEM 8>;
			assigned-clock-rates = <12000000>;

			HPVDD-supply = <&vcc_dac>;
			AVDD-supply = <&vcc_dac>;
			DCVDD-supply = <&reg_3v3>;
			DBVDD-supply = <&reg_3v3>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		button-3 {
			label = "Button 3";
			gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
			linux,code = <0x103>;
			wakeup-source;
		};

		button-4 {
			label = "Button 4";
			gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
			wakeup-source;
		};
	};

	sound {
		compatible = "atmel,at91sam9g20ek-wm8731-audio";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pck0_as_mck>;

		atmel,model = "wm8731 @ AT91SAMG20EK";

		atmel,audio-routing =
			"Ext Spk", "LHPOUT",
			"Int Mic", "MICIN";

		atmel,ssc-controller = <&ssc0>;
		atmel,audio-codec = <&wm8731>;
	};

	reg_5v: fixedregulator0 {
		compatible = "regulator-fixed";
		regulator-name = "5V";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	reg_3v3: fixedregulator1 {
		compatible = "regulator-fixed";
		regulator-name = "3V3";
		vin-supply = <&reg_5v>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	reg_1v: fixedregulator2 {
		compatible = "regulator-fixed";
		regulator-name = "1V";
		vin-supply = <&reg_5v>;
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
	};

	vcc_dac: fixedregulator3 {
		compatible = "regulator-fixed";
		regulator-name = "VCC_DAC";
		vin-supply = <&reg_3v3>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for the GARDENA smart Gateway (Article No. 19000)
 *
 *  Copyright (C) 2020 GARDENA GmbH
 */

/dts-v1/;

#include "at91sam9g25.dtsi"
#include "at91sam9x5ek.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "GARDENA smart Gateway (Article No. 19000)";
	compatible = "gardena,smart-gateway-at91sam", "atmel,at91sam9g25", "atmel,at91sam9x5",
		"atmel,at91sam9";

	aliases {
		serial1 = &usart3;
	};

	gpio-keys {
		compatible = "gpio-keys";

		button {
			label = "USER_BTN1";
			gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
		};
	};

	1wire_cm {
		status = "disabled";
	};

	leds {
		compatible = "gpio-leds";

		power_blue {
			label = "smartgw:power:blue";
			gpios = <&pioC 21 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		power_green {
			label = "smartgw:power:green";
			gpios = <&pioC 20 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};

		power_red {
			label = "smartgw:power:red";
			gpios = <&pioC 19 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		radio_blue {
			label = "smartgw:radio:blue";
			gpios = <&pioC 18 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		radio_green {
			label = "smartgw:radio:green";
			gpios = <&pioC 17 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		radio_red {
			label = "smartgw:radio:red";
			gpios = <&pioC 16 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		internet_blue {
			label = "smartgw:internet:blue";
			gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		internet_green {
			label = "smartgw:internet:green";
			gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		internet_red {
			label = "smartgw:internet:red";
			gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		heartbeat {
			label = "smartgw:heartbeat";
			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		pb18 {
			status = "disabled";
		};

		pd21 {
			status = "disabled";
		};
	};
};

&macb0 {
	phy-mode = "rmii";
	status = "okay";
};

&usart0 {
	status = "disabled";
};

&usart2 {
	status = "disabled";
};

&usart3 {
	status = "okay";

	pinctrl-0 = <&pinctrl_usart3
		     &pinctrl_usart3_rts
		     &pinctrl_usart3_cts
		    >;
};

&watchdog {
	status = "okay";
};

&mmc0 {
	status = "disabled";
};

&mmc1 {
	status = "disabled";
};

&spi0 {
	status = "disabled";
};

&i2c0 {
	status = "disabled";
};

&adc0 {
	status = "disabled";
};

&ssc0 {
	status = "disabled";
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g25.dtsi - Device Tree Include file for AT91SAM9G25 SoC
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */

#include "at91sam9x5.dtsi"
#include "at91sam9x5_isi.dtsi"
#include "at91sam9x5_usart3.dtsi"
#include "at91sam9x5_macb0.dtsi"

/ {
	model = "Atmel AT91SAM9G25 SoC";
	compatible = "atmel,at91sam9g25", "atmel,at91sam9x5";

	ahb {
		apb {
			pinctrl@fffff400 {
				atmel,mux-mask = <
				      /*    A         B          C     */
				       0xffffffff 0xffe0399f 0xc000001c  /* pioA */
				       0x0007ffff 0x00047e3f 0x00000000  /* pioB */
				       0x80000000 0x07c0ffff 0xb83fffff  /* pioC */
				       0x003fffff 0x003f8000 0x00000000  /* pioD */
				      >;
			};

			pmc: pmc@fffffc00 {
				compatible = "atmel,at91sam9g25-pmc", "atmel,at91sam9x5-pmc", "syscon";
			};
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91sam9g25ek.dts - Device Tree file for AT91SAM9G25-EK board
 *
 *  Copyright (C) 2012 Atmel,
 *                2012 Nicolas Ferre <nicolas.ferre@atmel.com>
 */
/dts-v1/;
#include "at91sam9g25.dtsi"
#include "at91sam9x5ek.dtsi"

/ {
	model = "Atmel AT91SAM9G25-EK";
	compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
};

&i2c0 {
	camera@30 {
		compatible = "ovti,ov2640";
		reg = <0x30>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
		resetb-gpios = <&pioA 7 GPIO_ACTIVE_LOW>;
		pwdn-gpios = <&pioA 13 GPIO_ACTIVE_HIGH>;
		clocks = <&pmc PMC_TYPE_SYSTEM 8>;
		clock-names = "xvclk";
		assigned-clocks = <&pmc PMC_TYPE_SYSTEM 8>;
		assigned-clock-rates = <25000000>;
		status = "okay";

		port {
			ov2640_0: endpoint {
				remote-endpoint = <&isi_0>;
				bus-width = <8>;
			};
		};
	};
};

&isi {
	status = "okay";

	port {
		isi_0: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&ov2640_0>;
			bus-width = <8>;
			vsync-active = <1>;
			hsync-active = <1>;
		};
	};
};

&macb0 {
	phy-mode = "rmii";
	status = "okay";
};

&mmc1 {
	status = "disabled";
};

&spi0 {
	status = "disabled";
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 * at91sam9g35.dtsi - Device Tree Include file for AT91SAM9G35 SoC
 *
 * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 */

#include "at91sam9x5.dtsi"
#include "at91sam9x5_lcd.dtsi"
#include "at91sam9x5_macb0.dtsi"

/ {
	model = "Atmel AT91SAM9G35 SoC";
	compatible = "atmel,at91sam9g35", "atmel,at91sam9x5";

	ahb {
		apb {
			pinctrl@fffff400 {
				atmel,mux-mask = <
				      /*    A         B          C     */
				       0xffffffff 0xffe0399f 0xc000000c  /* pioA */
				       0x000406ff 0x00047e3f 0x00000000  /* pioB */
				       0xfdffffff 0x00000000 0xb83fffff  /* pioC */
				       0x003fffff 0x003f8000 0x00000000  /* pioD */
				      >;
			};

			pmc: pmc@fffffc00 {
				compatible = "atmel,at91sam9g35-pmc", "atmel,at91sam9x5-pmc", "syscon";
			};
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91sam9g35ek.dts - Device Tree file for AT91SAM9G35-EK board
 *
 *  Copyright (C) 2012 Atmel,
 *                2012 Nicolas Ferre <nicolas.ferre@atmel.com>
 */
/dts-v1/;
#include "at91sam9g35.dtsi"
#include "at91sam9x5dm.dtsi"
#include "at91sam9x5ek.dtsi"

/ {
	model = "Atmel AT91SAM9G35-EK";
	compatible = "atmel,at91sam9g35ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";

	backlight: backlight {
		status = "okay";
	};

	bl_reg: backlight_regulator {
		status = "okay";
	};

	panel: panel {
		status = "okay";
	};

	panel_reg: panel_regulator {
		status = "okay";
	};
};

&hlcdc {
	status = "okay";
};

&macb0 {
	phy-mode = "rmii";
	status = "okay";
};