xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/pm7250b.dtsi (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
111975b9bSLuca Weiss// SPDX-License-Identifier: BSD-3-Clause
211975b9bSLuca Weiss/*
311975b9bSLuca Weiss * Copyright (C) 2022 Luca Weiss <luca.weiss@fairphone.com>
411975b9bSLuca Weiss */
511975b9bSLuca Weiss
683022f64SLuca Weiss#include <dt-bindings/iio/qcom,spmi-vadc.h>
711975b9bSLuca Weiss#include <dt-bindings/interrupt-controller/irq.h>
811975b9bSLuca Weiss#include <dt-bindings/spmi/spmi.h>
911975b9bSLuca Weiss
1011975b9bSLuca Weiss/ {
1111975b9bSLuca Weiss	thermal-zones {
1211975b9bSLuca Weiss		pm7250b-thermal {
1311975b9bSLuca Weiss			polling-delay-passive = <100>;
1411975b9bSLuca Weiss
1511975b9bSLuca Weiss			thermal-sensors = <&pm7250b_temp>;
1611975b9bSLuca Weiss
1711975b9bSLuca Weiss			trips {
1811975b9bSLuca Weiss				trip0 {
1911975b9bSLuca Weiss					temperature = <95000>;
2011975b9bSLuca Weiss					hysteresis = <0>;
2111975b9bSLuca Weiss					type = "passive";
2211975b9bSLuca Weiss				};
2311975b9bSLuca Weiss
2411975b9bSLuca Weiss				trip1 {
2511975b9bSLuca Weiss					temperature = <115000>;
2611975b9bSLuca Weiss					hysteresis = <0>;
2711975b9bSLuca Weiss					type = "hot";
2811975b9bSLuca Weiss				};
2911975b9bSLuca Weiss
3011975b9bSLuca Weiss				trip2 {
3111975b9bSLuca Weiss					temperature = <145000>;
3211975b9bSLuca Weiss					hysteresis = <0>;
3311975b9bSLuca Weiss					type = "critical";
3411975b9bSLuca Weiss				};
3511975b9bSLuca Weiss			};
3611975b9bSLuca Weiss		};
3711975b9bSLuca Weiss	};
3811975b9bSLuca Weiss};
3911975b9bSLuca Weiss
4011975b9bSLuca Weiss&spmi_bus {
418e2d56f6SLuca Weiss	pmic@PM7250B_SID {
4211975b9bSLuca Weiss		compatible = "qcom,pm7250b", "qcom,spmi-pmic";
438e2d56f6SLuca Weiss		reg = <PM7250B_SID SPMI_USID>;
4411975b9bSLuca Weiss		#address-cells = <1>;
4511975b9bSLuca Weiss		#size-cells = <0>;
4611975b9bSLuca Weiss
4737ff5d0dSLuca Weiss		pm7250b_vbus: usb-vbus-regulator@1100 {
4837ff5d0dSLuca Weiss			compatible = "qcom,pm7250b-vbus-reg", "qcom,pm8150b-vbus-reg";
4937ff5d0dSLuca Weiss			reg = <0x1100>;
5037ff5d0dSLuca Weiss			status = "disabled";
5137ff5d0dSLuca Weiss		};
5237ff5d0dSLuca Weiss
53*6b5b15a1SLuca Weiss		pm7250b_typec: typec@1500 {
54*6b5b15a1SLuca Weiss			compatible = "qcom,pm7250b-typec", "qcom,pm8150b-typec";
55*6b5b15a1SLuca Weiss			reg = <0x1500>,
56*6b5b15a1SLuca Weiss			      <0x1700>;
57*6b5b15a1SLuca Weiss			interrupts = <PM7250B_SID 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
58*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
59*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
60*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
61*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
62*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
63*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
64*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
65*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
66*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
67*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
68*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
69*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
70*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
71*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
72*6b5b15a1SLuca Weiss				     <PM7250B_SID 0x17 0x07 IRQ_TYPE_EDGE_RISING>;
73*6b5b15a1SLuca Weiss			interrupt-names = "or-rid-detect-change",
74*6b5b15a1SLuca Weiss					  "vpd-detect",
75*6b5b15a1SLuca Weiss					  "cc-state-change",
76*6b5b15a1SLuca Weiss					  "vconn-oc",
77*6b5b15a1SLuca Weiss					  "vbus-change",
78*6b5b15a1SLuca Weiss					  "attach-detach",
79*6b5b15a1SLuca Weiss					  "legacy-cable-detect",
80*6b5b15a1SLuca Weiss					  "try-snk-src-detect",
81*6b5b15a1SLuca Weiss					  "sig-tx",
82*6b5b15a1SLuca Weiss					  "sig-rx",
83*6b5b15a1SLuca Weiss					  "msg-tx",
84*6b5b15a1SLuca Weiss					  "msg-rx",
85*6b5b15a1SLuca Weiss					  "msg-tx-failed",
86*6b5b15a1SLuca Weiss					  "msg-tx-discarded",
87*6b5b15a1SLuca Weiss					  "msg-rx-discarded",
88*6b5b15a1SLuca Weiss					  "fr-swap";
89*6b5b15a1SLuca Weiss			vdd-vbus-supply = <&pm7250b_vbus>;
90*6b5b15a1SLuca Weiss			status = "disabled";
91*6b5b15a1SLuca Weiss		};
92*6b5b15a1SLuca Weiss
9311975b9bSLuca Weiss		pm7250b_temp: temp-alarm@2400 {
9411975b9bSLuca Weiss			compatible = "qcom,spmi-temp-alarm";
9511975b9bSLuca Weiss			reg = <0x2400>;
968e2d56f6SLuca Weiss			interrupts = <PM7250B_SID 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
9711975b9bSLuca Weiss			io-channels = <&pm7250b_adc ADC5_DIE_TEMP>;
9811975b9bSLuca Weiss			io-channel-names = "thermal";
9911975b9bSLuca Weiss			#thermal-sensor-cells = <0>;
10011975b9bSLuca Weiss		};
10111975b9bSLuca Weiss
10211975b9bSLuca Weiss		pm7250b_adc: adc@3100 {
10311975b9bSLuca Weiss			compatible = "qcom,spmi-adc5";
10411975b9bSLuca Weiss			reg = <0x3100>;
10511975b9bSLuca Weiss			#address-cells = <1>;
10611975b9bSLuca Weiss			#size-cells = <0>;
10711975b9bSLuca Weiss			#io-channel-cells = <1>;
1088e2d56f6SLuca Weiss			interrupts = <PM7250B_SID 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
10911975b9bSLuca Weiss
11041c18552SMarijn Suijten			channel@0 {
11111975b9bSLuca Weiss				reg = <ADC5_REF_GND>;
11211975b9bSLuca Weiss				qcom,pre-scaling = <1 1>;
11311975b9bSLuca Weiss				label = "ref_gnd";
11411975b9bSLuca Weiss			};
11511975b9bSLuca Weiss
11641c18552SMarijn Suijten			channel@1 {
11711975b9bSLuca Weiss				reg = <ADC5_1P25VREF>;
11811975b9bSLuca Weiss				qcom,pre-scaling = <1 1>;
11911975b9bSLuca Weiss				label = "vref_1p25";
12011975b9bSLuca Weiss			};
12111975b9bSLuca Weiss
12241c18552SMarijn Suijten			channel@2 {
12311975b9bSLuca Weiss				reg = <ADC5_DIE_TEMP>;
12411975b9bSLuca Weiss				qcom,pre-scaling = <1 1>;
12511975b9bSLuca Weiss				label = "die_temp";
12611975b9bSLuca Weiss			};
12711975b9bSLuca Weiss
12841c18552SMarijn Suijten			channel@7 {
12911975b9bSLuca Weiss				reg = <ADC5_USB_IN_I>;
13011975b9bSLuca Weiss				qcom,pre-scaling = <1 1>;
13111975b9bSLuca Weiss				label = "usb_in_i_uv";
13211975b9bSLuca Weiss			};
13311975b9bSLuca Weiss
13441c18552SMarijn Suijten			channel@8 {
13511975b9bSLuca Weiss				reg = <ADC5_USB_IN_V_16>;
13611975b9bSLuca Weiss				qcom,pre-scaling = <1 16>;
13711975b9bSLuca Weiss				label = "usb_in_v_div_16";
13811975b9bSLuca Weiss			};
13911975b9bSLuca Weiss
14041c18552SMarijn Suijten			channel@9 {
14111975b9bSLuca Weiss				reg = <ADC5_CHG_TEMP>;
14211975b9bSLuca Weiss				qcom,pre-scaling = <1 1>;
14311975b9bSLuca Weiss				label = "chg_temp";
14411975b9bSLuca Weiss			};
14511975b9bSLuca Weiss
14641c18552SMarijn Suijten			channel@e {
14711975b9bSLuca Weiss				reg = <ADC5_AMUX_THM2>;
14811975b9bSLuca Weiss				qcom,hw-settle-time = <200>;
14911975b9bSLuca Weiss				qcom,pre-scaling = <1 1>;
15011975b9bSLuca Weiss				label = "smb1390_therm";
15111975b9bSLuca Weiss			};
15211975b9bSLuca Weiss
15341c18552SMarijn Suijten			channel@1e {
15411975b9bSLuca Weiss				reg = <ADC5_MID_CHG_DIV6>;
15511975b9bSLuca Weiss				qcom,pre-scaling = <1 6>;
15611975b9bSLuca Weiss				label = "chg_mid";
15711975b9bSLuca Weiss			};
15811975b9bSLuca Weiss
15941c18552SMarijn Suijten			channel@4b {
1607592ba4dSLuca Weiss				reg = <ADC5_BAT_ID_100K_PU>;
1617592ba4dSLuca Weiss				qcom,hw-settle-time = <200>;
1627592ba4dSLuca Weiss				qcom,pre-scaling = <1 1>;
1637592ba4dSLuca Weiss				qcom,ratiometric;
1647592ba4dSLuca Weiss				label = "bat_id";
1657592ba4dSLuca Weiss			};
1667592ba4dSLuca Weiss
16741c18552SMarijn Suijten			channel@83 {
16811975b9bSLuca Weiss				reg = <ADC5_VPH_PWR>;
16911975b9bSLuca Weiss				qcom,pre-scaling = <1 3>;
17011975b9bSLuca Weiss				label = "vph_pwr";
17111975b9bSLuca Weiss			};
17211975b9bSLuca Weiss
17341c18552SMarijn Suijten			channel@84 {
17411975b9bSLuca Weiss				reg = <ADC5_VBAT_SNS>;
17511975b9bSLuca Weiss				qcom,pre-scaling = <1 3>;
17611975b9bSLuca Weiss				label = "vbat_sns";
17711975b9bSLuca Weiss			};
17811975b9bSLuca Weiss
17941c18552SMarijn Suijten			channel@99 {
18011975b9bSLuca Weiss				reg = <ADC5_SBUx>;
18111975b9bSLuca Weiss				qcom,pre-scaling = <1 3>;
18211975b9bSLuca Weiss				label = "chg_sbux";
18311975b9bSLuca Weiss			};
18411975b9bSLuca Weiss		};
18511975b9bSLuca Weiss
18611975b9bSLuca Weiss		pm7250b_adc_tm: adc-tm@3500 {
18711975b9bSLuca Weiss			compatible = "qcom,spmi-adc-tm5";
18811975b9bSLuca Weiss			reg = <0x3500>;
1898e2d56f6SLuca Weiss			interrupts = <PM7250B_SID 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
19011975b9bSLuca Weiss			#thermal-sensor-cells = <1>;
19111975b9bSLuca Weiss			#address-cells = <1>;
19211975b9bSLuca Weiss			#size-cells = <0>;
19311975b9bSLuca Weiss			status = "disabled";
19411975b9bSLuca Weiss		};
195e99a7a0cSRohit Agarwal
1966cd86217SLuca Weiss		pm7250b_gpios: gpio@c000 {
197e99a7a0cSRohit Agarwal			compatible = "qcom,pm7250b-gpio", "qcom,spmi-gpio";
198e99a7a0cSRohit Agarwal			reg = <0xc000>;
199e99a7a0cSRohit Agarwal			gpio-controller;
200e99a7a0cSRohit Agarwal			gpio-ranges = <&pm7250b_gpios 0 0 12>;
201e99a7a0cSRohit Agarwal			#gpio-cells = <2>;
202e99a7a0cSRohit Agarwal			interrupt-controller;
203e99a7a0cSRohit Agarwal			#interrupt-cells = <2>;
204e99a7a0cSRohit Agarwal		};
20511975b9bSLuca Weiss	};
20611975b9bSLuca Weiss
2078e2d56f6SLuca Weiss	pmic@PM7250B_SID1 {
20811975b9bSLuca Weiss		compatible = "qcom,pm7250b", "qcom,spmi-pmic";
2098e2d56f6SLuca Weiss		reg = <PM7250B_SID1 SPMI_USID>;
21011975b9bSLuca Weiss		#address-cells = <1>;
21111975b9bSLuca Weiss		#size-cells = <0>;
21211975b9bSLuca Weiss	};
21311975b9bSLuca Weiss};
214