// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018, Linaro Limited

#include <dt-bindings/gpio/gpio.h>
#include "qcs404.dtsi"
#include "pms405.dtsi"

/ {
	aliases {
		serial0 = &blsp1_uart2;
		serial1 = &blsp1_uart3;
	};

	chosen {
		stdout-path = "serial0";
	};

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-always-on;
		regulator-boot-on;
	};

	vdd_ch0_3p3:
	vdd_esmps3_3p3: vdd-esmps3-3p3-regulator {
		compatible = "regulator-fixed";
		regulator-name = "eSMPS3_3P3";

		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};
};

&blsp1_uart3 {
	status = "okay";

	bluetooth {
		compatible = "qcom,wcn3990-bt";
		vddio-supply = <&vreg_l6_1p8>;
		vddxo-supply = <&vreg_l5_1p8>;
		vddrf-supply = <&vreg_l1_1p3>;
		vddch0-supply = <&vdd_ch0_3p3>;

		local-bd-address = [ 02 00 00 00 5a ad ];

		max-speed = <3200000>;
	};
};

&blsp1_dma {
	qcom,controlled-remotely;
};

&blsp2_dma {
	qcom,controlled-remotely;
};

&gcc {
	protected-clocks = <GCC_BIMC_CDSP_CLK>,
			   <GCC_CDSP_CFG_AHB_CLK>,
			   <GCC_CDSP_BIMC_CLK_SRC>,
			   <GCC_CDSP_TBU_CLK>,
			   <141>, /* GCC_WCSS_Q6_AHB_CLK */
			   <142>; /* GCC_WCSS_Q6_AXIM_CLK */
};

&pms405_spmi_regulators {
	vdd_s3-supply = <&vph_pwr>;

	pms405_s3: s3 {
		regulator-always-on;
		regulator-boot-on;
		regulator-name = "vdd_apc";
		regulator-initial-mode = <1>;
		regulator-min-microvolt = <1048000>;
		regulator-max-microvolt = <1384000>;
	};
};

&pcie {
	status = "ok";

	perst-gpio = <&tlmm 43 GPIO_ACTIVE_LOW>;

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

&pcie_phy {
	status = "ok";

	vdda-vp-supply = <&vreg_l3_1p05>;
	vdda-vph-supply = <&vreg_l5_1p8>;
};

&remoteproc_adsp {
	status = "ok";
};

&remoteproc_cdsp {
	status = "ok";
};

&remoteproc_wcss {
	status = "ok";
};

&rpm_requests {
	pms405-regulators {
		compatible = "qcom,rpm-pms405-regulators";

		vdd_s1-supply = <&vph_pwr>;
		vdd_s2-supply = <&vph_pwr>;
		vdd_s3-supply = <&vph_pwr>;
		vdd_s4-supply = <&vph_pwr>;
		vdd_s5-supply = <&vph_pwr>;
		vdd_l1_l2-supply = <&vreg_s5_1p35>;
		vdd_l3_l8-supply = <&vreg_s5_1p35>;
		vdd_l4-supply = <&vreg_s5_1p35>;
		vdd_l5_l6-supply = <&vreg_s4_1p8>;
		vdd_l7-supply = <&vph_pwr>;
		vdd_l9-supply = <&vreg_s5_1p35>;
		vdd_l10_l11_l12_l13-supply = <&vph_pwr>;

		vreg_s4_1p8: s4 {
			regulator-min-microvolt = <1728000>;
			regulator-max-microvolt = <1920000>;
		};

		vreg_s5_1p35: s5 {
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
		};

		vreg_l1_1p3: l1 {
			regulator-min-microvolt = <1240000>;
			regulator-max-microvolt = <1352000>;
		};

		vreg_l2_1p275: l2 {
			regulator-min-microvolt = <1048000>;
			regulator-max-microvolt = <1280000>;
		};

		vreg_l3_1p05: l3 {
			regulator-min-microvolt = <1048000>;
			regulator-max-microvolt = <1160000>;
		};

		vreg_l4_1p2: l4 {
			regulator-min-microvolt = <1144000>;
			regulator-max-microvolt = <1256000>;
		};

		vreg_l5_1p8: l5 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
		};

		vreg_l6_1p8: l6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
		};

		vreg_l7_1p8: l7 {
			regulator-min-microvolt = <1616000>;
			regulator-max-microvolt = <3000000>;
		};

		vreg_l8_1p2: l8 {
			regulator-min-microvolt = <1136000>;
			regulator-max-microvolt = <1352000>;
		};

		vreg_l10_3p3: l10 {
			regulator-min-microvolt = <2936000>;
			regulator-max-microvolt = <3088000>;
		};

		vreg_l11_sdc2: l11 {
			regulator-min-microvolt = <2696000>;
			regulator-max-microvolt = <3304000>;
		};

		vreg_l12_3p3: l12 {
			regulator-min-microvolt = <2968000>;
			regulator-max-microvolt = <3300000>;
		};

		vreg_l13_3p3: l13 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3300000>;
		};
	};
};

&sdcc1 {
	status = "ok";

	mmc-ddr-1_8v;
	mmc-hs400-1_8v;
	bus-width = <8>;
	non-removable;

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc1_on>;
	pinctrl-1 = <&sdc1_off>;
};

&tlmm {
	perst_state: perst {
		pins = "gpio43";
		function = "gpio";

		drive-strength = <2>;
		bias-disable;
		output-low;
	};

	sdc1_on: sdc1-on {
		clk {
			pins = "sdc1_clk";
			bias-disable;
			drive-strength = <16>;
		};

		cmd {
			pins = "sdc1_cmd";
			bias-pull-up;
			drive-strength = <10>;
		};

		data {
			pins = "sdc1_data";
			bias-pull-up;
			drive-strength = <10>;
		};

		rclk {
			pins = "sdc1_rclk";
			bias-pull-down;
		};
	};

	sdc1_off: sdc1-off {
		clk {
			pins = "sdc1_clk";
			bias-disable;
			drive-strength = <2>;
		};

		cmd {
			pins = "sdc1_cmd";
			bias-pull-up;
			drive-strength = <2>;
		};

		data {
			pins = "sdc1_data";
			bias-pull-up;
			drive-strength = <2>;
		};

		rclk {
			pins = "sdc1_rclk";
			bias-pull-down;
		};
	};
};

&wifi {
	status = "okay";
	vdd-0.8-cx-mx-supply = <&vreg_l2_1p275>;
	vdd-1.8-xo-supply = <&vreg_l5_1p8>;
	vdd-1.3-rfa-supply = <&vreg_l1_1p3>;
};

/* PINCTRL - additions to nodes defined in qcs404.dtsi */

&blsp1_uart2_default {
	rx {
		drive-strength = <2>;
		bias-disable;
	};

	tx {
		drive-strength = <2>;
		bias-disable;
	};
};

&blsp1_uart3_default {
	cts {
		pins = "gpio84";
		bias-disable;
	};

	rts-tx {
		pins = "gpio85", "gpio82";
		drive-strength = <2>;
		bias-disable;
	};

	rx {
		pins = "gpio83";
		bias-pull-up;
	};
};
