RE: [PATCH v2 5/5] ASoC: WM8903: Add device tree binding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Rob Herring wrote at Tuesday, December 06, 2011 12:07 PM:
> On 12/06/2011 12:22 PM, Stephen Warren wrote:
> > Stephen Warren wrote at Friday, December 02, 2011 3:09 PM:
> >> Document the device tree binding for the WM8903 codec, and modify the
> >> driver to extract platform data from the device tree, if present.
> >
> > Mark,
> >
> > I just realized that when I was re-organizing all the WM8903 patches, I
> > dropped the part that added the of_match table to the driver:
> >
> > +static const struct of_device_id wm8903_of_match[] __devinitconst = {
> > +	{ .compatible = "wlf,wm8903", },
> > +	{},
> > +};
> > +MODULE_DEVICE_TABLE(of, wm8903_of_match);
> >
> > Now, everything still works without this. Looking at the Linux OF code,
> > it works by retrieving the compatible property, taking everything after
> > the comma if present, and then creating an i2c_board_info with that
> > type, which in this case is "wm8903" and matches wm8903.c's i2c_device_id
> > table. See drivers/of/of_i2c.c:of_i2c_register_devices() and the call to
> > base.c:of_modalias_node().
> >
> > So, the question is: Should I go back and add the of_match table, or
> > is I2C intended to work without it perpetually? I notice that you added
> > an of_match table for all the other WM codecs.
> 
> It definitely tries to match first with the OF match table, so it should
> probably be added back.

OK, I have no issues putting it back.

But, I certainly can't find any code in drivers/i2c or drivers/of/of_i2c.c
that matches the compatible property against the of_match_table. Can
you point it out please. As best I can tell, I2C bus/controller drivers call
of_i2c_register_devices() which calls of_modalias_node() which only
operates in the manner I described. I don't think any generic instantiation
code can be operating instead, since there's nothing in
of_i2c_register_devices() that skips devices that have already been
instantiated via other means. Nothing in drivers/i2c seems to touch of_node
or the compatible property.

-- 
nvpublic

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux