u-boot/arch
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
..
arc common/board_f: Initialized global data for generic board 2014-05-12 15:20:05 -04:00
arm usb: tegra: support device mode 2014-05-15 00:21:17 +02:00
avr32 bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
blackfin blackfin: replace bfin_gen_rand_mac() with eth_random_addr() 2014-05-12 15:19:46 -04:00
m68k bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
microblaze bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
mips common/board_f: Initialized global data for generic board 2014-05-12 15:20:05 -04:00
nds32 bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
nios2 bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
openrisc bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
powerpc powerpc/mpc86xx: Fix boot_flag for calling board_init_f() 2014-05-13 08:31:22 -07:00
sandbox common/board_f: Initialized global data for generic board 2014-05-12 15:20:05 -04:00
sh bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
sparc bd_info: remove bi_barudrate member from struct bd_info 2014-05-12 15:19:45 -04:00
x86 kbuild: move asm-offsets.c from SoC directory to arch/$(ARCH)/lib 2014-03-28 15:06:29 -04:00
.gitignore update include/asm/ gitignore after move 2010-05-07 00:17:30 +02:00