u-boot-2016/arch/arm/include/asm/arch-tegra
Stephen Warren a4539a2aa7 usb: tegra: support device mode
A few changes are made to the Tegra EHCI driver so that it can set
everything up for device-mode operation on the first USB controller.
This can be used in conjunction with ci_udc.c to operate as a USB
device.

Detailed changes are:

* Rename set_host_mode() to set_up_vbus() since that's really what it
  does.

* Modify set_up_vbus() to know whether it's initializing in host or
  device mode, and:

  - Skip the external VBUS check in device mode, since external VBUS is
    expected in this case.

  - Disable VBUS output in device mode.

* Modify init_phy_mux() to know whether it's initializing in host or
  device mode, and hence skip setting USBMODE_CM_HC (which enables host
  mode) in device mode. See the comments in that function for why this
  is safe w.r.t. the ordering requirements of PHY selection.

* Modify init_utmi_usb_controller() to force "b session valid" in device
  mode, since the HW requires this. This is done in UTMI-specific code,
  since we only support device mode on the first USB controller, and that
  controller can only talk to a UTMI PHY.

* Enhance ehci_hcd_init() to error-check the requested host-/device-mode
  vs. the dr_mode (dual-role mode) value present in device tree, and the
  HW configurations which support device mode.

* Enhance ehci_hcd_init() not to skip HW initialization when switching
  between host and device mode on a controller. This requires remembering
  which mode the last initialization used.

Cc: Jim Lin <jilin@nvidia.com>
Cc: Stefan Agner <stefan@agner.ch>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
2014-05-15 00:21:17 +02:00
..
ap.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
apb_misc.h ARM: tegra: use apb_misc.h in more places 2014-04-17 08:41:05 -07:00
board.h ARM: tegra: prototype pinmux_init() in board.h 2014-04-17 08:41:05 -07:00
clk_rst.h ARM: tegra: add/edit headers for Tegra124 2014-02-03 09:46:46 -07:00
clock.h ARM: tegra: don't exceed AVP limits when configuring PLLP 2014-02-03 09:46:45 -07:00
funcmux.h Tegra30: Add arch-tegra30 include files 2013-01-16 13:40:07 -07:00
fuse.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
gp_padctrl.h ARM: tegra: add/edit headers for Tegra124 2014-02-03 09:46:46 -07:00
gpio.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
mmc.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
pinmux.h ARM: tegra: pack pinmux data tables tighter 2014-04-17 08:41:06 -07:00
pmc.h ARM: tegra: fix pmc_pwrgate_timer_mult register definition 2014-03-05 16:59:08 -07:00
scu.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
sys_proto.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
tegra.h ARM: tegra: fix NV_PA_CSITE_BASE for Tegra124 2014-03-05 16:59:08 -07:00
tegra_i2c.h Tegra: I2C: Add T114 clock support to tegra_i2c driver 2013-03-14 11:06:41 -07:00
tegra_mmc.h mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
timer.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
uart.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
usb.h usb: tegra: support device mode 2014-05-15 00:21:17 +02:00
warmboot.h Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00