Hello Santosh,

one general comment on this patch, before the specific comments.  Rather 
than adding more cpu_is_omap*() all over, please instead convert this code 
to use flags passed in via platform_data.  The I2C hwmod conversion 
patches are one attempt to do that via the hwmod mechanism; you can use 
that as an example of one way to do that with this driver.

On Tue, 16 Feb 2010, Santosh Shilimkar wrote:

> @@ -746,9 +814,12 @@ complete:
>                               if (dev->buf_len) {
>                                       *dev->buf++ = w;
>                                       dev->buf_len--;
> -                                     /* Data reg from 2430 is 8 bit wide */
> +                                     /* Data reg in 2430, omap3 and
> +                                      * omap4 is 8 bit wide
> +                                      */

The above comment needs to be fixed per CodingStyle.

>                                       if (!cpu_is_omap2430() &&
> -                                                     !cpu_is_omap34xx()) {
> +                                                     !cpu_is_omap34xx() &&
> +                                                     !cpu_is_omap44xx()) {
>                                               if (dev->buf_len) {
>                                                       *dev->buf++ = w >> 8;
>                                                       dev->buf_len--;
> @@ -786,9 +857,12 @@ complete:
>                               if (dev->buf_len) {
>                                       w = *dev->buf++;
>                                       dev->buf_len--;
> -                                     /* Data reg from  2430 is 8 bit wide */
> +                                     /* Data reg in 2430, omap3 and
> +                                      * omap4 is 8 bit wide
> +                                      */

The above comment needs to be fixed per CodingStyle.

>                                       if (!cpu_is_omap2430() &&
> -                                                     !cpu_is_omap34xx()) {
> +                                                     !cpu_is_omap34xx() &&
> +                                                     !cpu_is_omap44xx()) {
>                                               if (dev->buf_len) {
>                                                       w |= *dev->buf++ << 8;
>                                                       dev->buf_len--;
> @@ -897,6 +971,8 @@ omap_i2c_probe(struct platform_device *pdev)
>  
>       if (cpu_is_omap7xx())
>               dev->reg_shift = 1;
> +     else if (cpu_is_omap44xx())
> +             dev->reg_shift = 0;
>       else
>               dev->reg_shift = 2;
>  
> @@ -911,11 +987,16 @@ omap_i2c_probe(struct platform_device *pdev)
>       if ((r = omap_i2c_get_clocks(dev)) != 0)
>               goto err_iounmap;
>  
> +     if (cpu_is_omap44xx())
> +             dev->regs = (u8 *) omap4_reg_map;
> +     else
> +             dev->regs = (u8 *) reg_map;
> +
>       omap_i2c_unidle(dev);
>  
>       dev->rev = omap_i2c_read_reg(dev, OMAP_I2C_REV_REG) & 0xff;
>  
> -     if (cpu_is_omap2430() || cpu_is_omap34xx()) {
> +     if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) {
>               u16 s;
>  
>               /* Set up the fifo size - Get total size */
> @@ -927,8 +1008,13 @@ omap_i2c_probe(struct platform_device *pdev)
>                * size. This is to ensure that we can handle the status on int
>                * call back latencies.
>                */
> -             dev->fifo_size = (dev->fifo_size / 2);
> -             dev->b_hw = 1; /* Enable hardware fixes */
> +             if (dev->rev >= OMAP_I2C_REV_ON_4430) {
> +                     dev->fifo_size = 0;
> +                     dev->b_hw = 0; /* Enable hardware fixes */
> +             } else {
> +                     dev->fifo_size = (dev->fifo_size / 2);
> +                     dev->b_hw = 1; /* Disable hardware fixes */

You've got the comments backwards here.  b_hw = 1 means "enable hardware 
fixes" as noted above.


> +             }
>       }
>  
>       /* reset ASAP, clearing any IRQs */
> -- 
> 1.6.0.4
> 


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to