Daniel Peng has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/87235?usp=email )
Change subject: mb/google/brya/var/guren: Add Stylus Pen Function ......................................................................
mb/google/brya/var/guren: Add Stylus Pen Function
New Stylus Pen for MAXEYE/0585501490 module for Guren360 project. 1. Add STYLUS fw_config setting 2. Enable stylus device settings 3. Disable the stylus GPIO pins based on fw_config
BUG=b:406168542 BRANCH=firmware-nissa-15217.B TEST=1. emerge-nissa coreboot 2. Confirm command evtest for stylus PRP0001:00 and workable.
Change-Id: I46d679d29b35d0f4fc70d63b74975d3bdfc40b7b Signed-off-by: Daniel Peng Daniel_Peng@pegatron.corp-partner.google.com --- M src/mainboard/google/brya/variants/guren/fw_config.c M src/mainboard/google/brya/variants/guren/gpio.c M src/mainboard/google/brya/variants/guren/overridetree.cb 3 files changed, 32 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/35/87235/1
diff --git a/src/mainboard/google/brya/variants/guren/fw_config.c b/src/mainboard/google/brya/variants/guren/fw_config.c index efebee2..63e55a3 100644 --- a/src/mainboard/google/brya/variants/guren/fw_config.c +++ b/src/mainboard/google/brya/variants/guren/fw_config.c @@ -27,6 +27,13 @@ PAD_NC(GPP_H23, NONE), };
+static const struct pad_config stylus_disable_pads[] = { + /* F13 : SOC_PEN_DETECT_R_ODL */ + PAD_NC_LOCK(GPP_F13, NONE, LOCK_CONFIG), + /* F15 : SOC_PEN_DETECT_ODL */ + PAD_NC_LOCK(GPP_F15, NONE, LOCK_CONFIG), +}; + void fw_config_gpio_padbased_override(struct pad_config *padbased_table) { if (!fw_config_probe(FW_CONFIG(DB_USB, DB_HDMI_LTE)) @@ -44,4 +51,10 @@ gpio_padbased_override(padbased_table, lte_disable_pads, ARRAY_SIZE(lte_disable_pads)); } + + if (fw_config_probe(FW_CONFIG(STYLUS, STYLUS_ABSENT))) { + printk(BIOS_INFO, "Disable Stylus GPIO pins.\n"); + gpio_padbased_override(padbased_table, stylus_disable_pads, + ARRAY_SIZE(stylus_disable_pads)); + } } diff --git a/src/mainboard/google/brya/variants/guren/gpio.c b/src/mainboard/google/brya/variants/guren/gpio.c index 0c46265..b5017c6 100644 --- a/src/mainboard/google/brya/variants/guren/gpio.c +++ b/src/mainboard/google/brya/variants/guren/gpio.c @@ -26,10 +26,6 @@ PAD_CFG_GPI(GPP_E5, NONE, DEEP), /* F12 : WWAN_RST_L */ PAD_CFG_GPO_LOCK(GPP_F12, 1, LOCK_CONFIG), - /* F13 : GSXSLOAD ==> NC */ - PAD_NC_LOCK(GPP_F13, NONE, LOCK_CONFIG), - /* F15 : GSXSRESET# ==> NC */ - PAD_NC_LOCK(GPP_F15, NONE, LOCK_CONFIG), /* H19 : SOC_I2C_SUB_INT_ODL */ PAD_CFG_GPI_APIC(GPP_H19, NONE, PLTRST, LEVEL, NONE), /* H22 : IMGCLKOUT3 ==> NC */ diff --git a/src/mainboard/google/brya/variants/guren/overridetree.cb b/src/mainboard/google/brya/variants/guren/overridetree.cb index 0e10689..fffb46c 100644 --- a/src/mainboard/google/brya/variants/guren/overridetree.cb +++ b/src/mainboard/google/brya/variants/guren/overridetree.cb @@ -21,6 +21,10 @@ option WIFI_SAR_ID_INTEL_CONVERTIBLE 0 option WIFI_SAR_ID_INTEL_CLAMSHELL 1 end + field STYLUS 15 + option STYLUS_ABSENT 0 + option STYLUS_PRESENT 1 + end field WFC 17 18 option WFC_ABSENT 0 option WFC_PRESENT 1 @@ -369,6 +373,21 @@ probe TOUCHSCREEN_SOURCE TOUCHSCREEN_ILIT2901 end end + + chip drivers/generic/gpio_keys + register "name" = ""PENH"" + register "gpio" = "ACPI_GPIO_INPUT_ACTIVE_LOW(GPP_F13)" + register "key.wake_gpe" = "GPE0_DW2_15" + register "key.wakeup_route" = "WAKEUP_ROUTE_SCI" + register "key.wakeup_event_action" = "EV_ACT_DEASSERTED" + register "key.dev_name" = ""EJCT"" + register "key.linux_code" = "SW_PEN_INSERTED" + register "key.linux_input_type" = "EV_SW" + register "key.label" = ""pen_eject"" + device generic 0 on + probe STYLUS STYLUS_PRESENT + end + end end #I2C1 device ref i2c2 on chip drivers/i2c/sx9324