Hi, On Mon, Nov 12, 2012 at 05:59:51PM +0100, Andreas Larsson wrote: > @@ -233,6 +276,7 @@ static int ocores_i2c_of_probe(struct platform_device *pdev, > { > struct device_node *np = pdev->dev.of_node; > u32 val; > + const char *name; > > if (of_property_read_u32(np, "reg-shift", &i2c->reg_shift)) { > /* no 'reg-shift', check for deprecated 'regstep' */ > @@ -257,6 +301,15 @@ static int ocores_i2c_of_probe(struct platform_device *pdev, > > of_property_read_u32(pdev->dev.of_node, "reg-io-width", > &i2c->reg_io_width); > + > + name = of_get_property(pdev->dev.of_node, "name", NULL); > + if (name && (!strcmp(name, "GAISLER_I2CMST") || > + !strcmp(name, "01_028"))) { > + dev_dbg(&pdev->dev, "GRLIB variant of i2c-ocores\n"); > + i2c->setreg = oc_setreg_grlib; > + i2c->getreg = oc_getreg_grlib; > + } > + I'd think we should handle this via a seperate compatible-entry and match->data? Regards, Wolfram -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
Attachment:
signature.asc
Description: Digital signature