// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2024, Linaro Limited
 */

#include <dt-bindings/input/input.h>
#include <dt-bindings/input/linux-event-codes.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>

/ {
	thermal-zones {
		pm8550-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm8550_temp_alarm>;

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

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

		pm8550ve-2-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm8550ve_2_temp_alarm>;

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

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

		pmc8380-3-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pmc8380_3_temp_alarm>;

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

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

		pmc8380-4-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pmc8380_4_temp_alarm>;

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

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

		pmc8380-5-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pmc8380_5_temp_alarm>;

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

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

		pmc8380-6-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pmc8380_6_temp_alarm>;

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

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

		pm8550ve-8-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm8550ve_8_temp_alarm>;

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

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

		pm8550ve-9-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm8550ve_9_temp_alarm>;

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

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

		pm8010-thermal {
			polling-delay-passive = <100>;

			thermal-sensors = <&pm8010_temp_alarm>;

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

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

&spmi_bus0 {
	/* PMK8380 */
	pmk8550: pmic@0 {
		compatible = "qcom,pm8550", "qcom,spmi-pmic";
		reg = <0x0 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmk8550_pon: pon@1300 {
			compatible = "qcom,pmk8350-pon";
			reg = <0x1300>, <0x800>;
			reg-names = "hlos", "pbs";

			pon_pwrkey: pwrkey {
				compatible = "qcom,pmk8350-pwrkey";
				interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
				linux,code = <KEY_POWER>;
			};

			pon_resin: resin {
				compatible = "qcom,pmk8350-resin";
				interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
				status = "disabled";
			};
		};

		pmk8550_rtc: rtc@6100 {
			compatible = "qcom,pmk8350-rtc";
			reg = <0x6100>, <0x6200>;
			reg-names = "rtc", "alarm";
			interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
			/* Not yet sure what blocks access */
			status = "reserved";
		};

		pmk8550_sdam_2: nvram@7100 {
			compatible = "qcom,spmi-sdam";
			reg = <0x7100>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0x7100 0x100>;

			reboot_reason: reboot-reason@48 {
				reg = <0x48 0x1>;
				bits = <1 7>;
			};
		};

		pmk8550_gpios: gpio@8800 {
			compatible = "qcom,pmk8550-gpio", "qcom,spmi-gpio";
			reg = <0xb800>;
			gpio-controller;
			gpio-ranges = <&pmk8550_gpios 0 0 6>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};

		pmk8550_pwm: pwm {
			compatible = "qcom,pmk8550-pwm";

			#pwm-cells = <2>;

			status = "disabled";
		};
	};

	/* PMC8380C */
	pm8550: pmic@1 {
		compatible = "qcom,pm8550", "qcom,spmi-pmic";
		reg = <0x1 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8550_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pm8550_gpios: gpio@8800 {
			compatible = "qcom,pm8550-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pm8550_gpios 0 0 12>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};

		pm8550_flash: led-controller@ee00 {
			compatible = "qcom,pm8550-flash-led", "qcom,spmi-flash-led";
			reg = <0xee00>;
			status = "disabled";
		};

		pm8550_pwm: pwm {
			compatible = "qcom,pm8550-pwm", "qcom,pm8350c-pwm";
			#pwm-cells = <2>;

			status = "disabled";
		};
	};

	/* PMC8380VE */
	pm8550ve_2: pmic@2 {
		compatible = "qcom,pm8550", "qcom,spmi-pmic";
		reg = <0x2 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8550ve_2_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pm8550ve_2_gpios: gpio@8800 {
			compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pm8550ve_2_gpios 0 0 8>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	/* PMC8380 is actually not a PM8550 series rebrand */
	pmc8380_3: pmic@3 {
		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
		reg = <0x3 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmc8380_3_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pmc8380_3_gpios: gpio@8800 {
			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8380_3_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pmc8380_4: pmic@4 {
		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
		reg = <0x4 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmc8380_4_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pmc8380_4_gpios: gpio@8800 {
			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8380_4_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pmc8380_5: pmic@5 {
		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
		reg = <0x5 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmc8380_5_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pmc8380_5_gpios: gpio@8800 {
			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8380_5_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pmc8380_6: pmic@6 {
		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
		reg = <0x6 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pmc8380_6_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x6 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pmc8380_6_gpios: gpio@8800 {
			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pmc8380_6_gpios 0 0 10>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	/* PMC8380VE */
	pm8550ve_8: pmic@8 {
		compatible = "qcom,pm8550", "qcom,spmi-pmic";
		reg = <0x8 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8550ve_8_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x8 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pm8550ve_8_gpios: gpio@8800 {
			compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pm8550ve_8_gpios 0 0 8>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	/* PMC8380VE */
	pm8550ve_9: pmic@9 {
		compatible = "qcom,pm8550", "qcom,spmi-pmic";
		reg = <0x9 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8550ve_9_temp_alarm: temp-alarm@a00 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0xa00>;
			interrupts = <0x9 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};

		pm8550ve_9_gpios: gpio@8800 {
			compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
			reg = <0x8800>;
			gpio-controller;
			gpio-ranges = <&pm8550ve_9_gpios 0 0 8>;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	pm8010: pmic@c {
		compatible = "qcom,pm8010", "qcom,spmi-pmic";
		reg = <0xc SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		pm8010_temp_alarm: temp-alarm@2400 {
			compatible = "qcom,spmi-temp-alarm";
			reg = <0x2400>;
			interrupts = <0xc 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
			#thermal-sensor-cells = <0>;
		};
	};
};

&spmi_bus1 {
	smb2360_0: pmic@7 {
		compatible = "qcom,smb2360", "qcom,spmi-pmic";
		reg = <0x7 SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		smb2360_0_eusb2_repeater: phy@fd00 {
			compatible = "qcom,smb2360-eusb2-repeater";
			reg = <0xfd00>;
			#phy-cells = <0>;
		};
	};

	smb2360_1: pmic@a {
		compatible = "qcom,smb2360", "qcom,spmi-pmic";
		reg = <0xa SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		smb2360_1_eusb2_repeater: phy@fd00 {
			compatible = "qcom,smb2360-eusb2-repeater";
			reg = <0xfd00>;
			#phy-cells = <0>;
		};
	};

	smb2360_2: pmic@b {
		compatible = "qcom,smb2360", "qcom,spmi-pmic";
		reg = <0xb SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		status = "disabled";

		smb2360_2_eusb2_repeater: phy@fd00 {
			compatible = "qcom,smb2360-eusb2-repeater";
			reg = <0xfd00>;
			#phy-cells = <0>;
		};
	};

	smb2360_3: pmic@c {
		compatible = "qcom,smb2360", "qcom,spmi-pmic";
		reg = <0xc SPMI_USID>;
		#address-cells = <1>;
		#size-cells = <0>;

		status = "disabled";

		smb2360_3_eusb2_repeater: phy@fd00 {
			compatible = "qcom,smb2360-eusb2-repeater";
			reg = <0xfd00>;
			#phy-cells = <0>;
		};
	};
};
