1 | /****************************************************************************** |
2 | * |
3 | * Module Name: ahids - Table of ACPI/PNP _HID/_CID values |
4 | * |
5 | *****************************************************************************/ |
6 | |
7 | /* |
8 | * Copyright (C) 2000 - 2016, Intel Corp. |
9 | * All rights reserved. |
10 | * |
11 | * Redistribution and use in source and binary forms, with or without |
12 | * modification, are permitted provided that the following conditions |
13 | * are met: |
14 | * 1. Redistributions of source code must retain the above copyright |
15 | * notice, this list of conditions, and the following disclaimer, |
16 | * without modification. |
17 | * 2. Redistributions in binary form must reproduce at minimum a disclaimer |
18 | * substantially similar to the "NO WARRANTY" disclaimer below |
19 | * ("Disclaimer") and any redistribution must be conditioned upon |
20 | * including a substantially similar Disclaimer requirement for further |
21 | * binary redistribution. |
22 | * 3. Neither the names of the above-listed copyright holders nor the names |
23 | * of any contributors may be used to endorse or promote products derived |
24 | * from this software without specific prior written permission. |
25 | * |
26 | * Alternatively, this software may be distributed under the terms of the |
27 | * GNU General Public License ("GPL") version 2 as published by the Free |
28 | * Software Foundation. |
29 | * |
30 | * NO WARRANTY |
31 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
32 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
33 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR |
34 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
35 | * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
36 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
37 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
38 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
39 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
40 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
41 | * POSSIBILITY OF SUCH DAMAGES. |
42 | */ |
43 | |
44 | #include "acpi.h" |
45 | #include "accommon.h" |
46 | |
47 | #define _COMPONENT ACPI_UTILITIES |
48 | ACPI_MODULE_NAME ("ahids" ) |
49 | |
50 | |
51 | /* |
52 | * ACPI/PNP Device IDs with description strings |
53 | */ |
54 | const AH_DEVICE_ID AslDeviceIds[] = |
55 | { |
56 | {"10EC5640" , "Realtek I2S Audio Codec" }, |
57 | {"80860F09" , "Intel PWM Controller" }, |
58 | {"80860F0A" , "Intel Atom UART Controller" }, |
59 | {"80860F0E" , "Intel SPI Controller" }, |
60 | {"80860F14" , "Intel Baytrail SDIO/MMC Host Controller" }, |
61 | {"80860F28" , "Intel SST Audio DSP" }, |
62 | {"80860F41" , "Intel Baytrail I2C Host Controller" }, |
63 | {"ACPI0001" , "SMBus 1.0 Host Controller" }, |
64 | {"ACPI0002" , "Smart Battery Subsystem" }, |
65 | {"ACPI0003" , "Power Source Device" }, |
66 | {"ACPI0004" , "Module Device" }, |
67 | {"ACPI0005" , "SMBus 2.0 Host Controller" }, |
68 | {"ACPI0006" , "GPE Block Device" }, |
69 | {"ACPI0007" , "Processor Device" }, |
70 | {"ACPI0008" , "Ambient Light Sensor Device" }, |
71 | {"ACPI0009" , "I/O xAPIC Device" }, |
72 | {"ACPI000A" , "I/O APIC Device" }, |
73 | {"ACPI000B" , "I/O SAPIC Device" }, |
74 | {"ACPI000C" , "Processor Aggregator Device" }, |
75 | {"ACPI000D" , "Power Meter Device" }, |
76 | {"ACPI000E" , "Time and Alarm Device" }, |
77 | {"ACPI000F" , "User Presence Detection Device" }, |
78 | {"ACPI0010" , "Processor Container Device" }, |
79 | {"ACPI0011" , "Generic Buttons Device" }, |
80 | {"ACPI0012" , "NVDIMM Root Device" }, |
81 | {"ACPI0013" , "Generic Event Device" }, |
82 | {"ADMA0F28" , "Intel Audio DMA" }, |
83 | {"AMCR0F28" , "Intel Audio Machine Driver" }, |
84 | {"ATK4001" , "Asus Radio Control Button" }, |
85 | {"ATML1000" , "Atmel Touchscreen Controller" }, |
86 | {"AUTH2750" , "AuthenTec AES2750" }, |
87 | {"BCM2E39" , "Broadcom BT Serial Bus Driver over UART Bus Enumerator" }, |
88 | {"BCM4752E" , "Broadcom GPS Controller" }, |
89 | {"BMG0160" , "Bosch Gyro Sensor" }, |
90 | {"CPLM3218" , "Capella Micro CM3218x Ambient Light Sensor" }, |
91 | {"DELLABCE" , "Dell Airplane Mode Switch Driver" }, |
92 | {"DLAC3002" , "Qualcomm Atheros Bluetooth UART Transport" }, |
93 | {"FTTH5506" , "FocalTech 5506 Touch Controller" }, |
94 | {"HAD0F28" , "Intel HDMI Audio Driver" }, |
95 | {"INBC0000" , "GPIO Expander" }, |
96 | {"INT0002" , "Virtual GPIO Controller" }, |
97 | {"INT0800" , "Intel 82802 Firmware Hub Device" }, |
98 | {"INT3394" , "ACPI System Fan" }, |
99 | {"INT3396" , "Standard Power Management Controller" }, |
100 | {"INT33A0" , "Intel Smart Connect Technology Device" }, |
101 | {"INT33A1" , "Intel Power Engine" }, |
102 | {"INT33BB" , "Intel Baytrail SD Host Controller" }, |
103 | {"INT33BD" , "Intel Baytrail Mailbox Device" }, |
104 | {"INT33BE" , "Camera Sensor OV5693" }, |
105 | {"INT33C0" , "Intel Serial I/O SPI Host Controller" }, |
106 | {"INT33C1" , "Intel Serial I/O SPI Host Controller" }, |
107 | {"INT33C2" , "Intel Serial I/O I2C Host Controller" }, |
108 | {"INT33C3" , "Intel Serial I/O I2C Host Controller" }, |
109 | {"INT33C4" , "Intel Serial I/O UART Host Controller" }, |
110 | {"INT33C5" , "Intel Serial I/O UART Host Controller" }, |
111 | {"INT33C6" , "Intel SD Host Controller" }, |
112 | {"INT33C7" , "Intel Serial I/O GPIO Host Controller" }, |
113 | {"INT33C8" , "Intel Smart Sound Technology Host Controller" }, |
114 | {"INT33C9" , "Wolfson Microelectronics Audio WM5102" }, |
115 | {"INT33CA" , "Intel SPB Peripheral" }, |
116 | {"INT33CB" , "Intel Smart Sound Technology Audio Codec" }, |
117 | {"INT33D1" , "Intel GPIO Buttons" }, |
118 | {"INT33D2" , "Intel GPIO Buttons" }, |
119 | {"INT33D3" , "Intel GPIO Buttons" }, |
120 | {"INT33D4" , "Intel GPIO Buttons" }, |
121 | {"INT33D6" , "Intel Virtual Buttons Device" }, |
122 | {"INT33F0" , "Camera Sensor MT9M114" }, |
123 | {"INT33F4" , "XPOWER PMIC Controller" }, |
124 | {"INT33F5" , "TI PMIC Controller" }, |
125 | {"INT33FB" , "MIPI-CSI Camera Sensor OV2722" }, |
126 | {"INT33FC" , "Intel Baytrail GPIO Controller" }, |
127 | {"INT33FD" , "Intel Baytrail Power Management IC" }, |
128 | {"INT33FE" , "XPOWER Battery Device" }, |
129 | {"INT3400" , "Intel Dynamic Power Performance Management" }, |
130 | {"INT3401" , "Intel Extended Thermal Model CPU" }, |
131 | {"INT3403" , "DPTF Temperature Sensor" }, |
132 | {"INT3406" , "Intel Dynamic Platform & Thermal Framework Display Participant" }, |
133 | {"INT3407" , "DPTF Platform Power Meter" }, |
134 | {"INT340E" , "Motherboard Resources" }, |
135 | {"INT3420" , "Intel Bluetooth RF Kill" }, |
136 | {"INT3F0D" , "ACPI Motherboard Resources" }, |
137 | {"INTCF1A" , "Sony IMX175 Camera Sensor" }, |
138 | {"INTCFD9" , "Intel Baytrail SOC GPIO Controller" }, |
139 | {"INTL9C60" , "Intel Baytrail SOC DMA Controller" }, |
140 | {"INVN6500" , "InvenSense MPU-6500 Six Axis Gyroscope and Accelerometer" }, |
141 | {"LNXCPU" , "Linux Logical CPU" }, |
142 | {"LNXPOWER" , "ACPI Power Resource (power gating)" }, |
143 | {"LNXPWRBN" , "System Power Button" }, |
144 | {"LNXSYBUS" , "System Bus" }, |
145 | {"LNXSYSTM" , "ACPI Root Node" }, |
146 | {"LNXTHERM" , "ACPI Thermal Zone" }, |
147 | {"LNXVIDEO" , "ACPI Video Controller" }, |
148 | {"MAX17047" , "Fuel Gauge Controller" }, |
149 | {"MSFT0101" , "TPM 2.0 Security Device" }, |
150 | {"NXP5442" , "NXP 5442 Near Field Communications Controller" }, |
151 | {"NXP5472" , "NXP NFC" }, |
152 | {"PNP0000" , "8259-compatible Programmable Interrupt Controller" }, |
153 | {"PNP0001" , "EISA Interrupt Controller" }, |
154 | {"PNP0002" , "MCA Interrupt Controller" }, |
155 | {"PNP0003" , "IO-APIC Interrupt Controller" }, |
156 | {"PNP0100" , "PC-class System Timer" }, |
157 | {"PNP0103" , "HPET System Timer" }, |
158 | {"PNP0200" , "PC-class DMA Controller" }, |
159 | {"PNP0300" , "IBM PC/XT Keyboard Controller (83 key)" }, |
160 | {"PNP0301" , "IBM PC/XT Keyboard Controller (86 key)" }, |
161 | {"PNP0302" , "IBM PC/XT Keyboard Controller (84 key)" }, |
162 | {"PNP0303" , "IBM Enhanced Keyboard (101/102-key, PS/2 Mouse)" }, |
163 | {"PNP0400" , "Standard LPT Parallel Port" }, |
164 | {"PNP0401" , "ECP Parallel Port" }, |
165 | {"PNP0500" , "Standard PC COM Serial Port" }, |
166 | {"PNP0501" , "16550A-compatible COM Serial Port" }, |
167 | {"PNP0510" , "Generic IRDA-compatible Device" }, |
168 | {"PNP0800" , "Microsoft Sound System Compatible Device" }, |
169 | {"PNP0A03" , "PCI Bus" }, |
170 | {"PNP0A05" , "Generic Container Device" }, |
171 | {"PNP0A06" , "Generic Container Device" }, |
172 | {"PNP0A08" , "PCI Express Bus" }, |
173 | {"PNP0B00" , "AT Real-Time Clock" }, |
174 | {"PNP0B01" , "Intel PIIX4-compatible RTC/CMOS Device" }, |
175 | {"PNP0B02" , "Dallas Semiconductor-compatible RTC/CMOS Device" }, |
176 | {"PNP0C01" , "System Board" }, |
177 | {"PNP0C02" , "PNP Motherboard Resources" }, |
178 | {"PNP0C04" , "x87-compatible Floating Point Processing Unit" }, |
179 | {"PNP0C08" , "ACPI Core Hardware" }, |
180 | {"PNP0C09" , "Embedded Controller Device" }, |
181 | {"PNP0C0A" , "Control Method Battery" }, |
182 | {"PNP0C0B" , "Fan (Thermal Solution)" }, |
183 | {"PNP0C0C" , "Power Button Device" }, |
184 | {"PNP0C0D" , "Lid Device" }, |
185 | {"PNP0C0E" , "Sleep Button Device" }, |
186 | {"PNP0C0F" , "PCI Interrupt Link Device" }, |
187 | {"PNP0C10" , "System Indicator Device" }, |
188 | {"PNP0C11" , "Thermal Zone" }, |
189 | {"PNP0C12" , "Device Bay Controller" }, |
190 | {"PNP0C14" , "Windows Management Instrumentation Device" }, |
191 | {"PNP0C15" , "Docking Station" }, |
192 | {"PNP0C33" , "Error Device" }, |
193 | {"PNP0C40" , "Standard Button Controller" }, |
194 | {"PNP0C50" , "HID Protocol Device (I2C bus)" }, |
195 | {"PNP0C60" , "Display Sensor Device" }, |
196 | {"PNP0C70" , "Dock Sensor Device" }, |
197 | {"PNP0C80" , "Memory Device" }, |
198 | {"PNP0D10" , "XHCI USB Controller with debug" }, |
199 | {"PNP0D15" , "XHCI USB Controller without debug" }, |
200 | {"PNP0D20" , "EHCI USB Controller without debug" }, |
201 | {"PNP0D25" , "EHCI USB Controller with debug" }, |
202 | {"PNP0D40" , "SDA Standard Compliant SD Host Controller" }, |
203 | {"PNP0D80" , "Windows-compatible System Power Management Controller" }, |
204 | {"PNP0F03" , "Microsoft PS/2-style Mouse" }, |
205 | {"PNP0F13" , "PS/2 Mouse" }, |
206 | {"RTL8723" , "Realtek Wireless Controller" }, |
207 | {"SMB0349" , "Charger" }, |
208 | {"SMO91D0" , "Sensor Hub" }, |
209 | {"SMSC3750" , "SMSC 3750 USB MUX" }, |
210 | {"SSPX0000" , "Intel SSP Device" }, |
211 | {"TBQ24296" , "Charger" }, |
212 | |
213 | {NULL, NULL} |
214 | }; |
215 | |
216 | |
217 | /******************************************************************************* |
218 | * |
219 | * FUNCTION: AcpiAhMatchHardwareId |
220 | * |
221 | * PARAMETERS: HardwareId - String representation of an _HID or _CID |
222 | * |
223 | * RETURN: ID info struct. NULL if HardwareId is not found |
224 | * |
225 | * DESCRIPTION: Lookup an _HID/_CID in the device ID table |
226 | * |
227 | ******************************************************************************/ |
228 | |
229 | const AH_DEVICE_ID * |
230 | AcpiAhMatchHardwareId ( |
231 | char *HardwareId) |
232 | { |
233 | const AH_DEVICE_ID *Info; |
234 | |
235 | |
236 | for (Info = AslDeviceIds; Info->Name; Info++) |
237 | { |
238 | if (!strcmp (HardwareId, Info->Name)) |
239 | { |
240 | return (Info); |
241 | } |
242 | } |
243 | |
244 | return (NULL); |
245 | } |
246 | |