| * 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; |
| }; |
| .... |
| }; |
| }; |