xref: /OK3568_Linux_fs/kernel/drivers/spi/spi-fsl-cpm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Freescale SPI controller driver cpm functions.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Maintainer: Kumar Gala
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Copyright (C) 2006 Polycom, Inc.
8*4882a593Smuzhiyun  * Copyright 2010 Freescale Semiconductor, Inc.
9*4882a593Smuzhiyun  *
10*4882a593Smuzhiyun  * CPM SPI and QE buffer descriptors mode support:
11*4882a593Smuzhiyun  * Copyright (c) 2009  MontaVista Software, Inc.
12*4882a593Smuzhiyun  * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
13*4882a593Smuzhiyun  */
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #ifndef __SPI_FSL_CPM_H__
16*4882a593Smuzhiyun #define __SPI_FSL_CPM_H__
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #include "spi-fsl-lib.h"
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #ifdef CONFIG_FSL_SOC
21*4882a593Smuzhiyun extern void fsl_spi_cpm_reinit_txrx(struct mpc8xxx_spi *mspi);
22*4882a593Smuzhiyun extern int fsl_spi_cpm_bufs(struct mpc8xxx_spi *mspi,
23*4882a593Smuzhiyun 			    struct spi_transfer *t, bool is_dma_mapped);
24*4882a593Smuzhiyun extern void fsl_spi_cpm_bufs_complete(struct mpc8xxx_spi *mspi);
25*4882a593Smuzhiyun extern void fsl_spi_cpm_irq(struct mpc8xxx_spi *mspi, u32 events);
26*4882a593Smuzhiyun extern int fsl_spi_cpm_init(struct mpc8xxx_spi *mspi);
27*4882a593Smuzhiyun extern void fsl_spi_cpm_free(struct mpc8xxx_spi *mspi);
28*4882a593Smuzhiyun #else
fsl_spi_cpm_reinit_txrx(struct mpc8xxx_spi * mspi)29*4882a593Smuzhiyun static inline void fsl_spi_cpm_reinit_txrx(struct mpc8xxx_spi *mspi) { }
fsl_spi_cpm_bufs(struct mpc8xxx_spi * mspi,struct spi_transfer * t,bool is_dma_mapped)30*4882a593Smuzhiyun static inline int fsl_spi_cpm_bufs(struct mpc8xxx_spi *mspi,
31*4882a593Smuzhiyun 				   struct spi_transfer *t,
32*4882a593Smuzhiyun 				   bool is_dma_mapped) { return 0; }
fsl_spi_cpm_bufs_complete(struct mpc8xxx_spi * mspi)33*4882a593Smuzhiyun static inline void fsl_spi_cpm_bufs_complete(struct mpc8xxx_spi *mspi) { }
fsl_spi_cpm_irq(struct mpc8xxx_spi * mspi,u32 events)34*4882a593Smuzhiyun static inline void fsl_spi_cpm_irq(struct mpc8xxx_spi *mspi, u32 events) { }
fsl_spi_cpm_init(struct mpc8xxx_spi * mspi)35*4882a593Smuzhiyun static inline int fsl_spi_cpm_init(struct mpc8xxx_spi *mspi) { return 0; }
fsl_spi_cpm_free(struct mpc8xxx_spi * mspi)36*4882a593Smuzhiyun static inline void fsl_spi_cpm_free(struct mpc8xxx_spi *mspi) { }
37*4882a593Smuzhiyun #endif
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #endif /* __SPI_FSL_CPM_H__ */
40