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

Go to the source code of this file.

Functions

uint16_t gpio_family_number (uint8_t community, uint8_t pad)
 
uint32_tgpio_pad_config_reg (uint8_t community, uint8_t pad)
 
static int gpio_get_community_num (gpio_t gpio_num, int *pad)
 
static void gpio_config_pad (gpio_t gpio_num, const struct soc_gpio_map *cfg)
 
void gpio_input_pullup (gpio_t gpio_num)
 
void gpio_input_pulldown (gpio_t gpio_num)
 
void gpio_input (gpio_t gpio_num)
 
int gpio_get (gpio_t gpio_num)
 
int get_gpio (int community_base, int pad0_offset)
 

Function Documentation

◆ get_gpio()

int get_gpio ( int  community_base,
int  pad0_offset 
)

Definition at line 148 of file gpio_support.c.

References PAD_RX_BIT, and read32().

Referenced by early_hybrid_graphics(), get_chassis_type(), get_ec_is_trusted(), get_lid_switch(), get_recovery_mode_switch(), get_write_protect_state(), h8_has_bdc(), h8_has_wwan(), mainboard_enable(), and mb_pre_raminit_setup().

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

◆ gpio_config_pad()

static void gpio_config_pad ( gpio_t  gpio_num,
const struct soc_gpio_map cfg 
)
static

Definition at line 90 of file gpio_support.c.

References gpio_get_community_num(), gpio_pad_config_reg(), MAX_GPIO_CNT, soc_gpio_map::pad_conf0, soc_gpio_map::pad_conf1, and write32().

Referenced by gpio_input(), gpio_input_pulldown(), and gpio_input_pullup().

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

◆ gpio_family_number()

uint16_t gpio_family_number ( uint8_t  community,
uint8_t  pad 
)

Definition at line 12 of file gpio_support.c.

References base, die(), GPIO_COMMUNITY_COUNT, and GPIO_FAMILIES_MAX_PER_COMM.

Referenced by gpio_pad_config_reg().

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

◆ gpio_get()

int gpio_get ( gpio_t  gpio_num)

Definition at line 128 of file gpio_support.c.

References gpio_get_community_num(), gpio_pad_config_reg(), MAX_GPIO_CNT, PAD_RX_BIT, and read32().

Here is the call graph for this function:

◆ gpio_get_community_num()

static int gpio_get_community_num ( gpio_t  gpio_num,
int *  pad 
)
static

Definition at line 67 of file gpio_support.c.

References GP_E_00, GP_E_26, GP_EAST, GP_EAST_COUNT, GP_NC_00, GP_NC_72, GP_NORTH, GP_NORTH_COUNT, GP_SOUTHEAST, GP_SOUTHWEST, GP_SOUTHWEST_COUNT, GP_SW_00, and GP_SW_97.

Referenced by gpio_config_pad(), and gpio_get().

Here is the caller graph for this function:

◆ gpio_input()

void gpio_input ( gpio_t  gpio_num)

Definition at line 122 of file gpio_support.c.

References gpio_config_pad(), and GPIO_INPUT_NO_PULL.

Here is the call graph for this function:

◆ gpio_input_pulldown()

void gpio_input_pulldown ( gpio_t  gpio_num)

Definition at line 116 of file gpio_support.c.

References gpio_config_pad(), and GPIO_INPUT_PD_20K.

Here is the call graph for this function:

◆ gpio_input_pullup()

void gpio_input_pullup ( gpio_t  gpio_num)

Definition at line 110 of file gpio_support.c.

References gpio_config_pad(), and GPIO_INPUT_PU_20K.

Here is the call graph for this function:

◆ gpio_pad_config_reg()

uint32_t* gpio_pad_config_reg ( uint8_t  community,
uint8_t  pad 
)

Definition at line 49 of file gpio_support.c.

References COMMUNITY_BASE, FAMILY_PAD_REGS_OFF, FAMILY_PAD_REGS_SIZE, gpio_family_number(), and GPIO_REGS_SIZE.

Referenced by bootblock_mainboard_early_init(), gpio_config_pad(), and gpio_get().

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