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

Commit 13db7a7f authored by Marc Dietrich's avatar Marc Dietrich Committed by Colin Cross
Browse files

ARM: tegra: paz00: enable usb ports



This patch add support for the second and third ehci bus on paz00.
The first bus needs gadget and nvec support and will be added once
the needed patches are upstream.

Signed-off-by: default avatarMarc Dietrich <marvin24@gmx.de>
Signed-off-by: default avatarColin Cross <ccross@android.com>
parent dda9cd28
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ static struct tegra_gpio_table gpio_table[] = {
	{ .gpio = TEGRA_GPIO_SD4_CD,	.enable = true },
	{ .gpio = TEGRA_GPIO_SD4_WP,	.enable = true },
	{ .gpio = TEGRA_GPIO_SD4_POWER,	.enable = true },
	{ .gpio = TEGRA_ULPI_RST,	.enable = true },
};

void paz00_pinmux_init(void)
+34 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/i2c-tegra.h>
#include <linux/platform_data/tegra_usb.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -36,6 +37,8 @@
#include <mach/iomap.h>
#include <mach/irqs.h>
#include <mach/sdhci.h>
#include <mach/usb_phy.h>
#include <mach/gpio.h>

#include "board.h"
#include "board-paz00.h"
@@ -95,6 +98,36 @@ static void paz00_i2c_init(void)
	platform_device_register(&tegra_i2c_device4);
}

static struct tegra_ulpi_config ulpi_phy_config = {
		.reset_gpio = TEGRA_ULPI_RST,
		.clk = "cdev2",
};

static struct tegra_ehci_platform_data tegra_ehci_pdata[] = {
		[0] = {
			.operating_mode = TEGRA_USB_OTG,
			.power_down_on_bus_suspend = 1,
		},
		[1] = {
			.phy_config = &ulpi_phy_config,
			.operating_mode = TEGRA_USB_HOST,
			.power_down_on_bus_suspend = 1,
		},
		[2] = {
			.operating_mode = TEGRA_USB_HOST,
			.power_down_on_bus_suspend = 1,
		},
};

static void paz00_usb_init(void)
{
	tegra_ehci2_device.dev.platform_data = &tegra_ehci_pdata[1];
	tegra_ehci3_device.dev.platform_data = &tegra_ehci_pdata[2];

	platform_device_register(&tegra_ehci2_device);
	platform_device_register(&tegra_ehci3_device);
}

static void __init tegra_paz00_fixup(struct machine_desc *desc,
	struct tag *tags, char **cmdline, struct meminfo *mi)
{
@@ -109,7 +142,6 @@ static __initdata struct tegra_clk_init_table paz00_clk_init_table[] = {
	{ NULL,		NULL,		0,		0},
};


static struct tegra_sdhci_platform_data sdhci_pdata1 = {
	.cd_gpio	= TEGRA_GPIO_SD1_CD,
	.wp_gpio	= TEGRA_GPIO_SD1_WP,
@@ -142,6 +174,7 @@ static void __init tegra_paz00_init(void)
	platform_add_devices(paz00_devices, ARRAY_SIZE(paz00_devices));

	paz00_i2c_init();
	paz00_usb_init();
}

MACHINE_START(PAZ00, "paz00")
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#define TEGRA_GPIO_SD4_CD		TEGRA_GPIO_PH2
#define TEGRA_GPIO_SD4_WP		TEGRA_GPIO_PH3
#define TEGRA_GPIO_SD4_POWER		TEGRA_GPIO_PI6
#define TEGRA_ULPI_RST			TEGRA_GPIO_PV0

void paz00_pinmux_init(void);