1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, Linaro Limited
4 */
5
6#include <dt-bindings/input/input.h>
7#include <dt-bindings/input/linux-event-codes.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/spmi/spmi.h>
10
11/* (Sadly) this PMIC can be configured to be at different SIDs */
12#ifndef PMK8350_SID
13	#define PMK8350_SID 0
14#endif
15
16/ {
17	reboot-mode {
18		compatible = "nvmem-reboot-mode";
19		nvmem-cells = <&reboot_reason>;
20		nvmem-cell-names = "reboot-mode";
21		mode-recovery = <0x01>;
22		mode-bootloader = <0x02>;
23	};
24};
25
26&spmi_bus {
27	pmk8350: pmic@PMK8350_SID {
28		compatible = "qcom,pmk8350", "qcom,spmi-pmic";
29		reg = <PMK8350_SID SPMI_USID>;
30		#address-cells = <1>;
31		#size-cells = <0>;
32
33		pmk8350_pon: pon@1300 {
34			compatible = "qcom,pmk8350-pon";
35			reg = <0x1300>, <0x800>;
36			reg-names = "hlos", "pbs";
37
38			pon_pwrkey: pwrkey {
39				compatible = "qcom,pmk8350-pwrkey";
40				interrupts = <PMK8350_SID 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
41				linux,code = <KEY_POWER>;
42				status = "disabled";
43			};
44
45			pon_resin: resin {
46				compatible = "qcom,pmk8350-resin";
47				interrupts = <PMK8350_SID 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
48				status = "disabled";
49			};
50		};
51
52		pmk8350_vadc: adc@3100 {
53			compatible = "qcom,spmi-adc7";
54			reg = <0x3100>;
55			#address-cells = <1>;
56			#size-cells = <0>;
57			interrupts = <PMK8350_SID 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
58			#io-channel-cells = <1>;
59		};
60
61		pmk8350_adc_tm: adc-tm@3400 {
62			compatible = "qcom,spmi-adc-tm5-gen2";
63			reg = <0x3400>;
64			interrupts = <PMK8350_SID 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
65			#address-cells = <1>;
66			#size-cells = <0>;
67			#thermal-sensor-cells = <1>;
68			status = "disabled";
69		};
70
71		pmk8350_rtc: rtc@6100 {
72			compatible = "qcom,pmk8350-rtc";
73			reg = <0x6100>, <0x6200>;
74			reg-names = "rtc", "alarm";
75			interrupts = <PMK8350_SID 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
76			status = "disabled";
77		};
78
79		pmk8350_sdam_2: nvram@7100 {
80			compatible = "qcom,spmi-sdam";
81			reg = <0x7100>;
82			#address-cells = <1>;
83			#size-cells = <1>;
84			ranges = <0 0x7100 0x100>;
85
86			reboot_reason: reboot-reason@48 {
87				reg = <0x48 0x1>;
88				bits = <1 7>;
89			};
90		};
91
92		pmk8350_gpios: gpio@b000 {
93			compatible = "qcom,pmk8350-gpio", "qcom,spmi-gpio";
94			reg = <0xb000>;
95			gpio-controller;
96			gpio-ranges = <&pmk8350_gpios 0 0 4>;
97			#gpio-cells = <2>;
98			interrupt-controller;
99			#interrupt-cells = <2>;
100		};
101	};
102};
103