// 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";

		clocksource {
			timer = <&timer0>;
		};

		clockevent {
			timer = <&timer1>;
		};
	};

	memory {
		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: display {
				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";

				mtd_dataflash@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";
			};

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