| QTI's LAB (LCD/AMOLED BOOST)/IBB (Inverting Buck-Boost) Regulator |
| |
| LAB can be used as a standalone positive boost power supply for general purpose |
| applications. IBB can be used as a standalone negative power supply for general |
| applications. Also, LAB and IBB can be used together to provide power supply for |
| display panels, LCD or AMOLED. |
| |
| Main node required properties: |
| |
| - compatible: Must be "qcom,qpnp-labibb-regulator" |
| - qcom,qpnp-labibb-mode: A string used to specify the working mode of LAB/IBB |
| regulators when bootloader does not turned on the |
| display panel. Could be "lcd" or "amoled". |
| "lcd" means using LAB and IBB regulators are |
| configured for LCD mode. |
| "amoled" means using LAB and IBB regulators are |
| configured for AMOLED mode. |
| - qcom,pmic-revid: Specifies the phandle of the PMIC revid module. |
| Used to identify the PMIC subtype. |
| |
| Main node optional properties: |
| |
| - qcom,qpnp-labibb-touch-to-wake-en: A boolean property which upon set will |
| enable support for touch-to-wake mode |
| by configuring the required settings |
| in LAB and IBB modules. Make sure the |
| hardware has needed support before |
| enabling this property. |
| - qcom,swire-control: A boolean property which indicates if the LAB/IBB is |
| controlled by the SWIRE interface. Enable only |
| if qcom,qpnp-labibb-mode = "amoled". |
| - qcom,labibb-ttw-force-lab-on: A boolean property which forces LAB to be |
| always on during TTW mode. |
| - qcom,skip-2nd-swire-cmd: A boolean property which indicates if |
| the second SWIRE command needs to be skipped. |
| - qcom,swire-2nd-cmd-delay: An integer value which specifes the |
| delay in millisecs between the first and second |
| SWIRE command. If not specified this value |
| defaults to 20ms. This delay is applied only |
| if 'qcom,skip-2nd-swire-cmd' is defined. |
| - qcom,swire-ibb-ps-enable-delay: An integer value which specifes the delay |
| in millisecs to enable IBB pulse-skipping |
| after the skip-2nd-swire-cmd workaround is applied. |
| If not specified this value default to 200ms. |
| This property is applicable only if |
| 'qcom,skip-2nd-swire-cmd' is specified. |
| - qcom,labibb-standalone: A boolean property which forces LAB and |
| IBB to operate in standalone mode. If |
| this is not specified, then LAB and IBB |
| are controlled together in dual mode. |
| - parent-supply: Parent supply that is needed for LAB |
| and IBB regulators. This will be mostly |
| needed when LAB and IBB are operating |
| in standalone mode to vote for MBG. |
| |
| Following properties are available only for PM660A: |
| |
| - qcom,pbs-control: A boolean property which indicates if |
| the LAB/IBB is controlled by the PBS |
| sequencer. If this mode is enabled the |
| PBS sequencer does the SWIRE remapping |
| and program the voltages based on the |
| SWIRE count. |
| |
| LAB subnode required properties: |
| |
| - reg: Specifies the SPMI address and size for this peripheral. |
| - reg-names: Register names. Must be "lab". |
| - regulator-name: A string used to describe the regulator. |
| - regulator-min-microvolt: Minimum voltage in microvolts supported by this regulator. |
| - regulator-max-microvolt: Maximum voltage in microvolts supported by this regulator. |
| |
| - qcom,qpnp-lab-min-voltage: The minimum voltage in microvolts LAB regulator can support. |
| - qcom,qpnp-lab-step-size: The step size in microvolts of LAB regulator. |
| - qcom,qpnp-lab-slew-rate: The time in us taken by the regulator to change |
| voltage value in one step. |
| |
| - qcom,qpnp-lab-init-voltage: The default initial voltage when the bootloader |
| does not turn on LAB regulator. |
| - qcom,qpnp-lab-init-amoled-voltage: The default output voltage when LAB regulator |
| is configured in amoled mode. |
| - qcom,qpnp-lab-init-lcd-voltage: The default output voltage when LAB regulator |
| is configured in lcd mode. |
| - qcom,qpnp-lab-ps-threshold: The threshold in mA of Pulse Skip Mode for |
| LAB regulator. Supported values for |
| PMI8994/6 are 20, 30, 40 and 50. |
| Supported values for PMI8998/PM660A are |
| 50, 60, 70 and 80. |
| - interrupts: Specify the interrupts as per the interrupt |
| encoding. |
| Currently "lab-vreg-ok" is required and "lab-sc_err" |
| is optional for LCD mode in pmi8998. |
| For AMOLED mode, "lab-vreg-ok" is required |
| only when SWIRE control is enabled and skipping |
| 2nd SWIRE pulse is required in pmi8952/8996. |
| - interrupt-names: Interrupt names to match up 1-to-1 with |
| the interrupts specified in 'interrupts' |
| property. |
| |
| LAB subnode optional properties: |
| |
| - qcom,qpnp-lab-current-sense: If this property is specified, the LAB current |
| sense gain will be programmed for LAB regulator. |
| Otherwise, LAB current sense gain will be |
| default to "1x". A string is used to specify the |
| LAB current sense gain. Could be "0.5x" or "1x" |
| or "1.5x" or "2x". For e.g. "0.5x" means current |
| sense gain is 0.5. |
| - qcom,qpnp-lab-ps-enable: A boolean proerty which upon set will enable |
| pulse skip mode for LAB regulator. Otherwise, |
| it is disabled. |
| - qcom,qpnp-lab-full-pull-down: A boolean property which upon set will enable |
| the pull down strength of LAB regulator to |
| full. Otherwise, the pull down strength is |
| configured to half. |
| - qcom,qpnp-lab-pull-down-enable: A boolean property which upon set will enable |
| the pull down for LAB regulator. Otherwise, |
| it is disabled. |
| - qcom,qpnp-lab-max-precharge-enable: A boolean property which upon set will |
| enable fast precharge. Otherwise, it is |
| disabled. |
| - qcom,qpnp-lab-ring-suppression-enable: A boolean property which upon set will |
| enable ring suppression for LAB |
| regulator. Otherwise, it is disabled. |
| - qcom,qpnp-lab-limit-max-current-enable: A boolean property which upon set will |
| enforce maximum inductor current constraint |
| for LAB regulator. Otherwise, there is no |
| maximum current constraint. |
| - qcom,qpnp-lab-switching-clock-frequency: The PWM switching clock frequency in |
| kHz of Lab regulator, Supported values |
| are: 3200, 2740, 2400, 2130, 1920, |
| 1750, 1600, 1480, 1370, 1280, 1200, |
| 1130, 1070, 1010, 960, 910. |
| - qcom,qpnp-lab-limit-maximum-current: The maximum inductor current limit in |
| mA of LAB regulator. Supported values |
| are 200, 400, 600, 800, 1000, 1200, |
| 1400 and 1600. |
| - qcom,qpnp-lab-pfet-size: PFET size in percentage. Supported values |
| are 25, 50, 75 and 100. |
| - qcom,qpnp-lab-nfet-size: NFET size in percentage. Supported values |
| are 25, 50, 75 and 100. |
| - qcom,qpnp-lab-max-precharge-time: Precharge time in uS for LAB regulator. |
| Supported values are 200, 300, 400 and 500. |
| Suggested values for LCD and AMOLED mode |
| are 500 and 300uS respectively. |
| - qcom,qpnp-lab-use-default-voltage: A boolean property which upon set will |
| use the value specified in |
| qcom,qpnp-lab-init-voltage property. |
| This will be used only if the bootloader |
| doesn't configure the output voltage |
| already. If it it not specified, then |
| output voltage can be configured to |
| any value in the allowed limit. |
| - qcom,notify-lab-vreg-ok-sts: A boolean property which upon set will |
| poll and notify the lab_vreg_ok status. |
| - qcom,qpnp-lab-sc-wait-time-ms: This property is used to specify the time |
| (in ms) to poll for the short circuit |
| detection. If not specified the default time |
| is 5 sec. |
| |
| Following properties are available only for PM660A: |
| |
| - qcom,qpnp-lab-soft-start: The soft start time in us of LAB regulator. |
| Supported value are 200, 400, 600 and 800. |
| - qcom,qpnp-lab-ldo-pulldown-enable: This property is used to enable/disable |
| the LDO pull down. |
| 1 - enable pulldown |
| 0 - disable pulldown |
| - qcom,qpnp-lab-enable-sw-high-psrr: A boolean property to enable the |
| software high psrr |
| (Power Suppy Rejection Rate) mode. |
| - qcom,qpnp-lab-high-psrr-src-select: This property is used to select the LAB |
| HW high psrr source. |
| The supported values are: |
| 0 = Either vph_high or high_psrr enable |
| 1 = vph_high only |
| 2 = high_psrr enable only |
| 3 = Either vph_high or high_psrr enable |
| This property is not valid if the |
| qcom,qpnp-lab-enable-sw-high-psrr property |
| is specified. |
| - qcom,qpnp-lab-vref-high-psrr-select: This property is required if the |
| qcom,qpnp-lab-high-psrr-src-select is |
| specified. The supported values (in mV) |
| are 350, 400, 450 and 500. Once the |
| rejection rate crosses the selected |
| high-psrr voltage the LDO is enabled |
| based on the value specified under |
| qcom,qpnp-lab-high-psrr-src-select |
| property. |
| This property is not valid if the |
| qcom,qpnp-lab-enable-sw-high-psrr property |
| is specified. |
| |
| IBB subnode required properties: |
| |
| - reg: Specifies the SPMI address and size for this peripheral. |
| - reg-names: Register names. Must be "ibb". |
| - regulator-name: A string used to describe the regulator. |
| - regulator-min-microvolt: Minimum voltage in microvolts supported by this regulator. |
| - regulator-max-microvolt: Maximum voltage in microvolts supported by this regulator. |
| |
| - qcom,qpnp-ibb-min-voltage: The minimum voltage in microvolts IBB regulator can support. |
| - qcom,qpnp-ibb-step-size: The step size in microvolts of IBB regulator. |
| - qcom,qpnp-ibb-soft-start: The soft start time in us of IBB regulator. |
| |
| - qcom,qpnp-ibb-init-voltage: The default initial voltage when the bootloader does |
| not turn on IBB regulator. |
| - qcom,qpnp-ibb-init-amoled-voltage: The default output voltage when IBB regulator |
| is configured in amoled mode. |
| - qcom,qpnp-ibb-init-lcd-voltage: The default output voltage when IBB regulator |
| is configured in lcd mode. |
| |
| IBB subnode optional properties: |
| |
| - interrupts: Specify the interrupts as per the interrupt |
| encoding. |
| Currently "ibb-sc-err" could be used for LCD mode |
| in pmi8998 to detect the short circuit fault. |
| - interrupt-names: Interrupt names to match up 1-to-1 with |
| the interrupts specified in 'interrupts' |
| property. |
| |
| - qcom,qpnp-ibb-discharge-resistor: The discharge resistor in Kilo Ohms which |
| controls the soft start time. Supported values |
| are 300, 64, 32 and 16. |
| |
| - qcom,qpnp-ibb-slew-rate: The time (in us) taken by the regulator to change |
| voltage value in one step. This property is not |
| applicable to PM660A. |
| The following properties can be used as an |
| alternate. |
| qcom,qpnp-ibb-slew-rate-config |
| qcom,qpnp-ibb-fast-slew-rate |
| qcom,qpnp-ibb-slow-slew-rate |
| - qcom,qpnp-ibb-ps-enable: A boolean property which upon set will enable |
| pulse skip mode for IBB regulator. Otherwise, |
| it is disabled. |
| - qcom,qpnp-ibb-num-swire-trans: The number of SWIRE transactions |
| after which the pulse skipping is |
| enabled. This property is required when |
| qpnp-ibb-smart-ps-enable property is |
| set. |
| - qcom,qpnp-ibb-neg-curr-limit: This property must be set when the |
| qpnp-ibb-smart-ps-enable is specified. |
| The supported values in mA are 1, 2, 3, |
| 4, 5, 6 and 7. The recommended value is |
| - qcom,qpnp-ibb-full-pull-down: A boolean property which upon set will |
| enable the pull down strength of IBB |
| regulator to full. Otherwise, the pull |
| down strength is configured to half. |
| - qcom,qpnp-ibb-pull-down-enable: A boolean property which upon set will enable |
| the pull down for IBB regulator. Otherwise, |
| it is disabled. |
| - qcom,qpnp-ibb-lab-pwrup-delay: Power up delay (in us) for IBB regulator when |
| it is enabled or turned on. Supported values |
| are 1000, 2000, 4000 and 8000. |
| - qcom,qpnp-ibb-lab-pwrdn-delay: Power down delay (in us) for IBB regulator |
| when it is disabled or turned off. Supported |
| values are 1000, 2000, 4000 and 8000. |
| - qcom,qpnp-ibb-switching-clock-frequency: The PWM switching clock frequency in |
| kHz of IBB regulator. Supported values |
| are: 3200, 2740, 2400, 2130, 1920, |
| 1750, 1600, 1480, 1370, 1280, 1200, |
| 1130, 1070, 1010, 960, 910. |
| - qcom,qpnp-ibb-limit-maximum-current: The maximum inductor current limit in |
| mA of IBB regulator. Supported values |
| are: 0, 50, 100, 150, 200, 250, 300, |
| 350, 400, 450, 500, 550, 600, 650, 700, |
| 750, 800, 850, 900, 950, 1000, 1050, |
| 1100, 1150, 1200, 1250, 1300, 1350, |
| 1400, 1450, 1500 and 1550. |
| - qcom,qpnp-ibb-debounce-cycle: The debounce cycle of IBB regulator. |
| Supported values are 8, 16, 32 and 64. |
| - qcom,qpnp-ibb-en-discharge: A boolean property which upon set will |
| enable discharge for IBB regulator. |
| Otherwise, it is kept disabled. |
| - qcom,qpnp-ibb-ring-suppression-enable: A boolean property which upon set will |
| enable ring suppression for IBB |
| regulator. Otherwise, it is disabled. |
| - qcom,qpnp-ibb-limit-max-current-enable: A boolean property which upon set will |
| enforce maximum inductor current constraint |
| for IBB regulator. Otherwise, there is no |
| maximum current constraint. |
| - qcom,qpnp-ibb-use-default-voltage: A boolean property which upon set will |
| use the value specified in |
| qcom,qpnp-ibb-init-voltage property. |
| This will be used only if the bootloader |
| doesn't configure the output voltage |
| already. If it it not specified, then |
| output voltage can be configured to |
| any value in the allowed limit. |
| - qcom,output-voltage-one-pulse: The expected voltage (in mV) of VDISN signal |
| on the first SWIRE pulse. This property |
| can be specified only if 'qcom,swire-control' |
| is defined. The minimum and maximum values |
| are 1400mV and 7700mV. |
| |
| Following properties are available only for PM660A: |
| |
| - qcom,qpnp-ibb-smart-ps-enable: A boolean property which upon set |
| enables smart pulse skip mode for IBB |
| regulator. Otherwise, it is disabled. |
| This property is only applicable to |
| PM660A. |
| - qcom,qpnp-ibb-enable-pfm-mode: A boolean property which enables the IBB to work |
| in pfm mode. |
| - qcom,qpnp-ibb-pfm-peak-curr: The PFM peak current limit settings in mA. |
| Supported values are 150, 200, 250, 300, |
| 350, 400, 450 and 500. This property is |
| required if the qcom,qpnp-ibb-enable-pfm-mode |
| is true. |
| - qcom,qpnp-ibb-pfm-hysteresis: The PFM hysteresis voltage threshold in mV. |
| Supported values are 0, 25 and 50. |
| This property is required if the |
| qcom,qpnp-ibb-enable-pfm-mode is specified. |
| - qcom,qpnp-ibb-overload-blank: A boolean property which upon set enables |
| the IBB overload blanking. |
| - qcom,qpnp-ibb-overload-debounce: The expected overload debounce time (in ms) |
| values are 1, 2, 4 and 8. |
| This property is required only when the |
| qcom,qpnp-ibb-overload-blank is set. |
| - qcom,qpnp-ibb-vreg-ok-debounce: The expected vreg-ok-debounce time (us) |
| values are 4, 8, 16 and 32. |
| This property is required only when the |
| qcom,qpnp-ibb-overload-blank is set. |
| - qcom,qpnp-ibb-slew-rate-config: A boolean property to configure the |
| ibb fast/slow slew rate. |
| Either qcom,qpnp-ibb-fast-slew-rate or |
| qcom,qpnp-ibb-slow-slew-rate has to be |
| specified. Otherwise the |
| qcom,qpnp-ibb-slow-slew-rate takes precedence |
| over the qcom,qpnp-ibb-fast-slew-rate. |
| - qcom,qpnp-ibb-fast-slew-rate: This property is required if the qcom, |
| qpnp-ibb-slew-rate-config property is |
| specified. Supported values (in us) are |
| 100, 200, 500, 1000, 2000, 10000, 12000 |
| and 15000. |
| - qcom,qpnp-ibb-slow-slew-rate: This property is required if the qcom, |
| qpnp-ibb-slew-rate-config property is |
| specified. Supported values (in us) are |
| 100, 200, 500, 1000, 2000, 10000, 12000 |
| and 15000. |
| |
| Example: |
| qcom,pmi8994@3 { |
| qpnp-labibb-regulator { |
| compatible = "qcom,qpnp-labibb-regulator"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| qcom,qpnp-labibb-mode = "lcd"; |
| qcom,pmic-revid = <&pmi8994_revid>; |
| qcom,skip-2nd-swire-cmd; |
| |
| lab_regulator: qcom,lab@de00 { |
| reg = <0xde00 0x100>; |
| reg-names = "lab"; |
| |
| interrupts = <0x3 0xde 0x0 |
| IRQ_TYPE_EDGE_RISING>; |
| interrupt-names = "lab-vreg-ok"; |
| |
| regulator-name = "lab_reg"; |
| regulator-min-microvolt = <4600000>; |
| regulator-max-microvolt = <6000000>; |
| |
| qcom,qpnp-lab-min-voltage = <4600000>; |
| qcom,qpnp-lab-step-size = <100000>; |
| qcom,qpnp-lab-slew-rate = <5000>; |
| qcom,qpnp-lab-use-default-voltage; |
| qcom,qpnp-lab-init-voltage = <5500000>; |
| qcom,qpnp-lab-init-amoled-voltage = <4600000>; |
| qcom,qpnp-lab-init-lcd-voltage = <5500000>; |
| |
| qcom,qpnp-lab-soft-start = <400>; |
| |
| qcom,qpnp-lab-full-pull-down; |
| qcom,qpnp-lab-pull-down-enable; |
| qcom,qpnp-lab-switching-clock-frequency = <1600>; |
| qcom,qpnp-lab-limit-maximum-current = <1600>; |
| qcom,qpnp-lab-limit-max-current-enable; |
| qcom,qpnp-lab-ps-threshold = <40>; |
| qcom,qpnp-lab-ps-enable; |
| qcom,qpnp-lab-nfet-size = <100>; |
| qcom,qpnp-lab-pfet-size = <100>; |
| qcom,qpnp-lab-max-precharge-time = <200>; |
| }; |
| |
| ibb_regulator: qcom,ibb@dc00 { |
| reg = <0xdc00 0x100>; |
| reg-names = "ibb_reg"; |
| regulator-name = "ibb_reg"; |
| |
| regulator-min-microvolt = <4600000>; |
| regulator-max-microvolt = <6000000>; |
| |
| qcom,qpnp-ibb-min-voltage = <1400000>; |
| qcom,qpnp-ibb-step-size = <100000>; |
| qcom,qpnp-ibb-slew-rate = <2000000>; |
| qcom,qpnp-ibb-use-default-voltage; |
| qcom,qpnp-ibb-init-voltage = <5500000>; |
| qcom,qpnp-ibb-init-amoled-voltage = <4000000>; |
| qcom,qpnp-ibb-init-lcd-voltage = <5500000>; |
| |
| qcom,qpnp-ibb-soft-start = <400>; |
| |
| qcom,qpnp-ibb-discharge-resistor = <300>; |
| qcom,qpnp-ibb-lab-pwrup-delay = <8000>; |
| qcom,qpnp-ibb-lab-pwrdn-delay = <8000>; |
| qcom,qpnp-ibb-en-discharge; |
| |
| qcom,qpnp-ibb-full-pull-down; |
| qcom,qpnp-ibb-pull-down-enable; |
| qcom,qpnp-ibb-switching-clock-frequency = <1480>; |
| qcom,qpnp-ibb-limit-maximum-current = <1550>; |
| qcom,qpnp-ibb-debounce-cycle = <16>; |
| qcom,qpnp-ibb-limit-max-current-enable; |
| qcom,qpnp-ibb-ps-enable; |
| }; |
| |
| }; |
| }; |