diff options
author | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-06-02 13:09:29 +0200 |
---|---|---|
committer | codeworkx <daniel.hillenbrand@codeworkx.de> | 2012-06-02 13:09:29 +0200 |
commit | c6da2cfeb05178a11c6d062a06f8078150ee492f (patch) | |
tree | f3b4021d252c52d6463a9b3c1bb7245e399b009c /drivers/phone_svn/ipc_spi/spi_dev.h | |
parent | c6d7c4dbff353eac7919342ae6b3299a378160a6 (diff) | |
download | kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.zip kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.tar.gz kernel_samsung_smdk4412-c6da2cfeb05178a11c6d062a06f8078150ee492f.tar.bz2 |
samsung update 1
Diffstat (limited to 'drivers/phone_svn/ipc_spi/spi_dev.h')
-rw-r--r-- | drivers/phone_svn/ipc_spi/spi_dev.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/phone_svn/ipc_spi/spi_dev.h b/drivers/phone_svn/ipc_spi/spi_dev.h new file mode 100644 index 0000000..6da9e64 --- /dev/null +++ b/drivers/phone_svn/ipc_spi/spi_dev.h @@ -0,0 +1,49 @@ +#ifndef _SPI_DEV_H_ +#define _SPI_DEV_H_ + +#include "spi_main.h" + +#include <linux/interrupt.h> + +#define SPI_DEV_MAX_PACKET_SIZE (2048 * 6) + +enum SPI_DEV_SYNC_STATE_T { + SPI_DEV_SYNC_OFF = 0, + SPI_DEV_SYNC_ON +}; + +enum SPI_DEV_GPIOLEVEL_T { + SPI_DEV_GPIOLEVEL_LOW = 0, + SPI_DEV_GPIOLEVEL_HIGH +}; + +enum SPI_DEV_IRQ_TRIGGER_T { + SPI_DEV_IRQ_TRIGGER_RISING = 1, + SPI_DEV_IRQ_TRIGGER_FALLING +}; + +typedef irqreturn_t (*SPI_DEV_IRQ_HANDLER_T)(int, void *); +#define SPI_DEV_IRQ_HANDLER(X) irqreturn_t X(int irq, void *data) + +extern int spi_dev_gpio_mrdy; +extern int spi_dev_gpio_srdy; +extern int spi_dev_gpio_submrdy; +extern int spi_dev_gpio_subsrdy; + +extern int spi_is_restart; + +extern void spi_dev_init(void *data); +extern void spi_dev_destroy(void); +extern int spi_dev_send(void *buf, void * sync_buf, unsigned int length); +extern int spi_dev_receive(void *sync_buf, void *buf, unsigned int length); +extern void spi_dev_set_gpio(int gpio_id, enum SPI_DEV_GPIOLEVEL_T value); +extern enum SPI_DEV_GPIOLEVEL_T spi_dev_get_gpio(int gpio_id); +extern int spi_dev_reigster_irq_handler(int gpio_id, + enum SPI_DEV_IRQ_TRIGGER_T trigger, + SPI_DEV_IRQ_HANDLER_T handler, + char *name, void *data); +extern void spi_dev_unreigster_irq_handler(int gpio_id, void *data); + +extern int ipc_spi_tx_rx_sync(u8 *tx_d, u8 *rx_d, unsigned len); + +#endif |