123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- * 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.
- 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-binding.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 rail. This
- is provided through pm_power_off.
- 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;
- };
- ....
- };
- };
|