3 #ifndef CPU_SAMSUNG_EXYNOS5420_SPI_H
4 #define CPU_SAMSUNG_EXYNOS5420_SPI_H
26 #define EXYNOS_SPI_MAX_FREQ 50000000
28 #define SPI_TIMEOUT_MS 10
30 #define SF_READ_DATA_CMD 0x3
33 #define SPI_CH_HS_EN (1 << 6)
34 #define SPI_CH_RST (1 << 5)
35 #define SPI_SLAVE_MODE (1 << 4)
36 #define SPI_CH_CPOL_L (1 << 3)
37 #define SPI_CH_CPHA_B (1 << 2)
38 #define SPI_RX_CH_ON (1 << 1)
39 #define SPI_TX_CH_ON (1 << 0)
42 #define SPI_MODE_BUS_WIDTH_BYTE (0x0 << 17)
43 #define SPI_MODE_BUS_WIDTH_WORD (0x2 << 17)
44 #define SPI_MODE_BUS_WIDTH_MASK (0x3 << 17)
45 #define SPI_MODE_CH_WIDTH_BYTE (0x0 << 29)
46 #define SPI_MODE_CH_WIDTH_WORD (0x2 << 29)
47 #define SPI_MODE_CH_WIDTH_MASK (0x3 << 29)
50 #define SPI_SLAVE_SIG_INACT (1 << 0)
53 #define SPI_ST_TX_DONE (1 << 25)
54 #define SPI_FIFO_LVL_MASK 0x1ff
55 #define SPI_TX_LVL_OFFSET 6
56 #define SPI_RX_LVL_OFFSET 15
59 #define SPI_CLK_BYPASS (0 << 0)
60 #define SPI_FB_DELAY_90 (1 << 0)
61 #define SPI_FB_DELAY_180 (2 << 0)
62 #define SPI_FB_DELAY_270 (3 << 0)
65 #define SPI_PACKET_CNT_EN (1 << 16)
68 #define SPI_TX_SWAP_EN (1 << 0)
69 #define SPI_TX_BYTE_SWAP (1 << 2)
70 #define SPI_TX_HWORD_SWAP (1 << 3)
71 #define SPI_TX_BYTE_SWAP (1 << 2)
72 #define SPI_RX_SWAP_EN (1 << 4)
73 #define SPI_RX_BYTE_SWAP (1 << 6)
74 #define SPI_RX_HWORD_SWAP (1 << 7)
check_member(tegra_spi_regs, spare_ctl, 0x18c)
void exynos_init_spi_boot_device(void)
const struct region_device * exynos_spi_boot_device(void)
unsigned char reserved2[4]
unsigned char reserved0[4]
unsigned char reserved1[4]
unsigned char padding[0xffd0]