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

#include "qcs404.dtsi"
#include "pms405.dtsi"

/ {
	aliases {
		serial0 = &blsp1_uart2;
	};

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

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

&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 = <>;
			regulator-max-microvolt = <>;
		};

		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 = <976000>;
			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;
	bus-width = <8>;
	non-removable;

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

&tlmm {
	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;
			dreive-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;
			dreive-strength = <2>;
		};

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