From 364dc45a769467959e48df215a55677d6f8f01e3 Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Wed, 17 Oct 2018 14:41:17 +0200 Subject: apalis-tk1: proper usb lane and resource assigment Signed-off-by: Dominik Sliwa Acked-by: Marcel Ziswiler --- arch/arm/mach-tegra/board-apalis-tk1.c | 37 ++++++++++++++++++---------------- 1 file 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 -- cgit v1.2.3