| /* 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,pm8226@0 { |
| spmi-slave-container; |
| reg = <0x0>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| 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,support-reset = <1>; |
| qcom,pull-up = <1>; |
| qcom,s1-timer = <0>; |
| qcom,s2-timer = <2000>; |
| qcom,s2-type = <1>; |
| linux,code = <114>; |
| }; |
| }; |
| |
| pm8226_chg: qcom,charger { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-charger"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| status = "disabled"; |
| |
| qcom,chg-vddmax-mv = <4200>; |
| qcom,chg-vddsafe-mv = <4200>; |
| qcom,chg-vinmin-mv = <4200>; |
| qcom,chg-vbatdet-mv = <4100>; |
| qcom,chg-ibatmax-ma = <1500>; |
| qcom,chg-ibatterm-ma = <200>; |
| qcom,chg-ibatsafe-ma = <1500>; |
| qcom,chg-thermal-mitigation = <1500 700 600 325>; |
| |
| qcom,chg-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,chg-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,chg-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,chg-usb-chgpth@1300 { |
| status = "disabled"; |
| reg = <0x1300 0x100>; |
| interrupts = <0 0x13 0x0>, |
| <0 0x13 0x1>, |
| <0x0 0x13 0x2>; |
| |
| interrupt-names = "coarse-det-usb", |
| "usbin-valid", |
| "chg-gone"; |
| }; |
| |
| qcom,chg-boost@1500 { |
| status = "disabled"; |
| reg = <0x1500 0x100>; |
| interrupts = <0x0 0x15 0x0>, |
| <0x0 0x15 0x1>; |
| |
| interrupt-names = "boost-pwr-ok", |
| "limit-error"; |
| }; |
| |
| qcom,chg-misc@1600 { |
| status = "disabled"; |
| reg = <0x1600 0x100>; |
| }; |
| }; |
| |
| pm8226_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 = <18>; |
| qcom,shutdown-soc-valid-limit = <20>; |
| qcom,adjust-soc-low-threshold = <25>; |
| qcom,adjust-soc-high-threshold = <45>; |
| 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-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"; |
| }; |
| }; |
| |
| pm8226_gpios: gpios { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-pin"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| label = "pm8226-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>; |
| }; |
| |
| gpio@c400 { |
| reg = <0xc400 0x100>; |
| qcom,pin-num = <5>; |
| }; |
| |
| gpio@c500 { |
| reg = <0xc500 0x100>; |
| qcom,pin-num = <6>; |
| }; |
| |
| gpio@c600 { |
| reg = <0xc600 0x100>; |
| qcom,pin-num = <7>; |
| }; |
| |
| gpio@c700 { |
| reg = <0xc700 0x100>; |
| qcom,pin-num = <8>; |
| }; |
| }; |
| |
| pm8226_mpps: mpps { |
| spmi-dev-container; |
| compatible = "qcom,qpnp-pin"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| label = "pm8226-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>; |
| }; |
| |
| mpp@a400 { |
| reg = <0xa400 0x100>; |
| qcom,pin-num = <5>; |
| }; |
| |
| mpp@a500 { |
| reg = <0xa500 0x100>; |
| qcom,pin-num = <6>; |
| }; |
| |
| mpp@a600 { |
| reg = <0xa600 0x100>; |
| qcom,pin-num = <7>; |
| }; |
| |
| mpp@a700 { |
| reg = <0xa700 0x100>; |
| qcom,pin-num = <8>; |
| }; |
| }; |
| |
| pm8226_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>; |
| }; |
| |
| chan@c { |
| label = "ref_buf_625mv"; |
| reg = <0xc>; |
| 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>; |
| qcom,rsense = <1500>; |
| |
| 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>; |
| }; |
| }; |
| |
| qcom,pm8226_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,pm8226_rtc_rw@6000 { |
| reg = <0x6000 0x100>; |
| }; |
| qcom,pm8226_rtc_alarm@6100 { |
| reg = <0x6100 0x100>; |
| interrupts = <0x0 0x61 0x1>; |
| }; |
| }; |
| }; |
| |
| qcom,pm8226@1 { |
| spmi-slave-container; |
| reg = <0x1>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| regulator@1400 { |
| regulator-name = "8226_s1"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "qcom,qpnp-regulator"; |
| 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 { |
| regulator-name = "8226_s2"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "qcom,qpnp-regulator"; |
| 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 { |
| regulator-name = "8226_s3"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "qcom,qpnp-regulator"; |
| 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 { |
| regulator-name = "8226_s4"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "qcom,qpnp-regulator"; |
| reg = <0x1d00 0x300>; |
| status = "disabled"; |
| |
| qcom,ctl@1d00 { |
| reg = <0x1d00 0x100>; |
| }; |
| qcom,ps@1e00 { |
| reg = <0x1e00 0x100>; |
| }; |
| qcom,freq@1f00 { |
| reg = <0x1f00 0x100>; |
| }; |
| }; |
| |
| regulator@2000 { |
| regulator-name = "8226_s5"; |
| spmi-dev-container; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "qcom,qpnp-regulator"; |
| reg = <0x2000 0x300>; |
| status = "disabled"; |
| |
| qcom,ctl@2000 { |
| reg = <0x2000 0x100>; |
| }; |
| qcom,ps@2100 { |
| reg = <0x2100 0x100>; |
| }; |
| qcom,freq@2200 { |
| reg = <0x2200 0x100>; |
| }; |
| }; |
| |
| regulator@4000 { |
| regulator-name = "8226_l1"; |
| reg = <0x4000 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4100 { |
| regulator-name = "8226_l2"; |
| reg = <0x4100 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4200 { |
| regulator-name = "8226_l3"; |
| reg = <0x4200 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4300 { |
| regulator-name = "8226_l4"; |
| reg = <0x4300 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4400 { |
| regulator-name = "8226_l5"; |
| reg = <0x4400 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4500 { |
| regulator-name = "8226_l6"; |
| reg = <0x4500 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4600 { |
| regulator-name = "8226_l7"; |
| reg = <0x4600 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4700 { |
| regulator-name = "8226_l8"; |
| reg = <0x4700 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4800 { |
| regulator-name = "8226_l9"; |
| reg = <0x4800 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4900 { |
| regulator-name = "8226_l10"; |
| reg = <0x4900 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4b00 { |
| regulator-name = "8226_l12"; |
| reg = <0x4b00 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4d00 { |
| regulator-name = "8226_l14"; |
| reg = <0x4d00 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4e00 { |
| regulator-name = "8226_l15"; |
| reg = <0x4e00 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@4f00 { |
| regulator-name = "8226_l16"; |
| reg = <0x4f00 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5000 { |
| regulator-name = "8226_l17"; |
| reg = <0x5000 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5100 { |
| regulator-name = "8226_l18"; |
| reg = <0x5100 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5200 { |
| regulator-name = "8226_l19"; |
| reg = <0x5200 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5300 { |
| regulator-name = "8226_l20"; |
| reg = <0x5300 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5400 { |
| regulator-name = "8226_l21"; |
| reg = <0x5400 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5500 { |
| regulator-name = "8226_l22"; |
| reg = <0x5500 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5600 { |
| regulator-name = "8226_l23"; |
| reg = <0x5600 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5700 { |
| regulator-name = "8226_l24"; |
| reg = <0x5700 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5900 { |
| regulator-name = "8226_l26"; |
| reg = <0x5900 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5a00 { |
| regulator-name = "8226_l27"; |
| reg = <0x5a00 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| regulator@5b00 { |
| regulator-name = "8226_l28"; |
| reg = <0x5b00 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| qcom,leds@d800 { |
| compatible = "qcom,leds-qpnp"; |
| reg = <0xd800 0x100>; |
| label = "wled"; |
| }; |
| |
| regulator@8000 { |
| regulator-name = "8226_lvs1"; |
| reg = <0x8000 0x100>; |
| compatible = "qcom,qpnp-regulator"; |
| status = "disabled"; |
| }; |
| |
| qcom,vibrator@c000 { |
| compatible = "qcom,qpnp-vibrator"; |
| reg = <0xc000 0x100>; |
| label = "vibrator"; |
| status = "disabled"; |
| }; |
| |
| qcom,leds@d300 { |
| compatible = "qcom,leds-qpnp"; |
| status = "disable"; |
| reg = <0xd300 0x100>; |
| label = "flash"; |
| pm8226_flash0: qcom,flash_0 { |
| qcom,max-current = <1000>; |
| qcom,default-state = "off"; |
| qcom,headroom = <0>; |
| qcom,duration = <1280>; |
| qcom,clamp-curr = <200>; |
| qcom,startup-dly = <1>; |
| qcom,safety-timer; |
| label = "flash"; |
| linux,default-trigger = |
| "flash0_trigger"; |
| qcom,id = <1>; |
| linux,name = "led:flash_0"; |
| qcom,current = <625>; |
| }; |
| |
| pm8226_flash1: qcom,flash_1 { |
| qcom,max-current = <1000>; |
| qcom,default-state = "off"; |
| qcom,headroom = <0>; |
| qcom,duration = <1280>; |
| qcom,clamp-curr = <200>; |
| qcom,startup-dly = <1>; |
| qcom,safety-timer; |
| linux,default-trigger = |
| "flash1_trigger"; |
| label = "flash"; |
| qcom,id = <2>; |
| linux,name = "led:flash_1"; |
| qcom,current = <625>; |
| }; |
| }; |
| }; |
| }; |