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

&spmi_bus {

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

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

		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>;
			};

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

		pm8916_gpios: gpios@c000 {
			compatible = "qcom,pm8916-gpio";
			reg = <0xc000>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
				     <0 0xc1 0 IRQ_TYPE_NONE>,
				     <0 0xc2 0 IRQ_TYPE_NONE>,
				     <0 0xc3 0 IRQ_TYPE_NONE>;
		};

		pm8916_mpps: mpps@a000 {
			compatible = "qcom,pm8916-mpp";
			reg = <0xa000>;
			gpio-controller;
			#gpio-cells = <2>;
			interrupts = <0 0xa0 0 IRQ_TYPE_NONE>,
				     <0 0xa1 0 IRQ_TYPE_NONE>,
				     <0 0xa2 0 IRQ_TYPE_NONE>,
				     <0 0xa3 0 IRQ_TYPE_NONE>;
		};

		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: vadc@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>;

			usb_in {
				reg = <VADC_USBIN>;
				qcom,pre-scaling = <1 10>;
			};
			vph_pwr {
				reg = <VADC_VSYS>;
				qcom,pre-scaling = <1 3>;
			};
			die_temp {
				reg = <VADC_DIE_TEMP>;
			};
			ref_625mv {
				reg = <VADC_REF_625MV>;
			};
			ref_1250v {
				reg = <VADC_REF_1250MV>;
			};
			ref_gnd {
				reg = <VADC_GND_REF>;
			};
			ref_vdd {
				reg = <VADC_VDD_VADC>;
			};
		};
	};

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

		wcd_codec: codec@f000 {
			compatible = "qcom,pm8916-wcd-analog-codec";
			reg = <0xf000 0x200>;
			reg-names = "pmic-codec-core";
			clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
			clock-names = "mclk";
			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";
			vdd-cdc-io-supply = <&pm8916_l5>;
			vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
			vdd-micbias-supply = <&pm8916_l13>;
			#sound-dai-cells = <1>;
		};
	};
};
