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

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

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