linux内核修改电流,为AM335x移植Linux内核主线代码(43)USB HUB和鼠标

本来应该接着上节,进行LCD触摸屏的调试,但是USB鼠标要简单一些,因此先调试它。

HUB采用了芯片USB2514,配合两个双路USB电流监测芯片TPS2052,实现4路USB,因此首要的任务是Kernel需要识别这个HUB,并且将4路USB的电源打开。

================================================================

https://processors.wiki.ti.com/index.php/AM335x_USB_Driver%27s_Guide

https://processors.wiki.ti.com/index.php/UsbgeneralpageLinux-v3p1

Step 1: 添加dts代码:

&usb {

status = "okay";

};

&usb_ctrl_mod {

status = "okay";

};

&usb0_phy {

status = "okay";

};

&usb0 {

status = "okay";

dr_mode = "host";

};

&cppi41dma  {

status = "okay";

};

由于我的电路板是usb0为host,usb1没有使用,因此按照上面的修改maria-am335x-common.dtsi文件。

Step 2: 在make menuconfig中选中:

→ Device Drivers → USB support

   Inventra Highspeed Dual Role Controller (TI, ADI, ...)

     Platform Glue Layer ---> (X) TI DSPS platforms

MUSB DMA mode ---> TI CPPI 4.1 (AM335x)

其他地方都不用修改。

Note:如何确定make menuconfig时的选项呢?根据设备的compatible值,查看Makefile和Kconfig即可。

例如,在dts文件中关于usb的部分是:

compatible = "ti,am33xx-usb";

因此,使用grep命令找到对应的driver文件:

[maria@localhost drivers]$ grep -rn ti\,am33xx-usb

Binary file built-in.o matches

Binary file usb/built-in.o matches

Binary file usb/musb/built-in.o matches

Binary file usb/musb/musb_am335x.o matches

usb/musb/musb_am335x.c:24:    { .compatible = "ti,am33xx-usb" },

再查看usb/musb/下的Makefile和Kconfig即可。

编译后加载到target板运行,会发现启动时的打印信息多了下面这些:

[   49.045648] usb 1-1.1: USB disconnect, device number 4

[   50.303032] usb 1-1.1: new low-speed USB device number 5 using musb-hdrc

[   50.428537] usb 1-1.1: New USB device found, idVendor=1c4f, idProduct=0003

[   50.435992] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[   50.443870] usb 1-1.1: Product: Usb Mouse

[   50.448146] usb 1-1.1: Manufacturer: SIGMACHIP

[   50.496499] input: SIGMACHIP Usb Mouse as /devices/ocp/47400000.usb/47401400.us2

[   50.525066] hid-generic 0003:1C4F:0003.0003: input: USB HID v1.10 Mouse [SIGMAC0

[   53.039375] usb 1-1.1: USB disconnect, device number 5

[   54.053001] CAUTION: musb: Babble Interrupt Occurred

[   54.143577] usb 1-1: USB disconnect, device number 2

[   54.175717] musb-hdrc musb-hdrc.0.auto: Restarting MUSB to recover from Babble

[   54.188177] musb-hdrc: setup fifo_mode 4

[   54.188252] musb-hdrc: 28/31 max ep, 16384/16384 memory

[   54.583051] usb 1-1: new high-speed USB device number 6 using musb-hdrc

[   54.723503] usb 1-1: New USB device found, idVendor=0424, idProduct=2514

[   54.730651] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0

[   54.745275] hub 1-1:1.0: USB hub found

[   54.749558] hub 1-1:1.0: 4 ports detected

执行下面的命令:

root@ok335x:/sys/bus/usb/devices# ls

1-0:1.0  1-1      1-1:1.0  usb1

root@ok335x:/sys/bus/usb/devices# cd 1-1

root@ok335x:/sys/bus/usb/devices/1-1# ls

1-1:1.0              bmAttributes         maxchild

authorized           busnum               port

avoid_reset_quirk    configuration        power

bConfigurationValue  descriptors          quirks

bDeviceClass         dev                  removable

bDeviceProtocol      devnum               remove

bDeviceSubClass      devpath              speed

bMaxPacketSize0      driver               subsystem

bMaxPower            ep_00                uevent

bNumConfigurations   idProduct            urbnum

bNumInterfaces       idVendor             version

bcdDevice            ltm_capable

root@ok335x:/sys/bus/usb/devices/1-1# cat idProduct

2514

root@ok335x:/sys/bus/usb/devices/1-1# cat idVendor

0424

到这里,可知Kernel驱动USB的基本步骤没有问题了,剩下的工作是如何使用USB设备,此处不再赘述。

下一节的内容是文件系统的移植。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值