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_1: nvram@7000 {
80			compatible = "qcom,spmi-sdam";
81			reg = <0x7000>;
82			#address-cells = <1>;
83			#size-cells = <1>;
84			ranges = <0 0x7000 0x100>;
85		};
86
87		pmk8350_sdam_2: nvram@7100 {
88			compatible = "qcom,spmi-sdam";
89			reg = <0x7100>;
90			#address-cells = <1>;
91			#size-cells = <1>;
92			ranges = <0 0x7100 0x100>;
93
94			reboot_reason: reboot-reason@48 {
95				reg = <0x48 0x1>;
96				bits = <1 7>;
97			};
98		};
99
100		pmk8350_sdam_5: nvram@7400 {
101			compatible = "qcom,spmi-sdam";
102			reg = <0x7400>;
103			#address-cells = <1>;
104			#size-cells = <1>;
105			ranges = <0 0x7400 0x100>;
106		};
107
108		pmk8350_sdam_13: nvram@7c00 {
109			compatible = "qcom,spmi-sdam";
110			reg = <0x7c00>;
111			#address-cells = <1>;
112			#size-cells = <1>;
113			ranges = <0 0x7c00 0x100>;
114		};
115
116		pmk8350_sdam_14: nvram@7d00 {
117			compatible = "qcom,spmi-sdam";
118			reg = <0x7d00>;
119			#address-cells = <1>;
120			#size-cells = <1>;
121			ranges = <0 0x7d00 0x100>;
122		};
123
124		pmk8350_sdam_21: nvram@8400 {
125			compatible = "qcom,spmi-sdam";
126			reg = <0x8400>;
127			#address-cells = <1>;
128			#size-cells = <1>;
129			ranges = <0 0x8400 0x100>;
130		};
131
132		pmk8350_sdam_22: nvram@8500 {
133			compatible = "qcom,spmi-sdam";
134			reg = <0x8500>;
135			#address-cells = <1>;
136			#size-cells = <1>;
137			ranges = <0 0x8500 0x100>;
138		};
139
140		pmk8350_sdam_23: nvram@8600 {
141			compatible = "qcom,spmi-sdam";
142			reg = <0x8600>;
143			#address-cells = <1>;
144			#size-cells = <1>;
145			ranges = <0 0x8600 0x100>;
146		};
147
148		pmk8350_sdam_41: nvram@9800 {
149			compatible = "qcom,spmi-sdam";
150			reg = <0x9800>;
151			#address-cells = <1>;
152			#size-cells = <1>;
153			ranges = <0 0x9800 0x100>;
154		};
155
156		pmk8350_sdam_46: nvram@9d00 {
157			compatible = "qcom,spmi-sdam";
158			reg = <0x9d00>;
159			#address-cells = <1>;
160			#size-cells = <1>;
161			ranges = <0 0x9d00 0x100>;
162		};
163
164		pmk8350_gpios: gpio@b000 {
165			compatible = "qcom,pmk8350-gpio", "qcom,spmi-gpio";
166			reg = <0xb000>;
167			gpio-controller;
168			gpio-ranges = <&pmk8350_gpios 0 0 4>;
169			#gpio-cells = <2>;
170			interrupt-controller;
171			#interrupt-cells = <2>;
172		};
173	};
174};
175