// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018, The Linux Foundation. All rights reserved.

#include "qcom-ipq4019.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK04.1";

	aliases {
		serial0 = &blsp1_uart1;
		serial1 = &blsp1_uart2;
	};

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

	memory {
		device_type = "memory";
		reg = <0x80000000 0x10000000>; /* 256MB */
	};

	soc {
		pinctrl@1000000 {
			serial_0_pins: serial0-state {
				pins = "gpio16", "gpio17";
				function = "blsp_uart0";
				bias-disable;
			};

			serial_1_pins: serial1-state {
				pins = "gpio8", "gpio9",
					"gpio10", "gpio11";
				function = "blsp_uart1";
				bias-disable;
			};

			spi_0_pins: spi-0-state {
				spi0-pins {
					function = "blsp_spi0";
					pins = "gpio13", "gpio14", "gpio15";
					bias-disable;
				};
				spi0-cs-pins {
					function = "gpio";
					pins = "gpio12";
					bias-disable;
					output-high;
				};
			};

			i2c_0_pins: i2c-0-state {
				pins = "gpio20", "gpio21";
				function = "blsp_i2c0";
				bias-disable;
			};

			nand_pins: nand-state {
				pins = "gpio53", "gpio55", "gpio56",
					"gpio57", "gpio58", "gpio59",
					"gpio60", "gpio62", "gpio63",
					"gpio64", "gpio65", "gpio66",
					"gpio67", "gpio68", "gpio69";
				function = "qpic";
			};
		};

		serial@78af000 {
			pinctrl-0 = <&serial_0_pins>;
			pinctrl-names = "default";
			status = "okay";
		};

		serial@78b0000 {
			pinctrl-0 = <&serial_1_pins>;
			pinctrl-names = "default";
			status = "okay";
		};

		dma-controller@7884000 {
			status = "okay";
		};

		spi@78b5000 { /* BLSP1 QUP1 */
			pinctrl-0 = <&spi_0_pins>;
			pinctrl-names = "default";
			status = "okay";
			cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;

			flash@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				reg = <0>;
				compatible = "micron,n25q128a11", "jedec,spi-nor";
				spi-max-frequency = <24000000>;
			};
		};

		pcie@40000000 {
			status = "okay";
			perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
		};
	};
};

&nand {
	pinctrl-0 = <&nand_pins>;
	pinctrl-names = "default";
};
