xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/pm8916.dtsi (revision 8cc087a1eee9ec1ca9f7ac1e63ad51bdb5a682eb)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot#include <dt-bindings/iio/qcom,spmi-vadc.h>
3c66ec88fSEmmanuel Vadot#include <dt-bindings/input/linux-event-codes.h>
46be33864SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
5c66ec88fSEmmanuel Vadot#include <dt-bindings/spmi/spmi.h>
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadot&spmi_bus {
8c66ec88fSEmmanuel Vadot
96be33864SEmmanuel Vadot	pm8916_0: pmic@0 {
10c66ec88fSEmmanuel Vadot		compatible = "qcom,pm8916", "qcom,spmi-pmic";
11c66ec88fSEmmanuel Vadot		reg = <0x0 SPMI_USID>;
12c66ec88fSEmmanuel Vadot		#address-cells = <1>;
13c66ec88fSEmmanuel Vadot		#size-cells = <0>;
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadot		pon@800 {
16c66ec88fSEmmanuel Vadot			compatible = "qcom,pm8916-pon";
17c66ec88fSEmmanuel Vadot			reg = <0x800>;
18c66ec88fSEmmanuel Vadot			mode-bootloader = <0x2>;
19c66ec88fSEmmanuel Vadot			mode-recovery = <0x1>;
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot			pwrkey {
22c66ec88fSEmmanuel Vadot				compatible = "qcom,pm8941-pwrkey";
23c66ec88fSEmmanuel Vadot				interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
24c66ec88fSEmmanuel Vadot				debounce = <15625>;
25c66ec88fSEmmanuel Vadot				bias-pull-up;
26c66ec88fSEmmanuel Vadot				linux,code = <KEY_POWER>;
27c66ec88fSEmmanuel Vadot			};
28c66ec88fSEmmanuel Vadot
296be33864SEmmanuel Vadot			pm8916_resin: resin {
306be33864SEmmanuel Vadot				compatible = "qcom,pm8941-resin";
316be33864SEmmanuel Vadot				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
326be33864SEmmanuel Vadot				debounce = <15625>;
336be33864SEmmanuel Vadot				bias-pull-up;
346be33864SEmmanuel Vadot				status = "disabled";
356be33864SEmmanuel Vadot			};
366be33864SEmmanuel Vadot
37c66ec88fSEmmanuel Vadot			watchdog {
38c66ec88fSEmmanuel Vadot				compatible = "qcom,pm8916-wdt";
39c66ec88fSEmmanuel Vadot				interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
40c66ec88fSEmmanuel Vadot				timeout-sec = <60>;
41c66ec88fSEmmanuel Vadot			};
42c66ec88fSEmmanuel Vadot		};
43c66ec88fSEmmanuel Vadot
44*8cc087a1SEmmanuel Vadot		pm8916_usbin: extcon@1300 {
45*8cc087a1SEmmanuel Vadot			compatible = "qcom,pm8941-misc";
46*8cc087a1SEmmanuel Vadot			reg = <0x1300>;
47*8cc087a1SEmmanuel Vadot			interrupts = <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>;
48*8cc087a1SEmmanuel Vadot			interrupt-names = "usb_vbus";
49*8cc087a1SEmmanuel Vadot			status = "disabled";
50*8cc087a1SEmmanuel Vadot		};
51*8cc087a1SEmmanuel Vadot
526be33864SEmmanuel Vadot		pm8916_temp: temp-alarm@2400 {
536be33864SEmmanuel Vadot			compatible = "qcom,spmi-temp-alarm";
546be33864SEmmanuel Vadot			reg = <0x2400>;
556be33864SEmmanuel Vadot			interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
566be33864SEmmanuel Vadot			io-channels = <&pm8916_vadc VADC_DIE_TEMP>;
576be33864SEmmanuel Vadot			io-channel-names = "thermal";
586be33864SEmmanuel Vadot			#thermal-sensor-cells = <0>;
596be33864SEmmanuel Vadot		};
606be33864SEmmanuel Vadot
616be33864SEmmanuel Vadot		pm8916_vadc: adc@3100 {
626be33864SEmmanuel Vadot			compatible = "qcom,spmi-vadc";
636be33864SEmmanuel Vadot			reg = <0x3100>;
646be33864SEmmanuel Vadot			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
656be33864SEmmanuel Vadot			#address-cells = <1>;
666be33864SEmmanuel Vadot			#size-cells = <0>;
676be33864SEmmanuel Vadot			#io-channel-cells = <1>;
686be33864SEmmanuel Vadot
696be33864SEmmanuel Vadot			adc-chan@0 {
706be33864SEmmanuel Vadot				reg = <VADC_USBIN>;
716be33864SEmmanuel Vadot				qcom,pre-scaling = <1 10>;
726be33864SEmmanuel Vadot			};
736be33864SEmmanuel Vadot			adc-chan@7 {
746be33864SEmmanuel Vadot				reg = <VADC_VSYS>;
756be33864SEmmanuel Vadot				qcom,pre-scaling = <1 3>;
766be33864SEmmanuel Vadot			};
776be33864SEmmanuel Vadot			adc-chan@8 {
786be33864SEmmanuel Vadot				reg = <VADC_DIE_TEMP>;
796be33864SEmmanuel Vadot			};
806be33864SEmmanuel Vadot			adc-chan@9 {
816be33864SEmmanuel Vadot				reg = <VADC_REF_625MV>;
826be33864SEmmanuel Vadot			};
836be33864SEmmanuel Vadot			adc-chan@a {
846be33864SEmmanuel Vadot				reg = <VADC_REF_1250MV>;
856be33864SEmmanuel Vadot			};
866be33864SEmmanuel Vadot			adc-chan@e {
876be33864SEmmanuel Vadot				reg = <VADC_GND_REF>;
886be33864SEmmanuel Vadot			};
896be33864SEmmanuel Vadot			adc-chan@f {
906be33864SEmmanuel Vadot				reg = <VADC_VDD_VADC>;
916be33864SEmmanuel Vadot			};
926be33864SEmmanuel Vadot		};
936be33864SEmmanuel Vadot
946be33864SEmmanuel Vadot		rtc@6000 {
956be33864SEmmanuel Vadot			compatible = "qcom,pm8941-rtc";
966be33864SEmmanuel Vadot			reg = <0x6000>;
976be33864SEmmanuel Vadot			interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
98c66ec88fSEmmanuel Vadot		};
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot		pm8916_mpps: mpps@a000 {
101*8cc087a1SEmmanuel Vadot			compatible = "qcom,pm8916-mpp", "qcom,spmi-mpp";
102c66ec88fSEmmanuel Vadot			reg = <0xa000>;
103c66ec88fSEmmanuel Vadot			gpio-controller;
104c66ec88fSEmmanuel Vadot			#gpio-cells = <2>;
105*8cc087a1SEmmanuel Vadot			gpio-ranges = <&pm8916_mpps 0 0 4>;
106*8cc087a1SEmmanuel Vadot			interrupt-controller;
107*8cc087a1SEmmanuel Vadot			#interrupt-cells = <2>;
108c66ec88fSEmmanuel Vadot		};
109c66ec88fSEmmanuel Vadot
1106be33864SEmmanuel Vadot		pm8916_gpios: gpios@c000 {
1116be33864SEmmanuel Vadot			compatible = "qcom,pm8916-gpio";
1126be33864SEmmanuel Vadot			reg = <0xc000>;
1136be33864SEmmanuel Vadot			gpio-controller;
1146be33864SEmmanuel Vadot			#gpio-cells = <2>;
1156be33864SEmmanuel Vadot			interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
1166be33864SEmmanuel Vadot				     <0 0xc1 0 IRQ_TYPE_NONE>,
1176be33864SEmmanuel Vadot				     <0 0xc2 0 IRQ_TYPE_NONE>,
1186be33864SEmmanuel Vadot				     <0 0xc3 0 IRQ_TYPE_NONE>;
119c66ec88fSEmmanuel Vadot		};
120c66ec88fSEmmanuel Vadot	};
121c66ec88fSEmmanuel Vadot
1226be33864SEmmanuel Vadot	pm8916_1: pmic@1 {
123c66ec88fSEmmanuel Vadot		compatible = "qcom,pm8916", "qcom,spmi-pmic";
124c66ec88fSEmmanuel Vadot		reg = <0x1 SPMI_USID>;
125c66ec88fSEmmanuel Vadot		#address-cells = <1>;
126c66ec88fSEmmanuel Vadot		#size-cells = <0>;
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot		pm8916_vib: vibrator@c000 {
129c66ec88fSEmmanuel Vadot			compatible = "qcom,pm8916-vib";
130c66ec88fSEmmanuel Vadot			reg = <0xc000>;
131c66ec88fSEmmanuel Vadot			status = "disabled";
132c66ec88fSEmmanuel Vadot		};
133c66ec88fSEmmanuel Vadot
1346be33864SEmmanuel Vadot		wcd_codec: audio-codec@f000 {
135c66ec88fSEmmanuel Vadot			compatible = "qcom,pm8916-wcd-analog-codec";
1366be33864SEmmanuel Vadot			reg = <0xf000>;
137c66ec88fSEmmanuel Vadot			reg-names = "pmic-codec-core";
138c66ec88fSEmmanuel Vadot			clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
139c66ec88fSEmmanuel Vadot			clock-names = "mclk";
140c66ec88fSEmmanuel Vadot			interrupt-parent = <&spmi_bus>;
141c66ec88fSEmmanuel Vadot			interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
142c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
143c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x2 IRQ_TYPE_NONE>,
144c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x3 IRQ_TYPE_NONE>,
145c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x4 IRQ_TYPE_NONE>,
146c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x5 IRQ_TYPE_NONE>,
147c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x6 IRQ_TYPE_NONE>,
148c66ec88fSEmmanuel Vadot				     <0x1 0xf0 0x7 IRQ_TYPE_NONE>,
149c66ec88fSEmmanuel Vadot				     <0x1 0xf1 0x0 IRQ_TYPE_NONE>,
150c66ec88fSEmmanuel Vadot				     <0x1 0xf1 0x1 IRQ_TYPE_NONE>,
151c66ec88fSEmmanuel Vadot				     <0x1 0xf1 0x2 IRQ_TYPE_NONE>,
152c66ec88fSEmmanuel Vadot				     <0x1 0xf1 0x3 IRQ_TYPE_NONE>,
153c66ec88fSEmmanuel Vadot				     <0x1 0xf1 0x4 IRQ_TYPE_NONE>,
154c66ec88fSEmmanuel Vadot				     <0x1 0xf1 0x5 IRQ_TYPE_NONE>;
155c66ec88fSEmmanuel Vadot			interrupt-names = "cdc_spk_cnp_int",
156c66ec88fSEmmanuel Vadot					  "cdc_spk_clip_int",
157c66ec88fSEmmanuel Vadot					  "cdc_spk_ocp_int",
158c66ec88fSEmmanuel Vadot					  "mbhc_ins_rem_det1",
159c66ec88fSEmmanuel Vadot					  "mbhc_but_rel_det",
160c66ec88fSEmmanuel Vadot					  "mbhc_but_press_det",
161c66ec88fSEmmanuel Vadot					  "mbhc_ins_rem_det",
162c66ec88fSEmmanuel Vadot					  "mbhc_switch_int",
163c66ec88fSEmmanuel Vadot					  "cdc_ear_ocp_int",
164c66ec88fSEmmanuel Vadot					  "cdc_hphr_ocp_int",
165c66ec88fSEmmanuel Vadot					  "cdc_hphl_ocp_det",
166c66ec88fSEmmanuel Vadot					  "cdc_ear_cnp_int",
167c66ec88fSEmmanuel Vadot					  "cdc_hphr_cnp_int",
168c66ec88fSEmmanuel Vadot					  "cdc_hphl_cnp_int";
169c66ec88fSEmmanuel Vadot			vdd-cdc-io-supply = <&pm8916_l5>;
170c66ec88fSEmmanuel Vadot			vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
171c66ec88fSEmmanuel Vadot			vdd-micbias-supply = <&pm8916_l13>;
172c66ec88fSEmmanuel Vadot			#sound-dai-cells = <1>;
173c66ec88fSEmmanuel Vadot		};
174c66ec88fSEmmanuel Vadot	};
175c66ec88fSEmmanuel Vadot};
176