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

Reply via email to