Subject: Re: [PATCH] powerpc: i2c-mpc: make speed registers configurable via FDT

From: Grant Likely <[email-masked]>
Date: Thu, 31 Jul 2008 12:09:59 -0600

On Thu, Jul 31, 2008 at 12:54:02PM -0500, Timur Tabi wrote:
> Grant Likely wrote:
> 
> > static const struct of_device_id mpc_i2c_of_match[] = {
> > 	{.compatible = "fsl,mpc5200b-i2c", .data = fsl_i2c_mpc5200b_set_freq, },
> > 	{.compatible = "fsl,mpc5200-i2c", .data = fsl_i2c_mpc5200_set_freq, },
> > 	{.compatible = "fsl,mpc8260-i2c", .data = fsl_i2c_mpc8xxx_set_freq, },
> > 	{.compatible = "fsl,mpc8349-i2c", .data = fsl_i2c_mpc8xxx_set_freq, },
> > 	{.compatible = "fsl,mpc8540-i2c", .data = fsl_i2c_mpc8xxx_set_freq, },
> > 	{.compatible = "fsl,mpc8543-i2c", .data = fsl_i2c_mpc8xxx_div2_set_freq, },
> > 	{.compatible = "fsl,mpc8544-i2c", .data = fsl_i2c_mpc8xxx_div3_set_freq, },
> 
> So we need to update this table every time there's a new SOC?  All 83xx, 85xx,
> and 86xx SOCs use the same table.  I'd prefer an implementation that does need a
> specific entry for each variant of 8[356]xx.

This is a solved problem.  The device tree simple claims compatibility
with an older part that has the identical register-level interface.

For example; an mpc8540 based board would claim:

compatible = "fsl,mpc8540-i2c"

MPC8541/60/55,MPC8610 would all then claim:

compatible = "fsl,<exact-soc>-i2c", "fsl,mpc8540-i2c"

Cheers,
g.