Qualcomm QPNP Regulators qpnp-regulator is a regulator driver which supports regulators inside of PMICs that utilize the MSM SPMI implementation. Required properties: - compatible: Must be "qcom,qpnp-regulator" - reg: Specifies the SPMI address and size for this regulator device Note, this is the only property which can be used within a subnode of a node which has specified spmi-dev-container. - regulator-name: A string used as a descriptive name for regulator outputs - parent-supply: phandle to the parent supply/regulator node Required structure: - A qcom,qpnp-regulator node must be a child of an SPMI node that has specified the spmi-slave-container property Optional properties: - interrupts: List of interrupts used by the regulator. - interrupt-names: List of strings defining the names of the interrupts in the 'interrupts' property 1-to-1. Supported values are "ocp" for voltage switch type regulators. If an OCP interrupt is specified, then the voltage switch will be toggled off and back on when OCP triggers in order to handle high in-rush current. - qcom,system-load: Load in uA present on regulator that is not captured by any consumer request - qcom,enable-time: Time in us to delay after enabling the regulator - qcom,auto-mode-enable: 1 = Enable automatic hardware selection of regulator mode (HPM vs LPM); not available on boost type regulators 0 = Disable auto mode selection - qcom,bypass-mode-enable: 1 = Enable bypass mode for an LDO type regulator so that it acts like a switch and simply outputs its input voltage 0 = Do not enable bypass mode - qcom,ocp-enable: 1 = Allow over current protection (OCP) to be enabled for voltage switch type regulators so that they latch off automatically when over current is detected. OCP is enabled when in HPM or auto mode. 0 = Disable OCP - qcom,ocp-max-retries: Maximum number of times to try toggling a voltage switch off and back on as a result of consecutive over current events. - qcom,ocp-retry-delay: Time to delay in milliseconds between each voltage switch toggle after an over current event takes place. - qcom,pull-down-enable: 1 = Enable output pull down resistor when the regulator is disabled 0 = Disable pull down resistor - qcom,soft-start-enable: 1 = Enable soft start for LDO and voltage switch type regulators so that output voltage slowly ramps up when the regulator is enabled 0 = Disable soft start - qcom,boost-current-limit: This property sets the current limit of boost type regulators; supported values are: 0 = 300 mA 1 = 600 mA 2 = 900 mA 3 = 1200 mA 4 = 1500 mA 5 = 1800 mA 6 = 2100 mA 7 = 2400 mA - qcom,pin-ctrl-enable: Bit mask specifying which hardware pins should be used to enable the regulator, if any; supported bits are: 0 = ignore all hardware enable signals BIT(0) = follow HW0_EN signal BIT(1) = follow HW1_EN signal BIT(2) = follow HW2_EN signal BIT(3) = follow HW3_EN signal - qcom,pin-ctrl-hpm: Bit mask specifying which hardware pins should be used to force the regulator into high power mode, if any; supported bits are: 0 = ignore all hardware enable signals BIT(0) = follow HW0_EN signal BIT(1) = follow HW1_EN signal BIT(2) = follow HW2_EN signal BIT(3) = follow HW3_EN signal BIT(4) = follow PMIC awake state - qcom,vs-soft-start-strength: This property sets the soft start strength for voltage switch type regulators; supported values are: 0 = 0.05 uA 1 = 0.25 uA 2 = 0.55 uA 3 = 0.75 uA - qcom,hpm-enable: 1 = Enable high power mode (HPM), also referred to as NPM. HPM consumes more ground current than LPM, but it can source significantly higher load current. HPM is not available on boost type regulators. For voltage switch type regulators, HPM implies that over current protection and soft start are active all the time. This configuration can be overwritten by changing the regulator's mode dynamically. 0 = Do not enable HPM - qcom,force-type: Override the type and subtype register values. Useful for some regulators that have invalid types advertised by the hardware. The format is two unsigned integers of the form . - spmi-dev-container: Specifies that all the device nodes specified within this node should have their resources coalesced into a single spmi_device. This is used to specify all SPMI peripherals that logically make up a single regulator device. Note, if a given optional qcom,* binding is not present, then the qpnp-regulator driver will leave that feature in the default hardware state. All properties specified within the core regulator framework can also be used. These bindings can be found in regulator.txt. Example: qcom,spmi@fc4c0000 { #address-cells = <1>; #size-cells = <0>; interrupt-controller; #interrupt-cells = <3>; qcom,pm8941@1 { spmi-slave-container; reg = <0x1>; #address-cells = <1>; #size-cells = <1>; regulator@1400 { regulator-name = "8941_s1"; spmi-dev-container; #address-cells = <1>; #size-cells = <1>; compatible = "qcom,qpnp-regulator"; reg = <0x1400 0x300>; regulator-min-microvolt = <1300000>; regulator-max-microvolt = <1400000>; qcom,ctl@1400 { reg = <0x1400 0x100>; }; qcom,ps@1500 { reg = <0x1500 0x100>; }; qcom,freq@1600 { reg = <0x1600 0x100>; }; }; regulator@4000 { regulator-name = "8941_l1"; reg = <0x4000 0x100>; compatible = "qcom,qpnp-regulator"; regulator-min-microvolt = <1225000>; regulator-max-microvolt = <1300000>; qcom,pull-down-enable = <1>; }; }; };