德州仪器 TPS6594 PFSM 驱动

作者:Julien Panis (jpanis@baylibre.com)

概述

严格来说,PFSM(可预配置有限状态机)并非硬件。它是一段代码。

TPS6594 PMIC(电源管理集成电路)集成了一个管理操作模式的状态机。根据当前的操作模式,一些电压域保持通电,而其他电压域可以关闭。

PFSM 驱动程序可用于触发配置状态之间的转换。它还提供对设备寄存器的读/写访问。

支持的芯片

  • tps6594-q1

  • tps6593-q1

  • lp8764-q1

驱动位置

drivers/misc/tps6594-pfsm.c

驱动类型定义

include/uapi/linux/tps6594_pfsm.h

驱动 IOCTL

:c:macro::PMIC_GOTO_STANDBY 所有设备资源都已断电。处理器关闭,并且没有电压域通电。

:c:macro::PMIC_GOTO_LP_STANDBY PMIC 中不需要始终开启的数字和模拟功能已关闭(低功耗模式)。

:c:macro::PMIC_UPDATE_PGM 触发固件更新。

:c:macro::PMIC_SET_ACTIVE_STATE 一种操作模式。PMIC 完全正常工作并为所有 PDN 负载供电。MCU 和主处理器部分的所有电压域都已通电。

:c:macro::PMIC_SET_MCU_ONLY_STATE 一种操作模式。只有分配给 MCU 安全岛的电源资源处于开启状态。

:c:macro::PMIC_SET_RETENTION_STATE 一种操作模式。根据设定的触发器,部分 DDR/GPIO 电压域可以保持通电,而所有其他域则关闭以最大程度地降低系统总功耗。

驱动用法

查看可用的 PFSM

# ls /dev/pfsm*

转储页面 0 和 1 的寄存器

# hexdump -C /dev/pfsm-0-0x48

查看 PFSM 事件

# cat /proc/interrupts

用户空间代码示例

samples/pfsm/pfsm-wakeup.c