coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <baseboard/gpio.h>
4 #include <baseboard/variants.h>
5 #include <gpio.h>
6 #include <soc/gpio.h>
7 #include <variant/sku.h>
9 
10 static const struct pad_config default_override_table[] = {
11  PAD_NC(GPIO_104, UP_20K),
12 
13  /* GPIO_137 -- HP_INT_ODL and would be amend by SSFC. */
14  PAD_CFG_GPI_APIC_IOS(GPIO_137, NONE, DEEP, LEVEL, INVERT, HIZCRx1,
15  DISPUPD),
16 
17  /* EN_PP3300_TOUCHSCREEN */
18  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_146, 0, DEEP, NONE, Tx0RxDCRx0,
19  DISPUPD),
20 };
21 
22 static const struct pad_config hdmi_sku_override_table[] = {
23  PAD_NC(GPIO_104, UP_20K),
24 
25  /* HV_DDI1_DDC_SDA */
26  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_126, NONE, DEEP, NF1, HIZCRx1,
27  DISPUPD),
28  /* HV_DDI1_DDC_SCL */
29  PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_127, NONE, DEEP, NF1, HIZCRx1,
30  DISPUPD),
31 
32  /* GPIO_137 -- HP_INT_ODL and would be amend by SSFC. */
33  PAD_CFG_GPI_APIC_IOS(GPIO_137, NONE, DEEP, LEVEL, INVERT, HIZCRx1,
34  DISPUPD),
35 
36  /* EN_PP3300_TOUCHSCREEN */
37  PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_146, 0, DEEP, NONE, Tx0RxDCRx0,
38  DISPUPD),
39 };
40 
41 const struct pad_config *variant_override_gpio_table(size_t *num)
42 {
45 
46  switch (sku_id) {
47  case SKU_33_DORP:
48  case SKU_34_DORP:
49  case SKU_35_DORP:
50  case SKU_36_DORP:
53  default:
56  }
57 }
uint32_t sku_id(void)
#define ARRAY_SIZE(a)
Definition: helpers.h:12
uint32_t google_chromeec_get_board_sku(void)
Definition: ec_skuid.c:6
#define GPIO_127
Definition: gpio_apl.h:227
const struct pad_config *__weak variant_override_gpio_table(size_t *num)
Definition: gpio.c:450
static const struct pad_config hdmi_sku_override_table[]
Definition: gpio.c:22
static const struct pad_config default_override_table[]
Definition: gpio.c:10
@ SKU_36_DORP
Definition: sku.h:14
@ SKU_34_DORP
Definition: sku.h:12
@ SKU_33_DORP
Definition: sku.h:11
@ SKU_35_DORP
Definition: sku.h:13
#define GPIO_104
Definition: gpio.h:69
#define GPIO_146
Definition: gpio.h:93
#define PAD_NC(pin)
Definition: gpio_defs.h:263
#define GPIO_137
Definition: gpio.h:92
#define GPIO_126
Definition: gpio.h:90
#define PAD_CFG_GPI_APIC_IOS(pad, pull, rst, trig, inv, iosstate, iosterm)
Definition: gpio_defs.h:391
#define PAD_CFG_NF_IOSSTATE_IOSTERM(pad, pull, rst, func, iosstate, iosterm)
Definition: gpio_defs.h:234
#define PAD_CFG_GPO_IOSSTATE_IOSTERM(pad, val, rst, pull, iosstate, ioterm)
Definition: gpio_defs.h:277
unsigned int uint32_t
Definition: stdint.h:14