coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smbus_early_fch.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <stdint.h>
4 #include <amdblocks/acpimmio.h>
5 #include <amdblocks/smbus.h>
6 #include <soc/iomap.h>
7 
9 {
11  /* Configure upper byte of the I/O address; lower byte is always 0 */
13  /* Set enable decode bit even though it should already be set */
16 }
17 
18 void fch_smbus_init(void)
19 {
20  /* 400 kHz smbus speed. */
21  const uint8_t smbus_speed = (66000000 / (400000 * 4));
22 
24  smbus_write8(SMBTIMING, smbus_speed);
25  /* Clear all SMBUS status bits */
30 }
static void pm_write32(uint8_t reg, uint32_t value)
Definition: acpimmio.h:191
#define PM_DECODE_EN
Definition: acpimmio.h:17
#define SMBUS_ASF_IO_BASE_MASK
Definition: acpimmio.h:21
static uint32_t pm_read32(uint8_t reg)
Definition: acpimmio.h:176
#define SMBUS_ASF_IO_EN
Definition: acpimmio.h:24
static void smbus_write8(uint8_t reg, uint8_t value)
Definition: acpimmio.h:251
static void asf_write8(uint8_t reg, uint8_t value)
Definition: acpimmio.h:241
#define SMB_BASE_ADDR
Definition: iomap.h:49
void fch_smbus_init(void)
static void fch_smbus_enable_decode(uint16_t base)
uintptr_t base
Definition: uart.c:17
#define SMBHST_STAT_CLEAR
Definition: smbus.h:13
#define SMBHSTSTAT
Definition: smbus.h:7
#define SMBSLV_STAT_CLEAR
Definition: smbus.h:24
#define SMBTIMING
Definition: smbus.h:47
#define SMBSLVSTAT
Definition: smbus.h:17
unsigned short uint16_t
Definition: stdint.h:11
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8
u8 val
Definition: sys.c:300