// SPDX-License-Identifier: GPL-2.0 OR MIT

#include "qcom-ipq8064-v2.0-smb208.dtsi"

/ {
	memory {
		device_type = "memory";
		linux,usable-memory = <0x41500000 0x1ea00000>;
		reg = <0x40000000 0x20000000>;
	};

	cpus {
		idle-states {
			CPU_SPC: spc {
				status = "disabled";
			};
		};
	};

	chosen {
		bootargs-append = " console=ttyMSM0,115200n8 ubi.mtd=ubi ubi.mtd=art";
	};
};

&qcom_pinmux {
	mdio0_pins_active: mdio0_pins_active {
		mux {
			pins = "gpio0", "gpio1";
			function = "mdio";
			drive-strength = <2>;
			bias-pull-down;
			output-low;
		};

		clk {
			pins = "gpio1";
			input-disable;
		};
	};

	phy_active: phy_active {
		phy {
			pins = "gpio6", "gpio7";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-down;
			output-high;
		};
	};

	uart1_pins: uart1_pins {
		mux {
			pins = "gpio51", "gpio52";
			function = "gsbi1";
			drive-strength = <4>;
			bias-disable;
		};
	};
};

&gsbi1 {
	status = "okay";
	qcom,mode = <GSBI_PROT_UART_W_FC>;

	serial@12450000 {
		status = "okay";

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

&pcie0 {
	status = "okay";

	/delete-property/ pinctrl-0;
	/delete-property/ pinctrl-names;
	/delete-property/ perst-gpios;

	bridge@0,0 {
		reg = <0x0 0 0 0 0>;
		#address-cells = <3>;
		#size-cells = <2>;
		ranges;

		wifi0: wifi@1,0 {
			compatible = "qcom,ath10k";
			status = "okay";
			reg = <0x10000 0 0 0 0>;
		};
	};
};

&pcie1 {
	status = "okay";

	/delete-property/ pinctrl-0;
	/delete-property/ pinctrl-names;
	/delete-property/ perst-gpios;

	bridge@0,0 {
		reg = <0x0 0 0 0 0>;
		#address-cells = <3>;
		#size-cells = <2>;
		ranges;

		wifi1: wifi@1,0 {
			compatible = "qcom,ath10k";
			status = "okay";
			reg = <0x10000 0 0 0 0>;
		};
	};
};

&pcie2 {
	status = "okay";

	/delete-property/ pinctrl-0;
	/delete-property/ pinctrl-names;
	/delete-property/ perst-gpios;

	bridge@0,0 {
		reg = <0x0 0 0 0 0>;
		#address-cells = <3>;
		#size-cells = <2>;
		ranges;

		wifi2: wifi@1,0 {
			compatible = "qcom,ath10k";
			status = "okay";
			reg = <0x10000 0 0 0 0>;
		};
	};
};

&adm_dma {
	status = "okay";
};

&nand {
	status = "okay";

	nand@0 {
		compatible = "qcom,nandcs";

		reg = <0>;

		nand-ecc-strength = <4>;
		nand-bus-width = <8>;
		nand-ecc-step-size = <512>;

		nand-is-boot-medium;
		qcom,boot-partitions = <0x0 0x2140000>;

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

			partition@0 {
				label = "sbl1";
				reg = <0x0 0x40000>;
				read-only;
			};

			partition@40000 {
				label = "mibib";
				reg = <0x40000 0x140000>;
				read-only;
			};

			partition@180000 {
				label = "sbl2";
				reg = <0x180000 0x140000>;
				read-only;
			};

			partition@2c0000 {
				label = "sbl3";
				reg = <0x2c0000 0x280000>;
				read-only;
			};

			partition@540000 {
				label = "ddrconfig";
				reg = <0x540000 0x120000>;
				read-only;
			};

			partition@660000 {
				label = "ssd";
				reg = <0x660000 0x120000>;
				read-only;
			};

			partition@780000 {
				label = "tz";
				reg = <0x780000 0x280000>;
				read-only;
			};

			partition@a00000 {
				label = "rpm";
				reg = <0xa00000 0x280000>;
				read-only;
			};

			partition@1fc0000 {
				label = "u-boot";
				reg = <0x1fc0000 0x180000>;
				read-only;
			};

			partition@21c0000 {
				label = "bootkernel1";
				reg = <0x21c0000 0xa80000>;
			};

			partition@2c40000 {
				label = "bootkernel2";
				reg = <0x2c40000 0xa80000>;
			};

			partition@36c0000 {
				label = "ubi";
				reg = <0x36c0000 0x46c0000>;
			};

			partition@7d80000 {
				label = "art";
				reg = <0x7d80000 0x200000>;
				read-only;
			};
		};
	};
};
