-
- control_usb->host_gpios = devm_kzalloc(&pdev->dev, sizeof(struct gpio), GFP_KERNEL);
- if(!control_usb->host_gpios){
- dev_err(&pdev->dev, "unable to alloc memory for host_gpios\n");
- ret = -ENOMEM;
- goto err2;
- }
-
- gpio = of_get_named_gpio(np, "gpios", 0);
- if(!gpio_is_valid(gpio)){
- dev_err(&pdev->dev, "invalid host gpio%d\n", gpio);
- ret = -EINVAL;
- goto err2;
- }
- control_usb->host_gpios->gpio = gpio;
- err = devm_gpio_request(&pdev->dev, gpio, "host_drv_gpio");
- if (err) {
- dev_err(&pdev->dev,
- "failed to request GPIO%d for host_drv\n",
- gpio);
- ret = err;
- goto err2;
- }
- gpio_direction_output(control_usb->host_gpios->gpio, 1);
-
- control_usb->otg_gpios = devm_kzalloc(&pdev->dev, sizeof(struct gpio), GFP_KERNEL);
- if(!control_usb->otg_gpios){
- dev_err(&pdev->dev, "unable to alloc memory for otg_gpios\n");
- ret = -ENOMEM;
- goto err2;
- }
-
- gpio = of_get_named_gpio(np, "gpios", 1);
- if(!gpio_is_valid(gpio)){
- dev_err(&pdev->dev, "invalid otg gpio%d\n", gpio);
- ret = -EINVAL;
- goto err2;
- }
- control_usb->otg_gpios->gpio = gpio;
- err = devm_gpio_request(&pdev->dev, gpio, "otg_drv_gpio");
- if (err) {
- dev_err(&pdev->dev,
- "failed to request GPIO%d for otg_drv\n",
- gpio);
- ret = err;
- goto err2;
- }
- gpio_direction_output(control_usb->otg_gpios->gpio, 0);
-