| 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 | |