Add plug and play information macroses for ACPI and I2C buses.

Matching table format is compatible with ACPI_ID_PROBE bus method.

Note that while ACPI_ID_PROBE matches against _HID and all _CIDs, current
acpi_pnpinfo_str() exports only _HID and first _CID.  That means second
and further _CIDs should be added to both acpi_pnpinfo_str() and
ACPICOMPAT_PNP_INFO if device matching against them is required.

Reviewed by:	imp
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D26824
This commit is contained in:
Vladimir Kondratyev 2020-10-31 22:15:59 +00:00
parent d4fba56212
commit 9c6e377448
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=367239
2 changed files with 20 additions and 0 deletions

View File

@ -231,6 +231,20 @@ extern int acpi_quirks;
#define ACPI_Q_TIMER (1 << 1)
#define ACPI_Q_MADT_IRQ0 (1 << 2)
/*
* Plug and play information for device matching. Matching table format
* is compatible with ids parameter of ACPI_ID_PROBE bus method.
*
* XXX: While ACPI_ID_PROBE matches against _HID and all _CIDs, current
* acpi_pnpinfo_str() exports only _HID and first _CID. That means second
* and further _CIDs should be added to both acpi_pnpinfo_str() and
* ACPICOMPAT_PNP_INFO if device matching against them is required.
*/
#define ACPICOMPAT_PNP_INFO(t, busname) \
MODULE_PNP_INFO("Z:_HID", busname, t##hid, t, nitems(t)-1); \
MODULE_PNP_INFO("Z:_CID", busname, t##cid, t, nitems(t)-1);
#define ACPI_PNP_INFO(t) ACPICOMPAT_PNP_INFO(t, acpi)
/*
* Note that the low ivar values are reserved to provide
* interface compatibility with ISA drivers which can also

View File

@ -77,6 +77,12 @@ IICBUS_ACCESSOR(addr, ADDR, uint32_t)
#define IICBUS_FDT_PNP_INFO(t)
#endif
#ifdef DEV_ACPI
#define IICBUS_ACPI_PNP_INFO(t) ACPICOMPAT_PNP_INFO(t, iicbus)
#else
#define IICBUS_ACPI_PNP_INFO(t)
#endif
int iicbus_generic_intr(device_t dev, int event, char *buf);
void iicbus_init_frequency(device_t dev, u_int bus_freq);