Re: [PATCH v1 2/5] mmc: mxs-mmc: add dt probe support

From: Dong Aisheng
Date: Wed Mar 14 2012 - 03:24:11 EST


On Wed, Mar 14, 2012 at 08:09:22AM +0100, Marek Vasut wrote:
> Dear Dong Aisheng,
>
> > On Wed, Mar 14, 2012 at 01:58:25PM +0800, Marek Vasut wrote:
> > > Dear Dong Aisheng,
> > >
> > > > Signed-off-by: Dong Aisheng <dong.aisheng@xxxxxxxxxx>
> >
> > ........
> >
> > > > +static const struct of_device_id mxs_mmc_dt_ids[] = {
> > > > + { .compatible = "fsl,imx23-mmc", .data = NULL, },
> > > > + { .compatible = "fsl,imx28-mmc", .data = NULL, },
> > >
> > > Do you really need two distinct ones here?
> >
> > Hmm, my original purpose is to put soc difference data in .data
> > to remove cpu_is_* function calls in the driver later.
> > Do you think if any issue?
> >
>
> Well, what's the difference between the interfaces on mx233 and mx28? Is it
> something that can't be encoded otherwise? I think they're not so different.
>
Not much difference except the one register offset and ip version.
See:
#define SSP_VERSION_LATEST 4
#define ssp_is_old() (host->version < SSP_VERSION_LATEST)
..
#define HW_SSP_VERSION (cpu_is_mx23() ? 0x110 : 0x130)
The ip version can be handled in driver, but for offset...
it depends on cpu_is_* macro.
Putting the HW_SSP_VERSION offset difference in .data can eliminate the need
of cpu_is_*.

Despite of that, since they're two devices,
i guess it's ok to put two compatible string there, right?
Or you thought just put one as below?
{ .compatible = "fsl,mxs-mmc", .data = NULL, },

Regards
Dong Aisheng

--
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/