1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 #include <baseboard/gpio.h>
4 #include <baseboard/variants.h>
5 #include <console/console.h>
8 static const struct pad_config lte_disable_pads
[] = {
9 /* A8 : WWAN_RF_DISABLE_ODL */
13 /* F12 : WWAN_RST_L */
14 PAD_NC_LOCK(GPP_F12
, NONE
, LOCK_CONFIG
),
15 /* H19 : SOC_I2C_SUB_INT_ODL */
16 PAD_NC(GPP_H19
, NONE
),
17 /* H23 : WWAN_SAR_DETECT_ODL */
18 PAD_NC(GPP_H23
, NONE
),
21 static const struct pad_config stylus_disable_pads
[] = {
22 /* F13 : SOC_PEN_DETECT_R_ODL */
23 PAD_NC_LOCK(GPP_F13
, NONE
, LOCK_CONFIG
),
24 /* F15 : SOC_PEN_DETECT_ODL */
25 PAD_NC_LOCK(GPP_F15
, NONE
, LOCK_CONFIG
),
28 void fw_config_gpio_padbased_override(struct pad_config
*padbased_table
)
30 if (!fw_config_probe(FW_CONFIG(DB_USB
, DB_1C_LTE
))) {
31 printk(BIOS_INFO
, "Disable LTE-related GPIO pins on Glassway serial projects.\n");
32 gpio_padbased_override(padbased_table
, lte_disable_pads
,
33 ARRAY_SIZE(lte_disable_pads
));
36 if (fw_config_probe(FW_CONFIG(STYLUS
, STYLUS_ABSENT
))) {
37 printk(BIOS_INFO
, "Disable Stylus GPIO pins.\n");
38 gpio_padbased_override(padbased_table
, stylus_disable_pads
,
39 ARRAY_SIZE(stylus_disable_pads
));