On Fri, Oct 15, 2010 at 11:32 AM, Sergei Shtylyov <sshtylyov@xxxxxxxxxx> wrote: > Hello. > > On 10/15/10 07:08, vm.rod25@xxxxxxxxx wrote: > >> From: Victor Rodriguez<victor.rodriguez@xxxxxxxxxx> > >> This patch adds USB1.1 support for the Hawkboard-L138 system > >> Signed-off-by: Victor Rodriguez<victor.rodriguez@xxxxxxxxxx> > > [...] > >> diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c >> b/arch/arm/mach-davinci/board-omapl138-hawk.c >> index 87dea28..4658498 100644 >> --- a/arch/arm/mach-davinci/board-omapl138-hawk.c >> +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c > > [...] >> >> @@ -178,6 +181,109 @@ static struct davinci_mmc_config da850_mmc_config = >> { >> .version = MMC_CTLR_VERSION_2, >> }; >> >> +static irqreturn_t omapl138_hawk_usb_ocic_irq(int irq, void *dev_id); >> +static da8xx_ocic_handler_t hawk_usb_ocic_handler; >> + >> +static const short da850_hawk_usb11_pins[] = { >> + DA850_GPIO2_4, DA850_GPIO6_13, >> + -1 >> +}; > > An empty wouldn't hurt here. Sorry if I overlooked this before... > >> +static int hawk_usb_set_power(unsigned port, int on) >> +{ >> + gpio_set_value(DA850_USB1_VBUS_PIN, on); >> + return 0; >> +} >> + >> +static int hawk_usb_get_power(unsigned port) >> +{ >> + return gpio_get_value(DA850_USB1_VBUS_PIN); >> +} >> + >> +static int hawk_usb_get_oci(unsigned port) >> +{ >> + return !gpio_get_value(DA850_USB1_OC_PIN); >> +} >> + >> +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) >> + printk(KERN_ERR "%s: could not request IRQ to >> watch " >> + "over-current indicator changes\n", >> __func__); > > pr_err() please. > >> + } else >> + free_irq(irq, NULL); >> + >> + return error; >> +} >> + >> +static struct da8xx_ohci_root_hub omapl138_hawk_usb11_pdata = { >> + .set_power = hawk_usb_set_power, >> + .get_power = hawk_usb_get_power, >> + .get_oci = hawk_usb_get_oci, >> + .ocic_notify = hawk_usb_ocic_notify, >> + /* TPS2087 switch @ 5V */ >> + .potpgt = (3 + 1) / 2, /* 3 ms max */ >> +}; >> + >> +static irqreturn_t omapl138_hawk_usb_ocic_irq(int irq, void *dev_id) >> +{ >> + hawk_usb_ocic_handler(&omapl138_hawk_usb11_pdata, 1); >> + return IRQ_HANDLED; >> +} >> + >> +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(DA850_USB1_VBUS_PIN, "USB1 VBUS\n"); >> + if (ret) { >> + printk(KERN_ERR "%s: failed to request GPIO for USB 1.1 >> port " >> + "power control: %d\n", __func__, ret); > > pr_err() please. > >> + return; >> + } >> + gpio_direction_output(DA850_USB1_VBUS_PIN, 0); >> + >> + ret = gpio_request(DA850_USB1_OC_PIN, "USB1 OC"); >> + if (ret) { >> + printk(KERN_ERR "%s: failed to request GPIO for USB 1.1 >> port " >> + "over-current indicator: %d\n", __func__, ret); > > pr_err() please. > >> + return; >> + } >> + gpio_direction_input(DA850_USB1_OC_PIN); >> + >> + ret = da8xx_register_usb11(&omapl138_hawk_usb11_pdata); >> + if (ret) { >> + pr_warning("%s: USB 1.1 registration failed: %d\n", >> + __func__, ret); >> + return; > > 'return' is useless here... Thanks for the feedback if I erase the return here I think I also have to erase the { ...} am I right ? Regards Victor Rodriguez >> + } >> +} >> + >> static struct davinci_uart_config omapl138_hawk_uart_config __initdata = >> { >> .enabled_uarts = 0x7, >> }; > > WBR, Sergei > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel