在Asl中开关USB 设备
各位大虾,请教一个问题。如何在ASL中开关一个USB 设备?我目前有个功能:就是按键开关usb的camero,我在EC中检查按键的状态,填写一个status bit在EC SPACE中。目前我在OS中确定当我按键的时候,这个status bit有变化。在ASL code对应的Q_METHOD中我去检查这个 status bit的值来确定是否开关USB camero。但是目前的问题是:不知道如何在ASL中开关一个USB 设备?请各位大虾帮忙指点一下。 我也想知道, USB的
:) 为什么不直接让EC来做?
EC可以检测到USB port的Status,不可以开关USB port的power吗?:L 因为我们的硬件没有GPIO PIN去控制这个USB 设备的电源.如果是软件去实现改USB的寄存器的话,EC 应该是没有办法的.只有通过SCI EVENT 告诉OSPM,在ASL code中去开关USB设备.
目前小弟就是不知道在ASL code中如何去开关USB设备. 如果是用EC的GPIO PIN去控制该USB设备的电源的话,是否直接在EC中控制GPIO pin的状态就OK 了?对WINDOWS而言,控制USB 设备电源的开关是否跟插拔USB是一样的呢?当电源enable的时候,WINDOWS中USB的driver是否会去自动initial 该设备? 应该是的.以前见过那么做的
如果硬件没有提供专用的Pin,就要看你的USB Camera Module有没有提供相应的接口了,
据我所知,chipset和USB Controller是没有开关USB port的register的. 是的,通过HW添加电路去控制USB camero的电源就很简单了.EC只需要GPIO pin的高低而已,不需要系统BIOS去参与.所有的工作都交给camero的driver了. 哈哈BIOS是可以把某个USB port禁用的,问一下BIOS的就ok了。EC自己做的话加个开关电路找一个GPIO去开关设备的power BIOS是可以禁用和启用
,而不是动态地开关!
回复 6# xtdumpling 的帖子
在CHIPSET中提供了REGISTER对某个具体的USB PORT进行单独ENABLE和DISABLE的,比如NVIDIA CHIPSET...回复 10# 凉风有讯 的帖子
在POST结束后可以开关某个port吗? 最好拉GPIO了,BIOS是可以disable usb port了,不过注意disable的是root port,整个root port下面所有的东西都用不了,如果你觉得这样也无所谓的话,我可以告诉你大概用些什么代码~~~不过不提供EC envent处理的代码哦,没用过EC,不了解这方面的~~回复 11# xtdumpling 的帖子
我记得NVDIA CHIPSET的南桥中提供了寄存器,其中的某些位是用来控制单独ENABLE/DISABLE某个USB PORT的。如果POST完成但是还没有进入OS,那么在BIOS中就可以通过直接访问这些寄存器来控制你要控制的USB PORT了(要注意你要控制的PORT是和哪个位对应的);如果是进入了OS(ACPI ENABLE后),也可以写ASL CODE来关闭USB PORT.
页:
[1]