// SPDX-License-Identifier: GPL-2.0
#include "qcom-ipq8064.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>

/ {
	model = "Qualcomm Technologies, Inc. IPQ8064-v1.0";

	aliases {
		serial0 = &gsbi4_serial;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&buttons_pins>;
		pinctrl-names = "default";

		button-1 {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			debounce-interval = <60>;
		};
		button-2 {
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			debounce-interval = <60>;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&leds_pins>;
		pinctrl-names = "default";

		led-0 {
			label = "led_usb1";
			gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "usbdev";
			default-state = "off";
		};

		led-1 {
			label = "led_usb3";
			gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "usbdev";
			default-state = "off";
		};

		led-2 {
			label = "status_led_fail";
			function = LED_FUNCTION_STATUS;
			gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-3 {
			label = "sata_led";
			gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-4 {
			label = "status_led_pass";
			function = LED_FUNCTION_STATUS;
			gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};

	soc {
		gsbi@16300000 {
			qcom,mode = <GSBI_PROT_I2C_UART>;
			status = "okay";

			serial@16340000 {
				status = "okay";
			};
		};

		gsbi5: gsbi@1a200000 {
			qcom,mode = <GSBI_PROT_SPI>;
			status = "okay";

			spi4: spi@1a280000 {
				status = "okay";

				pinctrl-0 = <&spi_pins>;
				pinctrl-names = "default";

				cs-gpios = <&qcom_pinmux 20 0>;

				flash: flash@0 {
					compatible = "s25fl256s1";
					#address-cells = <1>;
					#size-cells = <1>;
					spi-max-frequency = <50000000>;
					reg = <0>;

					partition@0 {
						label = "rootfs";
						reg = <0x0 0x1000000>;
					};

					partition@1 {
						label = "scratch";
						reg = <0x1000000 0x1000000>;
					};
				};
			};
		};

		sata-phy@1b400000 {
			status = "okay";
		};

		sata@29000000 {
			ports-implemented = <0x1>;
			status = "okay";
		};
	};
};
