coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <device/mmio.h>
#include <console/console.h>
#include <delay.h>
#include <gpio.h>
#include <soc/iomap.h>
#include <soc/spi.h>
Go to the source code of this file.
Functions | |
static int | check_bit_state (void *reg_addr, int mask, int val, int us_delay) |
static int | check_qup_state_valid (struct ipq_spi_slave *ds) |
static int | config_spi_state (struct ipq_spi_slave *ds, unsigned int state) |
static void | spi_set_mode (struct ipq_spi_slave *ds, unsigned int mode) |
static void | spi_reset (struct ipq_spi_slave *ds) |
static struct ipq_spi_slave * | to_ipq_spi (const struct spi_slave *slave) |
static int | spi_hw_init (struct ipq_spi_slave *ds) |
static int | spi_ctrlr_claim_bus (const struct spi_slave *slave) |
static void | spi_ctrlr_release_bus (const struct spi_slave *slave) |
static void | write_force_cs (const struct spi_slave *slave, int assert) |
static void | spi_write_byte (struct ipq_spi_slave *ds, unsigned char data) |
static unsigned char | spi_read_byte (struct ipq_spi_slave *ds) |
static int | check_fifo_status (void *reg_addr) |
static void | enable_io_config (struct ipq_spi_slave *ds, uint32_t write_cnt, uint32_t read_cnt) |
static int | __blsp_spi_read (struct ipq_spi_slave *ds, u8 *data_buffer, unsigned int bytes) |
static int | blsp_spi_read (struct ipq_spi_slave *ds, u8 *data_buffer, unsigned int bytes) |
static int | __blsp_spi_write (struct ipq_spi_slave *ds, const u8 *cmd_buffer, unsigned int bytes) |
static int | blsp_spi_write (struct ipq_spi_slave *ds, u8 *cmd_buffer, unsigned int bytes) |
static int | spi_ctrlr_xfer (const struct spi_slave *slave, const void *dout, size_t out_bytes, void *din, size_t in_bytes) |
static int | spi_ctrlr_setup (const struct spi_slave *slave) |
Variables | |
static const struct blsp_spi | spi_reg [] |
static struct ipq_spi_slave | spi_slave_pool [2] |
static const struct spi_ctrlr | 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) |
|
static |
Definition at line 379 of file spi.c.
References check_fifo_status(), config_spi_state(), enable_io_config(), INPUT_SERVICE_FLAG, blsp_spi::qup_mx_input_count, blsp_spi::qup_operational, QUP_STATE_RESET, QUP_STATE_RUN, read32(), ipq_spi_slave::regs, SPI_INPUT_BLOCK_SIZE, spi_read_byte(), SUCCESS, val, void(), and write32().
Referenced by blsp_spi_read().
|
static |
Definition at line 458 of file spi.c.
References check_fifo_status(), config_spi_state(), enable_io_config(), INPUT_SERVICE_FLAG, OUTPUT_SERVICE_FLAG, blsp_spi::qup_mx_input_count, blsp_spi::qup_mx_output_count, blsp_spi::qup_operational, QUP_STATE_RESET, QUP_STATE_RUN, read32(), ipq_spi_slave::regs, SPI_INPUT_BLOCK_SIZE, SPI_OUTPUT_BLOCK_SIZE, spi_read_byte(), spi_write_byte(), SUCCESS, val, void(), and write32().
Referenced by blsp_spi_write().
|
static |
Definition at line 436 of file spi.c.
References __blsp_spi_read(), length, MAX_COUNT_SIZE, and SUCCESS.
Referenced by spi_ctrlr_xfer().
|
static |
Definition at line 552 of file spi.c.
References __blsp_spi_write(), length, MAX_COUNT_SIZE, and SUCCESS.
Referenced by spi_ctrlr_xfer().
|
static |
|
static |
Definition at line 333 of file spi.c.
References count, ETIMEDOUT, INPUT_SERVICE_FLAG, OUTPUT_SERVICE_FLAG, read32(), SUCCESS, TIMEOUT_CNT, and val.
Referenced by __blsp_spi_read(), and __blsp_spi_write().
|
static |
Definition at line 75 of file spi.c.
References check_bit_state(), blsp_spi::qup_state, QUP_STATE_VALID, QUP_STATE_VALID_MASK, and ipq_spi_slave::regs.
Referenced by config_spi_state(), and spi_reset().
|
static |
Definition at line 86 of file spi.c.
References BIOS_ERR, check_qup_state_valid(), EINVAL, printk, blsp_spi::qup_state, QUP_STATE_MASK, QUP_STATE_RESET, QUP_STATE_RUN, read32(), ipq_spi_slave::regs, SUCCESS, val, and write32().
Referenced by __blsp_spi_read(), __blsp_spi_write(), spi_ctrlr_xfer(), and spi_hw_init().
|
static |
Definition at line 354 of file spi.c.
References clrsetbits32, QUP_CONF_INPUT_ENA, QUP_CONF_INPUT_MSK, QUP_CONF_NO_INPUT, QUP_CONF_NO_OUTPUT, QUP_CONF_OUTPUT_ENA, QUP_CONF_OUTPUT_MSK, blsp_spi::qup_config, and ipq_spi_slave::regs.
Referenced by __blsp_spi_read(), and __blsp_spi_write().
|
static |
Definition at line 269 of file spi.c.
References EIO, slave, spi_hw_init(), SUCCESS, and to_ipq_spi().
Definition at line 281 of file spi.c.
References ipq_spi_slave::initialized, slave, spi_reset(), and to_ipq_spi().
|
static |
|
static |
Definition at line 575 of file spi.c.
References blsp_spi_read(), blsp_spi_write(), config_spi_state(), NULL, QUP_STATE_RESET, slave, SUCCESS, to_ipq_spi(), void(), and write_force_cs().
|
static |
Definition at line 197 of file spi.c.
References clrsetbits32, config_spi_state(), blsp_spi::error_flags_en, ipq_spi_slave::initialized, blsp_spi::io_control, ipq_spi_slave::mode, QUP_CONF_INPUT_ENA, QUP_CONF_INPUT_MSK, QUP_CONF_N_MASK, QUP_CONF_N_SPI_8_BIT_WORD, QUP_CONF_OUTPUT_ENA, QUP_CONF_OUTPUT_MSK, blsp_spi::qup_config, QUP_CONFIG_MINI_CORE_MSK, QUP_CONFIG_MINI_CORE_SPI, blsp_spi::qup_deassert_wait, blsp_spi::qup_error_flags_en, blsp_spi::qup_io_modes, QUP_IO_MODES_INPUT_BLOCK_MODE, QUP_IO_MODES_INPUT_MODE_MSK, QUP_IO_MODES_OUTPUT_BIT_SHIFT_EN, QUP_IO_MODES_OUTPUT_BIT_SHIFT_MSK, QUP_IO_MODES_OUTPUT_BLOCK_MODE, QUP_IO_MODES_OUTPUT_MODE_MSK, QUP_STATE_RESET, ipq_spi_slave::regs, blsp_spi::spi_config, SPI_CONFIG_LOOP_BACK_MSK, SPI_CONFIG_NO_LOOP_BACK, SPI_CONFIG_NO_SLAVE_OPER, SPI_CONFIG_NO_SLAVE_OPER_MSK, SPI_IO_CTRL_CLK_ALWAYS_ON, SPI_IO_CTRL_NO_TRI_STATE, spi_reset(), spi_set_mode(), SUCCESS, and write32().
Referenced by spi_ctrlr_claim_bus().
|
static |
Definition at line 319 of file spi.c.
References INPUT_FIFO_NOT_EMPTY, blsp_spi::qup_input_fifo, blsp_spi::qup_operational, read32(), ipq_spi_slave::regs, and udelay().
Referenced by __blsp_spi_read(), and __blsp_spi_write().
|
static |
Definition at line 166 of file spi.c.
References check_qup_state_valid(), blsp_spi::qup_sw_reset, ipq_spi_slave::regs, udelay(), and write32().
Referenced by spi_ctrlr_release_bus(), and spi_hw_init().
|
static |
Definition at line 122 of file spi.c.
References BIOS_ERR, blsp_spi::io_control, printk, read32(), ipq_spi_slave::regs, blsp_spi::spi_config, SPI_CONFIG_INPUT_FIRST, SPI_IO_CTRL_CLOCK_IDLE_HIGH, SPI_MODE0, SPI_MODE1, SPI_MODE2, SPI_MODE3, val, and write32().
Referenced by spi_hw_init().
|
static |
Definition at line 306 of file spi.c.
References OUTPUT_FIFO_FULL, blsp_spi::qup_operational, blsp_spi::qup_output_fifo, read32(), ipq_spi_slave::regs, udelay(), and write32().
Referenced by __blsp_spi_write().
|
static |
Definition at line 175 of file spi.c.
References ipq_spi_slave::allocated, ARRAY_SIZE, spi_slave::bus, spi_slave::cs, NULL, slave, ipq_spi_slave::slave, and spi_slave_pool.
Referenced by spi_ctrlr_claim_bus(), spi_ctrlr_release_bus(), spi_ctrlr_xfer(), and write_force_cs().
Definition at line 290 of file spi.c.
References assert, clrsetbits32, blsp_spi::io_control, ipq_spi_slave::regs, slave, SPI_IO_CTRL_FORCE_CS_DIS, SPI_IO_CTRL_FORCE_CS_EN, SPI_IO_CTRL_FORCE_CS_MSK, and to_ipq_spi().
Referenced by spi_ctrlr_xfer().
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 166 of file spi.c.
Referenced by to_ipq_spi().