brintos

brintos / linux-shallow public Read only

0
0
Text · 2.0 KiB · 4ada37c Raw
88 lines · plain
1.. SPDX-License-Identifier: GPL-2.02 3=====================================4Texas Instruments TPS6594 PFSM driver5=====================================6 7Author: Julien Panis (jpanis@baylibre.com)8 9Overview10========11 12Strictly speaking, PFSM (Pre-configurable Finite State Machine) is not13hardware. It is a piece of code.14 15The TPS6594 PMIC (Power Management IC) integrates a state machine which16manages operational modes. Depending on the current operational mode,17some voltage domains remain energized while others can be off.18 19The PFSM driver can be used to trigger transitions between configured20states. It also provides R/W access to the device registers.21 22Supported chips23---------------24 25- tps6594-q126- tps6593-q127- lp8764-q128 29Driver location30===============31 32drivers/misc/tps6594-pfsm.c33 34Driver type definitions35=======================36 37include/uapi/linux/tps6594_pfsm.h38 39Driver IOCTLs40=============41 42:c:macro::`PMIC_GOTO_STANDBY`43All device resources are powered down. The processor is off, and44no voltage domains are energized.45 46:c:macro::`PMIC_GOTO_LP_STANDBY`47The digital and analog functions of the PMIC, which are not48required to be always-on, are turned off (low-power).49 50:c:macro::`PMIC_UPDATE_PGM`51Triggers a firmware update.52 53:c:macro::`PMIC_SET_ACTIVE_STATE`54One of the operational modes.55The PMICs are fully functional and supply power to all PDN loads.56All voltage domains are energized in both MCU and Main processor57sections.58 59:c:macro::`PMIC_SET_MCU_ONLY_STATE`60One of the operational modes.61Only the power resources assigned to the MCU Safety Island are on.62 63:c:macro::`PMIC_SET_RETENTION_STATE`64One of the operational modes.65Depending on the triggers set, some DDR/GPIO voltage domains can66remain energized, while all other domains are off to minimize67total system power.68 69Driver usage70============71 72See available PFSMs::73 74    # ls /dev/pfsm*75 76Dump the registers of pages 0 and 1::77 78    # hexdump -C /dev/pfsm-0-0x4879 80See PFSM events::81 82    # cat /proc/interrupts83 84Userspace code example85----------------------86 87samples/pfsm/pfsm-wakeup.c88