spi: octeon: Split driver into Octeon specific and common parts

Separate driver probing from SPI transfer functions.

Signed-off-by: Jan Glauber <jglauber@cavium.com>
Tested-by: Steven J. Hill <steven.hill@cavium.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Jan Glauber
2016-07-23 12:42:54 +02:00
committed by Mark Brown
parent 22cc1b6b35
commit 63d49afefc
4 changed files with 138 additions and 118 deletions

View File

@@ -1,3 +1,32 @@
#ifndef __SPI_CAVIUM_H
#define __SPI_CAVIUM_H
#define OCTEON_SPI_MAX_BYTES 9
#define OCTEON_SPI_MAX_CLOCK_HZ 16000000
struct octeon_spi_regs {
int config;
int status;
int tx;
int data;
};
struct octeon_spi {
void __iomem *register_base;
u64 last_cfg;
u64 cs_enax;
int sys_freq;
struct octeon_spi_regs regs;
};
#define OCTEON_SPI_CFG(x) (x->regs.config)
#define OCTEON_SPI_STS(x) (x->regs.status)
#define OCTEON_SPI_TX(x) (x->regs.tx)
#define OCTEON_SPI_DAT0(x) (x->regs.data)
int octeon_spi_transfer_one_message(struct spi_master *master,
struct spi_message *msg);
/* MPI register descriptions */
#define CVMX_MPI_CFG (CVMX_ADD_IO_SEG(0x0001070000001000ull))
@@ -296,3 +325,5 @@ union cvmx_mpi_tx {
struct cvmx_mpi_tx_s cn66xx;
struct cvmx_mpi_tx_cn61xx cnf71xx;
};
#endif /* __SPI_CAVIUM_H */