1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2*8d13bc63SEmmanuel Vadot#include <dt-bindings/iio/qcom,spmi-vadc.h> 3*8d13bc63SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 4*8d13bc63SEmmanuel Vadot#include <dt-bindings/spmi/spmi.h> 5*8d13bc63SEmmanuel Vadot 6*8d13bc63SEmmanuel Vadot 7*8d13bc63SEmmanuel Vadot/ { 8*8d13bc63SEmmanuel Vadot thermal-zones { 9*8d13bc63SEmmanuel Vadot pm8941-thermal { 10*8d13bc63SEmmanuel Vadot polling-delay-passive = <100>; 11*8d13bc63SEmmanuel Vadot polling-delay = <0>; 12*8d13bc63SEmmanuel Vadot thermal-sensors = <&pm8941_temp>; 13*8d13bc63SEmmanuel Vadot 14*8d13bc63SEmmanuel Vadot trips { 15*8d13bc63SEmmanuel Vadot trip0 { 16*8d13bc63SEmmanuel Vadot temperature = <105000>; 17*8d13bc63SEmmanuel Vadot hysteresis = <2000>; 18*8d13bc63SEmmanuel Vadot type = "passive"; 19*8d13bc63SEmmanuel Vadot }; 20*8d13bc63SEmmanuel Vadot 21*8d13bc63SEmmanuel Vadot trip1 { 22*8d13bc63SEmmanuel Vadot temperature = <125000>; 23*8d13bc63SEmmanuel Vadot hysteresis = <2000>; 24*8d13bc63SEmmanuel Vadot type = "hot"; 25*8d13bc63SEmmanuel Vadot }; 26*8d13bc63SEmmanuel Vadot 27*8d13bc63SEmmanuel Vadot crit { 28*8d13bc63SEmmanuel Vadot temperature = <145000>; 29*8d13bc63SEmmanuel Vadot hysteresis = <2000>; 30*8d13bc63SEmmanuel Vadot type = "critical"; 31*8d13bc63SEmmanuel Vadot }; 32*8d13bc63SEmmanuel Vadot }; 33*8d13bc63SEmmanuel Vadot }; 34*8d13bc63SEmmanuel Vadot }; 35*8d13bc63SEmmanuel Vadot}; 36*8d13bc63SEmmanuel Vadot 37*8d13bc63SEmmanuel Vadot&spmi_bus { 38*8d13bc63SEmmanuel Vadot 39*8d13bc63SEmmanuel Vadot pm8941_0: pm8941@0 { 40*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941", "qcom,spmi-pmic"; 41*8d13bc63SEmmanuel Vadot reg = <0x0 SPMI_USID>; 42*8d13bc63SEmmanuel Vadot #address-cells = <1>; 43*8d13bc63SEmmanuel Vadot #size-cells = <0>; 44*8d13bc63SEmmanuel Vadot 45*8d13bc63SEmmanuel Vadot rtc@6000 { 46*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-rtc"; 47*8d13bc63SEmmanuel Vadot reg = <0x6000>, 48*8d13bc63SEmmanuel Vadot <0x6100>; 49*8d13bc63SEmmanuel Vadot reg-names = "rtc", "alarm"; 50*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 51*8d13bc63SEmmanuel Vadot }; 52*8d13bc63SEmmanuel Vadot 53*8d13bc63SEmmanuel Vadot pon@800 { 54*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-pon"; 55*8d13bc63SEmmanuel Vadot reg = <0x800>; 56*8d13bc63SEmmanuel Vadot 57*8d13bc63SEmmanuel Vadot pwrkey { 58*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-pwrkey"; 59*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; 60*8d13bc63SEmmanuel Vadot debounce = <15625>; 61*8d13bc63SEmmanuel Vadot bias-pull-up; 62*8d13bc63SEmmanuel Vadot }; 63*8d13bc63SEmmanuel Vadot 64*8d13bc63SEmmanuel Vadot pm8941_resin: resin { 65*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-resin"; 66*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; 67*8d13bc63SEmmanuel Vadot debounce = <15625>; 68*8d13bc63SEmmanuel Vadot bias-pull-up; 69*8d13bc63SEmmanuel Vadot status = "disabled"; 70*8d13bc63SEmmanuel Vadot }; 71*8d13bc63SEmmanuel Vadot }; 72*8d13bc63SEmmanuel Vadot 73*8d13bc63SEmmanuel Vadot usb_id: usb-detect@900 { 74*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-misc"; 75*8d13bc63SEmmanuel Vadot reg = <0x900>; 76*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>; 77*8d13bc63SEmmanuel Vadot interrupt-names = "usb_id"; 78*8d13bc63SEmmanuel Vadot }; 79*8d13bc63SEmmanuel Vadot 80*8d13bc63SEmmanuel Vadot smbb: charger@1000 { 81*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-charger"; 82*8d13bc63SEmmanuel Vadot reg = <0x1000>; 83*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>, 84*8d13bc63SEmmanuel Vadot <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>, 85*8d13bc63SEmmanuel Vadot <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>, 86*8d13bc63SEmmanuel Vadot <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>, 87*8d13bc63SEmmanuel Vadot <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>, 88*8d13bc63SEmmanuel Vadot <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>, 89*8d13bc63SEmmanuel Vadot <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>, 90*8d13bc63SEmmanuel Vadot <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>; 91*8d13bc63SEmmanuel Vadot interrupt-names = "chg-done", 92*8d13bc63SEmmanuel Vadot "chg-fast", 93*8d13bc63SEmmanuel Vadot "chg-trkl", 94*8d13bc63SEmmanuel Vadot "bat-temp-ok", 95*8d13bc63SEmmanuel Vadot "bat-present", 96*8d13bc63SEmmanuel Vadot "chg-gone", 97*8d13bc63SEmmanuel Vadot "usb-valid", 98*8d13bc63SEmmanuel Vadot "dc-valid"; 99*8d13bc63SEmmanuel Vadot 100*8d13bc63SEmmanuel Vadot usb-otg-in-supply = <&pm8941_5vs1>; 101*8d13bc63SEmmanuel Vadot 102*8d13bc63SEmmanuel Vadot status = "disabled"; 103*8d13bc63SEmmanuel Vadot 104*8d13bc63SEmmanuel Vadot chg_otg: otg-vbus { }; 105*8d13bc63SEmmanuel Vadot }; 106*8d13bc63SEmmanuel Vadot 107*8d13bc63SEmmanuel Vadot pm8941_gpios: gpio@c000 { 108*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio"; 109*8d13bc63SEmmanuel Vadot reg = <0xc000>; 110*8d13bc63SEmmanuel Vadot gpio-controller; 111*8d13bc63SEmmanuel Vadot gpio-ranges = <&pm8941_gpios 0 0 36>; 112*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 113*8d13bc63SEmmanuel Vadot interrupt-controller; 114*8d13bc63SEmmanuel Vadot #interrupt-cells = <2>; 115*8d13bc63SEmmanuel Vadot 116*8d13bc63SEmmanuel Vadot boost_bypass_n_pin: boost-bypass-state { 117*8d13bc63SEmmanuel Vadot pins = "gpio21"; 118*8d13bc63SEmmanuel Vadot function = "normal"; 119*8d13bc63SEmmanuel Vadot }; 120*8d13bc63SEmmanuel Vadot }; 121*8d13bc63SEmmanuel Vadot 122*8d13bc63SEmmanuel Vadot pm8941_mpps: mpps@a000 { 123*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-mpp", "qcom,spmi-mpp"; 124*8d13bc63SEmmanuel Vadot reg = <0xa000>; 125*8d13bc63SEmmanuel Vadot gpio-controller; 126*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 127*8d13bc63SEmmanuel Vadot gpio-ranges = <&pm8941_mpps 0 0 8>; 128*8d13bc63SEmmanuel Vadot interrupt-controller; 129*8d13bc63SEmmanuel Vadot #interrupt-cells = <2>; 130*8d13bc63SEmmanuel Vadot }; 131*8d13bc63SEmmanuel Vadot 132*8d13bc63SEmmanuel Vadot pm8941_temp: temp-alarm@2400 { 133*8d13bc63SEmmanuel Vadot compatible = "qcom,spmi-temp-alarm"; 134*8d13bc63SEmmanuel Vadot reg = <0x2400>; 135*8d13bc63SEmmanuel Vadot interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>; 136*8d13bc63SEmmanuel Vadot io-channels = <&pm8941_vadc VADC_DIE_TEMP>; 137*8d13bc63SEmmanuel Vadot io-channel-names = "thermal"; 138*8d13bc63SEmmanuel Vadot #thermal-sensor-cells = <0>; 139*8d13bc63SEmmanuel Vadot }; 140*8d13bc63SEmmanuel Vadot 141*8d13bc63SEmmanuel Vadot pm8941_vadc: adc@3100 { 142*8d13bc63SEmmanuel Vadot compatible = "qcom,spmi-vadc"; 143*8d13bc63SEmmanuel Vadot reg = <0x3100>; 144*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 145*8d13bc63SEmmanuel Vadot #address-cells = <1>; 146*8d13bc63SEmmanuel Vadot #size-cells = <0>; 147*8d13bc63SEmmanuel Vadot #io-channel-cells = <1>; 148*8d13bc63SEmmanuel Vadot 149*8d13bc63SEmmanuel Vadot 150*8d13bc63SEmmanuel Vadot channel@6 { 151*8d13bc63SEmmanuel Vadot reg = <VADC_VBAT_SNS>; 152*8d13bc63SEmmanuel Vadot }; 153*8d13bc63SEmmanuel Vadot 154*8d13bc63SEmmanuel Vadot channel@8 { 155*8d13bc63SEmmanuel Vadot reg = <VADC_DIE_TEMP>; 156*8d13bc63SEmmanuel Vadot }; 157*8d13bc63SEmmanuel Vadot 158*8d13bc63SEmmanuel Vadot channel@9 { 159*8d13bc63SEmmanuel Vadot reg = <VADC_REF_625MV>; 160*8d13bc63SEmmanuel Vadot }; 161*8d13bc63SEmmanuel Vadot 162*8d13bc63SEmmanuel Vadot channel@a { 163*8d13bc63SEmmanuel Vadot reg = <VADC_REF_1250MV>; 164*8d13bc63SEmmanuel Vadot }; 165*8d13bc63SEmmanuel Vadot 166*8d13bc63SEmmanuel Vadot channel@e { 167*8d13bc63SEmmanuel Vadot reg = <VADC_GND_REF>; 168*8d13bc63SEmmanuel Vadot }; 169*8d13bc63SEmmanuel Vadot 170*8d13bc63SEmmanuel Vadot channel@f { 171*8d13bc63SEmmanuel Vadot reg = <VADC_VDD_VADC>; 172*8d13bc63SEmmanuel Vadot }; 173*8d13bc63SEmmanuel Vadot 174*8d13bc63SEmmanuel Vadot channel@30 { 175*8d13bc63SEmmanuel Vadot reg = <VADC_LR_MUX1_BAT_THERM>; 176*8d13bc63SEmmanuel Vadot }; 177*8d13bc63SEmmanuel Vadot }; 178*8d13bc63SEmmanuel Vadot 179*8d13bc63SEmmanuel Vadot pm8941_iadc: adc@3600 { 180*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc"; 181*8d13bc63SEmmanuel Vadot reg = <0x3600>; 182*8d13bc63SEmmanuel Vadot interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>; 183*8d13bc63SEmmanuel Vadot qcom,external-resistor-micro-ohms = <10000>; 184*8d13bc63SEmmanuel Vadot }; 185*8d13bc63SEmmanuel Vadot 186*8d13bc63SEmmanuel Vadot pm8941_coincell: charger@2800 { 187*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-coincell"; 188*8d13bc63SEmmanuel Vadot reg = <0x2800>; 189*8d13bc63SEmmanuel Vadot status = "disabled"; 190*8d13bc63SEmmanuel Vadot }; 191*8d13bc63SEmmanuel Vadot }; 192*8d13bc63SEmmanuel Vadot 193*8d13bc63SEmmanuel Vadot pm8941_1: pm8941@1 { 194*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941", "qcom,spmi-pmic"; 195*8d13bc63SEmmanuel Vadot reg = <0x1 SPMI_USID>; 196*8d13bc63SEmmanuel Vadot #address-cells = <1>; 197*8d13bc63SEmmanuel Vadot #size-cells = <0>; 198*8d13bc63SEmmanuel Vadot 199*8d13bc63SEmmanuel Vadot pm8941_lpg: pwm { 200*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-lpg"; 201*8d13bc63SEmmanuel Vadot 202*8d13bc63SEmmanuel Vadot #address-cells = <1>; 203*8d13bc63SEmmanuel Vadot #size-cells = <0>; 204*8d13bc63SEmmanuel Vadot #pwm-cells = <2>; 205*8d13bc63SEmmanuel Vadot 206*8d13bc63SEmmanuel Vadot status = "disabled"; 207*8d13bc63SEmmanuel Vadot }; 208*8d13bc63SEmmanuel Vadot 209*8d13bc63SEmmanuel Vadot pm8941_vib: vibrator@c000 { 210*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8916-vib"; 211*8d13bc63SEmmanuel Vadot reg = <0xc000>; 212*8d13bc63SEmmanuel Vadot status = "disabled"; 213*8d13bc63SEmmanuel Vadot }; 214*8d13bc63SEmmanuel Vadot 215*8d13bc63SEmmanuel Vadot pm8941_wled: wled@d800 { 216*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-wled"; 217*8d13bc63SEmmanuel Vadot reg = <0xd800>; 218*8d13bc63SEmmanuel Vadot label = "backlight"; 219*8d13bc63SEmmanuel Vadot 220*8d13bc63SEmmanuel Vadot status = "disabled"; 221*8d13bc63SEmmanuel Vadot }; 222*8d13bc63SEmmanuel Vadot 223*8d13bc63SEmmanuel Vadot regulators { 224*8d13bc63SEmmanuel Vadot compatible = "qcom,pm8941-regulators"; 225*8d13bc63SEmmanuel Vadot interrupts = <0x1 0x83 0x2 0>, <0x1 0x84 0x2 0>; 226*8d13bc63SEmmanuel Vadot interrupt-names = "ocp-5vs1", "ocp-5vs2"; 227*8d13bc63SEmmanuel Vadot vin_5vs-supply = <&pm8941_5v>; 228*8d13bc63SEmmanuel Vadot 229*8d13bc63SEmmanuel Vadot pm8941_5v: s4 { 230*8d13bc63SEmmanuel Vadot regulator-min-microvolt = <5000000>; 231*8d13bc63SEmmanuel Vadot regulator-max-microvolt = <5000000>; 232*8d13bc63SEmmanuel Vadot regulator-enable-ramp-delay = <500>; 233*8d13bc63SEmmanuel Vadot }; 234*8d13bc63SEmmanuel Vadot 235*8d13bc63SEmmanuel Vadot pm8941_5vs1: 5vs1 { 236*8d13bc63SEmmanuel Vadot regulator-enable-ramp-delay = <1000>; 237*8d13bc63SEmmanuel Vadot regulator-pull-down; 238*8d13bc63SEmmanuel Vadot regulator-over-current-protection; 239*8d13bc63SEmmanuel Vadot qcom,ocp-max-retries = <10>; 240*8d13bc63SEmmanuel Vadot qcom,ocp-retry-delay = <30>; 241*8d13bc63SEmmanuel Vadot qcom,vs-soft-start-strength = <0>; 242*8d13bc63SEmmanuel Vadot regulator-initial-mode = <1>; 243*8d13bc63SEmmanuel Vadot }; 244*8d13bc63SEmmanuel Vadot 245*8d13bc63SEmmanuel Vadot pm8941_5vs2: 5vs2 { 246*8d13bc63SEmmanuel Vadot regulator-enable-ramp-delay = <1000>; 247*8d13bc63SEmmanuel Vadot regulator-pull-down; 248*8d13bc63SEmmanuel Vadot regulator-over-current-protection; 249*8d13bc63SEmmanuel Vadot qcom,ocp-max-retries = <10>; 250*8d13bc63SEmmanuel Vadot qcom,ocp-retry-delay = <30>; 251*8d13bc63SEmmanuel Vadot qcom,vs-soft-start-strength = <0>; 252*8d13bc63SEmmanuel Vadot regulator-initial-mode = <1>; 253*8d13bc63SEmmanuel Vadot }; 254*8d13bc63SEmmanuel Vadot }; 255*8d13bc63SEmmanuel Vadot }; 256*8d13bc63SEmmanuel Vadot}; 257