unsigned mA;
struct delayed_work work;
int vbus;
+ int irq;
};
struct gpio_vbus_data *gpio_vbus;
struct gpio_vbus_mach_info *pdata;
struct platform_device *pdev;
- int gpio, irq;
+ int gpio;
gpio_vbus = container_of(otg->phy, struct gpio_vbus_data, phy);
pdev = to_platform_device(gpio_vbus->dev);
pdata = gpio_vbus->dev->platform_data;
- irq = gpio_to_irq(pdata->gpio_vbus);
gpio = pdata->gpio_pullup;
if (!gadget) {
/* initialize connection state */
gpio_vbus->vbus = 0; /* start with disconnected */
- gpio_vbus_irq(irq, pdev);
+ gpio_vbus_irq(gpio_vbus->irq, pdev);
return 0;
}
} else
irq = gpio_to_irq(gpio);
+ gpio_vbus->irq = irq;
+
/* if data line pullup is in use, initialize it to "not pulling up" */
gpio = pdata->gpio_pullup;
if (gpio_is_valid(gpio)) {
usb_set_transceiver(NULL);
- free_irq(gpio_to_irq(gpio), pdev);
+ free_irq(gpio_vbus->irq, pdev);
if (gpio_is_valid(pdata->gpio_pullup))
gpio_free(pdata->gpio_pullup);
gpio_free(gpio);