本帖最后由 modnar 于 2013-7-20 23:32 编辑
我将A10板子的OTG接口接到主机,最多只有6个usb端口可以使用。
在sun4i_usb_bsp.h中定义了端口数量
#define USBC_MAX_EP_NUM 6 /* 能够支持的最大ep号, ep0~5 */
ep0用于控制,实际上能用的就只有ep1-ep5这5个端口了,可是我的应用需要至少6个端口,最好能8个。
于是我将USBC_MAX_EP_NUM改成了10.
在sw_udc.h中增加了ep_name.
static const char *const ep_name[] = {
ep0name, /* everyone has ep0 */
/* sw_udc four bidirectional bulk endpoints */
"ep1-bulk",
"ep2-bulk",
"ep3-bulk",
"ep4-bulk",
"ep5-bulk",
"ep6-bulk",
"ep7-bulk",
"ep8-bulk",
"ep9-int"
};
我的linux端的驱动可以usb_ep_enable新增的6789端口,windows端的驱动也可以为这些新端口创建读写句柄。
但是我向这些端口读或者写的时候,Bus hound检测到错误是:USTS C0000011.读写是失败的。
我的linux端驱动和windows端的驱动应该不是问题,因为ep1-ep5端口的读写都正常。
我的问题是:
1.linux端的sun4i_usb的驱动还要做什么修改,才能多增加几个端口?
2.cubieboard a10的硬件是只能最大支持6个端口吗?(理论上最大应该是16个,我其他的开发版也是可以支持16个)
请linux驱动开发高手回答一下,或者全志公司的开发这个usb驱动的朋友能不能解答一下?
|