Skip to content

Commit

Permalink
USB: ehci-s5p: Add vbus setup function to the s5p ehci glue layer
Browse files Browse the repository at this point in the history
This patch retrieves and configures the vbus control gpio via
the device tree. The suspend/resume callbacks will be later
modified for vbus control.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Vivek Gautam authored and Greg Kroah-Hartman committed Jul 17, 2012
1 parent d81a5d1 commit fd81d59
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions drivers/usb/host/ehci-s5p.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/clk.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/of_gpio.h>
#include <plat/ehci.h>
#include <plat/usb-phy.h>

Expand Down Expand Up @@ -64,6 +65,24 @@ static const struct hc_driver s5p_ehci_hc_driver = {
.clear_tt_buffer_complete = ehci_clear_tt_buffer_complete,
};

static void s5p_setup_vbus_gpio(struct platform_device *pdev)
{
int err;
int gpio;

if (!pdev->dev.of_node)
return;

gpio = of_get_named_gpio(pdev->dev.of_node,
"samsung,vbus-gpio", 0);
if (!gpio_is_valid(gpio))
return;

err = gpio_request_one(gpio, GPIOF_OUT_INIT_HIGH, "ehci_vbus_gpio");
if (err)
dev_err(&pdev->dev, "can't request ehci vbus gpio %d", gpio);
}

static u64 ehci_s5p_dma_mask = DMA_BIT_MASK(32);

static int __devinit s5p_ehci_probe(struct platform_device *pdev)
Expand Down Expand Up @@ -92,6 +111,8 @@ static int __devinit s5p_ehci_probe(struct platform_device *pdev)
if (!pdev->dev.coherent_dma_mask)
pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);

s5p_setup_vbus_gpio(pdev);

s5p_ehci = devm_kzalloc(&pdev->dev, sizeof(struct s5p_ehci_hcd),
GFP_KERNEL);
if (!s5p_ehci)
Expand Down

0 comments on commit fd81d59

Please sign in to comment.