// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
 */

/dts-v1/;

/* PM7250B is configured to use SID8/9 */
#define PM7250B_SID 8
#define PM7250B_SID1 9

#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sc7280.dtsi"
#include "pm7250b.dtsi"
#include "pm7325.dtsi"
#include "pm8350c.dtsi"
#include "pmk8350.dtsi"

/delete-node/ &ipa_fw_mem;
/delete-node/ &rmtfs_mem;
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_mem;
/delete-node/ &video_mem;
/delete-node/ &wlan_ce_mem;
/delete-node/ &wpss_mem;
/delete-node/ &xbl_mem;

/ {
	model = "Qualcomm Technologies, Inc. QCM6490 IDP";
	compatible = "qcom,qcm6490-idp", "qcom,qcm6490";
	chassis-type = "embedded";

	aliases {
		serial0 = &uart5;
	};

	pm8350c_pwm_backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pm8350c_pwm 3 65535>;
		enable-gpios = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&pmic_lcd_bl_en>;
		pinctrl-names = "default";
	};

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

	lcd_disp_bias: regulator-lcd-disp-bias {
		compatible = "regulator-fixed";
		regulator-name = "lcd_disp_bias";
		regulator-min-microvolt = <5500000>;
		regulator-max-microvolt = <5500000>;
		gpio = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
		enable-active-high;
		pinctrl-0 = <&lcd_disp_bias_en>;
		pinctrl-names = "default";
	};

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

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

		key-volume-up {
			label = "Volume_up";
			gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_VOLUMEUP>;
			wakeup-source;
			debounce-interval = <15>;
			linux,can-disable;
		};
	};

	reserved-memory {
		xbl_mem: xbl@80700000 {
			reg = <0x0 0x80700000 0x0 0x100000>;
			no-map;
		};

		cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
			reg = <0x0 0x81800000 0x0 0x1e00000>;
			no-map;
		};

		camera_mem: camera@84300000 {
			reg = <0x0 0x84300000 0x0 0x500000>;
			no-map;
		};

		wpss_mem: wpss@84800000 {
			reg = <0x0 0x84800000 0x0 0x1900000>;
			no-map;
		};

		adsp_mem: adsp@86100000 {
			reg = <0x0 0x86100000 0x0 0x2800000>;
			no-map;
		};

		cdsp_mem: cdsp@88900000 {
			reg = <0x0 0x88900000 0x0 0x1e00000>;
			no-map;
		};

		video_mem: video@8a700000 {
			reg = <0x0 0x8a700000 0x0 0x700000>;
			no-map;
		};

		cvp_mem: cvp@8ae00000 {
			reg = <0x0 0x8ae00000 0x0 0x500000>;
			no-map;
		};

		ipa_fw_mem: ipa-fw@8b300000 {
			reg = <0x0 0x8b300000 0x0 0x10000>;
			no-map;
		};

		ipa_gsi_mem: ipa-gsi@8b310000 {
			reg = <0x0 0x8b310000 0x0 0xa000>;
			no-map;
		};

		gpu_microcode_mem: gpu-microcode@8b31a000 {
			reg = <0x0 0x8b31a000 0x0 0x2000>;
			no-map;
		};

		mpss_mem: mpss@8b800000 {
			reg = <0x0 0x8b800000 0x0 0xf600000>;
			no-map;
		};

		tz_stat_mem: tz-stat@c0000000 {
			reg = <0x0 0xc0000000 0x0 0x100000>;
			no-map;
		};

		tags_mem: tags@c0100000 {
			reg = <0x0 0xc0100000 0x0 0x1200000>;
			no-map;
		};

		qtee_mem: qtee@c1300000 {
			reg = <0x0 0xc1300000 0x0 0x500000>;
			no-map;
		};

		trusted_apps_mem: trusted-apps@c1800000 {
			reg = <0x0 0xc1800000 0x0 0x1c00000>;
			no-map;
		};

		debug_vm_mem: debug-vm@d0600000 {
			reg = <0x0 0xd0600000 0x0 0x100000>;
			no-map;
		};
	};

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

&apps_rsc {
	regulators-0 {
		compatible = "qcom,pm7325-rpmh-regulators";
		qcom,pmic-id = "b";

		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-l4-l12-l15-supply = <&vreg_s7b_0p972>;
		vdd-l2-l7-supply = <&vreg_bob_3p296>;
		vdd-l3-supply = <&vreg_s2b_0p876>;
		vdd-l5-supply = <&vreg_s2b_0p876>;
		vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
		vdd-l8-supply = <&vreg_s7b_0p972>;
		vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
		vdd-l13-supply = <&vreg_s7b_0p972>;
		vdd-l14-l16-supply = <&vreg_s8b_1p272>;

		vreg_s1b_1p872: smps1 {
			regulator-name = "vreg_s1b_1p872";
			regulator-min-microvolt = <1840000>;
			regulator-max-microvolt = <2040000>;
		};

		vreg_s2b_0p876: smps2 {
			regulator-name = "vreg_s2b_0p876";
			regulator-min-microvolt = <570070>;
			regulator-max-microvolt = <1050000>;
		};

		vreg_s7b_0p972: smps7 {
			regulator-name = "vreg_s7b_0p972";
			regulator-min-microvolt = <535000>;
			regulator-max-microvolt = <1120000>;
		};

		vreg_s8b_1p272: smps8 {
			regulator-name = "vreg_s8b_1p272";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1500000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
		};

		vreg_l1b_0p912: ldo1 {
			regulator-name = "vreg_l1b_0p912";
			regulator-min-microvolt = <825000>;
			regulator-max-microvolt = <925000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l2b_3p072: ldo2 {
			regulator-name = "vreg_l2b_3p072";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3b_0p504: ldo3 {
			regulator-name = "vreg_l3b_0p504";
			regulator-min-microvolt = <312000>;
			regulator-max-microvolt = <910000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4b_0p752: ldo4 {
			regulator-name = "vreg_l4b_0p752";
			regulator-min-microvolt = <752000>;
			regulator-max-microvolt = <820000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		reg_l5b_0p752: ldo5 {
			regulator-name = "reg_l5b_0p752";
			regulator-min-microvolt = <552000>;
			regulator-max-microvolt = <832000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6b_1p2: ldo6 {
			regulator-name = "vreg_l6b_1p2";
			regulator-min-microvolt = <1140000>;
			regulator-max-microvolt = <1260000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7b_2p952: ldo7 {
			regulator-name = "vreg_l7b_2p952";
			regulator-min-microvolt = <2400000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8b_0p904: ldo8 {
			regulator-name = "vreg_l8b_0p904";
			regulator-min-microvolt = <870000>;
			regulator-max-microvolt = <970000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9b_1p2: ldo9 {
			regulator-name = "vreg_l9b_1p2";
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11b_1p504: ldo11 {
			regulator-name = "vreg_l11b_1p504";
			regulator-min-microvolt = <1504000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l12b_0p751: ldo12 {
			regulator-name = "vreg_l12b_0p751";
			regulator-min-microvolt = <751000>;
			regulator-max-microvolt = <824000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13b_0p53: ldo13 {
			regulator-name = "vreg_l13b_0p53";
			regulator-min-microvolt = <530000>;
			regulator-max-microvolt = <824000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l14b_1p08: ldo14 {
			regulator-name = "vreg_l14b_1p08";
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1304000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l15b_0p765: ldo15 {
			regulator-name = "vreg_l15b_0p765";
			regulator-min-microvolt = <765000>;
			regulator-max-microvolt = <1020000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l16b_1p1: ldo16 {
			regulator-name = "vreg_l16b_1p1";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l17b_1p7: ldo17 {
			regulator-name = "vreg_l17b_1p7";
			regulator-min-microvolt = <1700000>;
			regulator-max-microvolt = <1900000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18b_1p8: ldo18 {
			regulator-name = "vreg_l18b_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l19b_1p8: ldo19 {
			regulator-name = "vreg_l19b_1p8";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-1 {
		compatible = "qcom,pm8350c-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-s9-supply = <&vph_pwr>;
		vdd-s10-supply = <&vph_pwr>;
		vdd-l1-l12-supply = <&vreg_s1b_1p872>;
		vdd-l2-l8-supply = <&vreg_s1b_1p872>;
		vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
		vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
		vdd-l10-supply = <&vreg_s7b_0p972>;
		vdd-bob-supply = <&vph_pwr>;

		vreg_s1c_2p19: smps1 {
			regulator-name = "vreg_s1c_2p19";
			regulator-min-microvolt = <2190000>;
			regulator-max-microvolt = <2210000>;
		};

		vreg_s2c_0p752: smps2 {
			regulator-name = "vreg_s2c_0p752";
			regulator-min-microvolt = <750000>;
			regulator-max-microvolt = <800000>;
		};

		vreg_s5c_0p752: smps5 {
			regulator-name = "vreg_s5c_0p752";
			regulator-min-microvolt = <465000>;
			regulator-max-microvolt = <1050000>;
		};

		vreg_s7c_0p752: smps7 {
			regulator-name = "vreg_s7c_0p752";
			regulator-min-microvolt = <465000>;
			regulator-max-microvolt = <800000>;
		};

		vreg_s9c_1p084: smps9 {
			regulator-name = "vreg_s9c_1p084";
			regulator-min-microvolt = <1010000>;
			regulator-max-microvolt = <1170000>;
		};

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

		vreg_l2c_1p62: ldo2 {
			regulator-name = "vreg_l2c_1p62";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3c_2p8: ldo3 {
			regulator-name = "vreg_l3c_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3540000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4c_1p62: ldo4 {
			regulator-name = "vreg_l4c_1p62";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5c_1p62: ldo5 {
			regulator-name = "vreg_l5c_1p62";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l6c_2p96: ldo6 {
			regulator-name = "vreg_l6c_2p96";
			regulator-min-microvolt = <1650000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l7c_3p0: ldo7 {
			regulator-name = "vreg_l7c_3p0";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l8c_1p62: ldo8 {
			regulator-name = "vreg_l8c_1p62";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9c_2p96: ldo9 {
			regulator-name = "vreg_l9c_2p96";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <35440000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10c_0p88: ldo10 {
			regulator-name = "vreg_l10c_0p88";
			regulator-min-microvolt = <720000>;
			regulator-max-microvolt = <1050000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11c_2p8: ldo11 {
			regulator-name = "vreg_l11c_2p8";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l12c_1p65: ldo12 {
			regulator-name = "vreg_l12c_1p65";
			regulator-min-microvolt = <1650000>;
			regulator-max-microvolt = <2000000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l13c_2p7: ldo13 {
			regulator-name = "vreg_l13c_2p7";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3544000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_bob_3p296: bob {
			regulator-name = "vreg_bob_3p296";
			regulator-min-microvolt = <3008000>;
			regulator-max-microvolt = <3960000>;
		};
	};
};

&mdss {
	status = "okay";
};

&mdss_dsi {
	vdda-supply = <&vreg_l6b_1p2>;
	status = "okay";

	panel@0 {
		compatible = "novatek,nt36672e";
		reg = <0>;

		reset-gpios = <&tlmm 44 GPIO_ACTIVE_HIGH>;

		vddi-supply = <&vreg_l8c_1p62>;
		avdd-supply = <&lcd_disp_bias>;
		avee-supply = <&lcd_disp_bias>;

		backlight = <&pm8350c_pwm_backlight>;

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

&mdss_dsi0_out {
	remote-endpoint = <&panel0_in>;
	data-lanes = <0 1 2 3>;
};

&mdss_dsi_phy {
	vdds-supply = <&vreg_l10c_0p88>;
	status = "okay";
};

&pm7250b_gpios {
	lcd_disp_bias_en: lcd-disp-bias-en-state {
		pins = "gpio2";
		function = "func1";
		bias-disable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		input-disable;
		output-enable;
		power-source = <0>;
	};
};

&pm8350c_gpios {
	pmic_lcd_bl_en: pmic-lcd-bl-en-state {
		pins = "gpio7";
		function = "normal";
		bias-disable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		output-low;
		power-source = <0>;
	};

	pmic_lcd_bl_pwm: pmic-lcd-bl-pwm-state {
		pins = "gpio8";
		function = "func1";
		bias-disable;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
		output-low;
		power-source = <0>;
	};
};

&pm7325_gpios {
	key_vol_up_default: key-vol-up-state {
		pins = "gpio6";
		function = "normal";
		input-enable;
		bias-pull-up;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
	};
};

&pm8350c_pwm {
	pinctrl-0 = <&pmic_lcd_bl_pwm>;
	pinctrl-names = "default";
	status = "okay";

	multi-led {
		color = <LED_COLOR_ID_RGB>;
		function = LED_FUNCTION_STATUS;

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

		led@1 {
			reg = <1>;
			color = <LED_COLOR_ID_RED>;
		};

		led@2 {
			reg = <2>;
			color = <LED_COLOR_ID_GREEN>;
		};

		led@3 {
			reg = <3>;
			color = <LED_COLOR_ID_BLUE>;
		};
	};
};

&pon_pwrkey {
	status = "okay";
};

&pon_resin {
	linux,code = <KEY_VOLUMEDOWN>;
	status = "okay";
};

&qupv3_id_0 {
	status = "okay";
};

&remoteproc_adsp {
	firmware-name = "qcom/qcm6490/adsp.mbn";
	status = "okay";
};

&remoteproc_cdsp {
	firmware-name = "qcom/qcm6490/cdsp.mbn";
	status = "okay";
};

&remoteproc_mpss {
	firmware-name = "qcom/qcm6490/modem.mbn";
	status = "okay";
};

&remoteproc_wpss {
	firmware-name = "qcom/qcm6490/wpss.mbn";
	status = "okay";
};

&sdhc_1 {
	non-removable;
	no-sd;
	no-sdio;

	vmmc-supply = <&vreg_l7b_2p952>;
	vqmmc-supply = <&vreg_l19b_1p8>;

	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <32 2>, /* ADSP */
			       <48 4>; /* NFC */
};

&uart5 {
	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	/delete-property/ usb-role-switch;
	dr_mode = "peripheral";
};

&usb_1_hsphy {
	vdda-pll-supply = <&vreg_l10c_0p88>;
	vdda33-supply = <&vreg_l2b_3p072>;
	vdda18-supply = <&vreg_l1c_1p8>;

	status = "okay";
};

&usb_1_qmpphy {
	vdda-phy-supply = <&vreg_l6b_1p2>;
	vdda-pll-supply = <&vreg_l1b_0p912>;

	status = "okay";
};

&wifi {
	memory-region = <&wlan_fw_mem>;
};
