diff options
author | Douglas Anderson <dianders@chromium.org> | 2019-06-19 14:34:25 -0400 |
---|---|---|
committer | Heiko Stuebner <heiko@sntech.de> | 2019-06-26 17:58:55 -0400 |
commit | 4db11c378ab1e170c3a197ea3719ffe54cd06637 (patch) | |
tree | a6b19038273ee2684d226730e7d24c420262ef93 | |
parent | f497ab6b4bb813aca439b7f3a72a060b58b147c4 (diff) |
ARM: dts: rockchip: Configure BT_DEV_WAKE in on rk3288-veyron
This is the other half of the hacky solution from commit f497ab6b4bb8
("ARM: dts: rockchip: Configure BT_HOST_WAKE as wake-up signal on
veyron"). Specifically the LPM driver that the Broadcom Bluetooth
expects to have (but is missing in mainline) has two halves of the
equation: BT_HOST_WAKE and BT_DEV_WAKE. The BT_HOST_WAKE (which was
handled in the previous commit) is the one that lets the Bluetooth
wake the system up. The BT_DEV_WAKE (this patch) tells the Bluetooth
that it's OK to go into a low power mode. That means we were burning
a bit of extra power in S3 without this patch. Measurements are a bit
noisy, but it appears to be a few mA worth of difference.
NOTE: Though these pins don't do much on systems with Marvell
Bluetooth, downstream kernels set it on all veyron boards so we'll do
the same.
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-rw-r--r-- | arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/rk3288-veyron.dtsi | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi index 5727017f34b2..1cadb522fd0d 100644 --- a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi +++ b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi | |||
@@ -237,6 +237,7 @@ | |||
237 | 237 | ||
238 | /* Wake only */ | 238 | /* Wake only */ |
239 | &suspend_l_wake | 239 | &suspend_l_wake |
240 | &bt_dev_wake_awake | ||
240 | >; | 241 | >; |
241 | pinctrl-1 = < | 242 | pinctrl-1 = < |
242 | /* Common for sleep and wake, but no owners */ | 243 | /* Common for sleep and wake, but no owners */ |
@@ -246,6 +247,7 @@ | |||
246 | 247 | ||
247 | /* Sleep only */ | 248 | /* Sleep only */ |
248 | &suspend_l_sleep | 249 | &suspend_l_sleep |
250 | &bt_dev_wake_sleep | ||
249 | >; | 251 | >; |
250 | 252 | ||
251 | backlight { | 253 | backlight { |
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi index e2635ad574e7..53d2f2452868 100644 --- a/arch/arm/boot/dts/rk3288-veyron.dtsi +++ b/arch/arm/boot/dts/rk3288-veyron.dtsi | |||
@@ -485,12 +485,18 @@ | |||
485 | &ddr0_retention | 485 | &ddr0_retention |
486 | &ddrio_pwroff | 486 | &ddrio_pwroff |
487 | &global_pwroff | 487 | &global_pwroff |
488 | |||
489 | /* Wake only */ | ||
490 | &bt_dev_wake_awake | ||
488 | >; | 491 | >; |
489 | pinctrl-1 = < | 492 | pinctrl-1 = < |
490 | /* Common for sleep and wake, but no owners */ | 493 | /* Common for sleep and wake, but no owners */ |
491 | &ddr0_retention | 494 | &ddr0_retention |
492 | &ddrio_pwroff | 495 | &ddrio_pwroff |
493 | &global_pwroff | 496 | &global_pwroff |
497 | |||
498 | /* Sleep only */ | ||
499 | &bt_dev_wake_sleep | ||
494 | >; | 500 | >; |
495 | 501 | ||
496 | pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { | 502 | pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { |
@@ -596,6 +602,20 @@ | |||
596 | sdio0_clk: sdio0-clk { | 602 | sdio0_clk: sdio0-clk { |
597 | rockchip,pins = <4 RK_PD1 1 &pcfg_pull_none_drv_8ma>; | 603 | rockchip,pins = <4 RK_PD1 1 &pcfg_pull_none_drv_8ma>; |
598 | }; | 604 | }; |
605 | |||
606 | /* | ||
607 | * These pins are only present on very new veyron boards; on | ||
608 | * older boards bt_dev_wake is simply always high. Note that | ||
609 | * gpio4_D2 is a NC on old veyron boards, so it doesn't hurt | ||
610 | * to map this pin everywhere | ||
611 | */ | ||
612 | bt_dev_wake_sleep: bt-dev-wake-sleep { | ||
613 | rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_low>; | ||
614 | }; | ||
615 | |||
616 | bt_dev_wake_awake: bt-dev-wake-awake { | ||
617 | rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_high>; | ||
618 | }; | ||
599 | }; | 619 | }; |
600 | 620 | ||
601 | tpm { | 621 | tpm { |