![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <device/mmio.h>
#include <soc/spi.h>
#include <soc/clock.h>
#include <soc/addressmap.h>
#include "spi_internal.h"
Go to the source code of this file.
Functions | |
static void | spi_tx (volatile struct spi_ctrl *spictrl, uint8_t in) |
Wait until SPI is ready for transmission and transmit byte. More... | |
static uint8_t | spi_rx (volatile struct spi_ctrl *spictrl) |
Wait until SPI receive queue has data and read byte. More... | |
static int | spi_claim_bus_ (const struct spi_slave *slave) |
static void | spi_release_bus_ (const struct spi_slave *slave) |
static int | spi_xfer_ (const struct spi_slave *slave, const void *dout, size_t bytesout, void *din, size_t bytesin) |
static int | spi_setup_ (const struct spi_slave *slave) |
int | fu540_spi_setup (unsigned int bus, unsigned int cs, struct spi_slave *slave, struct fu540_spi_config *config) |
int | fu540_spi_mmap (const struct spi_slave *slave, const struct fu540_spi_mmap_config *config) |
Variables | |
static struct spi_ctrl * | spictrls [] |
struct spi_ctrlr | fu540_spi_ctrlr |
const struct spi_ctrlr_buses | spi_ctrlr_bus_map [] |
const size_t | spi_ctrlr_bus_map_count = ARRAY_SIZE(spi_ctrlr_bus_map) |
int fu540_spi_mmap | ( | const struct spi_slave * | slave, |
const struct fu540_spi_mmap_config * | config | ||
) |
Definition at line 213 of file spi.c.
References spi_reg_ffmt::addr_len, spi_reg_ffmt::addr_proto, spi_slave::bus, spi_reg_ffmt::cmd_en, spi_reg_ffmt::command_code, spi_reg_ffmt::command_proto, config, spi_reg_ffmt::data_proto, spi_reg_fctrl::en, spi_ctrl::fctrl, spi_ctrl::ffmt, spi_reg_ffmt::pad_cnt, spi_reg_ffmt::pad_code, spi_reg_fctrl::raw_bits, spi_reg_ffmt::raw_bits, slave, spi_tx(), spictrls, and write32().
Referenced by boot_device_init().
int fu540_spi_setup | ( | unsigned int | bus, |
unsigned int | cs, | ||
struct spi_slave * | slave, | ||
struct fu540_spi_config * | config | ||
) |
Definition at line 165 of file spi.c.
References spi_slave::bus, clock_get_tlclk_khz(), config, spi_slave::cs, spi_ctrl::csdef, spi_ctrl::csmode, spi_slave::ctrlr, spi_reg_fmt::dir, spi_reg_fmt::endian, spi_ctrl::fmt, FU540_SPI_CSMODE_AUTO, fu540_spi_ctrlr, spi_reg_fmt::len, spi_reg_csmode::mode, spi_reg_sckmode::pha, spi_reg_sckmode::pol, spi_reg_fmt::proto, spi_reg_sckmode::raw_bits, spi_reg_csmode::raw_bits, spi_reg_fmt::raw_bits, spi_ctrl::sckdiv, spi_ctrl::sckmode, slave, spi_min_clk_divisor(), spictrls, and write32().
|
static |
Definition at line 48 of file spi.c.
References spi_slave::bus, spi_ctrl::csmode, FU540_SPI_CSMODE_HOLD, spi_reg_csmode::mode, spi_reg_csmode::raw_bits, slave, spictrls, and write32().
Definition at line 58 of file spi.c.
References spi_slave::bus, spi_ctrl::csmode, FU540_SPI_CSMODE_OFF, spi_reg_csmode::mode, spi_reg_csmode::raw_bits, slave, spictrls, and write32().
Wait until SPI receive queue has data and read byte.
Definition at line 40 of file spi.c.
References spi_reg_rxdata::raw_bits, and spi_ctrl::rxdata.
Referenced by spi_xfer_().
|
static |
Wait until SPI is ready for transmission and transmit byte.
Definition at line 19 of file spi.c.
References spi_reg_txdata::data, spi_reg_txdata::raw_bits, and spi_ctrl::txdata.
Referenced by fu540_spi_mmap(), and spi_xfer_().
|
static |
Definition at line 67 of file spi.c.
References spi_slave::bus, spi_ctrl::fmt, FU540_SPI_PROTO_S, spi_reg_fmt::proto, spi_reg_fmt::raw_bits, read32(), slave, spi_rx(), spi_tx(), and spictrls.
struct spi_ctrlr fu540_spi_ctrlr |
Definition at line 113 of file spi.c.
Referenced by fu540_spi_setup().
const struct spi_ctrlr_buses spi_ctrlr_bus_map[] |
const size_t spi_ctrlr_bus_map_count = ARRAY_SIZE(spi_ctrlr_bus_map) |
|
static |
Definition at line 10 of file spi.c.
Referenced by fu540_spi_mmap(), fu540_spi_setup(), spi_claim_bus_(), spi_release_bus_(), and spi_xfer_().