123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- MAX77620 Power management IC from Maxim Semiconductor.
- Required properties:
- -------------------
- - compatible: Must be one of
- "maxim,max77620"
- "maxim,max20024".
- - reg: I2C device address.
- Optional properties:
- -------------------
- - interrupts: The interrupt on the parent the controller is
- connected to.
- - interrupt-controller: Marks the device node as an interrupt controller.
- - #interrupt-cells: is <2> and their usage is compliant to the 2 cells
- variant of <../interrupt-controller/interrupts.txt>
- IRQ numbers for different interrupt source of MAX77620
- are defined at dt-bindings/mfd/max77620.h.
- Optional subnodes and their properties:
- =======================================
- Flexible power sequence configurations:
- --------------------------------------
- The Flexible Power Sequencer (FPS) allows each regulator to power up under
- hardware or software control. Additionally, each regulator can power on
- independently or among a group of other regulators with an adjustable power-up
- and power-down delays (sequencing). GPIO1, GPIO2, and GPIO3 can be programmed
- to be part of a sequence allowing external regulators to be sequenced along
- with internal regulators. 32KHz clock can be programmed to be part of a
- sequence.
- The flexible sequencing structure consists of two hardware enable inputs
- (EN0, EN1), and 3 master sequencing timers called FPS0, FPS1 and FPS2.
- Each master sequencing timer is programmable through its configuration
- register to have a hardware enable source (EN1 or EN2) or a software enable
- source (SW). When enabled/disabled, the master sequencing timer generates
- eight sequencing events on different time periods called slots. The time
- period between each event is programmable within the configuration register.
- Each regulator, GPIO1, GPIO2, GPIO3, and 32KHz clock has a flexible power
- sequence slave register which allows its enable source to be specified as
- a flexible power sequencer timer or a software bit. When a FPS source of
- regulators, GPIOs and clocks specifies the enable source to be a flexible
- power sequencer, the power up and power down delays can be specified in
- the regulators, GPIOs and clocks flexible power sequencer configuration
- registers.
- When FPS event cleared (set to LOW), regulators, GPIOs and 32KHz
- clock are set into following state at the sequencing event that
- corresponds to its flexible sequencer configuration register.
- Sleep state: In this state, regulators, GPIOs
- and 32KHz clock get disabled at
- the sequencing event.
- Global Low Power Mode (GLPM): In this state, regulators are set in
- low power mode at the sequencing event.
- The configuration parameters of FPS is provided through sub-node "fps"
- and their child for FPS specific. The child node name for FPS are "fps0",
- "fps1", and "fps2" for FPS0, FPS1 and FPS2 respectively.
- The FPS configurations like FPS source, power up and power down slots for
- regulators, GPIOs and 32kHz clocks are provided in their respective
- configuration nodes which is explained in respective sub-system DT
- binding document.
- There is need for different FPS configuration parameters based on system
- state like when system state changed from active to suspend or active to
- power off (shutdown).
- Optional properties:
- -------------------
- -maxim,fps-event-source: u32, FPS event source like external
- hardware input to PMIC i.e. EN0, EN1 or
- software (SW).
- The macros are defined on
- dt-bindings/mfd/max77620.h
- for different control source.
- - MAX77620_FPS_EVENT_SRC_EN0
- for hardware input pin EN0.
- - MAX77620_FPS_EVENT_SRC_EN1
- for hardware input pin EN1.
- - MAX77620_FPS_EVENT_SRC_SW
- for software control.
- -maxim,shutdown-fps-time-period-us: u32, FPS time period in microseconds
- when system enters in to shutdown
- state.
- -maxim,suspend-fps-time-period-us: u32, FPS time period in microseconds
- when system enters in to suspend state.
- -maxim,device-state-on-disabled-event: u32, describe the PMIC state when FPS
- event cleared (set to LOW) whether it
- should go to sleep state or low-power
- state. Following are valid values:
- - MAX77620_FPS_INACTIVE_STATE_SLEEP
- to set the PMIC state to sleep.
- - MAX77620_FPS_INACTIVE_STATE_LOW_POWER
- to set the PMIC state to low
- power.
- Absence of this property or other value
- will not change device state when FPS
- event get cleared.
- Here supported time periods by device in microseconds are as follows:
- MAX77620 supports 40, 80, 160, 320, 640, 1280, 2560 and 5120 microseconds.
- MAX20024 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds.
- -maxim,power-ok-control: configure map power ok bit
- 1: Enables POK(Power OK) to control nRST_IO and GPIO1
- POK function.
- 0: Disables POK control.
- if property missing, do not configure MPOK bit.
- If POK mapping is enabled for GPIO1/nRST_IO then,
- GPIO1/nRST_IO pins are HIGH only if all rails
- that have POK control enabled are HIGH.
- If any of the rails goes down(which are enabled for POK
- control) then, GPIO1/nRST_IO goes LOW.
- this property is valid for max20024 only.
- For DT binding details of different sub modules like GPIO, pincontrol,
- regulator, power, please refer respective device-tree binding document
- under their respective sub-system directories.
- Example:
- --------
- #include <dt-bindings/mfd/max77620.h>
- max77620@3c {
- compatible = "maxim,max77620";
- reg = <0x3c>;
- interrupt-parent = <&intc>;
- interrupts = <0 86 IRQ_TYPE_NONE>;
- interrupt-controller;
- #interrupt-cells = <2>;
- fps {
- fps0 {
- maxim,shutdown-fps-time-period-us = <1280>;
- maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
- };
- fps1 {
- maxim,shutdown-fps-time-period-us = <1280>;
- maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
- };
- fps2 {
- maxim,shutdown-fps-time-period-us = <1280>;
- maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_SW>;
- };
- };
- };
|