Changes between Initial Version and Version 1 of ventana/gw5200usb

10/24/2017 04:37:41 AM (5 years ago)



  • ventana/gw5200usb

    v1 v1  
     2          <div id="wikipage" class="trac-content"><h1 id="GW52xxUSBSteering"><b style="color:#000;background:#66ffff">GW52xx USB Steering</b></h1>
     4The GW52xx has the ability to route the OTG USB between a Mini-PCIe slot J8 and the front panel micro connector. This can be controlled through software.
     6<h2 id="Option1-Bootloader-Recommended">Option 1 - Bootloader - Recommended</h2>
     7<ul><li><strong>Recommended</strong>- This can be done with settings in the bootloader as shown here: <a class="wiki" href="/wiki/ventana/bootloader#USBFront-panelvsPCIesocketrouting">GW52xx Bootloader Configuration</a>
     8</li></ul><h2 id="Option2-CommandLine">Option 2 - Command Line</h2>
     10The steering is controlled via GPIO2. This can be controlled in Linux at the command line once the board is booted and access to the serial console is acquired.
     13Setting the GPIO high will route to the Mini-PCIe slot and setting the GPIO low (0) will route it to the front panel connector:
     15<pre class="wiki">echo 2 &gt; /sys/class/gpio/export
     16echo out &gt; /sys/class/gpio/gpio2/direction
     17echo 1 &gt; /sys/class/gpio/gpio2/value
     19Additionally, to accomplish this switching back and forth <strong>during run time</strong>, please use the script below:
     21<pre class="wiki">#!/bin/sh
     23# GW52xx:
     24#  Dynamically switch USB OTG from front-panel (fp) and PCIe socket (pci)
     25#  at run-time and trigger re-enumeration
     27# usage: gw52xx-usbswitch fp|pci
     29[ -d /sys/class/gpio/gpio2 ] || {
     30  echo "setup"
     31  devmem 0x20e0224 32 0x15 # hack to set SION bit in case we want read-back
     32  echo 2 &gt; /sys/class/gpio/export
     33  echo out &gt; /sys/class/gpio/gpio2/direction
     35case "$1" in
     36  fp)  echo 0 &gt; /sys/class/gpio/gpio2/value;;
     37  pci) echo 1 &gt; /sys/class/gpio/gpio2/value;;
     39# set GPIO_2 pad-mux to GPIO1__IO2 to effectively let OTG_ID go interally go
     40# high and trigger a mode-switch to client-mode and thus disconnect
     41devmem 0x20e0210 32 0x5
     42# set GPIO_2 pad-mux back to USBOTG_IDSEL to let OTG_ID get pulled down by
     43# attached cable and trigger a mode-switch to host-mode and thus enumerate
     44devmem 0x20e0210 32 0x3