coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
spi.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#ifndef __NVIDIA_TEGRA124_SPI_H__
4
#define __NVIDIA_TEGRA124_SPI_H__
5
6
#include <
spi-generic.h
>
7
#include <soc/dma.h>
8
#include <
stddef.h
>
9
10
struct
tegra_spi_regs
{
11
u32
command1
;
/* 0x000: SPI_COMMAND1 */
12
u32
command2
;
/* 0x004: SPI_COMMAND2 */
13
u32
timing1
;
/* 0x008: SPI_CS_TIM1 */
14
u32
timing2
;
/* 0x00c: SPI_CS_TIM2 */
15
u32
trans_status
;
/* 0x010: SPI_TRANS_STATUS */
16
u32
fifo_status
;
/* 0x014: SPI_FIFO_STATUS */
17
u32
tx_data
;
/* 0x018: SPI_TX_DATA */
18
u32
rx_data
;
/* 0x01c: SPI_RX_DATA */
19
u32
dma_ctl
;
/* 0x020: SPI_DMA_CTL */
20
u32
dma_blk
;
/* 0x024: SPI_DMA_BLK */
21
u32
rsvd
[56];
/* 0x028-0x107: reserved */
22
u32
tx_fifo
;
/* 0x108: SPI_FIFO1 */
23
u32
rsvd2
[31];
/* 0x10c-0x187 reserved */
24
u32
rx_fifo
;
/* 0x188: SPI_FIFO2 */
25
u32
spare_ctl
;
/* 0x18c: SPI_SPARE_CTRL */
26
}
__packed
;
27
check_member
(
tegra_spi_regs
, spare_ctl, 0x18c);
28
29
enum
spi_xfer_mode
{
30
XFER_MODE_NONE
= 0,
31
XFER_MODE_PIO
,
32
XFER_MODE_DMA
,
33
};
34
35
struct
tegra_spi_channel
{
36
struct
tegra_spi_regs
*
regs
;
37
38
/* static configuration */
39
struct
spi_slave
slave
;
40
unsigned
int
req_sel
;
41
42
int
dual_mode
;
/* for x2 transfers with bit interleaving */
43
44
/* context (used internally) */
45
u8
*
in_buf
, *
out_buf
;
46
struct
apb_dma_channel
*
dma_out
, *
dma_in
;
47
enum
spi_xfer_mode
xfer_mode
;
48
};
49
50
struct
tegra_spi_channel
*
tegra_spi_init
(
unsigned
int
bus
);
51
52
#endif
/* __NVIDIA_TEGRA124_SPI_H__ */
__packed
struct em100_msg_header __packed
tegra_spi_init
struct tegra_spi_channel * tegra_spi_init(unsigned int bus)
Definition:
spi.c:156
spi_xfer_mode
spi_xfer_mode
Definition:
spi.h:29
XFER_MODE_PIO
@ XFER_MODE_PIO
Definition:
spi.h:31
XFER_MODE_NONE
@ XFER_MODE_NONE
Definition:
spi.h:30
XFER_MODE_DMA
@ XFER_MODE_DMA
Definition:
spi.h:32
check_member
check_member(tegra_spi_regs, spare_ctl, 0x18c)
spi-generic.h
stddef.h
u32
uint32_t u32
Definition:
stdint.h:51
u8
uint8_t u8
Definition:
stdint.h:45
apb_dma_channel
Definition:
dma.h:157
bus
Definition:
device.h:76
spi_slave
Definition:
spi-generic.h:40
tegra_spi_channel
Definition:
spi.h:35
tegra_spi_channel::xfer_mode
enum spi_xfer_mode xfer_mode
Definition:
spi.h:47
tegra_spi_channel::req_sel
unsigned int req_sel
Definition:
spi.h:40
tegra_spi_channel::regs
struct tegra_spi_regs * regs
Definition:
spi.h:36
tegra_spi_channel::dma_in
struct apb_dma_channel * dma_in
Definition:
spi.h:46
tegra_spi_channel::dual_mode
int dual_mode
Definition:
spi.h:42
tegra_spi_channel::in_buf
u8 * in_buf
Definition:
spi.h:45
tegra_spi_channel::out_buf
u8 * out_buf
Definition:
spi.h:45
tegra_spi_channel::dma_out
struct apb_dma_channel * dma_out
Definition:
spi.h:46
tegra_spi_channel::slave
struct spi_slave slave
Definition:
spi.h:39
tegra_spi_regs
Definition:
spi.h:10
tegra_spi_regs::tx_data
u32 tx_data
Definition:
spi.h:17
tegra_spi_regs::spare_ctl
u32 spare_ctl
Definition:
spi.h:25
tegra_spi_regs::trans_status
u32 trans_status
Definition:
spi.h:15
tegra_spi_regs::command1
u32 command1
Definition:
spi.h:11
tegra_spi_regs::timing2
u32 timing2
Definition:
spi.h:14
tegra_spi_regs::command2
u32 command2
Definition:
spi.h:12
tegra_spi_regs::fifo_status
u32 fifo_status
Definition:
spi.h:16
tegra_spi_regs::dma_blk
u32 dma_blk
Definition:
spi.h:20
tegra_spi_regs::rsvd
u32 rsvd[56]
Definition:
spi.h:21
tegra_spi_regs::rx_data
u32 rx_data
Definition:
spi.h:18
tegra_spi_regs::rsvd2
u32 rsvd2[31]
Definition:
spi.h:23
tegra_spi_regs::tx_fifo
u32 tx_fifo
Definition:
spi.h:22
tegra_spi_regs::rx_fifo
u32 rx_fifo
Definition:
spi.h:24
tegra_spi_regs::dma_ctl
u32 dma_ctl
Definition:
spi.h:19
tegra_spi_regs::timing1
u32 timing1
Definition:
spi.h:13
src
soc
nvidia
tegra124
include
soc
spi.h
Generated by
1.9.1