Lines Matching +full:i2c +full:- +full:hid
1 // SPDX-License-Identifier: GPL-2.0-only
8 * Copyright (C) 2013-2015 Intel Corporation. All rights reserved.
17 #include <asm/intel-family.h>
21 * Some ACPI devices are hidden (status == 0x0) in recent BIOS-es because
25 * Some BIOS-es (temporarily) hide specific APCI devices to work around Windows
28 * Likewise sometimes some not-actually present devices are sometimes
37 * are re-used on different SoCs for completely different devices.
40 struct acpi_device_id hid[2]; member
48 #define ENTRY(status, hid, uid, path, cpu_vfm, dmi...) { \ argument
49 { { hid, }, {} }, \
57 #define PRESENT_ENTRY_HID(hid, uid, cpu_vfm, dmi...) \ argument
58 ENTRY(ACPI_STA_DEFAULT, hid, uid, NULL, cpu_vfm, dmi)
60 #define NOT_PRESENT_ENTRY_HID(hid, uid, cpu_vfm, dmi...) \ argument
61 ENTRY(0, hid, uid, NULL, cpu_vfm, dmi)
116 * but it is. In the 67000+ DMI decode dumps from linux-hardware.org
121 * was copy-pasted from the GPD win, so it has a disabled KIOX000A
145 * mmc controller enabled and that has a child-device which _PS3
159 * i2c client for one of them, ignore MAGN0001.
184 if (acpi_get_name(adev->handle, ACPI_FULL_PATHNAME, &path)) in acpi_device_override_status()
193 if (acpi_match_device_ids(adev, override_status_ids[i].hid)) in acpi_device_override_status()
210 * is put into D3 over a Modern Standby / suspend-to-idle cycle.
244 * declare a whole bunch of bogus I2C devices in their ACPI tables and sometimes
248 * Instantiating I2C / serdev devs for these bogus devs causes various issues,
251 * to remove the bogus I2C clients (and AFAICT serdevs are ignored completely).
253 * The acpi_quirk_skip_*_enumeration() functions below are used by the I2C or
254 * serdev code to skip instantiating any I2C or serdev devs on broken boards.
256 * In case of I2C an exception is made for HIDs on the i2c_acpi_known_good_ids
257 * list. These are known to always be correct (and in case of the audio-codecs
260 * Note these boards typically do actually have I2C and serdev devices,
263 * drivers/platform/x86/x86-android-tablets.c kernel module.
275 * 1. Devices with only the skip / don't-skip AC and battery quirks,
279 /* ECS EF20EA, AXP288 PMIC but uses separate fuel-gauge */
286 /* Lenovo Ideapad Miix 320, AXP288 PMIC, separate fuel-gauge */
290 DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
296 * 2. Devices which also have the skip i2c/serdev quirks and which
297 * need the x86-android-tablets module to properly work.
301 /* Acer Iconia One 7 B1-750 */
325 DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
346 DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"),
358 DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
400 DMI_MATCH(DMI_BIOS_VERSION, "ZY-8-BI-PX4S70VTR400-X423B-005-D"),
413 { "INT33F4", 0 }, /* X-Powers AXP288 PMIC */
429 quirks = (unsigned long)dmi_id->driver_data; in acpi_quirk_skip_i2c_client_enumeration()
451 quirks = (unsigned long)dmi_id->driver_data; in acpi_dmi_skip_serdev_enumeration()
466 return -ENODEV; /* Create tty cdev instead of serdev */ in acpi_dmi_skip_serdev_enumeration()
484 quirks = (unsigned long)dmi_id->driver_data; in acpi_quirk_skip_gpio_event_handlers()
502 * The DELL0501 ACPI HID represents an UART (CID is set to PNP0501) with in acpi_quirk_skip_serdev_enumeration()
503 * a backlight-controller attached. There is no separate ACPI device with in acpi_quirk_skip_serdev_enumeration()
504 * an UartSerialBusV2() resource to model the backlight-controller. in acpi_quirk_skip_serdev_enumeration()
511 * Create a platform dev for dell-uart-backlight to bind to. in acpi_quirk_skip_serdev_enumeration()
514 platform_device_register_simple("dell-uart-backlight", PLATFORM_DEVID_NONE, in acpi_quirk_skip_serdev_enumeration()
525 const char *hid; member
528 { "INT33F4", -1 }, /* X-Powers AXP288 PMIC */
540 quirks = (unsigned long)dmi_id->driver_data; in acpi_quirk_skip_acpi_ac_and_battery()
549 if (acpi_dev_present(acpi_skip_ac_and_battery_pmic_ids[i].hid, "1", in acpi_quirk_skip_acpi_ac_and_battery()
552 acpi_skip_ac_and_battery_pmic_ids[i].hid); in acpi_quirk_skip_acpi_ac_and_battery()
566 pr_notice("%s detected - disabling mwait for CPU C-states\n", in acpi_proc_quirk_set_no_mwait()
567 id->ident); in acpi_proc_quirk_set_no_mwait()
591 * should not use mwait for CPU-states. in acpi_proc_quirk_mwait_check()