xref: /linux/include/uapi/linux/tps6594_pfsm.h (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2  /*
3   * Userspace ABI for TPS6594 PMIC Pre-configurable Finite State Machine
4   *
5   * Copyright (C) 2023 BayLibre Incorporated - https://www.baylibre.com/
6   */
7  
8  #ifndef __TPS6594_PFSM_H
9  #define __TPS6594_PFSM_H
10  
11  #include <linux/const.h>
12  #include <linux/ioctl.h>
13  #include <linux/types.h>
14  
15  /**
16   * struct pmic_state_opt - PMIC state options
17   * @gpio_retention: if enabled, power rails associated with GPIO retention remain active
18   * @ddr_retention: if enabled, power rails associated with DDR retention remain active
19   * @mcu_only_startup_dest: if enabled, startup destination state is MCU_ONLY
20   */
21  struct pmic_state_opt {
22  	__u8 gpio_retention;
23  	__u8 ddr_retention;
24  	__u8 mcu_only_startup_dest;
25  };
26  
27  /* Commands */
28  #define PMIC_BASE			'P'
29  
30  #define PMIC_GOTO_STANDBY		_IO(PMIC_BASE, 0)
31  #define PMIC_GOTO_LP_STANDBY		_IO(PMIC_BASE, 1)
32  #define PMIC_UPDATE_PGM			_IO(PMIC_BASE, 2)
33  #define PMIC_SET_ACTIVE_STATE		_IO(PMIC_BASE, 3)
34  #define PMIC_SET_MCU_ONLY_STATE		_IOW(PMIC_BASE, 4, struct pmic_state_opt)
35  #define PMIC_SET_RETENTION_STATE	_IOW(PMIC_BASE, 5, struct pmic_state_opt)
36  
37  #endif /*  __TPS6594_PFSM_H */
38