> -----Original Message-----
> From: Kevin Hilman [mailto:[email protected]]
> Sent: Tuesday, August 10, 2010 3:51 AM
> To: Varadarajan, Charulatha
> Cc: [email protected]; [email protected]; Cousson, Benoit; Nayak,
> Rajendra; Basak, Partha
> Subject: Re: [PATCH 01/13 v5] OMAP: GPIO: Modify init() in preparation for
> platform device implementation
> 
> Charulatha V <[email protected]> writes:
> 
> > This is in prepartion for implementing GPIO as a platform device.
> > gpio bank's base addresses are moved from gpio.c to plat/gpio.h.
> >
> > This patch also modifies omap_gpio_init() to make use of
> > omap_gpio_chip_init() and omap_gpio_mod_init(). omap_gpio_mod_init()
> does
> > the module init by clearing the status register and initializing the
> > GPIO control register. omap_gpio_chip_init() initializes the chip
> request,
> > free, get, set and other function pointers and sets the gpio irq handler.
> >
> > Signed-off-by: Charulatha V <[email protected]>
> > Signed-off-by: Basak, Partha <[email protected]>
> 
> [...]
> 
> > +static void omap_gpio_mod_init(struct gpio_bank *bank, int id)
> > +{
> > +   if (cpu_class_is_omap2()) {
> > +           if (cpu_is_omap44xx()) {
> > +                   __raw_writel(0xffffffff, bank->base +
> > +                                   OMAP4_GPIO_IRQSTATUSCLR0);
> > +                   __raw_writel(0x00000000, bank->base +
> > +                                    OMAP4_GPIO_DEBOUNCENABLE);
> > +                   /* Initialize interface clk ungated, module enabled */
> > +                   __raw_writel(0, bank->base + OMAP4_GPIO_CTRL);
> > +           } else if (cpu_is_omap34xx()) {
> > +                   __raw_writel(0x00000000, bank->base +
> > +                                   OMAP24XX_GPIO_IRQENABLE1);
> > +                   __raw_writel(0xffffffff, bank->base +
> > +                                   OMAP24XX_GPIO_IRQSTATUS1);
> > +                   __raw_writel(0x00000000, bank->base +
> > +                                   OMAP24XX_GPIO_DEBOUNCE_EN);
> > +
> > +                   /* Initialize interface clk ungated, module enabled */
> > +                   __raw_writel(0, bank->base + OMAP24XX_GPIO_CTRL);
> > +                   /* Enable autoidle for the OCP interface */
> > +                   omap_writel(1 << 0, 0x48306814);
> 
> This autoidle stuff should be removed in this series as setting this is
> handled by the hwmod layer.

Okay. 

> 
> > +           } else if (cpu_is_omap24xx()) {
> > +                   static const u32 non_wakeup_gpios[] = {
> > +                           0xe203ffc0, 0x08700040
> > +                   };
> > +                   if (id < ARRAY_SIZE(non_wakeup_gpios))
> > +                           bank->non_wakeup_gpios = non_wakeup_gpios[id];
> > +
> > +                   /* Enable autoidle for the OCP interface */
> > +                   omap_writel(1 << 0, 0x48019010);
> 
> ditto

Okay.

> 
> > +           }
> 
> Kevin
--
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