xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/pmi632.dtsi (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1a1f0f2ebSLuca Weiss// SPDX-License-Identifier: BSD-3-Clause
2a1f0f2ebSLuca Weiss/*
3a1f0f2ebSLuca Weiss * Copyright (C) 2023 Luca Weiss <luca@z3ntu.xyz>
4a1f0f2ebSLuca Weiss */
5a1f0f2ebSLuca Weiss
6a1f0f2ebSLuca Weiss#include <dt-bindings/iio/qcom,spmi-vadc.h>
7a1f0f2ebSLuca Weiss#include <dt-bindings/interrupt-controller/irq.h>
8a1f0f2ebSLuca Weiss#include <dt-bindings/spmi/spmi.h>
9a1f0f2ebSLuca Weiss
10a1f0f2ebSLuca Weiss/ {
11a1f0f2ebSLuca Weiss	thermal-zones {
12a1f0f2ebSLuca Weiss		pmi632-thermal {
13a1f0f2ebSLuca Weiss			polling-delay-passive = <100>;
14a1f0f2ebSLuca Weiss
15a1f0f2ebSLuca Weiss			thermal-sensors = <&pmi632_temp>;
16a1f0f2ebSLuca Weiss
17a1f0f2ebSLuca Weiss			trips {
18a1f0f2ebSLuca Weiss				trip0 {
19a1f0f2ebSLuca Weiss					temperature = <95000>;
20a1f0f2ebSLuca Weiss					hysteresis = <0>;
21a1f0f2ebSLuca Weiss					type = "passive";
22a1f0f2ebSLuca Weiss				};
23a1f0f2ebSLuca Weiss
24a1f0f2ebSLuca Weiss				trip1 {
25a1f0f2ebSLuca Weiss					temperature = <115000>;
26a1f0f2ebSLuca Weiss					hysteresis = <0>;
27a1f0f2ebSLuca Weiss					type = "hot";
28a1f0f2ebSLuca Weiss				};
29a1f0f2ebSLuca Weiss
30a1f0f2ebSLuca Weiss				trip2 {
31a1f0f2ebSLuca Weiss					temperature = <125000>;
32a1f0f2ebSLuca Weiss					hysteresis = <0>;
33a1f0f2ebSLuca Weiss					type = "critical";
34a1f0f2ebSLuca Weiss				};
35a1f0f2ebSLuca Weiss			};
36a1f0f2ebSLuca Weiss		};
37a1f0f2ebSLuca Weiss	};
38a1f0f2ebSLuca Weiss};
39a1f0f2ebSLuca Weiss
40a1f0f2ebSLuca Weiss&spmi_bus {
41a1f0f2ebSLuca Weiss	pmic@2 {
42a1f0f2ebSLuca Weiss		compatible = "qcom,pmi632", "qcom,spmi-pmic";
43a1f0f2ebSLuca Weiss		reg = <0x2 SPMI_USID>;
44a1f0f2ebSLuca Weiss		#address-cells = <1>;
45a1f0f2ebSLuca Weiss		#size-cells = <0>;
46a1f0f2ebSLuca Weiss
47f69b3e40SDmitry Baryshkov		pmi632_vbus: usb-vbus-regulator@1100 {
48f69b3e40SDmitry Baryshkov			compatible = "qcom,pmi632-vbus-reg", "qcom,pm8150b-vbus-reg";
49f69b3e40SDmitry Baryshkov			reg = <0x1100>;
50f69b3e40SDmitry Baryshkov			status = "disabled";
51f69b3e40SDmitry Baryshkov		};
52f69b3e40SDmitry Baryshkov
53f69b3e40SDmitry Baryshkov		pmi632_typec: typec@1500 {
54f69b3e40SDmitry Baryshkov			compatible = "qcom,pmi632-typec";
55f69b3e40SDmitry Baryshkov			reg = <0x1500>;
56f69b3e40SDmitry Baryshkov			interrupts = <0x2 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
57f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
58f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
59f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
60f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
61f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
62f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
63f69b3e40SDmitry Baryshkov				     <0x2 0x15 0x07 IRQ_TYPE_EDGE_RISING>;
64f69b3e40SDmitry Baryshkov			interrupt-names = "or-rid-detect-change",
65f69b3e40SDmitry Baryshkov					  "vpd-detect",
66f69b3e40SDmitry Baryshkov					  "cc-state-change",
67f69b3e40SDmitry Baryshkov					  "vconn-oc",
68f69b3e40SDmitry Baryshkov					  "vbus-change",
69f69b3e40SDmitry Baryshkov					  "attach-detach",
70f69b3e40SDmitry Baryshkov					  "legacy-cable-detect",
71f69b3e40SDmitry Baryshkov					  "try-snk-src-detect";
72f69b3e40SDmitry Baryshkov			vdd-vbus-supply = <&pmi632_vbus>;
73f69b3e40SDmitry Baryshkov
74f69b3e40SDmitry Baryshkov			status = "disabled";
75f69b3e40SDmitry Baryshkov		};
76f69b3e40SDmitry Baryshkov
77a1f0f2ebSLuca Weiss		pmi632_temp: temp-alarm@2400 {
78a1f0f2ebSLuca Weiss			compatible = "qcom,spmi-temp-alarm";
79a1f0f2ebSLuca Weiss			reg = <0x2400>;
80a1f0f2ebSLuca Weiss			interrupts = <0x2 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
81a1f0f2ebSLuca Weiss			#thermal-sensor-cells = <0>;
82a1f0f2ebSLuca Weiss		};
83a1f0f2ebSLuca Weiss
84a1f0f2ebSLuca Weiss		pmi632_adc: adc@3100 {
85a1f0f2ebSLuca Weiss			compatible = "qcom,spmi-adc5";
86a1f0f2ebSLuca Weiss			reg = <0x3100>;
87a1f0f2ebSLuca Weiss			#address-cells = <1>;
88a1f0f2ebSLuca Weiss			#size-cells = <0>;
89a1f0f2ebSLuca Weiss			#io-channel-cells = <1>;
90a1f0f2ebSLuca Weiss			interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
91a1f0f2ebSLuca Weiss
92a1f0f2ebSLuca Weiss			channel@0 {
93a1f0f2ebSLuca Weiss				reg = <ADC5_REF_GND>;
94a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 1>;
95a1f0f2ebSLuca Weiss				label = "ref_gnd";
96a1f0f2ebSLuca Weiss			};
97a1f0f2ebSLuca Weiss
98a1f0f2ebSLuca Weiss			channel@1 {
99a1f0f2ebSLuca Weiss				reg = <ADC5_1P25VREF>;
100a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 1>;
101a1f0f2ebSLuca Weiss				label = "vref_1p25";
102a1f0f2ebSLuca Weiss			};
103a1f0f2ebSLuca Weiss
104a1f0f2ebSLuca Weiss			channel@6 {
105a1f0f2ebSLuca Weiss				reg = <ADC5_DIE_TEMP>;
106a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 1>;
107a1f0f2ebSLuca Weiss				label = "die_temp";
108a1f0f2ebSLuca Weiss			};
109a1f0f2ebSLuca Weiss
110a1f0f2ebSLuca Weiss			channel@7 {
111a1f0f2ebSLuca Weiss				reg = <ADC5_USB_IN_I>;
112a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 1>;
113a1f0f2ebSLuca Weiss				label = "usb_in_i_uv";
114a1f0f2ebSLuca Weiss			};
115a1f0f2ebSLuca Weiss
116a1f0f2ebSLuca Weiss			channel@8 {
117a1f0f2ebSLuca Weiss				reg = <ADC5_USB_IN_V_16>;
118a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 16>;
119a1f0f2ebSLuca Weiss				label = "usb_in_v_div_16";
120a1f0f2ebSLuca Weiss			};
121a1f0f2ebSLuca Weiss
122a1f0f2ebSLuca Weiss			channel@9 {
123a1f0f2ebSLuca Weiss				reg = <ADC5_CHG_TEMP>;
124a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 1>;
125a1f0f2ebSLuca Weiss				label = "chg_temp";
126a1f0f2ebSLuca Weiss			};
127a1f0f2ebSLuca Weiss
128a1f0f2ebSLuca Weiss			channel@4b {
129a1f0f2ebSLuca Weiss				reg = <ADC5_BAT_ID_100K_PU>;
130a1f0f2ebSLuca Weiss				qcom,hw-settle-time = <200>;
131a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 1>;
132a1f0f2ebSLuca Weiss				qcom,ratiometric;
133a1f0f2ebSLuca Weiss				label = "bat_id";
134a1f0f2ebSLuca Weiss			};
135a1f0f2ebSLuca Weiss
136a1f0f2ebSLuca Weiss			channel@83 {
137a1f0f2ebSLuca Weiss				reg = <ADC5_VPH_PWR>;
138a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 3>;
139a1f0f2ebSLuca Weiss				label = "vph_pwr";
140a1f0f2ebSLuca Weiss			};
141a1f0f2ebSLuca Weiss
142a1f0f2ebSLuca Weiss			channel@84 {
143a1f0f2ebSLuca Weiss				reg = <ADC5_VBAT_SNS>;
144a1f0f2ebSLuca Weiss				qcom,pre-scaling = <1 3>;
145a1f0f2ebSLuca Weiss				label = "vbat_sns";
146a1f0f2ebSLuca Weiss			};
147a1f0f2ebSLuca Weiss		};
148a1f0f2ebSLuca Weiss
149a1f0f2ebSLuca Weiss		pmi632_adc_tm: adc-tm@3500 {
150a1f0f2ebSLuca Weiss			compatible = "qcom,spmi-adc-tm5";
151a1f0f2ebSLuca Weiss			reg = <0x3500>;
152a1f0f2ebSLuca Weiss			interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
153a1f0f2ebSLuca Weiss			#thermal-sensor-cells = <1>;
154a1f0f2ebSLuca Weiss			#address-cells = <1>;
155a1f0f2ebSLuca Weiss			#size-cells = <0>;
156a1f0f2ebSLuca Weiss			status = "disabled";
157a1f0f2ebSLuca Weiss		};
158a1f0f2ebSLuca Weiss
159dc145784SLuca Weiss		pmi632_pbs_client3: pbs@7400 {
160dc145784SLuca Weiss			compatible = "qcom,pmi632-pbs", "qcom,pbs";
161dc145784SLuca Weiss			reg = <0x7400>;
162dc145784SLuca Weiss		};
163dc145784SLuca Weiss
164a1f0f2ebSLuca Weiss		pmi632_sdam_7: nvram@b600 {
165a1f0f2ebSLuca Weiss			compatible = "qcom,spmi-sdam";
166a1f0f2ebSLuca Weiss			reg = <0xb600>;
167a1f0f2ebSLuca Weiss			#address-cells = <1>;
168a1f0f2ebSLuca Weiss			#size-cells = <1>;
169a1f0f2ebSLuca Weiss			ranges = <0 0xb600 0x100>;
170a1f0f2ebSLuca Weiss		};
171a1f0f2ebSLuca Weiss
172a1f0f2ebSLuca Weiss		pmi632_gpios: gpio@c000 {
173a1f0f2ebSLuca Weiss			compatible = "qcom,pmi632-gpio", "qcom,spmi-gpio";
174a1f0f2ebSLuca Weiss			reg = <0xc000>;
175a1f0f2ebSLuca Weiss			gpio-controller;
176a1f0f2ebSLuca Weiss			gpio-ranges = <&pmi632_gpios 0 0 8>;
177a1f0f2ebSLuca Weiss			#gpio-cells = <2>;
178a1f0f2ebSLuca Weiss			interrupt-controller;
179a1f0f2ebSLuca Weiss			#interrupt-cells = <2>;
180a1f0f2ebSLuca Weiss		};
181a1f0f2ebSLuca Weiss	};
182a1f0f2ebSLuca Weiss
183a1f0f2ebSLuca Weiss	pmic@3 {
184a1f0f2ebSLuca Weiss		compatible = "qcom,pmi632", "qcom,spmi-pmic";
185a1f0f2ebSLuca Weiss		reg = <0x3 SPMI_USID>;
186a1f0f2ebSLuca Weiss		#address-cells = <1>;
187a1f0f2ebSLuca Weiss		#size-cells = <0>;
188a1f0f2ebSLuca Weiss
189a1f0f2ebSLuca Weiss		pmi632_lpg: pwm {
190a1f0f2ebSLuca Weiss			compatible = "qcom,pmi632-lpg";
191a1f0f2ebSLuca Weiss
192dc145784SLuca Weiss			nvmem = <&pmi632_sdam_7>;
193dc145784SLuca Weiss			nvmem-names = "lpg_chan_sdam";
194dc145784SLuca Weiss			qcom,pbs = <&pmi632_pbs_client3>;
195dc145784SLuca Weiss
196a1f0f2ebSLuca Weiss			#address-cells = <1>;
197a1f0f2ebSLuca Weiss			#size-cells = <0>;
198a1f0f2ebSLuca Weiss			#pwm-cells = <2>;
199a1f0f2ebSLuca Weiss
200a1f0f2ebSLuca Weiss			status = "disabled";
201a1f0f2ebSLuca Weiss		};
202*bbb1dd64SLuca Weiss
203*bbb1dd64SLuca Weiss		pmi632_vib: vibrator@5700 {
204*bbb1dd64SLuca Weiss			compatible = "qcom,pmi632-vib";
205*bbb1dd64SLuca Weiss			reg = <0x5700>;
206*bbb1dd64SLuca Weiss			status = "disabled";
207*bbb1dd64SLuca Weiss		};
208a1f0f2ebSLuca Weiss	};
209a1f0f2ebSLuca Weiss};
210