And initialize the platform data in either driver or in separate module which gets compiled along with driver?
Typically it has been done in the same driver but I don't see any problems having a separate module as well.
static const struct acpi_device_id my_acpi_match[] = { { "MYID0001", (kernel_ulong_t)&my_platform_data1 } { "MYID0002", (kernel_ulong_t)&my_platform_data2 } ... { },
We definitely don't want per-board match entries, that does not scale. The driver should be reasonably generic and get all the necessary data out of well-defined tables. You can have different IDs when there are only a few cases that are actually relevant, but it has to be conceivable that the same driver get used on future hardware without changes.
Yes, I meant that when the platform data information is not available in ACPI namespace, then (and only then) pass the data by means of different IDs.
Preferably this information is included in the ACPI namespace.
The idea is use the single platform_data struct and initiaze it accordingly from the driver's __init call based on the board/platform.
Thanks for your inputs. Ram.