Re: [Linaro-acpi] How to pass I2C platform_data under ACPI
From: Arnd Bergmann
Date: Thu Apr 03 2014 - 09:34:55 EST
On Thursday 03 April 2014 14:38:33 mika.westerberg@xxxxxxxxxxxxxxx wrote:
> On Thu, Apr 03, 2014 at 11:25:34AM +0000, Pallala, Ramakrishna wrote:
> > >> In non ACPI environment I used to initialize the platform_data under
> > >> board or platforms files. Under ACPI how do I do that?
> > >
> > >If you can't extract that information from ACPI namespace, then one option is to pass platform data along with the device ACPI ID:
> > >
> > >static const struct acpi_device_id my_acpi_match[] = {
> > > { "MYID0001", (kernel_ulong_t)&my_platform_data }
> > > ...
> > > { },
> > >};
> >
> > Thanks for the Quick reply.
> >
> > So If I want to use different platform_data for different boards can I
> > do something like below?
>
> Exactly.
>
> > 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.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/