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 <
console/console.h
>
4
#include <
soc/car.h
>
5
#include <soc/ramstage.h>
6
#include "
reg_access.h
"
7
#include "
gen1.h
"
8
#include "
gen2.h
"
9
10
void
car_mainboard_pre_console_init
(
void
)
11
{
12
const
struct
reg_script
*script;
13
14
/* Initialize the GPIO controllers */
15
if
(
CONFIG
(GALILEO_GEN2))
16
script =
gen2_gpio_init
;
17
else
18
script =
gen1_gpio_init
;
19
reg_script_run
(script);
20
21
/* Initialize the RXD and TXD paths for UART0 */
22
if
(
CONFIG
(ENABLE_BUILTIN_HSUART0)) {
23
if
(
CONFIG
(GALILEO_GEN2))
24
script =
gen2_hsuart0
;
25
else
26
script = (
reg_legacy_gpio_read
(
27
R_QNC_GPIO_RGLVL_RESUME_WELL
)
28
&
GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO
)
29
?
gen1_hsuart0_0x20
:
gen1_hsuart0_0x21
;
30
reg_script_run
(script);
31
}
32
}
33
34
void
mainboard_gpio_i2c_init
(
struct
device
*
dev
)
35
{
36
const
struct
reg_script
*script;
37
38
printk
(
BIOS_INFO
,
"Galileo I2C chip initialization\n"
);
39
40
/* Determine the correct script for the board */
41
if
(
CONFIG
(GALILEO_GEN2))
42
script =
gen2_i2c_init
;
43
else
44
/* Determine which I2C address is in use */
45
script = (
reg_legacy_gpio_read
(
R_QNC_GPIO_RGLVL_RESUME_WELL
)
46
&
GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO
)
47
?
gen1_i2c_0x20_init
:
gen1_i2c_0x21_init
;
48
49
/* Initialize the I2C chips */
50
reg_script_run
(script);
51
}
52
53
void
mainboard_gpio_pcie_reset
(
uint32_t
pin_value)
54
{
55
uint32_t
pin_number;
56
uint32_t
value
;
57
58
/* Determine the correct PCIe reset pin */
59
if
(
CONFIG
(GALILEO_GEN2))
60
pin_number =
GEN2_PCI_RESET_RESUMEWELL_GPIO
;
61
else
62
pin_number =
GEN1_PCI_RESET_RESUMEWELL_GPIO
;
63
64
/* Update the PCIe reset value */
65
value
=
reg_legacy_gpio_read
(
R_QNC_GPIO_RGLVL_RESUME_WELL
);
66
value
= (
value
& ~(1 << pin_number)) | ((pin_value & 1) << pin_number);
67
reg_legacy_gpio_write
(
R_QNC_GPIO_RGLVL_RESUME_WELL
,
value
);
68
}
R_QNC_GPIO_RGLVL_RESUME_WELL
#define R_QNC_GPIO_RGLVL_RESUME_WELL
Definition:
QuarkNcSocId.h:477
value
pte_t value
Definition:
mmu.c:91
printk
#define printk(level,...)
Definition:
stdlib.h:16
console.h
CONFIG
@ CONFIG
Definition:
dsi_common.h:201
gen1.h
gen1_hsuart0_0x21
static const struct reg_script gen1_hsuart0_0x21[]
Definition:
gen1.h:74
gen1_gpio_init
static const struct reg_script gen1_gpio_init[]
Definition:
gen1.h:9
GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO
#define GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO
Definition:
gen1.h:7
gen1_i2c_0x20_init
static const struct reg_script gen1_i2c_0x20_init[]
Definition:
gen1.h:99
gen1_hsuart0_0x20
static const struct reg_script gen1_hsuart0_0x20[]
Definition:
gen1.h:49
gen1_i2c_0x21_init
static const struct reg_script gen1_i2c_0x21_init[]
Definition:
gen1.h:120
GEN1_PCI_RESET_RESUMEWELL_GPIO
#define GEN1_PCI_RESET_RESUMEWELL_GPIO
Definition:
gen1.h:4
gen2.h
gen2_gpio_init
static const struct reg_script gen2_gpio_init[]
Definition:
gen2.h:6
gen2_hsuart0
static const struct reg_script gen2_hsuart0[]
Definition:
gen2.h:42
GEN2_PCI_RESET_RESUMEWELL_GPIO
#define GEN2_PCI_RESET_RESUMEWELL_GPIO
Definition:
gen2.h:4
gen2_i2c_init
static const struct reg_script gen2_i2c_init[]
Definition:
gen2.h:64
BIOS_INFO
#define BIOS_INFO
BIOS_INFO - Expected events.
Definition:
loglevel.h:113
mainboard_gpio_i2c_init
void mainboard_gpio_i2c_init(struct device *dev)
Definition:
gpio.c:34
mainboard_gpio_pcie_reset
void mainboard_gpio_pcie_reset(uint32_t pin_value)
Definition:
gpio.c:53
car_mainboard_pre_console_init
void car_mainboard_pre_console_init(void)
Definition:
gpio.c:10
reg_script_run
void reg_script_run(const struct reg_script *script)
Definition:
reg_script.c:700
car.h
reg_access.h
reg_legacy_gpio_read
uint32_t reg_legacy_gpio_read(uint32_t reg_address)
Definition:
reg_access.c:208
reg_legacy_gpio_write
void reg_legacy_gpio_write(uint32_t reg_address, uint32_t value)
Definition:
reg_access.c:214
uint32_t
unsigned int uint32_t
Definition:
stdint.h:14
device
Definition:
device.h:107
reg_script
Definition:
reg_script.h:64
reg_script::dev
struct device * dev
Definition:
reg_script.h:78
src
mainboard
intel
galileo
gpio.c
Generated by
1.9.1