coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
spi_common.h File Reference
#include <device/mmio.h>
#include <soc/gpio_base.h>
#include <spi-generic.h>
#include <types.h>
Include dependency graph for spi_common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mtk_spi_regs
 
struct  mtk_spi_bus
 

Typedefs

typedef struct mtk_spi_regs mtk_spi_regs
 

Enumerations

enum  {
  SPI_CMD_ACT_SHIFT = 0 , SPI_CMD_RESUME_SHIFT = 1 , SPI_CMD_RST_SHIFT = 2 , SPI_CMD_PAUSE_EN_SHIFT = 4 ,
  SPI_CMD_DEASSERT_SHIFT = 5 , SPI_CMD_CPHA_SHIFT = 8 , SPI_CMD_CPOL_SHIFT = 9 , SPI_CMD_RX_DMA_SHIFT = 10 ,
  SPI_CMD_TX_DMA_SHIFT = 11 , SPI_CMD_TXMSBF_SHIFT = 12 , SPI_CMD_RXMSBF_SHIFT = 13 , SPI_CMD_RX_ENDIAN_SHIFT = 14 ,
  SPI_CMD_TX_ENDIAN_SHIFT = 15 , SPI_CMD_FINISH_IE_SHIFT = 16 , SPI_CMD_PAUSE_IE_SHIFT = 17 , SPI_CMD_ACT_EN = BIT(SPI_CMD_ACT_SHIFT) ,
  SPI_CMD_RESUME_EN = BIT(SPI_CMD_RESUME_SHIFT) , SPI_CMD_RST_EN = BIT(SPI_CMD_RST_SHIFT) , SPI_CMD_PAUSE_EN = BIT(SPI_CMD_PAUSE_EN_SHIFT) , SPI_CMD_DEASSERT_EN = BIT(SPI_CMD_DEASSERT_SHIFT) ,
  SPI_CMD_CPHA_EN = BIT(SPI_CMD_CPHA_SHIFT) , SPI_CMD_CPOL_EN = BIT(SPI_CMD_CPOL_SHIFT) , SPI_CMD_RX_DMA_EN = BIT(SPI_CMD_RX_DMA_SHIFT) , SPI_CMD_TX_DMA_EN = BIT(SPI_CMD_TX_DMA_SHIFT) ,
  SPI_CMD_TXMSBF_EN = BIT(SPI_CMD_TXMSBF_SHIFT) , SPI_CMD_RXMSBF_EN = BIT(SPI_CMD_RXMSBF_SHIFT) , SPI_CMD_RX_ENDIAN_EN = BIT(SPI_CMD_RX_ENDIAN_SHIFT) , SPI_CMD_TX_ENDIAN_EN = BIT(SPI_CMD_TX_ENDIAN_SHIFT) ,
  SPI_CMD_FINISH_IE_EN = BIT(SPI_CMD_FINISH_IE_SHIFT) , SPI_CMD_PAUSE_IE_EN = BIT(SPI_CMD_PAUSE_IE_SHIFT)
}
 
enum  spi_pad_mask {
  SPI_PAD0_MASK = 0x0 , SPI_PAD1_MASK = 0x1 , SPI_PAD2_MASK = 0x2 , SPI_PAD3_MASK = 0x3 ,
  SPI_PAD_SEL_MASK = 0x3
}
 

Functions

 check_member (mtk_spi_regs, spi_pad_macro_sel_reg, 0x24)
 
void mtk_spi_set_gpio_pinmux (unsigned int bus, enum spi_pad_mask pad_select)
 
void mtk_spi_set_timing (struct mtk_spi_regs *regs, u32 sck_ticks, u32 cs_ticks, unsigned int tick_dly)
 
void mtk_spi_init (unsigned int bus, enum spi_pad_mask pad_select, unsigned int speed_hz, unsigned int tick_dly)
 

Variables

const struct spi_ctrlr spi_ctrlr
 
struct mtk_spi_bus spi_bus []
 

Typedef Documentation

◆ mtk_spi_regs

typedef struct mtk_spi_regs mtk_spi_regs

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
SPI_CMD_ACT_SHIFT 
SPI_CMD_RESUME_SHIFT 
SPI_CMD_RST_SHIFT 
SPI_CMD_PAUSE_EN_SHIFT 
SPI_CMD_DEASSERT_SHIFT 
SPI_CMD_CPHA_SHIFT 
SPI_CMD_CPOL_SHIFT 
SPI_CMD_RX_DMA_SHIFT 
SPI_CMD_TX_DMA_SHIFT 
SPI_CMD_TXMSBF_SHIFT 
SPI_CMD_RXMSBF_SHIFT 
SPI_CMD_RX_ENDIAN_SHIFT 
SPI_CMD_TX_ENDIAN_SHIFT 
SPI_CMD_FINISH_IE_SHIFT 
SPI_CMD_PAUSE_IE_SHIFT 
SPI_CMD_ACT_EN 
SPI_CMD_RESUME_EN 
SPI_CMD_RST_EN 
SPI_CMD_PAUSE_EN 
SPI_CMD_DEASSERT_EN 
SPI_CMD_CPHA_EN 
SPI_CMD_CPOL_EN 
SPI_CMD_RX_DMA_EN 
SPI_CMD_TX_DMA_EN 
SPI_CMD_TXMSBF_EN 
SPI_CMD_RXMSBF_EN 
SPI_CMD_RX_ENDIAN_EN 
SPI_CMD_TX_ENDIAN_EN 
SPI_CMD_FINISH_IE_EN 
SPI_CMD_PAUSE_IE_EN 

Definition at line 11 of file spi_common.h.

◆ spi_pad_mask

Enumerator
SPI_PAD0_MASK 
SPI_PAD1_MASK 
SPI_PAD2_MASK 
SPI_PAD3_MASK 
SPI_PAD_SEL_MASK 

Definition at line 45 of file spi_common.h.

Function Documentation

◆ check_member()

check_member ( mtk_spi_regs  ,
spi_pad_macro_sel_reg  ,
0x24   
)

◆ mtk_spi_init()

◆ mtk_spi_set_gpio_pinmux()

void mtk_spi_set_gpio_pinmux ( unsigned int  bus,
enum spi_pad_mask  pad_select 
)

Definition at line 18 of file spi.c.

References assert, bus1_pad1_funcs, pad_func::func, GPIO, gpio_set_mode(), NULL, pad0_funcs, pad1_funcs, pad_func::pin_id, SPI_BUS_NUMBER, SPI_PAD0_MASK, and SPI_PAD1_MASK.

Referenced by mtk_spi_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mtk_spi_set_timing()

void mtk_spi_set_timing ( struct mtk_spi_regs regs,
u32  sck_ticks,
u32  cs_ticks,
unsigned int  tick_dly 
)

Definition at line 37 of file spi.c.

References GET_SCK_REG, and SET32_BITFIELDS.

Referenced by mtk_spi_init().

Here is the caller graph for this function:

Variable Documentation

◆ spi_bus

struct mtk_spi_bus spi_bus[]
extern

Definition at line 1 of file spi.c.

Referenced by gspi_ctrlr_params_init(), gspi_spi_to_gspi_bus(), mtk_spi_init(), and to_mtk_spi().

◆ spi_ctrlr

const struct spi_ctrlr spi_ctrlr
extern

Definition at line 253 of file spi.c.