VAR-SOM-MX7 USB OTG: Difference between revisions
No edit summary |
|||
Line 2: | Line 2: | ||
= Configuring the USB1 port under Linux = | = 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.<br> | 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.<br> | ||
To use it as OTG or peripheral you need to change the value of the dr_mode property | To use it as OTG or peripheral you need to change the value of the dr_mode property under the usbotg1 node, in the device tree, and assemble a USB Micro-AB receptacle at J27 on the bottom of the VAR-MX7CustomBoard.<br> | ||
dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg"<br> | dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg"<br> | ||
<br> | <br> | ||
For example: | For example:<br> | ||
Follow either the "Build the Linux kernel from source code" or "Customizing the Linux kernel" Wiki pages and edit the following device tree file:<br> | |||
arch/arm/boot/dts/imx7d-var-som.dtsi<br> | |||
<syntaxhighlight lang="diff"> | <syntaxhighlight lang="diff"> | ||
&usbotg1 { | &usbotg1 { | ||
Line 16: | Line 16: | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
If you build the kernel manually from source code, you should build ''only'' the device trees and copy them to your SD card. | |||
= Using the USB1 port under Linux = | = Using the USB1 port under Linux = |
Revision as of 11:50, 5 January 2018
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 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:
Follow either the "Build the Linux kernel from source code" or "Customizing the Linux kernel" Wiki pages and edit the following device tree file:
arch/arm/boot/dts/imx7d-var-som.dtsi
&usbotg1 {
vbus-supply = <®_usb_otg1_vbus>;
- dr_mode = "host";
+ dr_mode = "otg";
status = "okay";
};
If you build the kernel manually from source code, you should build only the device trees and copy them to your SD card.
Using the USB1 port under Linux
As host (default)
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.