#include <device/mmio.h>
#include <assert.h>
#include <cbfs.h>
#include <console/console.h>
#include <soc/cpu.h>
#include <soc/spi.h>
#include <spi-generic.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <symbols.h>
Go to the source code of this file.
|
static struct exynos_spi_slave * | to_exynos_spi (const struct spi_slave *slave) |
|
static void | spi_sw_reset (struct exynos_spi *regs, int word) |
|
static void | exynos_spi_init (struct exynos_spi *regs) |
|
static int | spi_ctrlr_claim_bus (const struct spi_slave *slave) |
|
static void | spi_transfer (struct exynos_spi *regs, void *in, const void *out, size_t size) |
|
static int | spi_ctrlr_xfer (const struct spi_slave *slave, const void *dout, size_t bytes_out, void *din, size_t bytes_in) |
|
static void | spi_ctrlr_release_bus (const struct spi_slave *slave) |
|
static int | spi_ctrlr_setup (const struct spi_slave *slave) |
|
static int | exynos_spi_read (struct spi_slave *slave, void *dest, uint32_t len, uint32_t off) |
|
static ssize_t | exynos_spi_readat (const struct region_device *rdev, void *dest, size_t offset, size_t count) |
|
static void * | exynos_spi_map (const struct region_device *rdev, size_t offset, size_t count) |
|
void | exynos_init_spi_boot_device (void) |
|
const struct region_device * | exynos_spi_boot_device (void) |
|
◆ DEBUG_SPI
#define DEBUG_SPI |
( |
|
x, |
|
|
|
... |
|
) |
| |
Definition at line 20 of file spi.c.
◆ EXYNOS_SPI_MAX_TRANSFER_BYTES
#define EXYNOS_SPI_MAX_TRANSFER_BYTES (65535) |
Definition at line 15 of file spi.c.
◆ exynos_init_spi_boot_device()
void exynos_init_spi_boot_device |
( |
void |
| ) |
|
◆ exynos_spi_boot_device()
◆ exynos_spi_init()
Definition at line 86 of file spi.c.
References clrbits32, setbits32, SPI_CH_CPOL_L, SPI_CH_HS_EN, SPI_FB_DELAY_180, SPI_RX_BYTE_SWAP, SPI_RX_CH_ON, SPI_RX_HWORD_SWAP, SPI_RX_SWAP_EN, spi_sw_reset(), SPI_TX_CH_ON, and write32().
◆ exynos_spi_map()
◆ exynos_spi_read()
◆ exynos_spi_readat()
◆ spi_ctrlr_claim_bus()
static int spi_ctrlr_claim_bus |
( |
const struct spi_slave * |
slave | ) |
|
|
static |
◆ spi_ctrlr_release_bus()
static void spi_ctrlr_release_bus |
( |
const struct spi_slave * |
slave | ) |
|
|
static |
◆ spi_ctrlr_setup()
static int spi_ctrlr_setup |
( |
const struct spi_slave * |
slave | ) |
|
|
static |
◆ spi_ctrlr_xfer()
◆ spi_sw_reset()
Definition at line 54 of file spi.c.
References clrbits32, read32(), setbits32, SPI_CH_RST, SPI_MODE_BUS_WIDTH_BYTE, SPI_MODE_BUS_WIDTH_MASK, SPI_MODE_BUS_WIDTH_WORD, SPI_MODE_CH_WIDTH_BYTE, SPI_MODE_CH_WIDTH_MASK, SPI_MODE_CH_WIDTH_WORD, SPI_RX_BYTE_SWAP, SPI_RX_CH_ON, SPI_RX_HWORD_SWAP, SPI_RX_SWAP_EN, SPI_TX_BYTE_SWAP, SPI_TX_CH_ON, SPI_TX_HWORD_SWAP, SPI_TX_SWAP_EN, word, and write32().
Referenced by exynos_spi_init(), and spi_transfer().
◆ spi_transfer()
Definition at line 112 of file spi.c.
References inb(), memcpy(), MIN, outb(), read32(), SPI_PACKET_CNT_EN, exynos_spi::spi_sts, spi_sw_reset(), width, and write32().
Referenced by exynos_spi_read(), and spi_ctrlr_xfer().
◆ to_exynos_spi()
◆ boot_slave
◆ exynos_spi_ops
Initial value:= {
}
int mmap_helper_rdev_munmap(const struct region_device *, void *)
static ssize_t exynos_spi_readat(const struct region_device *rdev, void *dest, size_t offset, size_t count)
static void * exynos_spi_map(const struct region_device *rdev, size_t offset, size_t count)
Definition at line 254 of file spi.c.
◆ exynos_spi_slaves
Initial value:= {
{
.slave = { .bus = 0, },
},
{
.slave = { .bus = 1, },
},
{
.slave = { .bus = 2, },
},
}
#define EXYNOS5_SPI1_BASE
#define EXYNOS5_SPI0_BASE
#define EXYNOS5_SPI2_BASE
Definition at line 1 of file spi.c.
Referenced by exynos_init_spi_boot_device(), and to_exynos_spi().
◆ mdev
Initial value:=
struct mem_pool cbfs_cache
#define MMAP_HELPER_DEV_INIT(ops_, offset_, size_, mpool_)
static const struct region_device_ops exynos_spi_ops
Definition at line 254 of file spi.c.
◆ spi_ctrlr
Initial value:= {
}
static void spi_ctrlr_release_bus(const struct spi_slave *slave)
static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout, size_t bytes_out, void *din, size_t bytes_in)
static int spi_ctrlr_claim_bus(const struct spi_slave *slave)
static int spi_ctrlr_setup(const struct spi_slave *slave)
#define SPI_CTRLR_DEFAULT_MAX_XFER_SIZE
Definition at line 195 of file spi.c.
◆ spi_ctrlr_bus_map
Initial value:= {
{
.bus_start = 0,
.bus_end = 2,
},
}
Definition at line 195 of file spi.c.
◆ spi_ctrlr_bus_map_count