Source
x
{ .compatible = "renesas,sh-msiof", .data = &sh_data }, /* Deprecated */
// SPDX-License-Identifier: GPL-2.0
/*
* SuperH MSIOF SPI Controller Interface
*
* Copyright (c) 2009 Magnus Damm
* Copyright (C) 2014 Renesas Electronics Corporation
* Copyright (C) 2014-2017 Glider bvba
*/
struct sh_msiof_chipdata {
u32 bits_per_word_mask;
u16 tx_fifo_size;
u16 rx_fifo_size;
u16 ctlr_flags;
u16 min_div_pow;
};
struct sh_msiof_spi_priv {
struct spi_controller *ctlr;
void __iomem *mapbase;
struct clk *clk;
struct platform_device *pdev;
struct sh_msiof_spi_info *info;
struct completion done;
struct completion done_txdma;
unsigned int tx_fifo_size;
unsigned int rx_fifo_size;
unsigned int min_div_pow;
void *tx_dma_page;
void *rx_dma_page;
dma_addr_t tx_dma_addr;
dma_addr_t rx_dma_addr;
unsigned short unused_ss;
bool native_cs_inited;
bool native_cs_high;
bool slave_aborted;
};
/* Maximum number of native chip selects */
/* Transmit Mode Register 1 */
/* Transmit Mode Register 2 */
/* Transmit Mode Register 3 */
/* Receive Mode Register 1 */
/* Receive Mode Register 2 */
/* Receive Mode Register 3 */
/* Transmit Clock Select Register */
/* Receive Clock Select Register (SH, A1, APE6) */
/* Control Register */
/* FIFO Control Register */
/* Status Register */
/* Interrupt Enable Register */
/* Transmit Control Data Register 1 (SH, A1) */
/* Transmit Control Data Register 2 (SH, A1) */
/* Transmit FIFO Data Register */
/* Receive Control Data Register 1 (SH, A1) */
/* Receive Control Data Register 2 (SH, A1) */
/* Receive FIFO Data Register */
/* TMDR1 and RMDR1 */
/* Transfer Mode (1 = Master mode) */
/* SYNC Mode */
/* Level mode/SPI */
/* L/R mode */
/* Sync Polarity (1 = Active-low) */
/* MSB/LSB First (1 = LSB first) */
/* Data Pin Bit Delay for MSIOF_SYNC */
/* Frame Sync Signal Timing Delay */