1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun#include <dt-bindings/iio/qcom,spmi-vadc.h> 3*4882a593Smuzhiyun#include <dt-bindings/input/linux-event-codes.h> 4*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 5*4882a593Smuzhiyun#include <dt-bindings/spmi/spmi.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun&spmi_bus { 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun pm8916_0: pmic@0 { 10*4882a593Smuzhiyun compatible = "qcom,pm8916", "qcom,spmi-pmic"; 11*4882a593Smuzhiyun reg = <0x0 SPMI_USID>; 12*4882a593Smuzhiyun #address-cells = <1>; 13*4882a593Smuzhiyun #size-cells = <0>; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun pon@800 { 16*4882a593Smuzhiyun compatible = "qcom,pm8916-pon"; 17*4882a593Smuzhiyun reg = <0x800>; 18*4882a593Smuzhiyun mode-bootloader = <0x2>; 19*4882a593Smuzhiyun mode-recovery = <0x1>; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun pwrkey { 22*4882a593Smuzhiyun compatible = "qcom,pm8941-pwrkey"; 23*4882a593Smuzhiyun interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; 24*4882a593Smuzhiyun debounce = <15625>; 25*4882a593Smuzhiyun bias-pull-up; 26*4882a593Smuzhiyun linux,code = <KEY_POWER>; 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun pm8916_resin: resin { 30*4882a593Smuzhiyun compatible = "qcom,pm8941-resin"; 31*4882a593Smuzhiyun interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 32*4882a593Smuzhiyun debounce = <15625>; 33*4882a593Smuzhiyun bias-pull-up; 34*4882a593Smuzhiyun status = "disabled"; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun watchdog { 38*4882a593Smuzhiyun compatible = "qcom,pm8916-wdt"; 39*4882a593Smuzhiyun interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>; 40*4882a593Smuzhiyun timeout-sec = <60>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun pm8916_temp: temp-alarm@2400 { 45*4882a593Smuzhiyun compatible = "qcom,spmi-temp-alarm"; 46*4882a593Smuzhiyun reg = <0x2400>; 47*4882a593Smuzhiyun interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>; 48*4882a593Smuzhiyun io-channels = <&pm8916_vadc VADC_DIE_TEMP>; 49*4882a593Smuzhiyun io-channel-names = "thermal"; 50*4882a593Smuzhiyun #thermal-sensor-cells = <0>; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun pm8916_vadc: adc@3100 { 54*4882a593Smuzhiyun compatible = "qcom,spmi-vadc"; 55*4882a593Smuzhiyun reg = <0x3100>; 56*4882a593Smuzhiyun interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 57*4882a593Smuzhiyun #address-cells = <1>; 58*4882a593Smuzhiyun #size-cells = <0>; 59*4882a593Smuzhiyun #io-channel-cells = <1>; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun adc-chan@0 { 62*4882a593Smuzhiyun reg = <VADC_USBIN>; 63*4882a593Smuzhiyun qcom,pre-scaling = <1 10>; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun adc-chan@7 { 66*4882a593Smuzhiyun reg = <VADC_VSYS>; 67*4882a593Smuzhiyun qcom,pre-scaling = <1 3>; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun adc-chan@8 { 70*4882a593Smuzhiyun reg = <VADC_DIE_TEMP>; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun adc-chan@9 { 73*4882a593Smuzhiyun reg = <VADC_REF_625MV>; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun adc-chan@a { 76*4882a593Smuzhiyun reg = <VADC_REF_1250MV>; 77*4882a593Smuzhiyun }; 78*4882a593Smuzhiyun adc-chan@e { 79*4882a593Smuzhiyun reg = <VADC_GND_REF>; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun adc-chan@f { 82*4882a593Smuzhiyun reg = <VADC_VDD_VADC>; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun rtc@6000 { 87*4882a593Smuzhiyun compatible = "qcom,pm8941-rtc"; 88*4882a593Smuzhiyun reg = <0x6000>; 89*4882a593Smuzhiyun interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun pm8916_mpps: mpps@a000 { 93*4882a593Smuzhiyun compatible = "qcom,pm8916-mpp"; 94*4882a593Smuzhiyun reg = <0xa000>; 95*4882a593Smuzhiyun gpio-controller; 96*4882a593Smuzhiyun #gpio-cells = <2>; 97*4882a593Smuzhiyun interrupts = <0 0xa0 0 IRQ_TYPE_NONE>, 98*4882a593Smuzhiyun <0 0xa1 0 IRQ_TYPE_NONE>, 99*4882a593Smuzhiyun <0 0xa2 0 IRQ_TYPE_NONE>, 100*4882a593Smuzhiyun <0 0xa3 0 IRQ_TYPE_NONE>; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun pm8916_gpios: gpios@c000 { 104*4882a593Smuzhiyun compatible = "qcom,pm8916-gpio"; 105*4882a593Smuzhiyun reg = <0xc000>; 106*4882a593Smuzhiyun gpio-controller; 107*4882a593Smuzhiyun #gpio-cells = <2>; 108*4882a593Smuzhiyun interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, 109*4882a593Smuzhiyun <0 0xc1 0 IRQ_TYPE_NONE>, 110*4882a593Smuzhiyun <0 0xc2 0 IRQ_TYPE_NONE>, 111*4882a593Smuzhiyun <0 0xc3 0 IRQ_TYPE_NONE>; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun pm8916_1: pmic@1 { 116*4882a593Smuzhiyun compatible = "qcom,pm8916", "qcom,spmi-pmic"; 117*4882a593Smuzhiyun reg = <0x1 SPMI_USID>; 118*4882a593Smuzhiyun #address-cells = <1>; 119*4882a593Smuzhiyun #size-cells = <0>; 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun pm8916_vib: vibrator@c000 { 122*4882a593Smuzhiyun compatible = "qcom,pm8916-vib"; 123*4882a593Smuzhiyun reg = <0xc000>; 124*4882a593Smuzhiyun status = "disabled"; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun wcd_codec: audio-codec@f000 { 128*4882a593Smuzhiyun compatible = "qcom,pm8916-wcd-analog-codec"; 129*4882a593Smuzhiyun reg = <0xf000>; 130*4882a593Smuzhiyun reg-names = "pmic-codec-core"; 131*4882a593Smuzhiyun clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; 132*4882a593Smuzhiyun clock-names = "mclk"; 133*4882a593Smuzhiyun interrupt-parent = <&spmi_bus>; 134*4882a593Smuzhiyun interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>, 135*4882a593Smuzhiyun <0x1 0xf0 0x1 IRQ_TYPE_NONE>, 136*4882a593Smuzhiyun <0x1 0xf0 0x2 IRQ_TYPE_NONE>, 137*4882a593Smuzhiyun <0x1 0xf0 0x3 IRQ_TYPE_NONE>, 138*4882a593Smuzhiyun <0x1 0xf0 0x4 IRQ_TYPE_NONE>, 139*4882a593Smuzhiyun <0x1 0xf0 0x5 IRQ_TYPE_NONE>, 140*4882a593Smuzhiyun <0x1 0xf0 0x6 IRQ_TYPE_NONE>, 141*4882a593Smuzhiyun <0x1 0xf0 0x7 IRQ_TYPE_NONE>, 142*4882a593Smuzhiyun <0x1 0xf1 0x0 IRQ_TYPE_NONE>, 143*4882a593Smuzhiyun <0x1 0xf1 0x1 IRQ_TYPE_NONE>, 144*4882a593Smuzhiyun <0x1 0xf1 0x2 IRQ_TYPE_NONE>, 145*4882a593Smuzhiyun <0x1 0xf1 0x3 IRQ_TYPE_NONE>, 146*4882a593Smuzhiyun <0x1 0xf1 0x4 IRQ_TYPE_NONE>, 147*4882a593Smuzhiyun <0x1 0xf1 0x5 IRQ_TYPE_NONE>; 148*4882a593Smuzhiyun interrupt-names = "cdc_spk_cnp_int", 149*4882a593Smuzhiyun "cdc_spk_clip_int", 150*4882a593Smuzhiyun "cdc_spk_ocp_int", 151*4882a593Smuzhiyun "mbhc_ins_rem_det1", 152*4882a593Smuzhiyun "mbhc_but_rel_det", 153*4882a593Smuzhiyun "mbhc_but_press_det", 154*4882a593Smuzhiyun "mbhc_ins_rem_det", 155*4882a593Smuzhiyun "mbhc_switch_int", 156*4882a593Smuzhiyun "cdc_ear_ocp_int", 157*4882a593Smuzhiyun "cdc_hphr_ocp_int", 158*4882a593Smuzhiyun "cdc_hphl_ocp_det", 159*4882a593Smuzhiyun "cdc_ear_cnp_int", 160*4882a593Smuzhiyun "cdc_hphr_cnp_int", 161*4882a593Smuzhiyun "cdc_hphl_cnp_int"; 162*4882a593Smuzhiyun vdd-cdc-io-supply = <&pm8916_l5>; 163*4882a593Smuzhiyun vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>; 164*4882a593Smuzhiyun vdd-micbias-supply = <&pm8916_l13>; 165*4882a593Smuzhiyun #sound-dai-cells = <1>; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun}; 169