// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>

&spmi_bus {

	pm8916_0: pmic@0 {
		compatible = "qcom,pm8916", "qcom,spmi-pmic";
		reg = <0x0 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pon@800 {
			compatible = "qcom,pm8916-pon";
			reg = <0x800>;
			mode-bootloader = <0x2>;
			mode-recovery = <0x1>;

			pwrkey {
				compatible = "qcom,pm8941-pwrkey";
				interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
				debounce = <15625>;
				bias-pull-up;
				linux,code = <KEY_POWER>;
			};

			pm8916_resin: resin {
				compatible = "qcom,pm8941-resin";
				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
				debounce = <15625>;
				bias-pull-up;
				status = "disabled";
			};

			watchdog {
				compatible = "qcom,pm8916-wdt";
				interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
				timeout-sec = <60>;
			};
		};

		pm8916_charger: charger@1000 {
			compatible = "qcom,pm8916-lbc";
			reg = <0x1000>, <0x1200>, <0x1300>, <0x1600>;
			reg-names = "chgr", "bat_if", "usb", "misc";

			interrupts = <0x0 0x10 0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 6 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 4 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "vbat_det",
					  "fast_chg",
					  "chg_fail",
					  "chg_done",
					  "bat_pres",
					  "temp_ok",
					  "coarse_det",
					  "usb_vbus",
					  "chg_gone",
					  "overtemp";

			status = "disabled";
		};

		pm8916_usbin: usb-detect@1300 {
			compatible = "qcom,pm8941-misc";
			reg = <0x1300>;
			interrupts = <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "usb_vbus";
			status = "disabled";
		};

		pm8916_temp: temp-alarm@2400 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0x2400>;
			interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
			io-channels = <&pm8916_vadc VADC_DIE_TEMP>;
			io-channel-names = "thermal";
			#thermal-sensor-cells = <0>;
		};

		pm8916_vadc: adc@3100 {
			compatible = "qcom,spmi-vadc";
			reg = <0x3100>;
			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
			#io-channel-cells = <1>;

			channel@0 {
				reg = <VADC_USBIN>;
				qcom,pre-scaling = <1 10>;
			};
			channel@7 {
				reg = <VADC_VSYS>;
				qcom,pre-scaling = <1 3>;
			};
			channel@8 {
				reg = <VADC_DIE_TEMP>;
			};
			channel@9 {
				reg = <VADC_REF_625MV>;
			};
			channel@a {
				reg = <VADC_REF_1250MV>;
			};
			channel@e {
				reg = <VADC_GND_REF>;
			};
			channel@f {
				reg = <VADC_VDD_VADC>;
			};
		};

		pm8916_bms: battery@4000 {
			compatible = "qcom,pm8916-bms-vm";
			reg = <0x4000>;
			interrupts = <0x0 0x40 0 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 1 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 2 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 3 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 4 IRQ_TYPE_EDGE_RISING>,
				     <0x0 0x40 5 IRQ_TYPE_EDGE_RISING>;
			interrupt-names = "cv_leave",
					  "cv_enter",
					  "ocv_good",
					  "ocv_thr",
					  "fifo",
					  "state_chg";

			status = "disabled";
		};

		rtc@6000 {
			compatible = "qcom,pm8941-rtc";
			reg = <0x6000>, <0x6100>;
			reg-names = "rtc", "alarm";
			interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
		};

		pm8916_mpps: mpps@a000 {
			compatible = "qcom,pm8916-mpp", "qcom,spmi-mpp";
			reg = <0xa000>;
			gpio-controller;
			#gpio-cells = <2>;
			gpio-ranges = <&pm8916_mpps 0 0 4>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};

		pm8916_gpios: gpio@c000 {
			compatible = "qcom,pm8916-gpio", "qcom,spmi-gpio";
			reg = <0xc000>;
			gpio-controller;
			gpio-ranges = <&pm8916_gpios 0 0 4>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pm8916_1: pmic@1 {
		compatible = "qcom,pm8916", "qcom,spmi-pmic";
		reg = <0x1 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8916_pwm: pwm {
			compatible = "qcom,pm8916-pwm";

			#pwm-cells = <2>;

			status = "disabled";
		};

		pm8916_vib: vibrator@c000 {
			compatible = "qcom,pm8916-vib";
			reg = <0xc000>;
			status = "disabled";
		};

		pm8916_codec: audio-codec@f000 {
			compatible = "qcom,pm8916-wcd-analog-codec";
			reg = <0xf000>;
			interrupt-parent = <&spmi_bus>;
			interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x2 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x3 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x4 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x5 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x6 IRQ_TYPE_NONE>,
				     <0x1 0xf0 0x7 IRQ_TYPE_NONE>,
				     <0x1 0xf1 0x0 IRQ_TYPE_NONE>,
				     <0x1 0xf1 0x1 IRQ_TYPE_NONE>,
				     <0x1 0xf1 0x2 IRQ_TYPE_NONE>,
				     <0x1 0xf1 0x3 IRQ_TYPE_NONE>,
				     <0x1 0xf1 0x4 IRQ_TYPE_NONE>,
				     <0x1 0xf1 0x5 IRQ_TYPE_NONE>;
			interrupt-names = "cdc_spk_cnp_int",
					  "cdc_spk_clip_int",
					  "cdc_spk_ocp_int",
					  "mbhc_ins_rem_det1",
					  "mbhc_but_rel_det",
					  "mbhc_but_press_det",
					  "mbhc_ins_rem_det",
					  "mbhc_switch_int",
					  "cdc_ear_ocp_int",
					  "cdc_hphr_ocp_int",
					  "cdc_hphl_ocp_det",
					  "cdc_ear_cnp_int",
					  "cdc_hphr_cnp_int",
					  "cdc_hphl_cnp_int";
			#sound-dai-cells = <1>;
			status = "disabled";
		};
	};
};
