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.
18 #include <asm/intel-family.h>
22 * Some ACPI devices are hidden (status == 0x0) in recent BIOS-es because
26 * Some BIOS-es (temporarily) hide specific APCI devices to work around Windows
29 * Likewise sometimes some not-actually present devices are sometimes
38 * are re-used on different SoCs for completely different devices.
41 struct acpi_device_id hid[2]; member
49 #define ENTRY(status, hid, uid, path, cpu_vfm, dmi...) { \ argument
50 { { hid, }, {} }, \
58 #define PRESENT_ENTRY_HID(hid, uid, cpu_vfm, dmi...) \ argument
59 ENTRY(ACPI_STA_DEFAULT, hid, uid, NULL, cpu_vfm, dmi)
61 #define NOT_PRESENT_ENTRY_HID(hid, uid, cpu_vfm, dmi...) \ argument
62 ENTRY(0, hid, uid, NULL, cpu_vfm, dmi)
117 * but it is. In the 67000+ DMI decode dumps from linux-hardware.org
122 * was copy-pasted from the GPD win, so it has a disabled KIOX000A
146 * mmc controller enabled and that has a child-device which _PS3
160 * i2c client for one of them, ignore MAGN0001.
185 if (acpi_get_name(adev->handle, ACPI_FULL_PATHNAME, &path)) in acpi_device_override_status()
194 if (acpi_match_device_ids(adev, override_status_ids[i].hid)) in acpi_device_override_status()
211 * is put into D3 over a Modern Standby / suspend-to-idle cycle.
245 * declare a whole bunch of bogus I2C devices in their ACPI tables and sometimes
249 * Instantiating I2C / serdev devs for these bogus devs causes various issues,
252 * to remove the bogus I2C clients (and AFAICT serdevs are ignored completely).
254 * The acpi_quirk_skip_*_enumeration() functions below are used by the I2C or
255 * serdev code to skip instantiating any I2C or serdev devs on broken boards.
257 * In case of I2C an exception is made for HIDs on the i2c_acpi_known_good_ids
258 * list. These are known to always be correct (and in case of the audio-codecs
261 * Note these boards typically do actually have I2C and serdev devices,
264 * drivers/platform/x86/x86-android-tablets.c kernel module.
276 * 1. Devices with only the skip / don't-skip AC and battery quirks,
280 /* ECS EF20EA, AXP288 PMIC but uses separate fuel-gauge */
287 /* Lenovo Ideapad Miix 320, AXP288 PMIC, separate fuel-gauge */
291 DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo MIIX 320-10ICR"),
297 * 2. Devices which also have the skip i2c/serdev quirks and which
298 * need the x86-android-tablets module to properly work.
303 /* Acer Iconia One 7 B1-750 */
313 /* Acer Iconia One 8 A1-840 (non FHD version) */
336 /* Asus TF103C transformer 2-in-1 */
350 DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "YETI-11"),
362 DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"),
374 DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"),
442 DMI_MATCH(DMI_BIOS_VERSION, "ZY-8-BI-PX4S70VTR400-X423B-005-D"),
455 { "INT33F4", 0 }, /* X-Powers AXP288 PMIC */
472 quirks = (unsigned long)dmi_id->driver_data; in acpi_quirk_skip_i2c_client_enumeration()
491 quirks = (unsigned long)dmi_id->driver_data; in acpi_dmi_skip_serdev_enumeration()
504 if (pdev->devfn == PCI_DEVFN(0x1e, 3)) in acpi_dmi_skip_serdev_enumeration()
506 else if (pdev->devfn == PCI_DEVFN(0x1e, 4)) in acpi_dmi_skip_serdev_enumeration()
526 return -ENODEV; /* Create tty cdev instead of serdev */ in acpi_dmi_skip_serdev_enumeration()
544 quirks = (unsigned long)dmi_id->driver_data; in acpi_quirk_skip_gpio_event_handlers()
562 * The DELL0501 ACPI HID represents an UART (CID is set to PNP0501) with in acpi_quirk_skip_serdev_enumeration()
563 * a backlight-controller attached. There is no separate ACPI device with in acpi_quirk_skip_serdev_enumeration()
564 * an UartSerialBusV2() resource to model the backlight-controller. in acpi_quirk_skip_serdev_enumeration()
571 * Create a platform dev for dell-uart-backlight to bind to. in acpi_quirk_skip_serdev_enumeration()
574 platform_device_register_simple("dell-uart-backlight", PLATFORM_DEVID_NONE, in acpi_quirk_skip_serdev_enumeration()
585 const char *hid; member
588 { "INT33F4", -1 }, /* X-Powers AXP288 PMIC */
600 quirks = (unsigned long)dmi_id->driver_data; in acpi_quirk_skip_acpi_ac_and_battery()
609 if (acpi_dev_present(acpi_skip_ac_and_battery_pmic_ids[i].hid, "1", in acpi_quirk_skip_acpi_ac_and_battery()
612 acpi_skip_ac_and_battery_pmic_ids[i].hid); in acpi_quirk_skip_acpi_ac_and_battery()
626 pr_notice("%s detected - disabling mwait for CPU C-states\n", in acpi_proc_quirk_set_no_mwait()
627 id->ident); in acpi_proc_quirk_set_no_mwait()
651 * should not use mwait for CPU-states. in acpi_proc_quirk_mwait_check()