USB deepsleep

USB deepsleep

USB模块的deepsleep是依赖于PM管理系统的,deepsleep按流程可分为suspend、resume两个阶段。

设备remote_wakeup功能支持

常见支持remote_wakeup功能的设备:hub、mouse、keyboard。

以mouse为例,在设备的配置描述符的bmAttributes字段的第5字节,表示当前设备是否支持remote_wakeup功能,D5为1时,支持remote_wakeup功能;为0,则表示不支持。

---------------- Configuration Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0022 (34 bytes)
bNumInterfaces : 0x01
bConfigurationValue : 0x01
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0xA0
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x01 (yes)
D4…0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)

(注意:尽管设备支持remote_wakeup功能,但是,不同厂商的设备,对remote_wakeup的实现是不一样的,会存在差异)

linux系统的usb power管理

/sys/bus/usb/device/…/power目录,为设备的power管理目录。(“…”表示设备名,如1-1)
power目录下的各节点属性如下:
在这里插入图片描述
详情请参考:linux-3.10\Documentation\usb\power-management.txt

设备的suspend

控制台输入命令如下:
cd /sys/bus/usb/devices/1-1/power/ //进入设备的power操作目录,1-1为roothub
echo “enabled” > wakeup //使能设备的wakeup功能
echo “auto” > control //允许设备自动进入休眠

mouse设备的电源指示灯熄灭。

设备的resume

操作mouse,如按下mouse左键等。

mouse设备的电源指示灯重新亮起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值