// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
 */

/dts-v1/;

/* PM7250B is configured to use SID2/3 */
#define PM7250B_SID 2
#define PM7250B_SID1 3

/* PMK8350 (in reality a PMK8003) is configured to use SID6 instead of 0 */
#define PMK8350_SID 6

#include <dt-bindings/firmware/qcom,scm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/usb/pd.h>
#include "sm7225.dtsi"
#include "pm6150l.dtsi"
#include "pm6350.dtsi"
#include "pm7250b.dtsi"
#include "pmk8350.dtsi"

/ {
	model = "Fairphone 4";
	compatible = "fairphone,fp4", "qcom,sm7225";
	chassis-type = "handset";

	/* required for bootloader to select correct board */
	qcom,msm-id = <434 0x10000>, <459 0x10000>;
	qcom,board-id = <8 32>;

	aliases {
		serial0 = &uart9;
		serial1 = &uart1;
	};

	chosen {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		stdout-path = "serial0:115200n8";

		framebuffer0: framebuffer@a000000 {
			compatible = "simple-framebuffer";
			reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
			width = <1080>;
			height = <2340>;
			stride = <(1080 * 4)>;
			format = "a8r8g8b8";
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&gpio_keys_pin>;

		key-volume-up {
			label = "volume_up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
		};
	};

	/* Dummy regulator until PM6150L has LCDB VSP/VSN support */
	lcdb_dummy: regulator-lcdb-dummy {
		compatible = "regulator-fixed";
		regulator-name = "lcdb_dummy";
		regulator-min-microvolt = <5500000>;
		regulator-max-microvolt = <5500000>;
	};

	reserved-memory {
		/*
		 * The rmtfs memory region in downstream is 'dynamically allocated'
		 * but given the same address every time. Hard code it as this address is
		 * where the modem firmware expects it to be.
		 */
		memory@efe01000 {
			compatible = "qcom,rmtfs-mem";
			reg = <0 0xefe01000 0 0x600000>;
			no-map;

			qcom,client-id = <1>;
			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
		};
	};

	msm_therm_sensor: thermal-sensor-msm {
		compatible = "generic-adc-thermal";
		#thermal-sensor-cells = <0>;
		io-channels = <&pm6150l_adc ADC5_AMUX_THM2_100K_PU>;
		io-channel-names = "sensor-channel";
	};

	rear_cam_sensor: thermal-sensor-rear-cam {
		compatible = "generic-adc-thermal";
		#thermal-sensor-cells = <0>;
		io-channels = <&pm6150l_adc ADC5_GPIO2_100K_PU>;
		io-channel-names = "sensor-channel";
	};

	thermal-zones {
		chg-skin-thermal {
			thermal-sensors = <&pm7250b_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		conn-thermal {
			thermal-sensors = <&pm7250b_adc_tm 1>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		pa0-thermal {
			thermal-sensors = <&pm6150l_adc_tm 1>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		pa1-thermal {
			thermal-sensors = <&pm6150l_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		pm8008-thermal {
			polling-delay-passive = <100>;
			thermal-sensors = <&pm8008>;

			trips {
				trip0 {
					temperature = <95000>;
					hysteresis = <0>;
					type = "passive";
				};

				trip1 {
					temperature = <115000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
		};

		quiet-thermal {
			thermal-sensors = <&pm6150l_adc_tm 3>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		rear-cam-thermal {
			polling-delay-passive = <1000>;
			polling-delay = <5000>;
			thermal-sensors = <&rear_cam_sensor>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		rfc-flash-thermal {
			thermal-sensors = <&pm6150l_adc_tm 2>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};

		sdm-skin-thermal {
			polling-delay-passive = <1000>;
			polling-delay = <5000>;
			thermal-sensors = <&msm_therm_sensor>;

			trips {
				trip0 {
					temperature = <45000>;
					hysteresis = <0>;
					type = "passive";
				};

				trip1 {
					temperature = <55000>;
					hysteresis = <0>;
					type = "critical";
				};
			};
		};

		xo-thermal {
			thermal-sensors = <&pmk8350_adc_tm 0>;

			trips {
				active-config0 {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "passive";
				};
			};
		};
	};
};

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

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

		vreg_s1a: smps1 {
			regulator-name = "vreg_s1a";
			regulator-min-microvolt = <1000000>;
			regulator-max-microvolt = <1200000>;
		};

		vreg_s2a: smps2 {
			regulator-name = "vreg_s2a";
			regulator-min-microvolt = <1503000>;
			regulator-max-microvolt = <2048000>;
		};

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

		vreg_l3a: ldo3 {
			regulator-name = "vreg_l3a";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3300000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l4a: ldo4 {
			regulator-name = "vreg_l4a";
			regulator-min-microvolt = <352000>;
			regulator-max-microvolt = <801000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l5a: ldo5 {
			regulator-name = "vreg_l5a";
			regulator-min-microvolt = <1503000>;
			regulator-max-microvolt = <1980000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

		vreg_l8a: ldo8 {
			regulator-name = "vreg_l8a";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l9a: ldo9 {
			regulator-name = "vreg_l9a";
			regulator-min-microvolt = <1650000>;
			regulator-max-microvolt = <3401000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

		vreg_l13a: ldo13 {
			regulator-name = "vreg_l13a";
			regulator-min-microvolt = <570000>;
			regulator-max-microvolt = <650000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

		vreg_l15a: ldo15 {
			regulator-name = "vreg_l15a";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l16a: ldo16 {
			regulator-name = "vreg_l16a";
			regulator-min-microvolt = <830000>;
			regulator-max-microvolt = <921000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l18a: ldo18 {
			regulator-name = "vreg_l18a";
			regulator-min-microvolt = <788000>;
			regulator-max-microvolt = <1049000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l19a: ldo19 {
			regulator-name = "vreg_l19a";
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l20a: ldo20 {
			regulator-name = "vreg_l20a";
			regulator-min-microvolt = <530000>;
			regulator-max-microvolt = <801000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l21a: ldo21 {
			regulator-name = "vreg_l21a";
			regulator-min-microvolt = <751000>;
			regulator-max-microvolt = <825000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l22a: ldo22 {
			regulator-name = "vreg_l22a";
			regulator-min-microvolt = <1080000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};
	};

	regulators-1 {
		compatible = "qcom,pm6150l-rpmh-regulators";
		qcom,pmic-id = "e";

		vreg_s8e: smps8 {
			regulator-name = "vreg_s8e";
			regulator-min-microvolt = <313000>;
			regulator-max-microvolt = <1395000>;
		};

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

		vreg_l2e: ldo2 {
			regulator-name = "vreg_l2e";
			regulator-min-microvolt = <1170000>;
			regulator-max-microvolt = <1305000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l3e: ldo3 {
			regulator-name = "vreg_l3e";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1299000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

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

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

		vreg_l6e: ldo6 {
			regulator-name = "vreg_l6e";
			regulator-min-microvolt = <1700000>;
			regulator-max-microvolt = <2950000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

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

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

		vreg_l9e: ldo9 {
			regulator-name = "vreg_l9e";
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <2960000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
			regulator-allow-set-load;
			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
						   RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l10e: ldo10 {
			regulator-name = "vreg_l10e";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3401000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_l11e: ldo11 {
			regulator-name = "vreg_l11e";
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3401000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
		};

		vreg_bob: bob {
			regulator-name = "vreg_bob";
			regulator-min-microvolt = <1620000>;
			regulator-max-microvolt = <5492000>;
			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
			regulator-allow-bypass;
		};
	};
};

&cci0 {
	status = "okay";
};

&cci0_i2c0 {
	/* IMX582 @ 0x1a */
};

&cci0_i2c1 {
	/* IMX582 @ 0x1a */
};

&cci1 {
	status = "okay";
};

&cci1_i2c0 {
	/* IMX576 @ 0x10 */
};

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

&gpi_dma0 {
	status = "okay";
};

&gpi_dma1 {
	status = "okay";
};

&gpu {
	status = "okay";
};

&gpu_zap_shader {
	firmware-name = "qcom/sm7225/fairphone4/a615_zap.mbn";
};

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

	/* ST21NFCD NFC @ 8 */
	/* VL53L3 ToF @ 29 */
	/* AW88264A amplifier @ 34 */
	/* AW88264A amplifier @ 35 */
};

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

	/* HX83112A touchscreen @ 48 */
};

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

	pm8008: pmic@8 {
		compatible = "qcom,pm8008";
		reg = <0x8>;

		interrupts-extended = <&tlmm 59 IRQ_TYPE_EDGE_RISING>;
		reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;

		vdd-l1-l2-supply = <&vreg_s8e>;
		vdd-l3-l4-supply = <&vreg_bob>;
		vdd-l5-supply = <&vreg_bob>;
		vdd-l6-supply = <&vreg_s2a>;
		vdd-l7-supply = <&vreg_bob>;

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

		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&pm8008 0 0 2>;

		interrupt-controller;
		#interrupt-cells = <2>;

		#thermal-sensor-cells = <0>;

		regulators {
			vreg_l1p: ldo1 {
				regulator-name = "vreg_l1p";
				regulator-min-microvolt = <528000>;
				regulator-max-microvolt = <1200000>;
			};

			vreg_l2p: ldo2 {
				regulator-name = "vreg_l2p";
				regulator-min-microvolt = <528000>;
				regulator-max-microvolt = <1200000>;
			};

			vreg_l3p: ldo3 {
				regulator-name = "vreg_l3p";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2800000>;
			};

			vreg_l4p: ldo4 {
				regulator-name = "vreg_l4p";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2904000>;
			};

			vreg_l5p: ldo5 {
				regulator-name = "vreg_l5p";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <2900000>;
			};

			vreg_l6p: ldo6 {
				regulator-name = "vreg_l6p";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1800000>;
			};

			vreg_l7p: ldo7 {
				regulator-name = "vreg_l7p";
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <3140000>;
			};
		};
	};

	/* PX8618 @ 26 */
	/* SMB1395 PMIC @ 34 */
	/* awinic,aw8695 @ 5a */
};

&ipa {
	qcom,gsi-loader = "self";
	memory-region = <&pil_ipa_fw_mem>;
	firmware-name = "qcom/sm7225/fairphone4/ipa_fws.mbn";
	status = "okay";
};

&mdss {
	status = "okay";
};

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

	panel@0 {
		compatible = "djn,9a-3r063-1102b";
		reg = <0>;

		backlight = <&pm6150l_wled>;
		reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;

		vdd1-supply = <&vreg_l1e>;
		vsn-supply = <&lcdb_dummy>;
		vsp-supply = <&lcdb_dummy>;

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

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

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

&mpss {
	firmware-name = "qcom/sm7225/fairphone4/modem.mbn";
	status = "okay";
};

&pm6150l_adc {
	pinctrl-0 = <&pm6150l_adc_default>;
	pinctrl-names = "default";

	channel@4d {
		reg = <ADC5_AMUX_THM1_100K_PU>;
		label = "pa_therm1";
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		qcom,ratiometric;
	};

	channel@4e {
		reg = <ADC5_AMUX_THM2_100K_PU>;
		label = "msm_therm";
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		qcom,ratiometric;
	};

	channel@4f {
		reg = <ADC5_AMUX_THM3_100K_PU>;
		label = "pa_therm0";
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		qcom,ratiometric;
	};

	channel@53 {
		reg = <ADC5_GPIO2_100K_PU>;
		label = "rear_cam_therm";
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		qcom,ratiometric;
	};

	channel@54 {
		reg = <ADC5_GPIO3_100K_PU>;
		label = "rear_cam_flash_therm";
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		qcom,ratiometric;
	};

	channel@55 {
		reg = <ADC5_GPIO4_100K_PU>;
		label = "quiet_therm";
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		qcom,ratiometric;
	};
};

&pm6150l_adc_tm {
	status = "okay";

	pa-therm1@0 {
		reg = <0>;
		io-channels = <&pm6150l_adc ADC5_AMUX_THM1_100K_PU>;
		qcom,hw-settle-time-us = <200>;
		qcom,ratiometric;
	};

	pa-therm0@1 {
		reg = <1>;
		io-channels = <&pm6150l_adc ADC5_AMUX_THM3_100K_PU>;
		qcom,hw-settle-time-us = <200>;
		qcom,ratiometric;
	};

	rear-cam-flash-therm@2 {
		reg = <2>;
		io-channels = <&pm6150l_adc ADC5_GPIO3_100K_PU>;
		qcom,hw-settle-time-us = <200>;
		qcom,ratiometric;
	};

	quiet-therm@3 {
		reg = <3>;
		io-channels = <&pm6150l_adc ADC5_GPIO4_100K_PU>;
		qcom,hw-settle-time-us = <200>;
		qcom,ratiometric;
	};
};

&pm6150l_flash {
	status = "okay";

	led-0 {
		function = LED_FUNCTION_FLASH;
		color = <LED_COLOR_ID_YELLOW>;
		led-sources = <1>;
		led-max-microamp = <180000>;
		flash-max-microamp = <1000000>;
		flash-max-timeout-us = <1280000>;
	};

	led-1 {
		function = LED_FUNCTION_FLASH;
		color = <LED_COLOR_ID_WHITE>;
		led-sources = <2>;
		led-max-microamp = <180000>;
		flash-max-microamp = <1000000>;
		flash-max-timeout-us = <1280000>;
	};
};

&pm6150l_gpios {
	pm6150l_adc_default: adc-default-state {
		pins = "gpio6", "gpio7", "gpio10";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-high-impedance;
	};
};

&pm6150l_wled {
	qcom,switching-freq = <800>;
	qcom,current-limit-microamp = <20000>;
	qcom,num-strings = <2>;

	status = "okay";
};

&pm6350_gpios {
	gpio_keys_pin: gpio-keys-state {
		pins = "gpio2";
		function = PMIC_GPIO_FUNC_NORMAL;
		bias-pull-up;
		input-enable;
		power-source = <0>;
	};
};

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

&pm7250b_adc {
	channel@4d {
		reg = <ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		label = "charger_skin_therm";
	};

	channel@4f {
		reg = <ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		label = "conn_therm";
	};
};

&pm7250b_adc_tm {
	status = "okay";

	charger-skin-therm@0 {
		reg = <0>;
		io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};

	conn-therm@1 {
		reg = <1>;
		io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&pm7250b_typec {
	vdd-pdphy-supply = <&vreg_l3a>;

	status = "okay";

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

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

		/*
		 * Disable USB Power Delivery for now, seems to need extra work
		 * to support role switching while also letting the battery
		 * charge still - without charger driver
		 */
		typec-power-opmode = "default";
		pd-disable;

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

			port@0 {
				reg = <0>;
				pm7250b_hs_in: endpoint {
					remote-endpoint = <&usb_1_dwc3_hs_out>;
				};
			};

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

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

&pmk8350_adc_tm {
	status = "okay";

	xo-therm@0 {
		reg = <0>;
		io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
		qcom,hw-settle-time-us = <200>;
		qcom,ratiometric;
	};
};

&pmk8350_rtc {
	status = "okay";
};

&pmk8350_vadc {
	channel@644 {
		reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		qcom,pre-scaling = <1 1>;
		label = "xo_therm";
	};
};

&qup_uart1_cts {
	/*
	 * Configure a bias-bus-hold on CTS to lower power
	 * usage when Bluetooth is turned off. Bus hold will
	 * maintain a low power state regardless of whether
	 * the Bluetooth module drives the pin in either
	 * direction or leaves the pin fully unpowered.
	 */
	bias-bus-hold;
};

&qup_uart1_rts {
	/* We'll drive RTS, so no pull */
	drive-strength = <2>;
	bias-disable;
};

&qup_uart1_rx {
	/*
	 * Configure a pull-up on RX. This is needed to avoid
	 * garbage data when the TX pin of the Bluetooth module is
	 * in tri-state (module powered off or not driving the
	 * signal yet).
	 */
	bias-pull-up;
};

&qup_uart1_tx {
	/* We'll drive TX, so no pull */
	drive-strength = <2>;
	bias-disable;
};

&qupv3_id_0 {
	status = "okay";
};

&qupv3_id_1 {
	status = "okay";
};

&sdc2_off_state {
	sd-cd-pins {
		pins = "gpio94";
		function = "gpio";
		drive-strength = <2>;
		bias-disable;
	};
};

&sdc2_on_state {
	sd-cd-pins {
		pins = "gpio94";
		function = "gpio";
		drive-strength = <2>;
		bias-pull-up;
	};
};

&sdhc_2 {
	vmmc-supply = <&vreg_l9e>;
	vqmmc-supply = <&vreg_l6e>;

	cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&tlmm {
	gpio-reserved-ranges = <13 4>, <56 2>;

	qup_uart1_sleep_cts: qup-uart1-sleep-cts-state {
		pins = "gpio61";
		function = "gpio";
		/*
		 * Configure a bias-bus-hold on CTS to lower power
		 * usage when Bluetooth is turned off. Bus hold will
		 * maintain a low power state regardless of whether
		 * the Bluetooth module drives the pin in either
		 * direction or leaves the pin fully unpowered.
		 */
		bias-bus-hold;
	};

	qup_uart1_sleep_rts: qup-uart1-sleep-rts-state {
		pins = "gpio62";
		function = "gpio";
		/*
		 * Configure pull-down on RTS. As RTS is active low
		 * signal, pull it low to indicate the BT SoC that it
		 * can wakeup the system anytime from suspend state by
		 * pulling RX low (by sending wakeup bytes).
		 */
		bias-pull-down;
	};

	qup_uart1_sleep_rx: qup-uart1-sleep-rx-state {
		pins = "gpio64";
		function = "gpio";
		/*
		 * Configure a pull-up on RX. This is needed to avoid
		 * garbage data when the TX pin of the Bluetooth module
		 * is floating which may cause spurious wakeups.
		 */
		bias-pull-up;
	};

	qup_uart1_sleep_tx: qup-uart1-sleep-tx-state {
		pins = "gpio63";
		function = "gpio";
		/*
		 * Configure pull-up on TX when it isn't actively driven
		 * to prevent BT SoC from receiving garbage during sleep.
		 */
		bias-pull-up;
	};

	pm8008_default: pm8008-default-state {
		int-pins {
			pins = "gpio59";
			function = "gpio";
			drive-strength = <2>;
			bias-pull-down;
		};

		reset-n-pins {
			pins = "gpio58";
			function = "gpio";
			drive-strength = <2>;
			bias-disable;
		};
	};
};

&uart1 {
	/delete-property/ interrupts;
	interrupts-extended = <&intc GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
			      <&tlmm 64 IRQ_TYPE_EDGE_FALLING>;

	pinctrl-names = "default", "sleep";
	pinctrl-1 = <&qup_uart1_sleep_cts>, <&qup_uart1_sleep_rts>, <&qup_uart1_sleep_tx>, <&qup_uart1_sleep_rx>;

	status = "okay";

	bluetooth {
		compatible = "qcom,wcn3988-bt";

		vddio-supply = <&vreg_l11a>;
		vddxo-supply = <&vreg_l7a>;
		vddrf-supply = <&vreg_l2e>;
		vddch0-supply = <&vreg_l10e>;
		swctrl-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;

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

&uart9 {
	status = "okay";
};

&ufs_mem_hc {
	reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;

	vcc-supply = <&vreg_l7e>;
	vcc-max-microamp = <800000>;
	vccq2-supply = <&vreg_l12a>;
	vccq2-max-microamp = <800000>;

	status = "okay";
};

&ufs_mem_phy {
	vdda-phy-supply = <&vreg_l18a>;
	vdda-pll-supply = <&vreg_l22a>;

	status = "okay";
};

&usb_1 {
	status = "okay";
};

&usb_1_dwc3 {
	maximum-speed = "super-speed";
	dr_mode = "otg";
};

&usb_1_dwc3_hs_out {
	remote-endpoint = <&pm7250b_hs_in>;
};

&usb_1_hsphy {
	vdd-supply = <&vreg_l18a>;
	vdda-pll-supply = <&vreg_l2a>;
	vdda-phy-dpdm-supply = <&vreg_l3a>;

	status = "okay";
};

&usb_1_qmpphy {
	vdda-phy-supply = <&vreg_l22a>;
	vdda-pll-supply = <&vreg_l16a>;

	status = "okay";
};

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

&wifi {
	vdd-0.8-cx-mx-supply = <&vreg_l4a>;
	vdd-1.8-xo-supply = <&vreg_l7a>;
	vdd-1.3-rfa-supply = <&vreg_l2e>;
	vdd-3.3-ch0-supply = <&vreg_l10e>;
	vdd-3.3-ch1-supply = <&vreg_l11e>;

	status = "okay";
};
