VAR-SOM-MX7 USB OTG: Difference between revisions

From Variscite Wiki
Line 6: Line 6:
<br>
<br>
For example:
For example:
* Get the toolchain and the Linux source code by following the [[VAR-SOM-MX7_Yocto_Jethro_Build_Linux_out_of_tree|Build Linux from source code]] guide.
* Get the toolchain and the Linux source code by following the "Build Linux from source code" guide.
* Edit arch/arm/boot/dts/imx7d-var-som.dtsi:
* Edit arch/arm/boot/dts/imx7d-var-som.dtsi:
<syntaxhighlight lang="diff">
<syntaxhighlight lang="diff">
Line 16: Line 16:
  };
  };
</syntaxhighlight>
</syntaxhighlight>
* Continue following the [[VAR-SOM-MX7_Yocto_Jethro_Build_Linux_out_of_tree|Build Linux from source code]] guide to build ''only'' the device trees and to copy them to your SD card.
* Continue following the "Build Linux from source code" guide to build ''only'' the device trees and to copy them to your SD card.


= Using the USB1 port under Linux =
= Using the USB1 port under Linux =

Revision as of 14:30, 14 December 2016

VAR-SOM-MX7 - USB OTG

Configuring the USB1 port under Linux

By default, the USB1 port is configured as host in the device tree, and a USB type-A receptacle is assembled on the VAR-MX7CustomBoard.
To use it as OTG or peripheral you need to change the value of the dr_mode property, under the usbotg1 node, in the imx7d-var-som.dtsi device tree, and assemble a USB Micro-AB receptacle at J27 on the bottom of the VAR-MX7CustomBoard.
dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg"

For example:

  • Get the toolchain and the Linux source code by following the "Build Linux from source code" guide.
  • Edit arch/arm/boot/dts/imx7d-var-som.dtsi:
 &usbotg1 {
        vbus-supply = <&reg_usb_otg1_vbus>;
-       dr_mode = "host";
+       dr_mode = "otg";
        status = "okay";
 };
  • Continue following the "Build Linux from source code" guide to build only the device trees and to copy them to your SD card.

Using the USB1 port under Linux

As host (default)

USB host

As peripheral

In order to use the board as a peripheral, an appropriate module needs to be loaded.
For example, there is an Ethernet gadget module called g_ether, a mass storage gadget called g_mass_storage, a serial gadget called g_serial, etc.

Example using the g_mass_storage module to expose the BOOT partition on our recovery SD card to a PC:
Connect a micro-A plug to Standard-A plug cable between the board and a PC, and run the following on the board:

# umount /dev/mmcblk0p1
# modprobe g_mass_storage file=/dev/mmcblk0p1

The partition should be loaded on the PC as a mass storage device.

As OTG

With OTG, the board can be either a host, or a peripheral.
In order to use it as a host and connect a peripheral (e.g. a USB mouse) to it, an OTG cable is needed (a cable with a micro-A plug on one end and a Standard-A receptacle on the other).
In order to use it as a peripheral and connect it to a PC, for example, a cable with a micro-A plug on one end and a Standard-A plug on the other is needed.