aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/phone_svn/ipc_spi/spi_dev.h
diff options
context:
space:
mode:
authorcodeworkx <daniel.hillenbrand@codeworkx.de>2012-06-02 13:09:29 +0200
committercodeworkx <daniel.hillenbrand@codeworkx.de>2012-06-02 13:09:29 +0200
commitc6da2cfeb05178a11c6d062a06f8078150ee492f (patch)
treef3b4021d252c52d6463a9b3c1bb7245e399b009c /drivers/phone_svn/ipc_spi/spi_dev.h
parentc6d7c4dbff353eac7919342ae6b3299a378160a6 (diff)
downloadkernel_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.h49
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