// SPDX-License-Identifier: GPL-2.0
/*
 * Device Tree file for ITian Square One SQ201 NAS
 */

/dts-v1/;

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

/ {
	model = "ITian Square One SQ201";
	compatible = "itian,sq201", "cortina,gemini";
	#address-cells = <1>;
	#size-cells = <1>;

	memory { /* 128 MB */
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		button@18 {
			debounce_interval = <50>;
			wakeup-source;
			linux,code = <KEY_SETUP>;
			label = "factory reset";
			/* Conflict with NAND flash */
			gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
		};
	};

	leds {
		compatible = "gpio-leds";
		led@20 {
			label = "sq201:green:info";
			/* Conflict with parallel flash */
			gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
			default-state = "on";
			linux,default-trigger = "heartbeat";
		};
		led@31 {
			label = "sq201:green:usb";
			/* Conflict with parallel and NAND flash */
			gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "usb-host";
		};
	};

	soc {
		flash@30000000 {
			/*
			 * Flash access can be enabled, with the side effect
			 * of disabling access to GPIO LED on GPIO0[20] which
			 * reuse one of the parallel flash chip select lines.
			 * Also the default firmware on the machine has the
			 * problem that since it uses the flash, the two LEDS
			 * on the right become numb.
			 */
			/* status = "okay"; */
			/* 16MB of flash */
			reg = <0x30000000 0x01000000>;

			partition@0 {
				label = "RedBoot";
				reg = <0x00000000 0x00120000>;
				read-only;
			};
			partition@120000 {
				label = "Kernel";
				reg = <0x00120000 0x00200000>;
			};
			partition@320000 {
				label = "Ramdisk";
				reg = <0x00320000 0x00600000>;
			};
			partition@920000 {
				label = "Application";
				reg = <0x00920000 0x00600000>;
			};
			partition@f20000 {
				label = "VCTL";
				reg = <0x00f20000 0x00020000>;
				read-only;
			};
			partition@f40000 {
				label = "CurConf";
				reg = <0x00f40000 0x000a0000>;
				read-only;
			};
			partition@fe0000 {
				label = "FIS directory";
				reg = <0x00fe0000 0x00020000>;
				read-only;
			};
		};

		syscon: syscon@40000000 {
			pinctrl {
				/*
				 * gpio0fgrp cover line 18 used by reset button
				 * gpio0ggrp cover line 20 used by info LED
				 * gpio0kgrp cover line 31 used by USB LED
				 */
				gpio0_default_pins: pinctrl-gpio0 {
					mux {
						function = "gpio0";
						groups = "gpio0fgrp",
						"gpio0ggrp",
						"gpio0kgrp";
					};
				};
			};
		};

		sata: sata@46000000 {
			cortina,gemini-ata-muxmode = <0>;
			cortina,gemini-enable-sata-bridge;
			status = "okay";
		};

		gpio0: gpio@4d000000 {
			pinctrl-names = "default";
			pinctrl-0 = <&gpio0_default_pins>;
		};

		pci@50000000 {
			status = "okay";
			interrupt-map-mask = <0xf800 0 0 7>;
			interrupt-map =
				<0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */
				<0x4800 0 0 2 &pci_intc 1>,
				<0x4800 0 0 3 &pci_intc 2>,
				<0x4800 0 0 4 &pci_intc 3>,
				<0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */
				<0x5000 0 0 2 &pci_intc 2>,
				<0x5000 0 0 3 &pci_intc 3>,
				<0x5000 0 0 4 &pci_intc 0>,
				<0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */
				<0x5800 0 0 2 &pci_intc 3>,
				<0x5800 0 0 3 &pci_intc 0>,
				<0x5800 0 0 4 &pci_intc 1>,
				<0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */
				<0x6000 0 0 2 &pci_intc 0>,
				<0x6000 0 0 3 &pci_intc 1>,
				<0x6000 0 0 4 &pci_intc 2>;
		};

		ata@63000000 {
			status = "okay";
		};
	};
};
