1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun#include <dt-bindings/iio/qcom,spmi-vadc.h> 3*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h> 4*4882a593Smuzhiyun#include <dt-bindings/spmi/spmi.h> 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun&spmi_bus { 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun pm8941_0: pm8941@0 { 9*4882a593Smuzhiyun compatible = "qcom,pm8941", "qcom,spmi-pmic"; 10*4882a593Smuzhiyun reg = <0x0 SPMI_USID>; 11*4882a593Smuzhiyun #address-cells = <1>; 12*4882a593Smuzhiyun #size-cells = <0>; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun rtc@6000 { 15*4882a593Smuzhiyun compatible = "qcom,pm8941-rtc"; 16*4882a593Smuzhiyun reg = <0x6000>, 17*4882a593Smuzhiyun <0x6100>; 18*4882a593Smuzhiyun reg-names = "rtc", "alarm"; 19*4882a593Smuzhiyun interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun pwrkey@800 { 23*4882a593Smuzhiyun compatible = "qcom,pm8941-pwrkey"; 24*4882a593Smuzhiyun reg = <0x800>; 25*4882a593Smuzhiyun interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; 26*4882a593Smuzhiyun debounce = <15625>; 27*4882a593Smuzhiyun bias-pull-up; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun usb_id: misc@900 { 31*4882a593Smuzhiyun compatible = "qcom,pm8941-misc"; 32*4882a593Smuzhiyun reg = <0x900>; 33*4882a593Smuzhiyun interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>; 34*4882a593Smuzhiyun interrupt-names = "usb_id"; 35*4882a593Smuzhiyun }; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun smbb: charger@1000 { 38*4882a593Smuzhiyun compatible = "qcom,pm8941-charger"; 39*4882a593Smuzhiyun reg = <0x1000>; 40*4882a593Smuzhiyun interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>, 41*4882a593Smuzhiyun <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>, 42*4882a593Smuzhiyun <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>, 43*4882a593Smuzhiyun <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>, 44*4882a593Smuzhiyun <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>, 45*4882a593Smuzhiyun <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>, 46*4882a593Smuzhiyun <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>, 47*4882a593Smuzhiyun <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>; 48*4882a593Smuzhiyun interrupt-names = "chg-done", 49*4882a593Smuzhiyun "chg-fast", 50*4882a593Smuzhiyun "chg-trkl", 51*4882a593Smuzhiyun "bat-temp-ok", 52*4882a593Smuzhiyun "bat-present", 53*4882a593Smuzhiyun "chg-gone", 54*4882a593Smuzhiyun "usb-valid", 55*4882a593Smuzhiyun "dc-valid"; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun usb-otg-in-supply = <&pm8941_5vs1>; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun chg_otg: otg-vbus { }; 60*4882a593Smuzhiyun }; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun pm8941_gpios: gpios@c000 { 63*4882a593Smuzhiyun compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio"; 64*4882a593Smuzhiyun reg = <0xc000>; 65*4882a593Smuzhiyun gpio-controller; 66*4882a593Smuzhiyun gpio-ranges = <&pm8941_gpios 0 0 36>; 67*4882a593Smuzhiyun #gpio-cells = <2>; 68*4882a593Smuzhiyun interrupt-controller; 69*4882a593Smuzhiyun #interrupt-cells = <2>; 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun boost_bypass_n_pin: boost-bypass { 72*4882a593Smuzhiyun pins = "gpio21"; 73*4882a593Smuzhiyun function = "normal"; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun }; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun pm8941_mpps: mpps@a000 { 78*4882a593Smuzhiyun compatible = "qcom,pm8941-mpp", "qcom,spmi-mpp"; 79*4882a593Smuzhiyun reg = <0xa000>; 80*4882a593Smuzhiyun gpio-controller; 81*4882a593Smuzhiyun #gpio-cells = <2>; 82*4882a593Smuzhiyun interrupts = <0 0xa0 0 IRQ_TYPE_NONE>, 83*4882a593Smuzhiyun <0 0xa1 0 IRQ_TYPE_NONE>, 84*4882a593Smuzhiyun <0 0xa2 0 IRQ_TYPE_NONE>, 85*4882a593Smuzhiyun <0 0xa3 0 IRQ_TYPE_NONE>, 86*4882a593Smuzhiyun <0 0xa4 0 IRQ_TYPE_NONE>, 87*4882a593Smuzhiyun <0 0xa5 0 IRQ_TYPE_NONE>, 88*4882a593Smuzhiyun <0 0xa6 0 IRQ_TYPE_NONE>, 89*4882a593Smuzhiyun <0 0xa7 0 IRQ_TYPE_NONE>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun pm8941_temp: temp-alarm@2400 { 93*4882a593Smuzhiyun compatible = "qcom,spmi-temp-alarm"; 94*4882a593Smuzhiyun reg = <0x2400>; 95*4882a593Smuzhiyun interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>; 96*4882a593Smuzhiyun io-channels = <&pm8941_vadc VADC_DIE_TEMP>; 97*4882a593Smuzhiyun io-channel-names = "thermal"; 98*4882a593Smuzhiyun #thermal-sensor-cells = <0>; 99*4882a593Smuzhiyun }; 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun pm8941_vadc: vadc@3100 { 102*4882a593Smuzhiyun compatible = "qcom,spmi-vadc"; 103*4882a593Smuzhiyun reg = <0x3100>; 104*4882a593Smuzhiyun interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 105*4882a593Smuzhiyun #address-cells = <1>; 106*4882a593Smuzhiyun #size-cells = <0>; 107*4882a593Smuzhiyun #io-channel-cells = <1>; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun bat_temp { 110*4882a593Smuzhiyun reg = <VADC_LR_MUX1_BAT_THERM>; 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun die_temp { 113*4882a593Smuzhiyun reg = <VADC_DIE_TEMP>; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun ref_625mv { 116*4882a593Smuzhiyun reg = <VADC_REF_625MV>; 117*4882a593Smuzhiyun }; 118*4882a593Smuzhiyun ref_1250v { 119*4882a593Smuzhiyun reg = <VADC_REF_1250MV>; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun ref_gnd { 122*4882a593Smuzhiyun reg = <VADC_GND_REF>; 123*4882a593Smuzhiyun }; 124*4882a593Smuzhiyun ref_vdd { 125*4882a593Smuzhiyun reg = <VADC_VDD_VADC>; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun vbat_sns { 128*4882a593Smuzhiyun reg = <VADC_VBAT_SNS>; 129*4882a593Smuzhiyun }; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun pm8941_iadc: iadc@3600 { 133*4882a593Smuzhiyun compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc"; 134*4882a593Smuzhiyun reg = <0x3600>; 135*4882a593Smuzhiyun interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>; 136*4882a593Smuzhiyun qcom,external-resistor-micro-ohms = <10000>; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun coincell@2800 { 140*4882a593Smuzhiyun compatible = "qcom,pm8941-coincell"; 141*4882a593Smuzhiyun reg = <0x2800>; 142*4882a593Smuzhiyun status = "disabled"; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun pm8941_1: pm8941@1 { 147*4882a593Smuzhiyun compatible = "qcom,pm8941", "qcom,spmi-pmic"; 148*4882a593Smuzhiyun reg = <0x1 SPMI_USID>; 149*4882a593Smuzhiyun #address-cells = <1>; 150*4882a593Smuzhiyun #size-cells = <0>; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun pm8941_wled: wled@d800 { 153*4882a593Smuzhiyun compatible = "qcom,pm8941-wled"; 154*4882a593Smuzhiyun reg = <0xd800>; 155*4882a593Smuzhiyun label = "backlight"; 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun status = "disabled"; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun regulators { 161*4882a593Smuzhiyun compatible = "qcom,pm8941-regulators"; 162*4882a593Smuzhiyun interrupts = <0x1 0x83 0x2 0>, <0x1 0x84 0x2 0>; 163*4882a593Smuzhiyun interrupt-names = "ocp-5vs1", "ocp-5vs2"; 164*4882a593Smuzhiyun vin_5vs-supply = <&pm8941_5v>; 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun pm8941_5v: s4 { 167*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 168*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 169*4882a593Smuzhiyun regulator-enable-ramp-delay = <500>; 170*4882a593Smuzhiyun }; 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun pm8941_5vs1: 5vs1 { 173*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 174*4882a593Smuzhiyun regulator-pull-down; 175*4882a593Smuzhiyun regulator-over-current-protection; 176*4882a593Smuzhiyun qcom,ocp-max-retries = <10>; 177*4882a593Smuzhiyun qcom,ocp-retry-delay = <30>; 178*4882a593Smuzhiyun qcom,vs-soft-start-strength = <0>; 179*4882a593Smuzhiyun regulator-initial-mode = <1>; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun pm8941_5vs2: 5vs2 { 183*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 184*4882a593Smuzhiyun regulator-pull-down; 185*4882a593Smuzhiyun regulator-over-current-protection; 186*4882a593Smuzhiyun qcom,ocp-max-retries = <10>; 187*4882a593Smuzhiyun qcom,ocp-retry-delay = <30>; 188*4882a593Smuzhiyun qcom,vs-soft-start-strength = <0>; 189*4882a593Smuzhiyun regulator-initial-mode = <1>; 190*4882a593Smuzhiyun }; 191*4882a593Smuzhiyun }; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun}; 194