summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Sliwa <dominik.sliwa@toradex.com>2018-10-17 14:41:17 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-11-29 10:35:26 +0100
commit364dc45a769467959e48df215a55677d6f8f01e3 (patch)
tree145a9e04d78285e09a13116002c1a2298fa2f603
parente373b47c874a583fba3ed5d1097d2a2183d33e27 (diff)
apalis-tk1: proper usb lane and resource assigment
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-rw-r--r--arch/arm/mach-tegra/board-apalis-tk1.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/arch/arm/mach-tegra/board-apalis-tk1.c b/arch/arm/mach-tegra/board-apalis-tk1.c
index fb098f519807..7d1e4305dbf4 100644
--- a/arch/arm/mach-tegra/board-apalis-tk1.c
+++ b/arch/arm/mach-tegra/board-apalis-tk1.c
@@ -377,31 +377,36 @@ static void apalis_tk1_usb_init(void)
/* TBD
tegra_ehci1_utmi_pdata.u_data.host.turn_off_vbus_on_lp0 = true; */
- tegra_udc_pdata.id_det_type = TEGRA_USB_ID;
- tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_ID;
-
- tegra_otg_pdata.is_xhci = false;
- tegra_udc_pdata.u_data.dev.is_xhci = false;
+ if (usb_port_owner_info & UTMI1_PORT_OWNER_XUSB) {
+ tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_ID;
+ tegra_otg_pdata.is_xhci = true;
+ tegra_otg_device.dev.platform_data = &tegra_otg_pdata;
+ platform_device_register(&tegra_otg_device);
+ } else {
+ tegra_ehci1_utmi_pdata.id_det_type = TEGRA_USB_ID;
+ tegra_otg_pdata.is_xhci = false;
+ tegra_otg_device.dev.platform_data = &tegra_otg_pdata;
+ platform_device_register(&tegra_otg_device);
+ }
- tegra_otg_device.dev.platform_data = &tegra_otg_pdata;
- platform_device_register(&tegra_otg_device);
/* Setup the udc platform data */
+ tegra_udc_pdata.id_det_type = TEGRA_USB_ID;
+ tegra_udc_pdata.u_data.dev.is_xhci = false;
tegra_udc_device.dev.platform_data = &tegra_udc_pdata;
if (!(usb_port_owner_info & UTMI2_PORT_OWNER_XUSB)) {
- tegra_ehci2_device.dev.platform_data = &tegra_ehci2_utmi_pdata;
- platform_device_register(&tegra_ehci2_device);
- }
-
- if (!(usb_port_owner_info & UTMI2_PORT_OWNER_XUSB)) {
tegra_ehci3_device.dev.platform_data = &tegra_ehci3_utmi_pdata;
platform_device_register(&tegra_ehci3_device);
}
+
+ tegra_ehci2_device.dev.platform_data = &tegra_ehci2_utmi_pdata;
+ platform_device_register(&tegra_ehci2_device);
+
}
static struct tegra_xusb_platform_data xusb_pdata = {
.portmap = TEGRA_XUSB_SS_P0 | TEGRA_XUSB_USB2_P0 | TEGRA_XUSB_SS_P1 |
- TEGRA_XUSB_USB2_P1 | TEGRA_XUSB_USB2_P2,
+ TEGRA_XUSB_USB2_P2,
};
#ifdef CONFIG_TEGRA_XUSB_PLATFORM
@@ -409,15 +414,13 @@ static void apalis_tk1_xusb_init(void)
{
int usb_port_owner_info = tegra_get_usb_port_owner_info();
- xusb_pdata.lane_owner = (u8) tegra_get_lane_owner_info();
+ xusb_pdata.lane_owner = (u8)tegra_get_lane_owner_info();
if (!(usb_port_owner_info & UTMI1_PORT_OWNER_XUSB))
xusb_pdata.portmap &= ~(TEGRA_XUSB_USB2_P0 | TEGRA_XUSB_SS_P1);
if (!(usb_port_owner_info & UTMI2_PORT_OWNER_XUSB))
- xusb_pdata.portmap &= ~(TEGRA_XUSB_USB2_P2 |
- TEGRA_XUSB_USB2_P1 | TEGRA_XUSB_SS_P0);
+ xusb_pdata.portmap &= ~(TEGRA_XUSB_USB2_P2 | TEGRA_XUSB_SS_P0);
- //TBD: UTMI3
}
#endif