Difference between revisions of "DESK-MX6-L/Pheripherals/USB Host"

From DAVE Developer's Wiki
Jump to: navigation, search
(Created page with "{{subst:Peripheral | nome-som=AXEL Lite | nome-peripheral = USB Host }}")
 
Line 7: Line 7:
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|X.Y.Z
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|1.0.0
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Oct 2020
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|First DESK release
|-
 
|-
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|[TBD_link X.Y.Z]
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
 
|-
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|-
 
 
|}
 
|}
 
<section end=History/>
 
<section end=History/>
Line 26: Line 16:
 
==Peripheral USB Host ==
 
==Peripheral USB Host ==
  
''TBD: sostituire tutti i dump con le informazioni sull'uso della periferica''
+
The USB Host port requires to configure the USB VBUS regulator and the '''gpio''' used for enabling the 5V USB power switch.
  
 
=== Device tree configuration ===
 
=== Device tree configuration ===
 +
 
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL Lite SOM:
 
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL Lite SOM:
  
From <code>''carrier.dts''</code>:
+
From <code>imx6qdl-axelcommon.dtsi</code>:
  
 
<pre>
 
<pre>
&can1 {
+
    regulators {
    pinctrl-names = "default";
+
        compatible = "simple-bus";
     pinctrl-0 = <&pinctrl_flexcan1_axel>;
+
 +
        reg_usb_h1_vbus: usb_h1_vbus {
 +
            compatible = "regulator-fixed";
 +
            regulator-name = "usb_h1_vbus";
 +
            regulator-min-microvolt = <5000000>;
 +
            regulator-max-microvolt = <5000000>;
 +
            gpio = <&gpio2 11 0>;
 +
            enable-active-high;
 +
        };
 +
    };
 +
...
 +
...
 +
&usbh1 {
 +
     vbus-supply = <&reg_usb_h1_vbus>;
 
     status = "okay";
 
     status = "okay";
 
};
 
};
</pre>
 
 
From <code>''carrier-common.dtsi''</code>:
 
 
<pre>
 
    can1 {
 
        pinctrl_flexcan1_axel: flexcan1axelgrp-1 {
 
            fsl,pins = <
 
                MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000
 
                MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x80000000
 
            >;
 
        };
 
    };
 
 
</pre>
 
</pre>
  
Line 57: Line 48:
 
====Linux messages at boot time====
 
====Linux messages at boot time====
  
<pre class="workstation-terminal">
+
When a USB peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. xlass, vendor id, product id, etc.)
...
 
...
 
[    1.807495] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator
 
[    1.817366] flexcan 2090000.flexcan: device registered (reg_base=c0a30000, irq=31)
 
...
 
...
 
[    3.952659] can: controller area network core (rev 20170425 abi 9)
 
[    3.963413] can: raw protocol (rev 20170425)
 
[    3.967717] can: broadcast manager protocol (rev 20170425 t)
 
[    3.973397] can: netlink gateway (rev 20170425) max_hops=1
 
</pre>
 
  
====Enable the interface and check status====
 
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@imx6qxelk:~# ip link set can0 type can bitrate 500000
+
root@imx6qdlxelk:~# [  635.250658] usb 1-1: new high-speed USB device number 3 using ci_hdrc
root@imx6qxelk:~# ifconfig can0 up
+
[  635.452905] usb 1-1: New USB device found, idVendor=18a5, idProduct=0302
root@imx6qxelk:~# ifconfig can0
+
[  635.459662] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
can0      Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
+
[  635.468681] usb 1-1: Product: STORE N GO
          UP RUNNING NOARP MTU:16  Metric:1
+
[ 635.473596] usb 1-1: Manufacturer: Verbatim
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
+
[  635.477809] usb 1-1: SerialNumber: CCYYMMDDHHmmSSNUFLQ9
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
+
[  635.491337] usb-storage 1-1:1.0: USB Mass Storage device detected
          collisions:0 txqueuelen:10
+
[ 635.497852] scsi host0: usb-storage 1-1:1.0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
+
[  638.418581] scsi 0:0:0:0: Direct-Access    Verbatim STORE N GO      1100 PQ: 0 ANSI: 4
          Interrupt:31
+
[  638.429992] sd 0:0:0:0: [sda] 61069312 512-byte logical blocks: (31.3 GB/29.1 GiB)
 
+
[  638.444695] sd 0:0:0:0: [sda] Write Protect is off
root@imx6qxelk:~#
+
[  638.453430] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 +
[  638.473696]  sda: sda1
 +
[  638.481431] sd 0:0:0:0: [sda] Attached SCSI removable disk
 +
root@imx6qdlxelk:~#
 
</pre>
 
</pre>
  
==== Usage with [https://github.com/linux-can/can-utils can-utils] ====
+
=== Additional information ===
 
+
If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:
''TBD: reference verso eventuali informazioni sul web''
 
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@imx6qxelk:~# ip link set can0 type can bitrate 500000 triple-sampling on
+
root@imx6qdlxelk:~# mkdir -p /mnt/usb
root@imx6qxelk:~# ifconfig can0 up
+
root@imx6qdlxelk:~# mount /dev/sda1 /mnt/usb
root@imx6qxelk:~# cansend can0 128#1122334455667788
+
[  831.081734] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
root@imx6qxelk:~# candump can0
+
root@imx6qdlxelk:~# ls -la /mnt/usb
   can0 128  [8] 11 22 33 44 55 66 77 88
+
total 6756
root@imx6qxelk:~#  
+
drwxr-xr-x 3 root root  16384 Jan  1  1970 .
 +
drwxr-xr-x 4 root root    4096 Oct  7 16:33 ..
 +
drwxr-xr-x 2 root root   16384 Feb 26 2020 System Volume Information
 +
-rwxr-xr-x 1 root root 6881192 Mar 31 2020 uImage-4.14.98-xelk-5.0.0-rc2+gb0960b6
 +
root@imx6qdlxelk:~#
 
</pre>
 
</pre>
  
=== Additional information ===
 
Each CAN port appears like a networking interface in the form <code>canX</code> where <b><i>X</i></b> is the port number.
 
 
Information about programming the CAN socket interface is given in the kernel tree under ''Documentation/networking/can.txt''
 
 
<section end=Body/>
 
<section end=Body/>
  

Revision as of 07:45, 12 October 2020

History
Version Issue Date Notes
1.0.0 Oct 2020 First DESK release


Peripheral USB Host[edit | edit source]

The USB Host port requires to configure the USB VBUS regulator and the gpio used for enabling the 5V USB power switch.

Device tree configuration[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the AXEL Lite SOM:

From imx6qdl-axelcommon.dtsi:

    regulators {
        compatible = "simple-bus";
 
        reg_usb_h1_vbus: usb_h1_vbus {
            compatible = "regulator-fixed";
            regulator-name = "usb_h1_vbus";
            regulator-min-microvolt = <5000000>;
            regulator-max-microvolt = <5000000>;
            gpio = <&gpio2 11 0>;
            enable-active-high;
        };
    };
...
...
&usbh1 {
    vbus-supply = <&reg_usb_h1_vbus>;
    status = "okay";
};

Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

When a USB peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. xlass, vendor id, product id, etc.)

root@imx6qdlxelk:~# [  635.250658] usb 1-1: new high-speed USB device number 3 using ci_hdrc
[  635.452905] usb 1-1: New USB device found, idVendor=18a5, idProduct=0302
[  635.459662] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  635.468681] usb 1-1: Product: STORE N GO
[  635.473596] usb 1-1: Manufacturer: Verbatim
[  635.477809] usb 1-1: SerialNumber: CCYYMMDDHHmmSSNUFLQ9
[  635.491337] usb-storage 1-1:1.0: USB Mass Storage device detected
[  635.497852] scsi host0: usb-storage 1-1:1.0
[  638.418581] scsi 0:0:0:0: Direct-Access     Verbatim STORE N GO       1100 PQ: 0 ANSI: 4
[  638.429992] sd 0:0:0:0: [sda] 61069312 512-byte logical blocks: (31.3 GB/29.1 GiB)
[  638.444695] sd 0:0:0:0: [sda] Write Protect is off
[  638.453430] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[  638.473696]  sda: sda1
[  638.481431] sd 0:0:0:0: [sda] Attached SCSI removable disk
root@imx6qdlxelk:~#

Additional information[edit | edit source]

If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:

root@imx6qdlxelk:~# mkdir -p /mnt/usb
root@imx6qdlxelk:~# mount /dev/sda1 /mnt/usb
[  831.081734] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
root@imx6qdlxelk:~#  ls -la /mnt/usb
total 6756
drwxr-xr-x 3 root root   16384 Jan  1  1970 .
drwxr-xr-x 4 root root    4096 Oct  7 16:33 ..
drwxr-xr-x 2 root root   16384 Feb 26  2020 System Volume Information
-rwxr-xr-x 1 root root 6881192 Mar 31  2020 uImage-4.14.98-xelk-5.0.0-rc2+gb0960b6
root@imx6qdlxelk:~#