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

&spmi_bus {

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

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

		pwrkey@800 {
			compatible = "qcom,pm8941-pwrkey";
			reg = <0x800>;
			interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
			debounce = <15625>;
			bias-pull-up;
		};

		pma8084_gpios: gpios@c000 {
			compatible = "qcom,pma8084-gpio", "qcom,spmi-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>,
				     <0 0xc4 0 IRQ_TYPE_NONE>,
				     <0 0xc5 0 IRQ_TYPE_NONE>,
				     <0 0xc6 0 IRQ_TYPE_NONE>,
				     <0 0xc7 0 IRQ_TYPE_NONE>,
				     <0 0xc8 0 IRQ_TYPE_NONE>,
				     <0 0xc9 0 IRQ_TYPE_NONE>,
				     <0 0xca 0 IRQ_TYPE_NONE>,
				     <0 0xcb 0 IRQ_TYPE_NONE>,
				     <0 0xcc 0 IRQ_TYPE_NONE>,
				     <0 0xcd 0 IRQ_TYPE_NONE>,
				     <0 0xce 0 IRQ_TYPE_NONE>,
				     <0 0xcf 0 IRQ_TYPE_NONE>,
				     <0 0xd0 0 IRQ_TYPE_NONE>,
				     <0 0xd1 0 IRQ_TYPE_NONE>,
				     <0 0xd2 0 IRQ_TYPE_NONE>,
				     <0 0xd3 0 IRQ_TYPE_NONE>,
				     <0 0xd4 0 IRQ_TYPE_NONE>,
				     <0 0xd5 0 IRQ_TYPE_NONE>;
		};

		pma8084_mpps: mpps@a000 {
			compatible = "qcom,pma8084-mpp", "qcom,spmi-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>,
				     <0 0xa4 0 IRQ_TYPE_NONE>,
				     <0 0xa5 0 IRQ_TYPE_NONE>,
				     <0 0xa6 0 IRQ_TYPE_NONE>,
				     <0 0xa7 0 IRQ_TYPE_NONE>;
		};

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

		pma8084_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>;
			io-channel-ranges;

			die_temp {
				reg = <VADC_DIE_TEMP>;
			};
			ref_625mv {
				reg = <VADC_REF_625MV>;
			};
			ref_1250v {
				reg = <VADC_REF_1250MV>;
			};
			ref_buf_625mv {
				reg = <VADC_SPARE1>;
			};
			ref_gnd {
				reg = <VADC_GND_REF>;
			};
			ref_vdd {
				reg = <VADC_VDD_VADC>;
			};
		};
	};

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