| /* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 and |
| * only version 2 as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| &spmi_bus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| interrupt-controller; |
| #interrupt-cells = <3>; |
| |
| qcom,pm8110@0 { |
| spmi-slave-container; |
| reg = <0x0>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| qcom,revid@100 { |
| compatible = "qcom,qpnp-revid"; |
| reg = <0x100 0x100>; |
| }; |
| |
| qcom,power-on@800 { |
| compatible = "qcom,qpnp-power-on"; |
| reg = <0x800 0x100>; |
| interrupts = <0x0 0x8 0x0>, |
| <0x0 0x8 0x1>, |
| <0x0 0x8 0x4>; |
| interrupt-names = "kpdpwr", "resin", "resin-bark"; |
| qcom,pon-dbc-delay = <15625>; |
| qcom,system-reset; |
| |
| qcom,pon_1 { |
| qcom,pon-type = <0>; |
| qcom,pull-up = <1>; |
| linux,code = <116>; |
| }; |
| |
| qcom,pon_2 { |
| qcom,pon-type = <1>; |
| qcom,pull-up = <1>; |
| linux,code = <114>; |
| }; |
| }; |
| |
| pm8110_chg: qcom,charger { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-charger"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| status = "disabled"; |
| |
| qcom,vddmax-mv = <4200>; |
| qcom,vddsafe-mv = <4230>; |
| qcom,vinmin-mv = <4200>; |
| qcom,vbatdet-mv = <4100>; |
| qcom,ibatmax-ma = <1500>; |
| qcom,ibatterm-ma = <100>; |
| qcom,ibatsafe-ma = <1500>; |
| qcom,thermal-mitigation = <1500 700 600 325>; |
| qcom,vbatdet-delta-mv = <350>; |
| qcom,resume-soc = <99>; |
| qcom,tchg-mins = <150>; |
| |
| qcom,chgr@1000 { |
| status = "disabled"; |
| reg = <0x1000 0x100>; |
| interrupts = <0x0 0x10 0x0>, |
| <0x0 0x10 0x1>, |
| <0x0 0x10 0x2>, |
| <0x0 0x10 0x3>, |
| <0x0 0x10 0x4>, |
| <0x0 0x10 0x5>, |
| <0x0 0x10 0x6>, |
| <0x0 0x10 0x7>; |
| |
| interrupt-names = "vbat-det-lo", |
| "vbat-det-hi", |
| "chgwdog", |
| "state-change", |
| "trkl-chg-on", |
| "fast-chg-on", |
| "chg-failed", |
| "chg-done"; |
| }; |
| |
| qcom,buck@1100 { |
| status = "disabled"; |
| reg = <0x1100 0x100>; |
| interrupts = <0x0 0x11 0x0>, |
| <0x0 0x11 0x1>, |
| <0x0 0x11 0x2>, |
| <0x0 0x11 0x3>, |
| <0x0 0x11 0x4>, |
| <0x0 0x11 0x5>, |
| <0x0 0x11 0x6>; |
| |
| interrupt-names = "vbat-ov", |
| "vreg-ov", |
| "overtemp", |
| "vchg-loop", |
| "ichg-loop", |
| "ibat-loop", |
| "vdd-loop"; |
| }; |
| |
| qcom,bat-if@1200 { |
| status = "disabled"; |
| reg = <0x1200 0x100>; |
| interrupts = <0x0 0x12 0x0>, |
| <0x0 0x12 0x1>, |
| <0x0 0x12 0x2>, |
| <0x0 0x12 0x3>, |
| <0x0 0x12 0x4>; |
| |
| interrupt-names = "batt-pres", |
| "bat-temp-ok", |
| "bat-fet-on", |
| "vcp-on", |
| "psi"; |
| }; |
| |
| qcom,usb-chgpth@1300 { |
| status = "disabled"; |
| reg = <0x1300 0x100>; |
| interrupts = <0 0x13 0x0>, |
| <0 0x13 0x1>, |
| <0x0 0x13 0x2>, |
| <0x0 0x13 0x3>; |
| |
| interrupt-names = "coarse-det-usb", |
| "usbin-valid", |
| "chg-gone", |
| "usb-ocp"; |
| }; |
| |
| qcom,chg-misc@1600 { |
| status = "disabled"; |
| reg = <0x1600 0x100>; |
| }; |
| }; |
| |
| pm8110_gpios: gpios { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-pin"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| label = "pm8110-gpio"; |
| |
| gpio@c000 { |
| reg = <0xc000 0x100>; |
| qcom,pin-num = <1>; |
| }; |
| |
| gpio@c100 { |
| reg = <0xc100 0x100>; |
| qcom,pin-num = <2>; |
| }; |
| |
| gpio@c200 { |
| reg = <0xc200 0x100>; |
| qcom,pin-num = <3>; |
| }; |
| |
| gpio@c300 { |
| reg = <0xc300 0x100>; |
| qcom,pin-num = <4>; |
| }; |
| }; |
| |
| pm8110_mpps: mpps { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-pin"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| label = "pm8110-mpp"; |
| |
| mpp@a000 { |
| reg = <0xa000 0x100>; |
| qcom,pin-num = <1>; |
| }; |
| |
| mpp@a100 { |
| reg = <0xa100 0x100>; |
| qcom,pin-num = <2>; |
| }; |
| |
| mpp@a200 { |
| reg = <0xa200 0x100>; |
| qcom,pin-num = <3>; |
| }; |
| |
| mpp@a300 { |
| reg = <0xa300 0x100>; |
| qcom,pin-num = <4>; |
| }; |
| }; |
| |
| pm8110_vadc: vadc@3100 { |
| compatible = "qcom,qpnp-vadc"; |
| reg = <0x3100 0x100>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| interrupts = <0x0 0x31 0x0>; |
| interrupt-names = "eoc-int-en-set"; |
| qcom,adc-bit-resolution = <15>; |
| qcom,adc-vdd-reference = <1800>; |
| |
| chan@8 { |
| label = "die_temp"; |
| reg = <8>; |
| qcom,decimation = <0>; |
| qcom,pre-div-channel-scaling = <0>; |
| qcom,calibration-type = "absolute"; |
| qcom,scale-function = <3>; |
| qcom,hw-settle-time = <0>; |
| qcom,fast-avg-setup = <0>; |
| }; |
| |
| chan@9 { |
| label = "ref_625mv"; |
| reg = <9>; |
| qcom,decimation = <0>; |
| qcom,pre-div-channel-scaling = <0>; |
| qcom,calibration-type = "absolute"; |
| qcom,scale-function = <0>; |
| qcom,hw-settle-time = <0>; |
| qcom,fast-avg-setup = <0>; |
| }; |
| |
| chan@a { |
| label = "ref_1250v"; |
| reg = <0xa>; |
| qcom,decimation = <0>; |
| qcom,pre-div-channel-scaling = <0>; |
| qcom,calibration-type = "absolute"; |
| qcom,scale-function = <0>; |
| qcom,hw-settle-time = <0>; |
| qcom,fast-avg-setup = <0>; |
| }; |
| }; |
| |
| iadc@3600 { |
| compatible = "qcom,qpnp-iadc"; |
| reg = <0x3600 0x100>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| interrupts = <0x0 0x36 0x0>; |
| interrupt-names = "eoc-int-en-set"; |
| qcom,adc-bit-resolution = <16>; |
| qcom,adc-vdd-reference = <1800>; |
| |
| chan@0 { |
| label = "internal_rsense"; |
| reg = <0>; |
| qcom,decimation = <0>; |
| qcom,pre-div-channel-scaling = <1>; |
| qcom,calibration-type = "absolute"; |
| qcom,scale-function = <0>; |
| qcom,hw-settle-time = <0>; |
| qcom,fast-avg-setup = <0>; |
| }; |
| }; |
| |
| pm8110_adc_tm: vadc@3400 { |
| compatible = "qcom,qpnp-adc-tm"; |
| reg = <0x3400 0x100>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| interrupts = <0x0 0x34 0x0>, |
| <0x0 0x34 0x3>, |
| <0x0 0x34 0x4>; |
| interrupt-names = "eoc-int-en-set", |
| "high-thr-en-set", |
| "low-thr-en-set"; |
| qcom,adc-bit-resolution = <15>; |
| qcom,adc-vdd-reference = <1800>; |
| }; |
| |
| qcom,temp-alarm@2400 { |
| compatible = "qcom,qpnp-temp-alarm"; |
| reg = <0x2400 0x100>; |
| interrupts = <0x0 0x24 0x0>; |
| label = "pm8110_tz"; |
| qcom,channel-num = <8>; |
| qcom,threshold-set = <0>; |
| }; |
| |
| pm8110_bms: qcom,bms { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-bms"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| status = "disabled"; |
| |
| qcom,r-sense-uohm = <10000>; |
| qcom,v-cutoff-uv = <3400000>; |
| qcom,max-voltage-uv = <4200000>; |
| qcom,r-conn-mohm = <0>; |
| qcom,shutdown-soc-valid-limit = <20>; |
| qcom,adjust-soc-low-threshold = <15>; |
| qcom,ocv-voltage-high-threshold-uv = <3750000>; |
| qcom,ocv-voltage-low-threshold-uv = <3650000>; |
| qcom,low-soc-calculate-soc-threshold = <15>; |
| qcom,low-soc-calculate-soc-ms = <5000>; |
| qcom,calculate-soc-ms = <20000>; |
| qcom,chg-term-ua = <100000>; |
| qcom,batt-type = <0>; |
| qcom,low-voltage-threshold = <3420000>; |
| qcom,tm-temp-margin = <5000>; |
| qcom,low-ocv-correction-limit-uv = <100>; |
| qcom,high-ocv-correction-limit-uv = <50>; |
| qcom,hold-soc-est = <3>; |
| |
| qcom,bms-iadc@3800 { |
| reg = <0x3800 0x100>; |
| }; |
| |
| qcom,bms-bms@4000 { |
| reg = <0x4000 0x100>; |
| interrupts = <0x0 0x40 0x0>, |
| <0x0 0x40 0x1>, |
| <0x0 0x40 0x2>, |
| <0x0 0x40 0x3>, |
| <0x0 0x40 0x4>, |
| <0x0 0x40 0x5>, |
| <0x0 0x40 0x6>, |
| <0x0 0x40 0x7>; |
| |
| interrupt-names = "vsense_for_r", |
| "vsense_avg", |
| "sw_cc_thr", |
| "ocv_thr", |
| "charge_begin", |
| "good_ocv", |
| "ocv_for_r", |
| "cc_thr"; |
| }; |
| }; |
| |
| qcom,pm8110_rtc { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-rtc"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| qcom,qpnp-rtc-write = <0>; |
| qcom,qpnp-rtc-alarm-pwrup = <0>; |
| |
| qcom,pm8110_rtc_rw@6000 { |
| reg = <0x6000 0x100>; |
| }; |
| |
| qcom,pm8110_rtc_alarm@6100 { |
| reg = <0x6100 0x100>; |
| interrupts = <0x0 0x61 0x1>; |
| }; |
| }; |
| |
| qcom,leds@a100 { |
| compatible = "qcom,leds-qpnp"; |
| reg = <0xa100 0x100>; |
| label = "mpp"; |
| }; |
| |
| qcom,leds@a200 { |
| compatible = "qcom,leds-qpnp"; |
| reg = <0xa200 0x100>; |
| label = "mpp"; |
| }; |
| }; |
| |
| qcom,pm8110@1 { |
| spmi-slave-container; |
| reg = <0x1>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| regulator@1400 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_s1"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x1400 0x300>; |
| status = "disabled"; |
| |
| qcom,ctl@1400 { |
| reg = <0x1400 0x100>; |
| }; |
| qcom,ps@1500 { |
| reg = <0x1500 0x100>; |
| }; |
| qcom,freq@1600 { |
| reg = <0x1600 0x100>; |
| }; |
| }; |
| |
| regulator@1700 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_s2"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x1700 0x300>; |
| status = "disabled"; |
| |
| qcom,ctl@1700 { |
| reg = <0x1700 0x100>; |
| }; |
| qcom,ps@1800 { |
| reg = <0x1800 0x100>; |
| }; |
| qcom,freq@1900 { |
| reg = <0x1900 0x100>; |
| }; |
| }; |
| |
| regulator@1a00 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_s3"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x1a00 0x300>; |
| status = "disabled"; |
| |
| qcom,ctl@1a00 { |
| reg = <0x1a00 0x100>; |
| }; |
| qcom,ps@1b00 { |
| reg = <0x1b00 0x100>; |
| }; |
| qcom,freq@1c00 { |
| reg = <0x1c00 0x100>; |
| }; |
| }; |
| |
| regulator@1d00 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_s4"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x1d00 0x300>; |
| status = "disabled"; |
| |
| qcom,ctl@1d00 { |
| reg = <0x1d00 0x100>; |
| }; |
| qcom,ps@1e00 { |
| reg = <0x1e00 0x100>; |
| }; |
| qcom,freq@1f00 { |
| reg = <0x1f00 0x100>; |
| }; |
| }; |
| |
| regulator@4000 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l1"; |
| reg = <0x4000 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4100 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l2"; |
| reg = <0x4100 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4200 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l3"; |
| reg = <0x4200 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4300 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l4"; |
| reg = <0x4300 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4400 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l5"; |
| reg = <0x4400 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4500 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l6"; |
| reg = <0x4500 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4600 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l7"; |
| reg = <0x4600 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4700 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l8"; |
| reg = <0x4700 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4800 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l9"; |
| reg = <0x4800 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4900 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l10"; |
| reg = <0x4900 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4b00 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l12"; |
| reg = <0x4b00 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4d00 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l14"; |
| reg = <0x4d00 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4e00 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l15"; |
| reg = <0x4e00 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@4f00 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l16"; |
| reg = <0x4f00 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@5000 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l17"; |
| reg = <0x5000 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@5100 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l18"; |
| reg = <0x5100 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@5200 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l19"; |
| reg = <0x5200 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@5300 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l20"; |
| reg = <0x5300 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@5400 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l21"; |
| reg = <0x5400 0x100>; |
| status = "disabled"; |
| }; |
| |
| regulator@5500 { |
| compatible = "qcom,qpnp-regulator"; |
| regulator-name = "8110_l22"; |
| reg = <0x5500 0x100>; |
| status = "disabled"; |
| }; |
| |
| qcom,vibrator@c000 { |
| compatible = "qcom,qpnp-vibrator"; |
| reg = <0xc000 0x100>; |
| label = "vibrator"; |
| status = "disabled"; |
| }; |
| |
| pwm@bc00 { |
| compatible = "qcom,qpnp-pwm"; |
| reg = <0xbc00 0x100>; |
| reg-names = "qpnp-lpg-channel-base"; |
| qcom,channel-id = <0>; |
| }; |
| }; |
| }; |