[Q3]We can only use Iclass(GUID) to realize PWM, but using DeviceName will not do, why?--[i.MX53,WEC7]
We want to disable the GPIO keypad when the screen is off, and the GPIO keypad should go to D4 mode. But we can only use the Iclass(GUID) to realize this function.
The registery set below will not work(Set GPIO Keypad Iclass as Generic power-manageable devices and set GKP1 go to D4 mode when screenoff,but the GPIO Keypad Driver can not get power control command):
;------------------------------------------------------------------------------
; GPIO Keypad Driver
;
IF BSP_GPIO_KEYPAD
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIOKEYPAD]
"Prefix"="GKP"
"Dll"="gpiokeypad.dll"
"Index"=dword:1
"Order"=dword:12
;---------------------------------------------------------------------------------------
"IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}" ;"Generic power-manageable devices"
;---------------------------------------------------------------------------------------
ENDIF ;BSP_GPIO_KEYPAD
;------------------------------------------------------------------------------
;
; Normal operation, but with UI disabled
;
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff]
"Default"=dword:0 ; D0
"Flags"=dword:100000 ; POWER_STATE_IDLE
;------------------------------------------------------------------
"GKP1:"=dword:4 ; D4 (This set will not work, why !)
;------------------------------------------------------------------
; @CESYSGEN IF CE_MODULES_BACKLIGHT
; The default behaviour for backlight drivers is to go to D4 in ScreenOff.
; OEMS who support D2/D3 can override this in the platform
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff\{0007AE3D-413C-4e7e-8786-E2A696E73A6E}]
"Default"=dword:4 ; D4 ; backlight off
; @CESYSGEN ELSE
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff]
"BKL1:"=dword:4 ; legacy support
; @CESYSGEN ENDIF CE_MODULES_BACKLIGHT
But the registery set below will work well(Set GPIO Keypad Iclass as "Power-manageable backlight", when screenoff the GPIO Keypad Driver can get power control command and go to D4 mode):
;------------------------------------------------------------------------------
; GPIO Keypad Driver
;
IF BSP_GPIO_KEYPAD
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIOKEYPAD]
"Prefix"="GKP"
"Dll"="gpiokeypad.dll"
"Index"=dword:1
"Order"=dword:12
;---------------------------------------------------------------------------------------
"IClass"="{0007AE3D-413C-4e7e-8786-E2A696E73A6E}" ;"Power-manageable backlight"
;--------------------------------------------------------------------------------------
ENDIF ;BSP_GPIO_KEYPAD
;------------------------------------------------------------------------------
;
; Normal operation, but with UI disabled
;
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff]
"Default"=dword:0 ; D0
"Flags"=dword:100000 ; POWER_STATE_IDLE
; @CESYSGEN IF CE_MODULES_BACKLIGHT
; The default behaviour for backlight drivers is to go to D4 in ScreenOff.
; OEMS who support D2/D3 can override this in the platform
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff\{0007AE3D-413C-4e7e-8786-E2A696E73A6E}]
"Default"=dword:4 ; D4 ; backlight off
; @CESYSGEN ELSE
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff]
"BKL1:"=dword:4 ; legacy support
; @CESYSGEN ENDIF CE_MODULES_BACKLIGHT
If a driver does not implement the IOCTL_POWER_CAPABILITIES, the power manager assumes that the driver does implement the other IOCTLs and does not send them. During initialization, through IOCTL_POWER_CAPABILITIES, the device driver should put the device into D0 and not D4 since D4 is completely device turned off.
Regards
Thanks for your reply.
Yes,we have applied the IOCTL_POWER_CAPABILITIES,IOCTL_POWER_SET and IOCTL_POWER_GET in the driver's IO control function .
the settings below just tell the power manager, if goes to "ScreenOff " sate , set all the drivers to D0 state except GKP1 to D4 state. But it does not work.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff]
"Default"=dword:0 ; D0
"Flags"=dword:100000 ; POWER_STATE_IDLE
;------------------------------------------------------------------
"GKP1:"=dword:4 ; D4 (This set will not work, why !)
;------------------------------------------------------------------
Can anybody give any suggestion?