| * ams AS3722 Power management IC. | |
| Required properties: | |
| ------------------- | |
| - compatible: Must be "ams,as3722". | |
| - reg: I2C device address. | |
| - interrupt-controller: AS3722 has internal interrupt controller which takes the | |
| interrupt request from internal sub-blocks like RTC, regulators, GPIOs as well | |
| as external input. | |
| - #interrupt-cells: Should be set to 2 for IRQ number and flags. | |
| The first cell is the IRQ number. IRQ numbers for different interrupt source | |
| of AS3722 are defined at dt-bindings/mfd/as3722.h | |
| The second cell is the flags, encoded as the trigger masks from binding document | |
| interrupts.txt, using dt-bindings/irq. | |
| Optional properties: | |
| -------------------- | |
| - ams,enable-internal-int-pullup: Boolean property, to enable internal pullup on | |
| interrupt pin. Missing this will disable internal pullup on INT pin. | |
| - ams,enable-internal-i2c-pullup: Boolean property, to enable internal pullup on | |
| i2c scl/sda pins. Missing this will disable internal pullup on i2c | |
| scl/sda lines. | |
| - ams,enable-ac-ok-power-on: Boolean property, to enable exit out of power off | |
| mode with AC_OK pin (pin enabled in power off mode). | |
| Optional submodule and their properties: | |
| ======================================= | |
| Pinmux and GPIO: | |
| =============== | |
| Device has 8 GPIO pins which can be configured as GPIO as well as the special IO | |
| functions. | |
| Please refer to pinctrl-bindings.txt in this directory for details of the | |
| common pinctrl bindings used by client devices, including the meaning of the | |
| phrase "pin configuration node". | |
| Following are properties which is needed if GPIO and pinmux functionality | |
| is required: | |
| Required properties: | |
| ------------------- | |
| - gpio-controller: Marks the device node as a GPIO controller. | |
| - #gpio-cells: Number of GPIO cells. Refer to binding document | |
| gpio/gpio.txt | |
| Optional properties: | |
| -------------------- | |
| Following properties are require if pin control setting is required | |
| at boot. | |
| - pinctrl-names: A pinctrl state named "default" be defined, using the | |
| bindings in pinctrl/pinctrl-bindings.txt. | |
| - pinctrl[0...n]: Properties to contain the phandle that refer to | |
| different nodes of pin control settings. These nodes represents | |
| the pin control setting of state 0 to state n. Each of these | |
| nodes contains different subnodes to represents some desired | |
| configuration for a list of pins. This configuration can | |
| include the mux function to select on those pin(s), and | |
| various pin configuration parameters, such as pull-up, | |
| open drain. | |
| Each subnode have following properties: | |
| Required properties: | |
| - pins: List of pins. Valid values of pins properties are: | |
| gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, | |
| gpio6, gpio7 | |
| Optional properties: | |
| function, bias-disable, bias-pull-up, bias-pull-down, | |
| bias-high-impedance, drive-open-drain. | |
| Valid values for function properties are: | |
| gpio, interrupt-out, gpio-in-interrupt, | |
| vsup-vbat-low-undebounce-out, | |
| vsup-vbat-low-debounce-out, | |
| voltage-in-standby, oc-pg-sd0, oc-pg-sd6, | |
| powergood-out, pwm-in, pwm-out, clk32k-out, | |
| watchdog-in, soft-reset-in | |
| Regulators: | |
| =========== | |
| Device has multiple DCDC and LDOs. The node "regulators" is require if regulator | |
| functionality is needed. | |
| Following are properties of regulator subnode. | |
| Optional properties: | |
| ------------------- | |
| The input supply of regulators are the optional properties on the | |
| regulator node. The input supply of these regulators are provided | |
| through following properties: | |
| vsup-sd2-supply: Input supply for SD2. | |
| vsup-sd3-supply: Input supply for SD3. | |
| vsup-sd4-supply: Input supply for SD4. | |
| vsup-sd5-supply: Input supply for SD5. | |
| vin-ldo0-supply: Input supply for LDO0. | |
| vin-ldo1-6-supply: Input supply for LDO1 and LDO6. | |
| vin-ldo2-5-7-supply: Input supply for LDO2, LDO5 and LDO7. | |
| vin-ldo3-4-supply: Input supply for LDO3 and LDO4. | |
| vin-ldo9-10-supply: Input supply for LDO9 and LDO10. | |
| vin-ldo11-supply: Input supply for LDO11. | |
| Optional sub nodes for regulators: | |
| --------------------------------- | |
| The subnodes name is the name of regulator and it must be one of: | |
| sd[0-6], ldo[0-7], ldo[9-11] | |
| Each sub-node should contain the constraints and initialization | |
| information for that regulator. See regulator.txt for a description | |
| of standard properties for these sub-nodes. | |
| Additional optional custom properties are listed below. | |
| ams,ext-control: External control of the rail. The option of | |
| this properties will tell which external input is | |
| controlling this rail. Valid values are 0, 1, 2 ad 3. | |
| 0: There is no external control of this rail. | |
| 1: Rail is controlled by ENABLE1 input pin. | |
| 2: Rail is controlled by ENABLE2 input pin. | |
| 3: Rail is controlled by ENABLE3 input pin. | |
| Missing this property on DT will be assume as no | |
| external control. The external control pin macros | |
| are defined @dt-bindings/mfd/as3722.h | |
| ams,enable-tracking: Enable tracking with SD1, only supported | |
| by LDO3. | |
| Power-off: | |
| ========= | |
| AS3722 supports the system power off by turning off all its rails. | |
| The device node should have the following properties to enable this | |
| functionality | |
| ams,system-power-controller: Boolean, to enable the power off functionality | |
| through this device. | |
| Example: | |
| -------- | |
| #include <dt-bindings/mfd/as3722.h> | |
| ... | |
| ams3722 { | |
| compatible = "ams,as3722"; | |
| reg = <0x48>; | |
| ams,system-power-controller; | |
| interrupt-parent = <&intc>; | |
| interrupt-controller; | |
| #interrupt-cells = <2>; | |
| gpio-controller; | |
| #gpio-cells = <2>; | |
| pinctrl-names = "default"; | |
| pinctrl-0 = <&as3722_default>; | |
| as3722_default: pinmux { | |
| gpio0 { | |
| pins = "gpio0"; | |
| function = "gpio"; | |
| bias-pull-down; | |
| }; | |
| gpio1_2_4_7 { | |
| pins = "gpio1", "gpio2", "gpio4", "gpio7"; | |
| function = "gpio"; | |
| bias-pull-up; | |
| }; | |
| gpio5 { | |
| pins = "gpio5"; | |
| function = "clk32k_out"; | |
| }; | |
| } | |
| regulators { | |
| vsup-sd2-supply = <...>; | |
| ... | |
| sd0 { | |
| regulator-name = "vdd_cpu"; | |
| regulator-min-microvolt = <700000>; | |
| regulator-max-microvolt = <1400000>; | |
| regulator-always-on; | |
| ams,ext-control = <2>; | |
| }; | |
| sd1 { | |
| regulator-name = "vdd_core"; | |
| regulator-min-microvolt = <700000>; | |
| regulator-max-microvolt = <1400000>; | |
| regulator-always-on; | |
| ams,ext-control = <1>; | |
| }; | |
| sd2 { | |
| regulator-name = "vddio_ddr"; | |
| regulator-min-microvolt = <1350000>; | |
| regulator-max-microvolt = <1350000>; | |
| regulator-always-on; | |
| }; | |
| sd4 { | |
| regulator-name = "avdd-hdmi-pex"; | |
| regulator-min-microvolt = <1050000>; | |
| regulator-max-microvolt = <1050000>; | |
| regulator-always-on; | |
| }; | |
| sd5 { | |
| regulator-name = "vdd-1v8"; | |
| regulator-min-microvolt = <1800000>; | |
| regulator-max-microvolt = <1800000>; | |
| regulator-always-on; | |
| }; | |
| .... | |
| }; | |
| }; |