From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grant Likely Subject: Re: [PATCH] powerpc: i2c-mpc: make speed registers configurable via FDT Date: Thu, 31 Jul 2008 12:09:59 -0600 Message-ID: <20080731180959.GA29057@secretlab.ca> References: <4889EFFE.2070201@grandegger.com> <4889FD1D.4010804@freescale.com> <20080727012722.GH12191@secretlab.ca> <4891A744.6060005@grandegger.com> <9e4733910807310849g7e5612dbk9536733e061af8ad@mail.gmail.com> <4891F4D8.9090905@grandegger.com> <4891FC3A.7040609@freescale.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <4891FC3A.7040609@freescale.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linuxppc-dev-bounces+glppd-linuxppc64-dev=m.gmane.org@ozlabs.org Errors-To: linuxppc-dev-bounces+glppd-linuxppc64-dev=m.gmane.org@ozlabs.org To: Timur Tabi Cc: Scott Wood , Linuxppc-dev@ozlabs.org, Linux I2C List-Id: linux-i2c@vger.kernel.org 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,-i2c", "fsl,mpc8540-i2c" Cheers, g.