aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Anderson <dianders@chromium.org>2019-06-19 14:34:25 -0400
committerHeiko Stuebner <heiko@sntech.de>2019-06-26 17:58:55 -0400
commit4db11c378ab1e170c3a197ea3719ffe54cd06637 (patch)
treea6b19038273ee2684d226730e7d24c420262ef93
parentf497ab6b4bb813aca439b7f3a72a060b58b147c4 (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.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi20
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 {