xref: /linux/Documentation/ABI/testing/amdpmf-interface (revision 5b05bb3f6c5716fab6911e12d60dd1f43ad9806a)
1What:		/dev/amdpmf_interface
2Date:		June 2026
3KernelVersion:	7.2
4Contact:	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
5Description:
6		The AMD Platform Management Framework (PMF) util layer exposes a
7		minimal user-space interface via a character device for feature
8		discovery and metrics monitoring.
9
10		When CONFIG_AMD_PMF_UTIL_SUPPORT is enabled, the driver creates
11		a character device:
12
13		======================
14		/dev/amdpmf_interface
15		======================
16
17		The interface supports a single ioctl:
18
19		============================ =======================================
20		IOCTL			     Usage
21		IOCTL_AMD_PMF_POPULATE_DATA  User passes a struct amd_pmf_info with
22					     the size field set to sizeof(struct
23					     amd_pmf_info). The driver returns all
24					     available metrics and feature status
25					     in the structure.
26		============================ =======================================
27
28		struct amd_pmf_info layout:
29
30		======================= ========== ================================
31		Field			Type	   Description
32		size			__u64	   Structure size for versioning
33		features_supported	__u32	   Bitmask of supported features
34		platform_type		__u32	   Platform form factor orientation
35		power_source		__u32	   AC/DC power source
36		laptop_placement	__u32	   Device placement state
37		lid_state		__u32	   Lid open/closed status
38		user_presence		__u32	   User presence detection
39		slider_position		__u32	   Current power slider position
40		skin_temp		__s32	   Skin temperature (centidegrees)
41		gfx_busy		__u32	   Graphics workload percentage
42		ambient_light		__s32	   Ambient light sensor reading
43		avg_c0_residency	__u32	   Average C0 state residency
44		max_c0_residency	__u32	   Maximum C0 state residency
45		socket_power		__u32	   Socket power consumption
46		bios_input[10]		__u32	   Custom BIOS input parameters
47		bios_output[10]		__u32	   Custom BIOS output parameters
48		======================= ========== ================================
49
50		Feature Support Flags (features_supported bitmask):
51
52		=====================================    ====  =============================
53		Flag				         Bit   Description
54		AMD_PMF_FEAT_AUTO_MODE		         0     Auto Mode feature support
55		AMD_PMF_FEAT_STATIC_POWER_SLIDER         1     Static Power Slider support
56		AMD_PMF_FEAT_POLICY_BUILDER	         2     Policy Builder (Smart PC)
57		AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_AC     3     Dynamic slider on AC
58		AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_DC     4     Dynamic slider on DC
59		=====================================    ====  =============================
60
61		Return codes:
62
63		============= ============================================================
64		Return code   Description
65		0	      Success
66		EINVAL	      Invalid size or parameter
67		EFAULT	      copy_to_user/copy_from_user failures
68		ENODEV	      PMF device not available
69		ENOTTY	      Unknown ioctl command
70		============= ============================================================
71
72		User-space tools integrating with AMD PMF to discover capabilities and
73		monitor real-time metrics for thermal and power management validation.
74