Re: [PATCH 2/3] ASoC: pcm179x: Add I2C interface driver

From: Johan Hovold
Date: Mon Jan 18 2016 - 11:57:09 EST


On Mon, Jan 18, 2016 at 05:14:42PM +0100, Michael Trimarchi wrote:
> Hi
>
> On Mon, Jan 18, 2016 at 4:57 PM, Jacob Siverskog
> <jacob@xxxxxxxxxxxxxxxxxxx> wrote:
> > The PCM179x family supports both SPI and I2C. This patch adds support
> > for the I2C interface.
> >
> > Reviewed-by: Johan Hovold <johan@xxxxxxxxxx>
> > Signed-off-by: Jacob Siverskog <jacob@xxxxxxxxxxxxxxxxxxx>
> > ---

> > +const struct of_device_id pcm179x_of_match[] = {
> > + { .compatible = "ti,pcm1792a", },
> > + { }
> > +};
> > +MODULE_DEVICE_TABLE(of, pcm179x_of_match);
> > +
>
> can match go in the common part?

For matching purposes it could, but that would prevent the OF-aliases
from being defined for the driver modules.

There are a couple of codec drivers that have taken this route, and it
works as long as they also define a legacy (e.g. i2c_device_id) table
that modalias autoloading can fall back to.

But having having the common module carry the OF-aliases does not seem
like the right thing to do (e.g. as the common module cannot drive
anything on its own) even if it avoids a copy of the OF id table.

> > +static const struct i2c_device_id pcm179x_i2c_ids[] = {
> > + { "pcm179x", 0 },
> > + { }
> > +};
> > +MODULE_DEVICE_TABLE(i2c, pcm179x_i2c_ids);
> > +
> > +static struct i2c_driver pcm179x_i2c_driver = {
> > + .driver = {
> > + .name = "pcm179x",
> > + .of_match_table = of_match_ptr(pcm179x_of_match),
> > + },
> > + .id_table = pcm179x_i2c_ids,
> > + .probe = pcm179x_i2c_probe,
> > + .remove = pcm179x_i2c_remove,
> > +};

> > +
> > +module_i2c_driver(pcm179x_i2c_driver);

Thanks,
Johan