700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux内核修改电流 为AM335x移植Linux内核主线代码(43)USB HUB和鼠标

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

时间:2022-11-28 17:25:39

相关推荐

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

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

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

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

https://processors./index.php/AM335x_USB_Driver%27s_Guide

https://processors./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设备,此处不再赘述。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。