pmaports/device/testing/u-boot-starqltechn/0005-starqltechn-use-button-kbd-driver-for-navigating-boo.patch
Dzmitry Sankouski fc08a804bc
testing/u-boot-starqltechn: update u-boot version and new patches (MR 3679)
Add new patches:
- enable serial console
- save relocation address to find KASLR
- buttons as keyboard input driver to navigate bootmenu
- bootmenu loop entry selection
2022-12-03 12:10:27 +01:00

99 lines
2.8 KiB
Diff

From 506cdd778b001d7586dbf87beaf92b2c134305e3 Mon Sep 17 00:00:00 2001
From: Dzmitry Sankouski <dsankouski@gmail.com>
Date: Thu, 1 Dec 2022 20:15:24 +0300
Subject: [PATCH 5/6] starqltechn: use button-kbd driver for navigating boot
menu
---
arch/arm/dts/sdm845.dtsi | 4 +++
arch/arm/mach-snapdragon/init_sdm845.c | 45 --------------------------
configs/starqltechn_defconfig | 2 ++
3 files changed, 6 insertions(+), 45 deletions(-)
diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi
index 607af277f8..4adf494218 100644
--- a/arch/arm/dts/sdm845.dtsi
+++ b/arch/arm/dts/sdm845.dtsi
@@ -63,6 +63,10 @@
status = "disabled";
};
+ button_kbd {
+ compatible = "button-kbd";
+ };
+
spmi@c440000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0xc440000 0x1100>,
diff --git a/arch/arm/mach-snapdragon/init_sdm845.c b/arch/arm/mach-snapdragon/init_sdm845.c
index 1f22aee7f6..cbbe1d5c76 100644
--- a/arch/arm/mach-snapdragon/init_sdm845.c
+++ b/arch/arm/mach-snapdragon/init_sdm845.c
@@ -32,51 +32,6 @@ __weak int board_init(void)
/* Check for vol- and power buttons */
__weak int misc_init_r(void)
{
- struct udevice *pon;
- struct gpio_desc resin;
- int node, ret;
-
- ret = uclass_get_device_by_name(UCLASS_GPIO, "pm8998_pon@800", &pon);
- if (ret < 0) {
- printf("Failed to find PMIC pon node. Check device tree\n");
- return 0;
- }
-
- node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon),
- "key_vol_down");
- if (node < 0) {
- printf("Failed to find key_vol_down node. Check device tree\n");
- return 0;
- }
- if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0,
- &resin, 0)) {
- printf("Failed to request key_vol_down button.\n");
- return 0;
- }
- if (dm_gpio_get_value(&resin)) {
- env_set("key_vol_down", "1");
- printf("Volume down button pressed\n");
- } else {
- env_set("key_vol_down", "0");
- }
-
- node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon),
- "key_power");
- if (node < 0) {
- printf("Failed to find key_power node. Check device tree\n");
- return 0;
- }
- if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0,
- &resin, 0)) {
- printf("Failed to request key_power button.\n");
- return 0;
- }
- if (dm_gpio_get_value(&resin)) {
- env_set("key_power", "1");
- printf("Power button pressed\n");
- } else {
- env_set("key_power", "0");
- }
env_set_addr("relocaddr", gd->relocaddr);
return 0;
diff --git a/configs/starqltechn_defconfig b/configs/starqltechn_defconfig
index 995a623305..baaba6824f 100644
--- a/configs/starqltechn_defconfig
+++ b/configs/starqltechn_defconfig
@@ -10,6 +10,8 @@ CONFIG_SYS_LOAD_ADDR=0x80000000
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_BOOTDELAY=5
+CONFIG_CMD_BOOTMENU=y
+CONFIG_DM_KEYBOARD=y
CONFIG_USE_PREBOOT=y
CONFIG_SAVE_PREV_BL_FDT_ADDR=y
CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y
--
2.30.2