天嵌 ARM开发社区

 找回密码
 注册
查看: 3015|回复: 0

I.MX6Q学习笔记——新版BSP之USB HOST移植

[复制链接]
freewing 发表于 2015-5-22 09:50:22 | 显示全部楼层 |阅读模式
  本文由博主girlkoo编写,关于E9与TQIMX6Q开发平台USB HOST移植的文章。

  USB HOST驱动一般都是由芯片厂商维护的,因此,我们仍然只需要配置下DTS即可完成USB HOST驱动的移植。

  DTS配置
  参考sabresd相关的DTS,在我们的DTS中添加如下内容:

  1. / {  
  2.   
  3.     ...  
  4.       
  5.     regulators {  
  6.         compatible = "simple-bus";  
  7.   
  8.         reg_usb_otg_vbus: usb_otg_vbus {  
  9.             compatible = "regulator-fixed";  
  10.             regulator-name = "usb_otg_vbus";  
  11.             regulator-min-microvolt = <5000000>;  
  12.             regulator-max-microvolt = <5000000>;  
  13.             gpio = <&gpio7 1 0>;  
  14.             enable-active-high;  
  15.         };  
  16.     };  
  17.       
  18.     ...  
  19.       
  20. };  
  21.   
  22. ...  
  23.   
  24. &usbh1 {  
  25.     status = "okay";  
  26. };  
  27.   
  28. &usbotg {  
  29.     vbus-supply = <&#174;_usb_otg_vbus>;  
  30.     pinctrl-names = "default";  
  31.     pinctrl-0 = <&pinctrl_usbotg_2>;  
  32.     disable-over-current;  
  33.     status = "okay";  
  34. };  
  35.   
  36. ...  
复制代码


  由于tqimx6q开发板USB HOST的vbus是直接供电的,因此,不需要regulator控制;而USB OTG的vbus是通过GPIO7_1端子控制开关芯片SY6280AAC来供电的,因此,需要添加对应的regulator控制。添加以上内容后重新编译DTB并烧写到SD。

  测试方法
  USB HOST移植好之后可以使用USB盘来测试,使用修改好的DTB启动内核,然后将U盘插到tqimx6q的USB口上,在开发板的串口终端会看到驱动枚举到USB设备的Log信息,我这边看到的Log信息如下:

  1. usb 1-1.2: new high-speed USB device number 3 using ci_hdrc  
  2. usb-storage 1-1.2:1.0: USB Mass Storage device detected  
  3. scsi0 : usb-storage 1-1.2:1.0  
  4. scsi 0:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 4  
  5. sd 0:0:0:0: [sda] 30233588 512-byte logical blocks: (15.4 GB/14.4 GiB)  
  6. sd 0:0:0:0: [sda] Write Protect is off  
  7. sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA  
  8. sda: sda4  
  9. sd 0:0:0:0: [sda] Attached SCSI removable disk  
复制代码


  相应的设备节点在/dev目录下,一般是以sd开头的,本文的U盘设备节点是sda,对应分区节点是sda4。虽然内核驱动已经识别到了U盘,但是没有自动挂载U盘,因此需要手动挂载U盘:

  1. mount /dev/sda4 /mnt  
复制代码



  即可将U盘挂在到mnt目录。然后通过cd命令切换到/mnt目录,然后使用ls指令即可查看U盘内的文件:

  1. @tqimx6q #mount /dev/sda4 mnt/  
  2. FAT-fs (sda4): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.  
  3. @tqimx6q #cd mnt/  
  4. @tqimx6q mnt#ls  
  5. DDR??M.txt  
  6. L3.0.35_4.1.0_130816_source.tar.gz  
  7. alsa-wm8960.tar.bz2  
  8. arch  
  9. imx6_corec_q1g_cd1.iso  
  10. imx6_corec_q1g_cd2.iso  
  11. imx6q  
  12. jdk-6u45-linux-x64.bin  
  13. linux-2.6-imx.tar(1).bz2  
  14. linux-3.12.10-ti2013.12.01.tgz  
  15. linux-3.17.2.tgz  
  16. rootfs  
  17. rootfs.tgz  
  18. stunnel.rar  
  19. synergy-master.zip  
  20. test  
  21. ti-sdk-am335x-evm-07.00.00.00-Linux-x86-Install.bin
复制代码



  官方默认内核有些驱动是没有配置的,比如USB串口驱动。如果有需要可以通过内核的menuconfig选项进行配置,这里就不多说了。至此,tqimx6q的USB HOST驱动就已经移植好了,有任何疑问可以留言讨论。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-28 07:06 , Processed in 1.031250 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表