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>
8
#include <
ec/google/chromeec/ec.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
{
43
uint32_t
sku_id
;
44
sku_id
=
google_chromeec_get_board_sku
();
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
:
51
*num =
ARRAY_SIZE
(
hdmi_sku_override_table
);
52
return
hdmi_sku_override_table
;
53
default
:
54
*num =
ARRAY_SIZE
(
default_override_table
);
55
return
default_override_table
;
56
}
57
}
sku_id
uint32_t sku_id(void)
Definition:
coreboot_table.c:193
ARRAY_SIZE
#define ARRAY_SIZE(a)
Definition:
helpers.h:12
ec.h
google_chromeec_get_board_sku
uint32_t google_chromeec_get_board_sku(void)
Definition:
ec_skuid.c:6
GPIO_127
#define GPIO_127
Definition:
gpio_apl.h:227
variant_override_gpio_table
const struct pad_config *__weak variant_override_gpio_table(size_t *num)
Definition:
gpio.c:450
hdmi_sku_override_table
static const struct pad_config hdmi_sku_override_table[]
Definition:
gpio.c:22
default_override_table
static const struct pad_config default_override_table[]
Definition:
gpio.c:10
SKU_36_DORP
@ SKU_36_DORP
Definition:
sku.h:14
SKU_34_DORP
@ SKU_34_DORP
Definition:
sku.h:12
SKU_33_DORP
@ SKU_33_DORP
Definition:
sku.h:11
SKU_35_DORP
@ SKU_35_DORP
Definition:
sku.h:13
NONE
@ NONE
Definition:
qup_se_handlers_common.h:196
GPIO_104
#define GPIO_104
Definition:
gpio.h:69
GPIO_146
#define GPIO_146
Definition:
gpio.h:93
PAD_NC
#define PAD_NC(pin)
Definition:
gpio_defs.h:263
GPIO_137
#define GPIO_137
Definition:
gpio.h:92
GPIO_126
#define GPIO_126
Definition:
gpio.h:90
PAD_CFG_GPI_APIC_IOS
#define PAD_CFG_GPI_APIC_IOS(pad, pull, rst, trig, inv, iosstate, iosterm)
Definition:
gpio_defs.h:391
PAD_CFG_NF_IOSSTATE_IOSTERM
#define PAD_CFG_NF_IOSSTATE_IOSTERM(pad, pull, rst, func, iosstate, iosterm)
Definition:
gpio_defs.h:234
PAD_CFG_GPO_IOSSTATE_IOSTERM
#define PAD_CFG_GPO_IOSSTATE_IOSTERM(pad, val, rst, pull, iosstate, ioterm)
Definition:
gpio_defs.h:277
uint32_t
unsigned int uint32_t
Definition:
stdint.h:14
pad_config
Definition:
gpio.h:75
src
mainboard
google
octopus
variants
meep
gpio.c
Generated by
1.9.1