|
|
|
@ -21,6 +21,7 @@ |
|
|
|
|
#include <linux/interrupt.h> |
|
|
|
|
#include <linux/kernel.h> |
|
|
|
|
#include <linux/mm.h> |
|
|
|
|
#include <linux/module.h> |
|
|
|
|
#include <linux/of_platform.h> |
|
|
|
|
#include <linux/spi/spi.h> |
|
|
|
|
#ifdef CONFIG_FSL_SOC |
|
|
|
@ -35,7 +36,8 @@ void mpc8xxx_spi_rx_buf_##type(u32 data, struct mpc8xxx_spi *mpc8xxx_spi) \ |
|
|
|
|
type *rx = mpc8xxx_spi->rx; \
|
|
|
|
|
*rx++ = (type)(data >> mpc8xxx_spi->rx_shift); \
|
|
|
|
|
mpc8xxx_spi->rx = rx; \
|
|
|
|
|
} |
|
|
|
|
} \
|
|
|
|
|
EXPORT_SYMBOL_GPL(mpc8xxx_spi_rx_buf_##type); |
|
|
|
|
|
|
|
|
|
#define MPC8XXX_SPI_TX_BUF(type) \ |
|
|
|
|
u32 mpc8xxx_spi_tx_buf_##type(struct mpc8xxx_spi *mpc8xxx_spi) \
|
|
|
|
@ -47,7 +49,8 @@ u32 mpc8xxx_spi_tx_buf_##type(struct mpc8xxx_spi *mpc8xxx_spi) \ |
|
|
|
|
data = *tx++ << mpc8xxx_spi->tx_shift; \
|
|
|
|
|
mpc8xxx_spi->tx = tx; \
|
|
|
|
|
return data; \
|
|
|
|
|
} |
|
|
|
|
} \
|
|
|
|
|
EXPORT_SYMBOL_GPL(mpc8xxx_spi_tx_buf_##type); |
|
|
|
|
|
|
|
|
|
MPC8XXX_SPI_RX_BUF(u8) |
|
|
|
|
MPC8XXX_SPI_RX_BUF(u16) |
|
|
|
@ -60,6 +63,7 @@ struct mpc8xxx_spi_probe_info *to_of_pinfo(struct fsl_spi_platform_data *pdata) |
|
|
|
|
{ |
|
|
|
|
return container_of(pdata, struct mpc8xxx_spi_probe_info, pdata); |
|
|
|
|
} |
|
|
|
|
EXPORT_SYMBOL_GPL(to_of_pinfo); |
|
|
|
|
|
|
|
|
|
const char *mpc8xxx_spi_strmode(unsigned int flags) |
|
|
|
|
{ |
|
|
|
@ -75,6 +79,7 @@ const char *mpc8xxx_spi_strmode(unsigned int flags) |
|
|
|
|
} |
|
|
|
|
return "CPU"; |
|
|
|
|
} |
|
|
|
|
EXPORT_SYMBOL_GPL(mpc8xxx_spi_strmode); |
|
|
|
|
|
|
|
|
|
void mpc8xxx_spi_probe(struct device *dev, struct resource *mem, |
|
|
|
|
unsigned int irq) |
|
|
|
@ -107,6 +112,7 @@ void mpc8xxx_spi_probe(struct device *dev, struct resource *mem, |
|
|
|
|
|
|
|
|
|
init_completion(&mpc8xxx_spi->done); |
|
|
|
|
} |
|
|
|
|
EXPORT_SYMBOL_GPL(mpc8xxx_spi_probe); |
|
|
|
|
|
|
|
|
|
int mpc8xxx_spi_remove(struct device *dev) |
|
|
|
|
{ |
|
|
|
@ -125,6 +131,7 @@ int mpc8xxx_spi_remove(struct device *dev) |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
EXPORT_SYMBOL_GPL(mpc8xxx_spi_remove); |
|
|
|
|
|
|
|
|
|
int of_mpc8xxx_spi_probe(struct platform_device *ofdev) |
|
|
|
|
{ |
|
|
|
@ -171,3 +178,6 @@ int of_mpc8xxx_spi_probe(struct platform_device *ofdev) |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
EXPORT_SYMBOL_GPL(of_mpc8xxx_spi_probe); |
|
|
|
|
|
|
|
|
|
MODULE_LICENSE("GPL"); |
|
|
|
|