Charulatha V <ch...@ti.com> 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 <ch...@ti.com>
> Signed-off-by: Basak, Partha <p-bas...@ti.com>

[...]

> +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.

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

> +             }

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to