Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / pmk8350.dtsi
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 };