Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd81d59c authored by Vivek Gautam's avatar Vivek Gautam Committed by Greg Kroah-Hartman
Browse files

USB: ehci-s5p: Add vbus setup function to the s5p ehci glue layer



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: default avatarAbhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: default avatarVivek Gautam <gautam.vivek@samsung.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d81a5d19
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -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>

@@ -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)
@@ -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)