// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2018, Robert Marko <robimarko@gmail.com>

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

/ {
	model = "8devices Jalapeno";
	compatible = "8dev,jalapeno", "qcom,ipq4018";
};

&tlmm {
	mdio_pins: mdio_pinmux {
		pinmux_1 {
			pins = "gpio53";
			function = "mdio";
		};

		pinmux_2 {
			pins = "gpio52";
			function = "mdc";
		};

		pinconf {
			pins = "gpio52", "gpio53";
			bias-pull-up;
		};
	};

	serial_pins: serial_pinmux {
		mux {
			pins = "gpio60", "gpio61";
			function = "blsp_uart0";
			bias-disable;
		};
	};

	spi_0_pins: spi_0_pinmux {
		pin {
			function = "blsp_spi0";
			pins = "gpio55", "gpio56", "gpio57";
			drive-strength = <2>;
			bias-disable;
		};

		pin_cs {
			function = "gpio";
			pins = "gpio54", "gpio59";
			drive-strength = <2>;
			bias-disable;
			output-high;
		};
	};
};

&watchdog {
	status = "okay";
};

&prng {
	status = "okay";
};

&blsp_dma {
	status = "okay";
};

&blsp1_spi1 {
	status = "okay";

	pinctrl-0 = <&spi_0_pins>;
	pinctrl-names = "default";
	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 59 GPIO_ACTIVE_HIGH>;

	flash@0 {
		status = "okay";

		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <24000000>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "SBL1";
				reg = <0x00000000 0x00040000>;
				read-only;
			};

			partition@40000 {
				label = "MIBIB";
				reg = <0x00040000 0x00020000>;
				read-only;
			};

			partition@60000 {
				label = "QSEE";
				reg = <0x00060000 0x00060000>;
				read-only;
			};

			partition@c0000 {
				label = "CDT";
				reg = <0x000c0000 0x00010000>;
				read-only;
			};

			partition@d0000 {
				label = "DDRPARAMS";
				reg = <0x000d0000 0x00010000>;
				read-only;
			};

			partition@e0000 {
				label = "u-boot-env";
				reg = <0x000e0000 0x00010000>;
			};

			partition@f0000 {
				label = "u-boot";
				reg = <0x000f0000 0x00080000>;
				read-only;
			};

			partition@170000 {
				label = "ART";
				reg = <0x00170000 0x00010000>;
				read-only;
			};
		};
	};

	spi-nand@1 {
		status = "okay";

		compatible = "spi-nand";
		reg = <1>;
		spi-max-frequency = <24000000>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;

			partition@0 {
				label = "ubi1";
				reg = <0x00000000 0x04000000>;
			};

			partition@4000000 {
				label = "ubi2";
				reg = <0x04000000 0x04000000>;
			};
		};
	};
};

&blsp1_uart1 {
	status = "okay";

	pinctrl-0 = <&serial_pins>;
	pinctrl-names = "default";
};

&cryptobam {
	status = "okay";
};

&crypto {
	status = "okay";
};

&mdio {
	status = "okay";

	pinctrl-0 = <&mdio_pins>;
	pinctrl-names = "default";
};

&wifi0 {
	status = "okay";

	qcom,ath10k-calibration-variant = "8devices-Jalapeno";
};

&wifi1 {
	status = "okay";

	qcom,ath10k-calibration-variant = "8devices-Jalapeno";
};

&usb3_ss_phy {
	status = "okay";
};

&usb3_hs_phy {
	status = "okay";
};

&usb3 {
	status = "okay";
};

&usb2_hs_phy {
	status = "okay";
};

&usb2 {
	status = "okay";
};
