Skip to content

Commit

Permalink
ARM: tegra: paz00: enable usb ports
Browse files Browse the repository at this point in the history
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: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Colin Cross <ccross@android.com>
  • Loading branch information
Marc Dietrich authored and Colin Cross committed Jul 13, 2011
1 parent dda9cd2 commit 13db7a7
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 1 deletion.
1 change: 1 addition & 0 deletions arch/arm/mach-tegra/board-paz00-pinmux.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
35 changes: 34 additions & 1 deletion arch/arm/mach-tegra/board-paz00.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand All @@ -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"
Expand Down Expand Up @@ -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)
{
Expand All @@ -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,
Expand Down Expand Up @@ -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")
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-tegra/board-paz00.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit 13db7a7

Please sign in to comment.