// 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 {

	pm8941_0: pm8941@0 {
		compatible = "qcom,pm8941", "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;
		};

		usb_id: misc@900 {
			compatible = "qcom,pm8941-misc";
			reg = <0x900>;
			interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "usb_id";
		};

		smbb: charger@1000 {
			compatible = "qcom,pm8941-charger";
			reg = <0x1000>;
			interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
				     <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
			interrupt-names = "chg-done",
					  "chg-fast",
					  "chg-trkl",
					  "bat-temp-ok",
					  "bat-present",
					  "chg-gone",
					  "usb-valid",
					  "dc-valid";

			usb-otg-in-supply = <&pm8941_5vs1>;

			chg_otg: otg-vbus { };
		};

		pm8941_gpios: gpios@c000 {
			compatible = "qcom,pm8941-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>,
				     <0 0xd6 0 IRQ_TYPE_NONE>,
				     <0 0xd7 0 IRQ_TYPE_NONE>,
				     <0 0xd8 0 IRQ_TYPE_NONE>,
				     <0 0xd9 0 IRQ_TYPE_NONE>,
				     <0 0xda 0 IRQ_TYPE_NONE>,
				     <0 0xdb 0 IRQ_TYPE_NONE>,
				     <0 0xdc 0 IRQ_TYPE_NONE>,
				     <0 0xdd 0 IRQ_TYPE_NONE>,
				     <0 0xde 0 IRQ_TYPE_NONE>,
				     <0 0xdf 0 IRQ_TYPE_NONE>,
				     <0 0xe0 0 IRQ_TYPE_NONE>,
				     <0 0xe1 0 IRQ_TYPE_NONE>,
				     <0 0xe2 0 IRQ_TYPE_NONE>,
				     <0 0xe3 0 IRQ_TYPE_NONE>;

			boost_bypass_n_pin: boost-bypass {
				pins = "gpio21";
				function = "normal";
			};
		};

		pm8941_mpps: mpps@a000 {
			compatible = "qcom,pm8941-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>;
		};

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

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

			bat_temp {
				reg = <VADC_LR_MUX1_BAT_THERM>;
			};
			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>;
			};
			vbat_sns {
				reg = <VADC_VBAT_SNS>;
			};
		};

		pm8941_iadc: iadc@3600 {
			compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc";
			reg = <0x3600>;
			interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
			qcom,external-resistor-micro-ohms = <10000>;
		};

		coincell@2800 {
			compatible = "qcom,pm8941-coincell";
			reg = <0x2800>;
			status = "disabled";
		};
	};

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

		pm8941_wled: wled@d800 {
			compatible = "qcom,pm8941-wled";
			reg = <0xd800>;
			label = "backlight";

			status = "disabled";
		};

		regulators {
			compatible = "qcom,pm8941-regulators";
			interrupts = <0x1 0x83 0x2 0>, <0x1 0x84 0x2 0>;
			interrupt-names = "ocp-5vs1", "ocp-5vs2";
			vin_5vs-supply = <&pm8941_5v>;

			pm8941_5v: s4 {
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;
				regulator-enable-ramp-delay = <500>;
			};

			pm8941_5vs1: 5vs1 {
				regulator-enable-ramp-delay = <1000>;
				regulator-pull-down;
				regulator-over-current-protection;
				qcom,ocp-max-retries = <10>;
				qcom,ocp-retry-delay = <30>;
				qcom,vs-soft-start-strength = <0>;
				regulator-initial-mode = <1>;
			};
		};
	};
};
