// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
 */

/dts-v1/;

#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/usb/pd.h>
#include "sm8150.dtsi"
#include "pm8150.dtsi"
#include "pm8150b.dtsi"
#include "pm8150l.dtsi"

/ {
	model = "Qualcomm Technologies, Inc. SM8150 HDK";
	compatible = "qcom,sm8150-hdk", "qcom,sm8150";
	chassis-type = "embedded";

	aliases {
		serial0 = &uart2;
	};

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

	vph_pwr: vph-pwr-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vph_pwr";
		regulator-min-microvolt = <3700000>;
		regulator-max-microvolt = <3700000>;
	};

	vreg_s4a_1p8: pm8150-s4 {
		compatible = "regulator-fixed";
		regulator-name = "vreg_s4a_1p8";

		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		regulator-always-on;
		regulator-boot-on;

		vin-supply = <&vph_pwr>;
	};

	gpio-keys {
		compatible = "gpio-keys";

		key-vol-up {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
		};
	};

	hdmi-out {
		compatible = "hdmi-connector";
		type = "a";

		port {
			hdmi_con: endpoint {
				remote-endpoint = <&lt9611_out>;
			};
		};
	};
};

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pm8150-rpmh-regulators";
		qcom,pmic-id = "a";

		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-s6-supply = <&vph_pwr>;
		vdd-s7-supply = <&vph_pwr>;
		vdd-s8-supply = <&vph_pwr>;
		vdd-s9-supply = <&vph_pwr>;
		vdd-s10-supply = <&vph_pwr>;

		vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
		vdd-l2-l10-supply = <&vreg_bob>;
		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
		vdd-l13-l16-l17-supply = <&vreg_bob>;

		vreg_s5a_2p0: smps5 {
			regulator-min-microvolt = <1904000>;
			regulator-max-microvolt = <2000000>;
		};

		vreg_s6a_0p9: smps6 {
			regulator-min-microvolt = <920000>;
			regulator-max-microvolt = <1128000>;
		};

		vdda_wcss_pll:
		vreg_l1a_0p75: ldo1 {
			regulator-min-microvolt = <752000>;
			regulator-max-microvolt = <752000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vdd_pdphy:
		vdda_usb_hs_3p1:
		vreg_l2a_3p1: ldo2 {
			regulator-min-microvolt = <3072000>;
			regulator-max-microvolt = <3072000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3a_0p8: ldo3 {
			regulator-min-microvolt = <480000>;
			regulator-max-microvolt = <932000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vdd_usb_hs_core:
		vdda_csi_0_0p9:
		vdda_csi_1_0p9:
		vdda_csi_2_0p9:
		vdda_csi_3_0p9:
		vdda_dsi_0_0p9:
		vdda_dsi_1_0p9:
		vdda_dsi_0_pll_0p9:
		vdda_dsi_1_pll_0p9:
		vdda_pcie_1ln_core:
		vdda_pcie_2ln_core:
		vdda_pll_hv_cc_ebi01:
		vdda_pll_hv_cc_ebi23:
		vdda_qrefs_0p875_5:
		vdda_sp_sensor:
		vdda_ufs_2ln_core_1:
		vdda_ufs_2ln_core_2:
		vdda_qlink_lv:
		vdda_qlink_lv_ck:
		vreg_l5a_0p875: ldo5 {
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6a_1p2: ldo6 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7a_1p8: ldo7 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_10:
		vreg_l9a_1p2: ldo9 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10a_2p5: ldo10 {
			regulator-min-microvolt = <2504000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11a_0p8: ldo11 {
			regulator-min-microvolt = <800000>;
			regulator-max-microvolt = <800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vdd_qfprom:
		vdd_qfprom_sp:
		vdda_apc_cs_1p8:
		vdda_gfx_cs_1p8:
		vdda_usb_hs_1p8:
		vdda_qrefs_vref_1p8:
		vddpx_10_a:
		vreg_l12a_1p8: ldo12 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13a_2p7: ldo13 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2704000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l14a_1p8: ldo14 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l15a_1p7: ldo15 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <1704000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l16a_2p7: ldo16 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l17a_3p0: ldo17 {
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3008000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a_0p8: ldo18 {
			regulator-min-microvolt = <880000>;
			regulator-max-microvolt = <880000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-1 {
		compatible = "qcom,pm8150l-rpmh-regulators";
		qcom,pmic-id = "c";

		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-s6-supply = <&vph_pwr>;
		vdd-s7-supply = <&vph_pwr>;
		vdd-s8-supply = <&vph_pwr>;

		vdd-l1-l8-supply = <&vreg_s4a_1p8>;
		vdd-l2-l3-supply = <&vreg_s8c_1p3>;
		vdd-l4-l5-l6-supply = <&vreg_bob>;
		vdd-l7-l11-supply = <&vreg_bob>;
		vdd-l9-l10-supply = <&vreg_bob>;

		vdd-bob-supply = <&vph_pwr>;
		vdd-flash-supply = <&vreg_bob>;
		vdd-rgb-supply = <&vreg_bob>;

		vreg_bob: bob {
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <4000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
			regulator-allow-bypass;
		};

		vreg_s8c_1p3: smps8 {
			regulator-min-microvolt = <1352000>;
			regulator-max-microvolt = <1352000>;
		};

		vreg_l1c_1p8: ldo1 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vdda_wcss_adcdac_1:
		vdda_wcss_adcdac_22:
		vreg_l2c_1p3: ldo2 {
			regulator-min-microvolt = <1304000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vdda_hv_ebi0:
		vdda_hv_ebi1:
		vdda_hv_ebi2:
		vdda_hv_ebi3:
		vdda_hv_refgen0:
		vdda_qlink_hv_ck:
		vreg_l3c_1p2: ldo3 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_5:
		vreg_l4c_1p8: ldo4 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <2928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_6:
		vreg_l5c_1p8: ldo5 {
			regulator-min-microvolt = <1704000>;
			regulator-max-microvolt = <2928000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vddpx_2:
		vreg_l6c_2p9: ldo6 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7c_3p0: ldo7 {
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <3104000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8c_1p8: ldo8 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9c_2p9: ldo9 {
			regulator-min-microvolt = <2704000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10c_3p3: ldo10 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3312000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11c_3p3: ldo11 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3312000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-2 {
		compatible = "qcom,pm8009-rpmh-regulators";
		qcom,pmic-id = "f";

		vdd-s1-supply = <&vph_pwr>;
		vdd-s2-supply = <&vreg_bob>;

		vdd-l2-supply = <&vreg_s8c_1p3>;
		vdd-l5-l6-supply = <&vreg_bob>;

		vreg_l2f_1p2: ldo2 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5f_2p85: ldo5 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6f_2p85: ldo6 {
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-min-microvolt = <2856000>;
			regulator-max-microvolt = <2856000>;
		};
	};
};

&gmu {
	status = "okay";
};

&gpi_dma0 {
	status = "okay";
};

&gpi_dma1 {
	status = "okay";
};

&gpu {
	status = "okay";
};

&i2c4 {
	clock-frequency = <100000>;

	status = "okay";

	typec-mux@42 {
		compatible = "fcs,fsa4480";
		reg = <0x42>;

		interrupts-extended = <&tlmm 152 IRQ_TYPE_LEVEL_LOW>;

		vcc-supply = <&vreg_bob>;
		mode-switch;
		orientation-switch;

		port {
			fsa4480_sbu_mux: endpoint {
				remote-endpoint = <&pm8150b_typec_sbu_out>;
			};
		};
	};
};

&i2c9 {
	status = "okay";
	clock-frequency = <400000>;

	lt9611_codec: hdmi-bridge@3b {
		compatible = "lontium,lt9611";
		reg = <0x3b>;
		#sound-dai-cells = <1>;

		interrupts-extended = <&tlmm 9 IRQ_TYPE_EDGE_FALLING>;

		reset-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;

		vdd-supply = <&vreg_s4a_1p8>;
		vcc-supply = <&vreg_bob>;

		pinctrl-names = "default";
		pinctrl-0 = <&lt9611_irq_pin>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				lt9611_a: endpoint {
					remote-endpoint = <&mdss_dsi0_out>;
				};
			};

			port@1 {
				reg = <1>;

				lt9611_b: endpoint {
					remote-endpoint = <&mdss_dsi1_out>;
				};
			};

			port@2 {
				reg = <2>;

				lt9611_out: endpoint {
					remote-endpoint = <&hdmi_con>;
				};
			};
		};
	};
};

&mdss {
	status = "okay";
};

&mdss_dp {
	status = "okay";
};

&mdss_dp_out {
	data-lanes = <0 1>;
	remote-endpoint = <&usb_1_qmpphy_dp_in>;
};

&mdss_dsi0 {
	status = "okay";
	vdda-supply = <&vreg_l3c_1p2>;

	qcom,dual-dsi-mode;
	qcom,master-dsi;

	ports {
		port@1 {
			endpoint {
				remote-endpoint = <&lt9611_a>;
				data-lanes = <0 1 2 3>;
			};
		};
	};
};

&mdss_dsi0_phy {
	status = "okay";
	vdds-supply = <&vreg_l5a_0p875>;
};

&mdss_dsi1 {
	vdda-supply = <&vreg_l3c_1p2>;

	qcom,dual-dsi-mode;

	/* DSI1 is slave, so use DSI0 clocks */
	assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;

	status = "okay";

	ports {
		port@1 {
			endpoint {
				remote-endpoint = <&lt9611_b>;
				data-lanes = <0 1 2 3>;
			};
		};
	};
};

&mdss_dsi1_phy {
	vdds-supply = <&vreg_l5a_0p875>;
	status = "okay";
};

&pm8150b_vbus {
	regulator-min-microamp = <500000>;
	regulator-max-microamp = <3000000>;
	status = "okay";
};

&pm8150b_typec {
	status = "okay";

	vdd-pdphy-supply = <&vreg_l2a_3p1>;

	connector {
		compatible = "usb-c-connector";

		power-role = "source";
		data-role = "dual";
		self-powered;

		source-pdos = <PDO_FIXED(5000, 3000,
					 PDO_FIXED_DUAL_ROLE |
					 PDO_FIXED_USB_COMM |
					 PDO_FIXED_DATA_SWAP)>;

		altmodes {
			displayport {
				svid = /bits/ 16 <0xff01>;
				vdo = <0x00001c46>;
			};
		};

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				pm8150b_role_switch_in: endpoint {
					remote-endpoint = <&usb_1_dwc3_hs>;
				};
			};

			port@1 {
				reg = <1>;
				pm8150b_typec_mux_in: endpoint {
					remote-endpoint = <&usb_1_qmpphy_out>;
				};
			};

			port@2 {
				reg = <2>;

				pm8150b_typec_sbu_out: endpoint {
					remote-endpoint = <&fsa4480_sbu_mux>;
				};
			};
		};
	};
};

&pon_pwrkey {
	status = "okay";
};

&pon_resin {
	status = "okay";

	linux,code = <KEY_VOLUMEDOWN>;
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&remoteproc_adsp {
	status = "okay";

	firmware-name = "qcom/sm8150/adsp.mbn";
};

&remoteproc_cdsp {
	status = "okay";

	firmware-name = "qcom/sm8150/cdsp.mbn";
};

&remoteproc_slpi {
	status = "okay";

	firmware-name = "qcom/sm8150/slpi.mbn";
};

&tlmm {
	gpio-reserved-ranges = <0 4>, <126 4>;

	lt9611_irq_pin: lt9611-irq-state {
		pins = "gpio9";
		function = "gpio";
		bias-disable;
	};

};

&uart2 {
	status = "okay";
};

&ufs_mem_hc {
	status = "okay";

	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;

	vcc-supply = <&vreg_l10a_2p5>;
	vcc-max-microamp = <750000>;
	vccq-supply = <&vreg_l9a_1p2>;
	vccq-max-microamp = <700000>;
	vccq2-supply = <&vreg_s4a_1p8>;
	vccq2-max-microamp = <750000>;
};

&ufs_mem_phy {
	status = "okay";

	vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
	vdda-pll-supply = <&vreg_l3c_1p2>;
};

&usb_1_hsphy {
	status = "okay";
	vdda-pll-supply = <&vdd_usb_hs_core>;
	vdda33-supply = <&vdda_usb_hs_3p1>;
	vdda18-supply = <&vdda_usb_hs_1p8>;
};

&usb_2_hsphy {
	status = "okay";
	vdda-pll-supply = <&vdd_usb_hs_core>;
	vdda33-supply = <&vdda_usb_hs_3p1>;
	vdda18-supply = <&vdda_usb_hs_1p8>;
};

&usb_1_qmpphy {
	status = "okay";
	vdda-phy-supply = <&vreg_l3c_1p2>;
	vdda-pll-supply = <&vreg_l18a_0p8>;
	orientation-switch;
};

&usb_1_qmpphy_dp_in {
	remote-endpoint = <&mdss_dp_out>;
};

&usb_1_qmpphy_out {
	remote-endpoint = <&pm8150b_typec_mux_in>;
};

&usb_1_qmpphy_usb_ss_in {
	remote-endpoint = <&usb_1_dwc3_ss>;
};

&usb_2_qmpphy {
	status = "okay";
	vdda-phy-supply = <&vreg_l3c_1p2>;
	vdda-pll-supply = <&vreg_l5a_0p875>;
};

&usb_1 {
	status = "okay";
};

&usb_2 {
	status = "okay";
};

&usb_1_dwc3 {
	dr_mode = "otg";
	usb-role-switch;
};

&usb_1_dwc3_hs {
	remote-endpoint = <&pm8150b_role_switch_in>;
};

&usb_1_dwc3_ss {
	remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
};

&usb_2_dwc3 {
	dr_mode = "host";
};
