coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
gpio.h File Reference
#include <stdint.h>
#include <device/mmio.h>
#include <soc/iomap.h>
Include dependency graph for gpio.h:

Go to the source code of this file.

Data Structures

struct  soc_gpio_map
 
struct  soc_gpio_config
 
struct  gpio_bank
 

Macros

#define CROS_GPIO_DEVICE_NAME   "BayTrail"
 
#define GPSCORE_PAD_BASE   (IO_BASE_ADDRESS + IO_BASE_OFFSET_GPSCORE)
 
#define GPNCORE_PAD_BASE   (IO_BASE_ADDRESS + IO_BASE_OFFSET_GPNCORE)
 
#define GPSSUS_PAD_BASE   (IO_BASE_ADDRESS + IO_BASE_OFFSET_GPSSUS)
 
#define PAD_BASE_DIRQ_OFFSET   0x980
 
#define PAD_CONF0_REG   0x0
 
#define PAD_CONF1_REG   0x4
 
#define PAD_VAL_REG   0x8
 
#define GPSCORE_LEGACY_BASE   (GPIO_BASE_ADDRESS + 0x00)
 
#define GPSSUS_LEGACY_BASE   (GPIO_BASE_ADDRESS + 0x80)
 
#define GP_LEGACY_BASE_NONE   0xFFFF
 
#define LEGACY_USE_SEL_REG   0x00
 
#define LEGACY_IO_SEL_REG   0x04
 
#define LEGACY_GP_LVL_REG   0x08
 
#define LEGACY_TPE_REG   0x0C
 
#define LEGACY_TNE_REG   0x10
 
#define LEGACY_TS_REG   0x14
 
#define LEGACY_WAKE_EN_REG   0x18
 
#define GPNCORE_COUNT   27
 
#define GPSCORE_COUNT   102
 
#define GPSSUS_COUNT   44
 
#define GPIO_USE_MMIO   0
 
#define GPIO_USE_LEGACY   1
 
#define GPIO_DIR_OUTPUT   0
 
#define GPIO_DIR_INPUT   1
 
#define GPIO_LEVEL_LOW   0
 
#define GPIO_LEVEL_HIGH   1
 
#define GPIO_PEDGE_DISABLE   0
 
#define GPIO_PEDGE_ENABLE   1
 
#define GPIO_NEDGE_DISABLE   0
 
#define GPIO_NEDGE_ENABLE   1
 
#define PAD_MASK2_DISABLE   (1 << 29)
 
#define PAD_IRQ_EN   (1 << 27)
 
#define PAD_TNE_IRQ   (1 << 26)
 
#define PAD_TPE_IRQ   (1 << 25)
 
#define PAD_LEVEL_IRQ   (1 << 24)
 
#define PAD_EDGE_IRQ   (0 << 24)
 
#define PAD_SLOWGF_ENABLE   (1 << 17)
 
#define PAD_FASTGF_ENABLE   (1 << 16)
 
#define PAD_HYST_DISABLE   (1 << 15)
 
#define PAD_HYST_ENABLE   (0 << 15)
 
#define PAD_HYST_CTRL_DEFAULT   (2 << 13)
 
#define PAD_FLOP_BYPASS   (1 << 11)
 
#define PAD_FLOP_ENABLE   (0 << 11)
 
#define PAD_PU_2K   (0 << 9)
 
#define PAD_PU_10K   (1 << 9)
 
#define PAD_PU_20K   (2 << 9)
 
#define PAD_PU_40K   (3 << 9)
 
#define PAD_PULL_DISABLE   (0 << 7)
 
#define PAD_PULL_UP   (1 << 7)
 
#define PAD_PULL_DOWN   (2 << 7)
 
#define PAD_FUNC0   0x0
 
#define PAD_FUNC1   0x1
 
#define PAD_FUNC2   0x2
 
#define PAD_FUNC3   0x3
 
#define PAD_FUNC4   0x4
 
#define PAD_FUNC5   0x5
 
#define PAD_FUNC6   0x6
 
#define PAD_CONFIG0_DEFAULT
 
#define PAD_CONFIG1_DEFAULT   0x8000
 
#define PAD_VAL_INPUT_DISABLE   (1 << 2)
 
#define PAD_VAL_INPUT_ENABLE   (0 << 2)
 
#define PAD_VAL_OUTPUT_DISABLE   (1 << 1)
 
#define PAD_VAL_OUTPUT_ENABLE   (0 << 1)
 
#define PAD_VAL_INPUT   (PAD_VAL_INPUT_ENABLE | PAD_VAL_OUTPUT_DISABLE)
 
#define PAD_VAL_OUTPUT   (PAD_VAL_OUTPUT_ENABLE | PAD_VAL_INPUT_DISABLE)
 
#define PAD_VAL_HIGH   (1 << 0)
 
#define PAD_VAL_LOW   (0 << 0)
 
#define PAD_VAL_DEFAULT   PAD_VAL_INPUT
 
#define GPIO_INPUT_PU_10K
 
#define GPIO_INPUT_PU_20K
 
#define GPIO_INPUT_PD_10K
 
#define GPIO_INPUT_PD_20K
 
#define GPIO_INPUT_NOPU
 
#define GPIO_INPUT_LEGACY_NOPU
 
#define GPIO_DIRQ
 
#define GPIO_DIRQ_LEVELHIGH_NO_PULL
 
#define GPIO_DIRQ_LEVELLOW_PU_20K
 
#define GPIO_DIRQ_EDGELOW_PU_20K
 
#define GPIO_DIRQ_EDGEHIGH_PD_20K
 
#define GPIO_DIRQ_EDGELOW_PD_20K
 
#define GPIO_DIRQ_EDGEBOTH_PU_20K
 
#define GPIO_OUT_LOW
 
#define GPIO_OUT_HIGH
 
#define GPIO_FUNC(_func, _pudir, _str)
 
#define GPIO_FUNC0   GPIO_FUNC(0, PULL_DISABLE, 20K)
 
#define GPIO_FUNC1   GPIO_FUNC(1, PULL_DISABLE, 20K)
 
#define GPIO_FUNC2   GPIO_FUNC(2, PULL_DISABLE, 20K)
 
#define GPIO_FUNC3   GPIO_FUNC(3, PULL_DISABLE, 20K)
 
#define GPIO_FUNC4   GPIO_FUNC(4, PULL_DISABLE, 20K)
 
#define GPIO_FUNC5   GPIO_FUNC(5, PULL_DISABLE, 20K)
 
#define GPIO_FUNC6   GPIO_FUNC(6, PULL_DISABLE, 20K)
 
#define GPIO_ACPI_SCI
 
#define GPIO_ACPI_WAKE
 
#define GPIO_ACPI_SMI
 
#define GPIO_LIST_END   0xffffffff
 
#define GPIO_END    { .pad_conf0 = GPIO_LIST_END }
 
#define GPIO_INPUT   GPIO_INPUT_NOPU
 
#define GPIO_INPUT_LEGACY   GPIO_INPUT_LEGACY_NOPU
 
#define GPIO_INPUT_PU   GPIO_INPUT_PU_20K
 
#define GPIO_INPUT_PD   GPIO_INPUT_PD_20K
 
#define GPIO_NC   GPIO_OUT_HIGH
 
#define GPIO_DEFAULT   GPIO_FUNC0
 
#define GPIO_MAX_DIRQS   16
 
#define GPIO_NONE   255
 
#define GPNCORE_GPIO_F1_RANGE_START   GPIO_NONE
 
#define GPNCORE_GPIO_F1_RANGE_END   GPIO_NONE
 
#define GPSCORE_GPIO_F1_RANGE_START   92
 
#define GPSCORE_GPIO_F1_RANGE_END   93
 
#define GPSSUS_GPIO_F1_RANGE_START   11
 
#define GPSSUS_GPIO_F1_RANGE_END   21
 
#define UART_RXD_PAD   82
 
#define UART_TXD_PAD   83
 
#define PCU_SMB_CLK_PAD   88
 
#define PCU_SMB_DATA_PAD   90
 
#define SOC_DDI1_VDDEN_PAD   16
 

Functions

void setup_soc_gpios (struct soc_gpio_config *config, u8 enable_xdp_tap)
 
struct soc_gpio_configmainboard_get_gpios (void)
 
static u32ncore_pconf0 (int pad_num)
 
static void ncore_select_func (int pad, int func)
 
static u32score_pconf0 (int pad_num)
 
static u32ssus_pconf0 (int pad_num)
 
static void score_select_func (int pad, int func)
 
static void ssus_select_func (int pad, int func)
 
static int score_get_gpio (int pad)
 
static int ssus_get_gpio (int pad)
 
static void ssus_disable_internal_pull (int pad)
 
static void ssus_enable_internal_pull (int pad, int mask)
 

Variables

struct soc_gpio_map __packed
 

Macro Definition Documentation

◆ CROS_GPIO_DEVICE_NAME

#define CROS_GPIO_DEVICE_NAME   "BayTrail"

Definition at line 12 of file gpio.h.

◆ GP_LEGACY_BASE_NONE

#define GP_LEGACY_BASE_NONE   0xFFFF

Definition at line 31 of file gpio.h.

◆ GPIO_ACPI_SCI

#define GPIO_ACPI_SCI
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_LEGACY, \
.io_sel = GPIO_DIR_INPUT, \
.tne = 1, \
.sci = 1, \
.wake_en = 1, }
#define GPIO_DIR_INPUT
Definition: gpio.h:51
#define PAD_CONFIG0_DEFAULT
Definition: gpio.h:116
#define PAD_CONFIG1_DEFAULT
Definition: gpio.h:121
#define GPIO_USE_LEGACY
Definition: gpio.h:48
#define PAD_PULL_DISABLE
Definition: gpio.h:102
#define PAD_FUNC0
Definition: gpio.h:107
#define PAD_VAL_INPUT
Definition: gpio.h:132

Definition at line 273 of file gpio.h.

◆ GPIO_ACPI_SMI

#define GPIO_ACPI_SMI
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_LEGACY, \
.io_sel = GPIO_DIR_INPUT, \
.tne = 1, \
.smi = 1}

Definition at line 290 of file gpio.h.

◆ GPIO_ACPI_WAKE

#define GPIO_ACPI_WAKE
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_LEGACY, \
.io_sel = GPIO_DIR_INPUT, \
.tne = 1, \
.wake_en = 1, }

Definition at line 282 of file gpio.h.

◆ GPIO_DEFAULT

#define GPIO_DEFAULT   GPIO_FUNC0

Definition at line 311 of file gpio.h.

◆ GPIO_DIR_INPUT

#define GPIO_DIR_INPUT   1

Definition at line 51 of file gpio.h.

◆ GPIO_DIR_OUTPUT

#define GPIO_DIR_OUTPUT   0

Definition at line 50 of file gpio.h.

◆ GPIO_DIRQ

#define GPIO_DIRQ
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, }
#define PAD_LEVEL_IRQ
Definition: gpio.h:75
#define PAD_PU_20K
Definition: gpio.h:98
#define PAD_TPE_IRQ
Definition: gpio.h:72
#define PAD_IRQ_EN
Definition: gpio.h:66

Definition at line 188 of file gpio.h.

◆ GPIO_DIRQ_EDGEBOTH_PU_20K

#define GPIO_DIRQ_EDGEBOTH_PU_20K
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, }
#define PAD_EDGE_IRQ
Definition: gpio.h:76
#define PAD_PULL_UP
Definition: gpio.h:103
#define PAD_TNE_IRQ
Definition: gpio.h:69

Definition at line 230 of file gpio.h.

◆ GPIO_DIRQ_EDGEHIGH_PD_20K

#define GPIO_DIRQ_EDGEHIGH_PD_20K
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, }
#define PAD_PULL_DOWN
Definition: gpio.h:104

Definition at line 216 of file gpio.h.

◆ GPIO_DIRQ_EDGELOW_PD_20K

#define GPIO_DIRQ_EDGELOW_PD_20K
Value:

Definition at line 223 of file gpio.h.

◆ GPIO_DIRQ_EDGELOW_PU_20K

#define GPIO_DIRQ_EDGELOW_PU_20K
Value:

Definition at line 209 of file gpio.h.

◆ GPIO_DIRQ_LEVELHIGH_NO_PULL

#define GPIO_DIRQ_LEVELHIGH_NO_PULL
Value:

Definition at line 195 of file gpio.h.

◆ GPIO_DIRQ_LEVELLOW_PU_20K

#define GPIO_DIRQ_LEVELLOW_PU_20K
Value:

Definition at line 202 of file gpio.h.

◆ GPIO_END

#define GPIO_END    { .pad_conf0 = GPIO_LIST_END }

Definition at line 302 of file gpio.h.

◆ GPIO_FUNC

#define GPIO_FUNC (   _func,
  _pudir,
  _str 
)
Value:
{ .use_sel = GPIO_USE_MMIO, \
.pad_conf0 = PAD_FUNC##_func | PAD_##_pudir | PAD_PU_##_str | \
PAD_CONFIG0_DEFAULT, \
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_DEFAULT }
#define PAD_FUNC(name, func)
Definition: bootblock.c:18
#define PAD_VAL_DEFAULT
Definition: gpio.h:141
#define GPIO_USE_MMIO
Definition: gpio.h:47

Definition at line 255 of file gpio.h.

◆ GPIO_FUNC0

#define GPIO_FUNC0   GPIO_FUNC(0, PULL_DISABLE, 20K)

Definition at line 263 of file gpio.h.

◆ GPIO_FUNC1

#define GPIO_FUNC1   GPIO_FUNC(1, PULL_DISABLE, 20K)

Definition at line 264 of file gpio.h.

◆ GPIO_FUNC2

#define GPIO_FUNC2   GPIO_FUNC(2, PULL_DISABLE, 20K)

Definition at line 265 of file gpio.h.

◆ GPIO_FUNC3

#define GPIO_FUNC3   GPIO_FUNC(3, PULL_DISABLE, 20K)

Definition at line 266 of file gpio.h.

◆ GPIO_FUNC4

#define GPIO_FUNC4   GPIO_FUNC(4, PULL_DISABLE, 20K)

Definition at line 267 of file gpio.h.

◆ GPIO_FUNC5

#define GPIO_FUNC5   GPIO_FUNC(5, PULL_DISABLE, 20K)

Definition at line 268 of file gpio.h.

◆ GPIO_FUNC6

#define GPIO_FUNC6   GPIO_FUNC(6, PULL_DISABLE, 20K)

Definition at line 269 of file gpio.h.

◆ GPIO_INPUT

#define GPIO_INPUT   GPIO_INPUT_NOPU

Definition at line 306 of file gpio.h.

◆ GPIO_INPUT_LEGACY

#define GPIO_INPUT_LEGACY   GPIO_INPUT_LEGACY_NOPU

Definition at line 307 of file gpio.h.

◆ GPIO_INPUT_LEGACY_NOPU

#define GPIO_INPUT_LEGACY_NOPU
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_LEGACY, \
.io_sel = GPIO_DIR_INPUT, \
.is_gpio = 1 }

Definition at line 179 of file gpio.h.

◆ GPIO_INPUT_NOPU

#define GPIO_INPUT_NOPU
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_MMIO, \
.is_gpio = 1 }

Definition at line 172 of file gpio.h.

◆ GPIO_INPUT_PD

#define GPIO_INPUT_PD   GPIO_INPUT_PD_20K

Definition at line 309 of file gpio.h.

◆ GPIO_INPUT_PD_10K

#define GPIO_INPUT_PD_10K
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_MMIO, \
.is_gpio = 1 }
#define PAD_PU_10K
Definition: gpio.h:97

Definition at line 158 of file gpio.h.

◆ GPIO_INPUT_PD_20K

#define GPIO_INPUT_PD_20K
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_MMIO, \
.is_gpio = 1 }

Definition at line 165 of file gpio.h.

◆ GPIO_INPUT_PU

#define GPIO_INPUT_PU   GPIO_INPUT_PU_20K

Definition at line 308 of file gpio.h.

◆ GPIO_INPUT_PU_10K

#define GPIO_INPUT_PU_10K
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_MMIO, \
.is_gpio = 1 }

Definition at line 144 of file gpio.h.

◆ GPIO_INPUT_PU_20K

#define GPIO_INPUT_PU_20K
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_INPUT, \
.use_sel = GPIO_USE_MMIO, \
.is_gpio = 1 }

Definition at line 151 of file gpio.h.

◆ GPIO_LEVEL_HIGH

#define GPIO_LEVEL_HIGH   1

Definition at line 54 of file gpio.h.

◆ GPIO_LEVEL_LOW

#define GPIO_LEVEL_LOW   0

Definition at line 53 of file gpio.h.

◆ GPIO_LIST_END

#define GPIO_LIST_END   0xffffffff

Definition at line 300 of file gpio.h.

◆ GPIO_MAX_DIRQS

#define GPIO_MAX_DIRQS   16

Definition at line 314 of file gpio.h.

◆ GPIO_NC

#define GPIO_NC   GPIO_OUT_HIGH

Definition at line 310 of file gpio.h.

◆ GPIO_NEDGE_DISABLE

#define GPIO_NEDGE_DISABLE   0

Definition at line 59 of file gpio.h.

◆ GPIO_NEDGE_ENABLE

#define GPIO_NEDGE_ENABLE   1

Definition at line 60 of file gpio.h.

◆ GPIO_NONE

#define GPIO_NONE   255

Definition at line 318 of file gpio.h.

◆ GPIO_OUT_HIGH

#define GPIO_OUT_HIGH
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_OUTPUT | PAD_VAL_HIGH, \
.use_sel = GPIO_USE_LEGACY, \
.io_sel = GPIO_DIR_OUTPUT, \
.gp_lvl = GPIO_LEVEL_HIGH, \
.is_gpio = 1 }
#define GPIO_LEVEL_HIGH
Definition: gpio.h:54
#define PAD_VAL_HIGH
Definition: gpio.h:136
#define GPIO_DIR_OUTPUT
Definition: gpio.h:50
#define PAD_VAL_OUTPUT
Definition: gpio.h:133

Definition at line 245 of file gpio.h.

◆ GPIO_OUT_LOW

#define GPIO_OUT_LOW
Value:
.pad_conf1 = PAD_CONFIG1_DEFAULT, \
.pad_val = PAD_VAL_OUTPUT | PAD_VAL_LOW, \
.use_sel = GPIO_USE_LEGACY, \
.io_sel = GPIO_DIR_OUTPUT, \
.gp_lvl = GPIO_LEVEL_LOW, \
.is_gpio = 1 }
#define GPIO_LEVEL_LOW
Definition: gpio.h:53
#define PAD_VAL_LOW
Definition: gpio.h:137

Definition at line 236 of file gpio.h.

◆ GPIO_PEDGE_DISABLE

#define GPIO_PEDGE_DISABLE   0

Definition at line 56 of file gpio.h.

◆ GPIO_PEDGE_ENABLE

#define GPIO_PEDGE_ENABLE   1

Definition at line 57 of file gpio.h.

◆ GPIO_USE_LEGACY

#define GPIO_USE_LEGACY   1

Definition at line 48 of file gpio.h.

◆ GPIO_USE_MMIO

#define GPIO_USE_MMIO   0

Definition at line 47 of file gpio.h.

◆ GPNCORE_COUNT

#define GPNCORE_COUNT   27

Definition at line 42 of file gpio.h.

◆ GPNCORE_GPIO_F1_RANGE_END

#define GPNCORE_GPIO_F1_RANGE_END   GPIO_NONE

Definition at line 321 of file gpio.h.

◆ GPNCORE_GPIO_F1_RANGE_START

#define GPNCORE_GPIO_F1_RANGE_START   GPIO_NONE

Definition at line 320 of file gpio.h.

◆ GPNCORE_PAD_BASE

#define GPNCORE_PAD_BASE   (IO_BASE_ADDRESS + IO_BASE_OFFSET_GPNCORE)

Definition at line 16 of file gpio.h.

◆ GPSCORE_COUNT

#define GPSCORE_COUNT   102

Definition at line 43 of file gpio.h.

◆ GPSCORE_GPIO_F1_RANGE_END

#define GPSCORE_GPIO_F1_RANGE_END   93

Definition at line 324 of file gpio.h.

◆ GPSCORE_GPIO_F1_RANGE_START

#define GPSCORE_GPIO_F1_RANGE_START   92

Definition at line 323 of file gpio.h.

◆ GPSCORE_LEGACY_BASE

#define GPSCORE_LEGACY_BASE   (GPIO_BASE_ADDRESS + 0x00)

Definition at line 28 of file gpio.h.

◆ GPSCORE_PAD_BASE

#define GPSCORE_PAD_BASE   (IO_BASE_ADDRESS + IO_BASE_OFFSET_GPSCORE)

Definition at line 15 of file gpio.h.

◆ GPSSUS_COUNT

#define GPSSUS_COUNT   44

Definition at line 44 of file gpio.h.

◆ GPSSUS_GPIO_F1_RANGE_END

#define GPSSUS_GPIO_F1_RANGE_END   21

Definition at line 327 of file gpio.h.

◆ GPSSUS_GPIO_F1_RANGE_START

#define GPSSUS_GPIO_F1_RANGE_START   11

Definition at line 326 of file gpio.h.

◆ GPSSUS_LEGACY_BASE

#define GPSSUS_LEGACY_BASE   (GPIO_BASE_ADDRESS + 0x80)

Definition at line 29 of file gpio.h.

◆ GPSSUS_PAD_BASE

#define GPSSUS_PAD_BASE   (IO_BASE_ADDRESS + IO_BASE_OFFSET_GPSSUS)

Definition at line 17 of file gpio.h.

◆ LEGACY_GP_LVL_REG

#define LEGACY_GP_LVL_REG   0x08

Definition at line 35 of file gpio.h.

◆ LEGACY_IO_SEL_REG

#define LEGACY_IO_SEL_REG   0x04

Definition at line 34 of file gpio.h.

◆ LEGACY_TNE_REG

#define LEGACY_TNE_REG   0x10

Definition at line 37 of file gpio.h.

◆ LEGACY_TPE_REG

#define LEGACY_TPE_REG   0x0C

Definition at line 36 of file gpio.h.

◆ LEGACY_TS_REG

#define LEGACY_TS_REG   0x14

Definition at line 38 of file gpio.h.

◆ LEGACY_USE_SEL_REG

#define LEGACY_USE_SEL_REG   0x00

Definition at line 33 of file gpio.h.

◆ LEGACY_WAKE_EN_REG

#define LEGACY_WAKE_EN_REG   0x18

Definition at line 39 of file gpio.h.

◆ PAD_BASE_DIRQ_OFFSET

#define PAD_BASE_DIRQ_OFFSET   0x980

Definition at line 20 of file gpio.h.

◆ PAD_CONF0_REG

#define PAD_CONF0_REG   0x0

Definition at line 23 of file gpio.h.

◆ PAD_CONF1_REG

#define PAD_CONF1_REG   0x4

Definition at line 24 of file gpio.h.

◆ PAD_CONFIG0_DEFAULT

#define PAD_CONFIG0_DEFAULT
Value:
PAD_FASTGF_ENABLE | PAD_HYST_DISABLE | \
PAD_HYST_CTRL_DEFAULT | PAD_FLOP_BYPASS)
#define PAD_HYST_DISABLE
Definition: gpio.h:85
#define PAD_MASK2_DISABLE
Definition: gpio.h:63
#define PAD_SLOWGF_ENABLE
Definition: gpio.h:79
#define PAD_FLOP_BYPASS
Definition: gpio.h:92

Definition at line 116 of file gpio.h.

◆ PAD_CONFIG1_DEFAULT

#define PAD_CONFIG1_DEFAULT   0x8000

Definition at line 121 of file gpio.h.

◆ PAD_EDGE_IRQ

#define PAD_EDGE_IRQ   (0 << 24)

Definition at line 76 of file gpio.h.

◆ PAD_FASTGF_ENABLE

#define PAD_FASTGF_ENABLE   (1 << 16)

Definition at line 82 of file gpio.h.

◆ PAD_FLOP_BYPASS

#define PAD_FLOP_BYPASS   (1 << 11)

Definition at line 92 of file gpio.h.

◆ PAD_FLOP_ENABLE

#define PAD_FLOP_ENABLE   (0 << 11)

Definition at line 93 of file gpio.h.

◆ PAD_FUNC0

#define PAD_FUNC0   0x0

Definition at line 107 of file gpio.h.

◆ PAD_FUNC1

#define PAD_FUNC1   0x1

Definition at line 108 of file gpio.h.

◆ PAD_FUNC2

#define PAD_FUNC2   0x2

Definition at line 109 of file gpio.h.

◆ PAD_FUNC3

#define PAD_FUNC3   0x3

Definition at line 110 of file gpio.h.

◆ PAD_FUNC4

#define PAD_FUNC4   0x4

Definition at line 111 of file gpio.h.

◆ PAD_FUNC5

#define PAD_FUNC5   0x5

Definition at line 112 of file gpio.h.

◆ PAD_FUNC6

#define PAD_FUNC6   0x6

Definition at line 113 of file gpio.h.

◆ PAD_HYST_CTRL_DEFAULT

#define PAD_HYST_CTRL_DEFAULT   (2 << 13)

Definition at line 89 of file gpio.h.

◆ PAD_HYST_DISABLE

#define PAD_HYST_DISABLE   (1 << 15)

Definition at line 85 of file gpio.h.

◆ PAD_HYST_ENABLE

#define PAD_HYST_ENABLE   (0 << 15)

Definition at line 86 of file gpio.h.

◆ PAD_IRQ_EN

#define PAD_IRQ_EN   (1 << 27)

Definition at line 66 of file gpio.h.

◆ PAD_LEVEL_IRQ

#define PAD_LEVEL_IRQ   (1 << 24)

Definition at line 75 of file gpio.h.

◆ PAD_MASK2_DISABLE

#define PAD_MASK2_DISABLE   (1 << 29)

Definition at line 63 of file gpio.h.

◆ PAD_PU_10K

#define PAD_PU_10K   (1 << 9)

Definition at line 97 of file gpio.h.

◆ PAD_PU_20K

#define PAD_PU_20K   (2 << 9)

Definition at line 98 of file gpio.h.

◆ PAD_PU_2K

#define PAD_PU_2K   (0 << 9)

Definition at line 96 of file gpio.h.

◆ PAD_PU_40K

#define PAD_PU_40K   (3 << 9)

Definition at line 99 of file gpio.h.

◆ PAD_PULL_DISABLE

#define PAD_PULL_DISABLE   (0 << 7)

Definition at line 102 of file gpio.h.

◆ PAD_PULL_DOWN

#define PAD_PULL_DOWN   (2 << 7)

Definition at line 104 of file gpio.h.

◆ PAD_PULL_UP

#define PAD_PULL_UP   (1 << 7)

Definition at line 103 of file gpio.h.

◆ PAD_SLOWGF_ENABLE

#define PAD_SLOWGF_ENABLE   (1 << 17)

Definition at line 79 of file gpio.h.

◆ PAD_TNE_IRQ

#define PAD_TNE_IRQ   (1 << 26)

Definition at line 69 of file gpio.h.

◆ PAD_TPE_IRQ

#define PAD_TPE_IRQ   (1 << 25)

Definition at line 72 of file gpio.h.

◆ PAD_VAL_DEFAULT

#define PAD_VAL_DEFAULT   PAD_VAL_INPUT

Definition at line 141 of file gpio.h.

◆ PAD_VAL_HIGH

#define PAD_VAL_HIGH   (1 << 0)

Definition at line 136 of file gpio.h.

◆ PAD_VAL_INPUT

#define PAD_VAL_INPUT   (PAD_VAL_INPUT_ENABLE | PAD_VAL_OUTPUT_DISABLE)

Definition at line 132 of file gpio.h.

◆ PAD_VAL_INPUT_DISABLE

#define PAD_VAL_INPUT_DISABLE   (1 << 2)

Definition at line 124 of file gpio.h.

◆ PAD_VAL_INPUT_ENABLE

#define PAD_VAL_INPUT_ENABLE   (0 << 2)

Definition at line 125 of file gpio.h.

◆ PAD_VAL_LOW

#define PAD_VAL_LOW   (0 << 0)

Definition at line 137 of file gpio.h.

◆ PAD_VAL_OUTPUT

#define PAD_VAL_OUTPUT   (PAD_VAL_OUTPUT_ENABLE | PAD_VAL_INPUT_DISABLE)

Definition at line 133 of file gpio.h.

◆ PAD_VAL_OUTPUT_DISABLE

#define PAD_VAL_OUTPUT_DISABLE   (1 << 1)

Definition at line 128 of file gpio.h.

◆ PAD_VAL_OUTPUT_ENABLE

#define PAD_VAL_OUTPUT_ENABLE   (0 << 1)

Definition at line 129 of file gpio.h.

◆ PAD_VAL_REG

#define PAD_VAL_REG   0x8

Definition at line 25 of file gpio.h.

◆ PCU_SMB_CLK_PAD

#define PCU_SMB_CLK_PAD   88

Definition at line 371 of file gpio.h.

◆ PCU_SMB_DATA_PAD

#define PCU_SMB_DATA_PAD   90

Definition at line 372 of file gpio.h.

◆ SOC_DDI1_VDDEN_PAD

#define SOC_DDI1_VDDEN_PAD   16

Definition at line 373 of file gpio.h.

◆ UART_RXD_PAD

#define UART_RXD_PAD   82

Definition at line 369 of file gpio.h.

◆ UART_TXD_PAD

#define UART_TXD_PAD   83

Definition at line 370 of file gpio.h.

Function Documentation

◆ mainboard_get_gpios()

struct soc_gpio_config* mainboard_get_gpios ( void  )

Definition at line 207 of file gpio.c.

◆ ncore_pconf0()

static u32* ncore_pconf0 ( int  pad_num)
inlinestatic

Definition at line 375 of file gpio.h.

References GPNCORE_PAD_BASE.

Referenced by ncore_select_func().

Here is the caller graph for this function:

◆ ncore_select_func()

static void ncore_select_func ( int  pad,
int  func 
)
inlinestatic

Definition at line 380 of file gpio.h.

References ncore_pconf0(), read32(), and write32().

Referenced by edp_vdden_cb().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ score_get_gpio()

static int score_get_gpio ( int  pad)
inlinestatic

Definition at line 424 of file gpio.h.

References PAD_VAL_HIGH, PAD_VAL_REG, read32(), and score_pconf0().

Referenced by get_ec_is_trusted().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ score_pconf0()

static u32* score_pconf0 ( int  pad_num)
inlinestatic

Definition at line 391 of file gpio.h.

References GPSCORE_PAD_BASE.

Referenced by score_get_gpio(), and score_select_func().

Here is the caller graph for this function:

◆ score_select_func()

static void score_select_func ( int  pad,
int  func 
)
inlinestatic

Definition at line 401 of file gpio.h.

References read32(), score_pconf0(), and write32().

Referenced by byt_config_com1_and_enable(), and smbus_enable_iobar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_soc_gpios()

void setup_soc_gpios ( struct soc_gpio_config config,
u8  enable_xdp_tap 
)

Definition at line 202 of file gpio.c.

◆ ssus_disable_internal_pull()

static void ssus_disable_internal_pull ( int  pad)
inlinestatic

Definition at line 438 of file gpio.h.

References read32(), ssus_pconf0(), and write32().

Referenced by get_spd_pointer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ssus_enable_internal_pull()

static void ssus_enable_internal_pull ( int  pad,
int  mask 
)
inlinestatic

Definition at line 444 of file gpio.h.

References mask, read32(), ssus_pconf0(), and write32().

Referenced by get_spd_pointer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ssus_get_gpio()

static int ssus_get_gpio ( int  pad)
inlinestatic

Definition at line 431 of file gpio.h.

References PAD_VAL_HIGH, PAD_VAL_REG, read32(), and ssus_pconf0().

Referenced by get_spd_pointer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ssus_pconf0()

static u32* ssus_pconf0 ( int  pad_num)
inlinestatic

Definition at line 396 of file gpio.h.

References GPSSUS_PAD_BASE.

Referenced by ssus_disable_internal_pull(), ssus_enable_internal_pull(), ssus_get_gpio(), and ssus_select_func().

Here is the caller graph for this function:

◆ ssus_select_func()

static void ssus_select_func ( int  pad,
int  func 
)
inlinestatic

Definition at line 412 of file gpio.h.

References read32(), ssus_pconf0(), and write32().

Here is the call graph for this function:

Variable Documentation

◆ __packed