On Thu, Apr 03, 2014 at 08:10:40AM +0000, Pallala, Ramakrishna wrote:
Hi All,
I am trying to enable a i2c client driver under ACPI. The device is being enumerated behind adapter device and I am getting IRQ resource as well.
The problem I have now is, how do I pass the platform data to driver?
struct i2c_board_info { char type[I2C_NAME_SIZE]; unsigned short flags; unsigned short addr; void *platform_data; ===========> how can I initialize this filed. struct dev_archdata *archdata; struct device_node *of_node; struct acpi_dev_node acpi_node; int irq; }; 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 } ... { }, };
static struct i2c_driver i2c_hid_driver = { .driver = { ... .acpi_match_table = ACPI_PTR(my_acpi_match), }, ...