162306a36Sopenharmony_ci// SPDX-License-Identifier: BSD-3-Clause
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2021, Linaro Limited
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
762306a36Sopenharmony_ci#include <dt-bindings/input/linux-event-codes.h>
862306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
962306a36Sopenharmony_ci#include <dt-bindings/spmi/spmi.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/* (Sadly) this PMIC can be configured to be at different SIDs */
1262306a36Sopenharmony_ci#ifndef PMK8350_SID
1362306a36Sopenharmony_ci	#define PMK8350_SID 0
1462306a36Sopenharmony_ci#endif
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci/ {
1762306a36Sopenharmony_ci	reboot-mode {
1862306a36Sopenharmony_ci		compatible = "nvmem-reboot-mode";
1962306a36Sopenharmony_ci		nvmem-cells = <&reboot_reason>;
2062306a36Sopenharmony_ci		nvmem-cell-names = "reboot-mode";
2162306a36Sopenharmony_ci		mode-recovery = <0x01>;
2262306a36Sopenharmony_ci		mode-bootloader = <0x02>;
2362306a36Sopenharmony_ci	};
2462306a36Sopenharmony_ci};
2562306a36Sopenharmony_ci	
2662306a36Sopenharmony_ci&spmi_bus {
2762306a36Sopenharmony_ci	pmk8350: pmic@PMK8350_SID {
2862306a36Sopenharmony_ci		compatible = "qcom,pmk8350", "qcom,spmi-pmic";
2962306a36Sopenharmony_ci		reg = <PMK8350_SID SPMI_USID>;
3062306a36Sopenharmony_ci		#address-cells = <1>;
3162306a36Sopenharmony_ci		#size-cells = <0>;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci		pmk8350_pon: pon@1300 {
3462306a36Sopenharmony_ci			compatible = "qcom,pmk8350-pon";
3562306a36Sopenharmony_ci			reg = <0x1300>, <0x800>;
3662306a36Sopenharmony_ci			reg-names = "hlos", "pbs";
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci			pon_pwrkey: pwrkey {
3962306a36Sopenharmony_ci				compatible = "qcom,pmk8350-pwrkey";
4062306a36Sopenharmony_ci				interrupts = <PMK8350_SID 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
4162306a36Sopenharmony_ci				linux,code = <KEY_POWER>;
4262306a36Sopenharmony_ci				status = "disabled";
4362306a36Sopenharmony_ci			};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci			pon_resin: resin {
4662306a36Sopenharmony_ci				compatible = "qcom,pmk8350-resin";
4762306a36Sopenharmony_ci				interrupts = <PMK8350_SID 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
4862306a36Sopenharmony_ci				status = "disabled";
4962306a36Sopenharmony_ci			};
5062306a36Sopenharmony_ci		};
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci		pmk8350_vadc: adc@3100 {
5362306a36Sopenharmony_ci			compatible = "qcom,spmi-adc7";
5462306a36Sopenharmony_ci			reg = <0x3100>;
5562306a36Sopenharmony_ci			#address-cells = <1>;
5662306a36Sopenharmony_ci			#size-cells = <0>;
5762306a36Sopenharmony_ci			interrupts = <PMK8350_SID 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
5862306a36Sopenharmony_ci			#io-channel-cells = <1>;
5962306a36Sopenharmony_ci		};
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci		pmk8350_adc_tm: adc-tm@3400 {
6262306a36Sopenharmony_ci			compatible = "qcom,spmi-adc-tm5-gen2";
6362306a36Sopenharmony_ci			reg = <0x3400>;
6462306a36Sopenharmony_ci			interrupts = <PMK8350_SID 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
6562306a36Sopenharmony_ci			#address-cells = <1>;
6662306a36Sopenharmony_ci			#size-cells = <0>;
6762306a36Sopenharmony_ci			#thermal-sensor-cells = <1>;
6862306a36Sopenharmony_ci			status = "disabled";
6962306a36Sopenharmony_ci		};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci		pmk8350_rtc: rtc@6100 {
7262306a36Sopenharmony_ci			compatible = "qcom,pmk8350-rtc";
7362306a36Sopenharmony_ci			reg = <0x6100>, <0x6200>;
7462306a36Sopenharmony_ci			reg-names = "rtc", "alarm";
7562306a36Sopenharmony_ci			interrupts = <PMK8350_SID 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
7662306a36Sopenharmony_ci			status = "disabled";
7762306a36Sopenharmony_ci		};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci		pmk8350_sdam_2: nvram@7100 {
8062306a36Sopenharmony_ci			compatible = "qcom,spmi-sdam";
8162306a36Sopenharmony_ci			reg = <0x7100>;
8262306a36Sopenharmony_ci			#address-cells = <1>;
8362306a36Sopenharmony_ci			#size-cells = <1>;
8462306a36Sopenharmony_ci			ranges = <0 0x7100 0x100>;
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci			reboot_reason: reboot-reason@48 {
8762306a36Sopenharmony_ci				reg = <0x48 0x1>;
8862306a36Sopenharmony_ci				bits = <1 7>;
8962306a36Sopenharmony_ci			};
9062306a36Sopenharmony_ci		};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci		pmk8350_gpios: gpio@b000 {
9362306a36Sopenharmony_ci			compatible = "qcom,pmk8350-gpio", "qcom,spmi-gpio";
9462306a36Sopenharmony_ci			reg = <0xb000>;
9562306a36Sopenharmony_ci			gpio-controller;
9662306a36Sopenharmony_ci			gpio-ranges = <&pmk8350_gpios 0 0 4>;
9762306a36Sopenharmony_ci			#gpio-cells = <2>;
9862306a36Sopenharmony_ci			interrupt-controller;
9962306a36Sopenharmony_ci			#interrupt-cells = <2>;
10062306a36Sopenharmony_ci		};
10162306a36Sopenharmony_ci	};
10262306a36Sopenharmony_ci};
103