Lines Matching +full:controller +full:- +full:data

1 .. SPDX-License-Identifier: GPL-2.0-or-later
4 MSI WMI Platform Features driver (msi-wmi-platform)
11 by the embedded controller, with the ACPI firmware exposing a standard ACPI WMI interface on top
12 of the embedded controller interface.
18 data using the `bmfdec <https://github.com/pali/bmfdec>`_ utility:
24 guid("{ABBC0F60-8EA1-11d1-00A0-C90629100000}")]
26 [WmiDataId(1), read, write, Description("16 bytes of data")] uint8 Bytes[16];
31 guid("{ABBC0F63-8EA1-11d1-00A0-C90629100000}")]
33 [WmiDataId(1), read, write, Description("32 bytes of data")] uint8 Bytes[32];
38 guid("{ABBC0F6E-8EA1-11d1-00A0-C90629100000}")]
44 void GetPackage([out, id(0)] Package Data);
47 void SetPackage([in, id(0)] Package Data);
50 void Get_EC([out, id(0)] Package_32 Data);
53 void Set_EC([in, id(0)] Package_32 Data);
56 void Get_BIOS([in, out, id(0)] Package_32 Data);
59 void Set_BIOS([in, out, id(0)] Package_32 Data);
62 void Get_SMBUS([in, out, id(0)] Package_32 Data);
65 void Set_SMBUS([in, out, id(0)] Package_32 Data);
68 void Get_MasterBattery([in, out, id(0)] Package_32 Data);
71 void Set_MasterBattery([in, out, id(0)] Package_32 Data);
74 void Get_SlaveBattery([in, out, id(0)] Package_32 Data);
77 void Set_SlaveBattery([in, out, id(0)] Package_32 Data);
80 void Get_Temperature([in, out, id(0)] Package_32 Data);
83 void Set_Temperature([in, out, id(0)] Package_32 Data);
86 void Get_Thermal([in, out, id(0)] Package_32 Data);
89 void Set_Thermal([in, out, id(0)] Package_32 Data);
92 void Get_Fan([in, out, id(0)] Package_32 Data);
95 void Set_Fan([in, out, id(0)] Package_32 Data);
98 void Get_Device([in, out, id(0)] Package_32 Data);
101 void Set_Device([in, out, id(0)] Package_32 Data);
104 void Get_Power([in, out, id(0)] Package_32 Data);
107 void Set_Power([in, out, id(0)] Package_32 Data);
110 void Get_Debug([in, out, id(0)] Package_32 Data);
113 void Set_Debug([in, out, id(0)] Package_32 Data);
116 void Get_AP([in, out, id(0)] Package_32 Data);
119 void Set_AP([in, out, id(0)] Package_32 Data);
122 void Get_Data([in, out, id(0)] Package_32 Data);
125 void Set_Data([in, out, id(0)] Package_32 Data);
128 void Get_WMI([out, id(0)] Package_32 Data);
136 input data, the meaning of which depends on the subfeature being accessed.
139 and 31 bytes of output data, the meaning if which depends on the subfeature being accessed.
142 -------------------
144 Returns embedded controller information, the selected subfeature does not matter. The output
145 data contains a flag byte and a 28 byte controller firmware version string.
147 The first 4 bits of the flag byte contain the minor version of the embedded controller interface,
148 with the next 2 bits containing the major version of the embedded controller interface.
150 The 7th bit signals if the embedded controller page changed (exact meaning is unknown), and the
156 --------------------
158 Fan speed sensors can be accessed by selecting subfeature ``0x00``. The output data contains
159 up to four 16-bit fan speed readings in big-endian format. Most machines do not support all
169 --------------------
172 The output data contains two bytes, the first one contains the major version and the last one
177 Reverse-Engineering the MSI WMI Platform interface
180 .. warning:: Randomly poking the embedded controller interface can potentially cause damage
183 The underlying embedded controller interface is used by the ``msi-ec`` driver, and it seems
184 that many methods just copy a part of the embedded controller memory into the output buffer.
186 This means that the remaining WMI methods can be reverse-engineered by looking which part of
187 the embedded controller memory is accessed by the ACPI AML code. The driver also supports a
191 More information about the MSI embedded controller interface can be found at the
192 `msi-ec project <https://github.com/BeardOverflow/msi-ec>`_.