summaryrefslogtreecommitdiff
path: root/drivers/char/modem_interface/modem_sdio_drv.c
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /drivers/char/modem_interface/modem_sdio_drv.c
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'drivers/char/modem_interface/modem_sdio_drv.c')
-rw-r--r--drivers/char/modem_interface/modem_sdio_drv.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/drivers/char/modem_interface/modem_sdio_drv.c b/drivers/char/modem_interface/modem_sdio_drv.c
new file mode 100644
index 00000000..efe7288b
--- /dev/null
+++ b/drivers/char/modem_interface/modem_sdio_drv.c
@@ -0,0 +1,50 @@
+/*
+ * kernel/driver/char/modem_interface/modem_sdio_drv.c
+ *
+ * Generic modem interface sdio API
+ *
+ * Author: Jiayong Yang(Jiayong.Yang@spreadtrum.com)
+ * Created: Jul 27, 2012
+ * Copyright: Spreadtrum Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+
+#include <linux/mutex.h>
+#include <linux/dma-mapping.h>
+#include <linux/proc_fs.h>
+#include "modem_buffer.h"
+#include "modem_interface_driver.h"
+extern struct spi_device *sprd_spi_modem_device_register(int master_bus_num,struct spi_board_info *chip);
+
+extern int sprd_sdio_channel_open(void);
+extern void sprd_sdio_channel_close(void);
+extern int sprd_sdio_channel_rx(char *buf, int len, unsigned int addr);
+extern int sprd_sdio_channel_tx(const char *buf, unsigned int len, unsigned int addr);
+
+static int modem_sdio_open(void *para)
+{
+ return sprd_sdio_channel_open();
+}
+int modem_sdio_read(char *buffer,int size)
+{
+ return sprd_sdio_channel_rx(buffer,size, 0);
+}
+int modem_sdio_write(char *buffer,int size)
+{
+ return sprd_sdio_channel_tx((const char *)buffer,size, 0);
+}
+
+static struct modem_device_operation sdio_device_op = {
+ .dev = MODEM_DEV_SDIO,
+ .open = modem_sdio_open,
+ .read = modem_sdio_read,
+ .write =modem_sdio_write
+};
+struct modem_device_operation * modem_sdio_drv_init(void)
+{
+ return &sdio_device_op;
+}