[PATCH v9 6/6] davinci: USB1.1 support for Omapl138-Hawkboard
Nori, Sekhar
nsekhar at ti.com
Thu Dec 2 01:49:13 EST 2010
On Thu, Dec 02, 2010 at 01:02:29, vm.rod25 at gmail.com wrote:
> +static int hawk_usb_ocic_notify(da8xx_ocic_handler_t handler)
> +{
> + int irq = gpio_to_irq(DA850_USB1_OC_PIN);
> + int error = 0;
> +
> + if (handler != NULL) {
> + hawk_usb_ocic_handler = handler;
> +
> + error = request_irq(irq, omapl138_hawk_usb_ocic_irq,
> + IRQF_DISABLED | IRQF_TRIGGER_RISING |
> + IRQF_TRIGGER_FALLING,
> + "OHCI over-current indicator", NULL);
> + if (error)
> + pr_err(KERN_ERR "%s: could not request IRQ to watch "
> + "over-current indicator changes\n", __func__);
pr_err adds a KERN_ERR already.
> +static __init void omapl138_hawk_usb_init(void)
> +{
> + int ret;
> + u32 cfgchip2;
> +
> + ret = davinci_cfg_reg_list(da850_hawk_usb11_pins);
> + if (ret) {
> + pr_warning("%s: USB 1.1 PinMux setup failed: %d\n",
> + __func__, ret);
> + return;
> + }
> +
> + /* Setup the Ref. clock frequency for the HAWK at 24 MHz. */
> +
> + cfgchip2 = __raw_readl(DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG));
> + cfgchip2 &= ~CFGCHIP2_REFFREQ;
> + cfgchip2 |= CFGCHIP2_REFFREQ_24MHZ;
> + __raw_writel(cfgchip2, DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG));
> +
> + ret = gpio_request_one(DA850_USB1_VBUS_PIN,
> + GPIOF_DIR_OUT, "USB1 VBUS");
> + if (ret < 0) {
> + pr_err(KERN_ERR "%s: failed to request GPIO for USB 1.1 port "
> + "power control: %d\n", __func__, ret);
> + return;
> + }
> +
> + ret = gpio_request_one(DA850_USB1_OC_PIN,
> + GPIOF_DIR_IN, "USB1 OC");
> + if (ret < 0) {
> + pr_err(KERN_ERR "%s: failed to request GPIO for USB 1.1 port "
> + "over-current indicator: %d\n", __func__, ret);
> + return;
> + }
Should free the gpio DA850_USB1_VBUS_PIN in this error
path. This is also valid for MMC/SD gpio acquisition in
patch 4/6.
Thanks,
Sekhar
More information about the linux-arm-kernel
mailing list