summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorTao Huang <huangtao@rock-chips.com>2018-11-03 12:42:07 +0800
committerTao Huang <huangtao@rock-chips.com>2018-11-03 12:42:07 +0800
commit58093caf0b263e57c44afd687bb64616fc43484f (patch)
tree016f32e104b83d4cd58ce997350a60a3c0e22aaf /drivers/misc
parentfcd35c5de7c69f4db43f33234a70f25493144a42 (diff)
drivers/misc: remove unused 3g_module drivers
Change-Id: I63152f2bbd9383bbbc5dffdcb0a2bfccb26cbabd Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/3g_module/Kconfig31
-rw-r--r--drivers/misc/3g_module/Makefile5
-rwxr-xr-xdrivers/misc/3g_module/mt6229.c363
-rwxr-xr-xdrivers/misc/3g_module/mu509.c377
-rwxr-xr-xdrivers/misc/3g_module/mw100.c235
-rwxr-xr-xdrivers/misc/3g_module/sew868.c228
6 files changed, 0 insertions, 1239 deletions
diff --git a/drivers/misc/3g_module/Kconfig b/drivers/misc/3g_module/Kconfig
deleted file mode 100644
index a2aabc55cfb5..000000000000
--- a/drivers/misc/3g_module/Kconfig
+++ /dev/null
@@ -1,31 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-#
-# 3G device configuration
-#
-
-menuconfig 3G_MODULE
- tristate "3G module for mid"
- ---help---
- Say Y here if you have a support modem
-
-choice
- depends on 3G_MODULE
- prompt "Select 3G Module"
-
- config MU509
- bool "MU509"
-
- config MT6229
- bool "MT6229"
-
- config MW100
- bool "MW100"
-
- config SEW868
- bool "SEW868"
-
-
-
-
-endchoice
-
diff --git a/drivers/misc/3g_module/Makefile b/drivers/misc/3g_module/Makefile
deleted file mode 100644
index 3284a1dbc441..000000000000
--- a/drivers/misc/3g_module/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_MU509) += mu509.o
-obj-$(CONFIG_MW100) += mw100.o
-obj-$(CONFIG_MT6229) += mt6229.o
-obj-$(CONFIG_SEW868) += sew868.o
diff --git a/drivers/misc/3g_module/mt6229.c b/drivers/misc/3g_module/mt6229.c
deleted file mode 100755
index 0a7ce947fa60..000000000000
--- a/drivers/misc/3g_module/mt6229.c
+++ /dev/null
@@ -1,363 +0,0 @@
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/i2c.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/input.h>
-#include <linux/platform_device.h>
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-#include <linux/miscdevice.h>
-#include <linux/circ_buf.h>
-#include <linux/interrupt.h>
-#include <linux/miscdevice.h>
-#include <mach/iomux.h>
-#include <mach/gpio.h>
-#include <asm/gpio.h>
-#include <linux/delay.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/wakelock.h>
-#include <linux/workqueue.h>
-#include <linux/mt6229.h>
-#include <linux/slab.h>
-#include <linux/earlysuspend.h>
-
-MODULE_LICENSE("GPL");
-
-#define DEBUG
-#ifdef DEBUG
-#define MODEMDBG(x...) printk(x)
-#else
-#define MODEMDBG(fmt,argss...)
-#endif
-#define SLEEP 1
-#define READY 0
-static struct wake_lock modem_wakelock;
-//#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_FALLING
-#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_RISING
-#define MT6229_RESET 0x01
-struct rk29_mt6229_data *gpdata = NULL;
-struct class *modem_class = NULL;
-static int do_wakeup_irq = 0;
-static int modem_status;
-static void ap_wakeup_bp(struct platform_device *pdev, int wake)
-{
- struct rk29_mt6229_data *pdata = pdev->dev.platform_data;
-
- gpio_set_value(pdata->modem_usb_en,wake);
- if(wake == 1)
- wake = 0;
- else
- wake = 1;
- gpio_set_value(pdata->modem_uart_en,wake);
-
-}
-extern void rk28_send_wakeup_key(void);
-
-static void do_wakeup(struct work_struct *work)
-{
- gpio_set_value(gpdata->ap_ready,GPIO_HIGH);
- gpio_set_value(gpdata->modem_usb_en,GPIO_HIGH);
-}
-
-static DECLARE_DELAYED_WORK(wakeup_work, do_wakeup);
-static irqreturn_t detect_irq_handler(int irq, void *dev_id)
-{
- if(do_wakeup_irq)
- {
- do_wakeup_irq = 0;
- wake_lock_timeout(&modem_wakelock, 10 * HZ);
- //schedule_delayed_work(&wakeup_work, 2*HZ);
- }
- return IRQ_HANDLED;
-}
-static int modem_poweron_off(int on_off)
-{
- struct rk29_mt6229_data *pdata = gpdata;
- if(on_off)
- {
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- gpio_set_value(pdata->modem_usb_en, GPIO_HIGH);
- gpio_set_value(pdata->modem_uart_en, GPIO_LOW);
- gpio_set_value(pdata->ap_ready, GPIO_HIGH);
- }
- else
- {
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- gpio_set_value(pdata->modem_usb_en, GPIO_LOW);
- gpio_set_value(pdata->modem_uart_en, GPIO_HIGH);
- gpio_set_value(pdata->ap_ready, GPIO_LOW);
- }
- return 0;
-}
-static int mt6229_open(struct inode *inode, struct file *file)
-{
- struct rk29_mt6229_data *pdata = gpdata;
- device_init_wakeup(pdata->dev, 1);
- return 0;
-}
-static ssize_t mt6229_write(struct file *file, const char __user *buf,size_t len, loff_t *off)
-{
- static char cmd[2];
- int ret = 0;
- if (len > 2)
- {
- return -EINVAL;
- }
- ret = copy_from_user(&cmd, buf, len);
- if (ret != 0) {
- return -EFAULT;
- }
- printk(" received cmd = %c\n",cmd[0]);
- if (cmd[0] == '0')
- {
- gpio_set_value(gpdata->ap_ready, GPIO_LOW);
- }
- if (cmd[0] == '1')
- {
- gpio_set_value(gpdata->ap_ready, GPIO_HIGH);
- }
- if (cmd[0] == '2')
- {
- gpio_set_value(gpdata->modem_uart_en, GPIO_LOW);
- }
- if (cmd[0] == '3')
- {
- gpio_set_value(gpdata->modem_uart_en, GPIO_HIGH);
- }
- if (cmd[0] == '4')
- {
- gpio_set_value(gpdata->modem_usb_en, GPIO_HIGH);
- }if (cmd[0] == '5')
- {
- gpio_set_value(gpdata->modem_usb_en, GPIO_LOW);
- }
- return len;
-}
-static int mt6229_release(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-static long mt6229_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- struct rk29_mt6229_data *pdata = gpdata;
- switch(cmd)
- {
- case MT6229_RESET:
- modem_poweron_off(0);
- msleep(10);
- modem_poweron_off(1);
- break;
- default:
- break;
- }
- return 0;
-}
-
-static struct file_operations mt6229_fops = {
- .owner = THIS_MODULE,
- .open = mt6229_open,
- .write = mt6229_write,
- .release = mt6229_release,
- .unlocked_ioctl = mt6229_ioctl
-};
-
-static struct miscdevice mt6229_misc = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = MODEM_NAME,
- .fops = &mt6229_fops
-};
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37))
-static ssize_t modem_status_read(struct class *cls, struct class_attribute *attr, char *_buf)
-#else
-static ssize_t modem_status_read(struct class *cls, char *_buf)
-#endif
-{
-
- return sprintf(_buf, "%d\n", modem_status);
-
-}
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37))
-static ssize_t modem_status_write(struct class *cls, struct class_attribute *attr, const char *_buf, size_t _count)
-#else
-static ssize_t modem_status_write(struct class *cls, const char *_buf, size_t _count)
-#endif
-{
- int new_state = simple_strtoul(_buf, NULL, 16);
- if(new_state == modem_status) return _count;
- if (new_state == 1){
- // printk("%s, c(%d), modem resume \n", __FUNCTION__, new_state);
- // gpio_set_value(gpdata->modem_usb_en, GPIO_HIGH);
- // gpio_set_value(gpdata->modem_uart_en,GPIO_LOW);
- printk("%s, c(%d), open modem \n", __FUNCTION__, new_state);
- modem_poweron_off(1);
- }else if(new_state == 0){
- // printk("%s, c(%d), modem suspend \n", __FUNCTION__, new_state);
- // gpio_set_value(gpdata->modem_usb_en, GPIO_LOW);
- // gpio_set_value(gpdata->modem_uart_en,GPIO_HIGH);
- printk("%s, c(%d), close modem \n", __FUNCTION__, new_state);
- modem_poweron_off(0);
- }else{
- printk("%s, invalid parameter \n", __FUNCTION__);
- }
- modem_status = new_state;
- return _count;
-}
-static CLASS_ATTR(modem_status, 0777, modem_status_read, modem_status_write);
-static int mt6229_probe(struct platform_device *pdev)
-{
- struct rk29_mt6229_data *pdata = gpdata = pdev->dev.platform_data;
- struct modem_dev *mt6229_data = NULL;
- int result, irq = 0;
- pdata->dev = &pdev->dev;
- if(pdata->io_init)
- pdata->io_init();
- mt6229_data = kzalloc(sizeof(struct modem_dev), GFP_KERNEL);
- if(mt6229_data == NULL)
- {
- printk("failed to request mt6229_data\n");
- goto err0;
- }
- platform_set_drvdata(pdev, mt6229_data);
- result = gpio_request(pdata->modem_power_en,"modem_power_en");
- if(result){
- printk("failed to request modem_power_en gpio\n");
- goto err1;
- }
- gpio_set_value(pdata->modem_power_en, GPIO_HIGH);
- msleep(1000);
- result = gpio_request(pdata->bp_power,"modem_power");
- if(result){
- printk("failed to request modem_power gpio\n");
- goto err2;
- }
- result = gpio_request(pdata->modem_usb_en, "modem_usb_en");
- if (result) {
- printk("failed to request modem_usb_en gpio\n");
- goto err3;
- }
- result = gpio_request(pdata->modem_uart_en,"modem_uart_en");
- if(result){
- printk("failed to request modem_uart_en gpio\n");
- goto err4;
- }
- result = gpio_request(pdata->bp_wakeup_ap, "bp_wakeup_ap");
- if (result) {
- printk("failed to request bp_wakeup_ap gpio\n");
- goto err5;
- }
- gpio_direction_input(pdata->bp_wakeup_ap);
- irq = gpio_to_irq(pdata->bp_wakeup_ap);
- if(irq < 0)
- {
- gpio_free(pdata->bp_wakeup_ap);
- printk("failed to request bp_wakeup_ap\n");
- }
- result = request_irq(irq, detect_irq_handler, IRQ_BB_WAKEUP_AP_TRIGGER, "bp_wakeup_ap", NULL);
- if (result < 0) {
- printk("%s: request_irq(%d) failed\n", __func__, irq);
- gpio_free(pdata->bp_wakeup_ap);
- goto err5;
- }
- enable_irq_wake(irq);
- wake_lock_init(&modem_wakelock, WAKE_LOCK_SUSPEND, "bp_wakeup_ap");
- result = gpio_request(pdata->ap_ready, "ap_ready");
- if (result < 0) {
- printk("failed to request ap_ready gpio\n");
- goto err6;
- }
-
- modem_poweron_off(1);
- modem_status = 1;
-
- result = misc_register(&mt6229_misc);
- if(result)
- {
- printk("misc_register err\n");
- }
- return result;
-err0:
- kfree(mt6229_data);
-err1:
- gpio_free(pdata->modem_power_en);
-err2:
- gpio_free(pdata->bp_power);
-err3:
- gpio_free(pdata->modem_usb_en);
-err4:
- gpio_free(pdata->modem_uart_en);
-err5:
- gpio_free(pdata->bp_wakeup_ap);
-err6:
- gpio_free(pdata->ap_ready);
- return 0;
-}
-
-static int mt6229_suspend(struct platform_device *pdev, pm_message_t state)
-{
- do_wakeup_irq = 1;
- ap_wakeup_bp(pdev, 0);
- gpio_set_value(gpdata->ap_ready,0);
- return 0;
-}
-
-static int mt6229_resume(struct platform_device *pdev)
-{
- gpio_set_value(gpdata->modem_uart_en,GPIO_LOW);
- schedule_delayed_work(&wakeup_work, 2*HZ);
- return 0;
-}
-
-static void mt6229_shutdown(struct platform_device *pdev)
-{
- struct rk29_mt6229_data *pdata = pdev->dev.platform_data;
- struct modem_dev *mt6229_data = platform_get_drvdata(pdev);
-
- modem_poweron_off(0);
- gpio_set_value(pdata->modem_power_en, GPIO_LOW);
-
- if(pdata->io_deinit)
- pdata->io_deinit();
- cancel_work_sync(&mt6229_data->work);
- gpio_free(pdata->modem_power_en);
- gpio_free(pdata->bp_power);
- gpio_free(pdata->modem_usb_en);
- gpio_free(pdata->modem_uart_en);
- gpio_free(pdata->bp_wakeup_ap);
- kfree(mt6229_data);
-}
-
-static struct platform_driver mt6229_driver = {
- .probe = mt6229_probe,
- .shutdown = mt6229_shutdown,
- .suspend = mt6229_suspend,
- .resume = mt6229_resume,
- .driver = {
- .name = "mt6229",
- .owner = THIS_MODULE,
- },
-};
-
-static int __init mt6229_init(void)
-{
- int ret ;
- modem_class = class_create(THIS_MODULE, "rk291x_modem");
- ret = class_create_file(modem_class, &class_attr_modem_status);
- if (ret)
- {
- printk("Fail to class rk291x_modem.\n");
- }
- return platform_driver_register(&mt6229_driver);
-}
-
-static void __exit mt6229_exit(void)
-{
- platform_driver_unregister(&mt6229_driver);
- class_remove_file(modem_class, &class_attr_modem_status);
-}
-
-module_init(mt6229_init);
-
-module_exit(mt6229_exit);
diff --git a/drivers/misc/3g_module/mu509.c b/drivers/misc/3g_module/mu509.c
deleted file mode 100755
index 1b4958db17ba..000000000000
--- a/drivers/misc/3g_module/mu509.c
+++ /dev/null
@@ -1,377 +0,0 @@
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/i2c.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/input.h>
-#include <linux/platform_device.h>
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-#include <linux/miscdevice.h>
-#include <linux/circ_buf.h>
-#include <linux/interrupt.h>
-#include <linux/miscdevice.h>
-#include <mach/iomux.h>
-#include <mach/gpio.h>
-#include <asm/gpio.h>
-#include <linux/delay.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/wakelock.h>
-#include <linux/workqueue.h>
-#include <linux/mu509.h>
-#include <linux/slab.h>
-#include <linux/earlysuspend.h>
-
-MODULE_LICENSE("GPL");
-
-#define DEBUG
-#ifdef DEBUG
-#define MODEMDBG(x...) printk(x)
-#else
-#define MODEMDBG(fmt,argss...)
-#endif
-#define SLEEP 1
-#define READY 0
-static struct wake_lock modem_wakelock;
-#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_FALLING
-//#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_RISING
-#define MU509_RESET 0x01
-struct rk29_mu509_data *gpdata = NULL;
-struct class *modem_class = NULL;
-static int do_wakeup_irq = 0;
-static int modem_status;
-int suspend_int =0;
-static void ap_wakeup_bp(struct platform_device *pdev, int wake)
-{
- struct rk29_mu509_data *pdata = pdev->dev.platform_data;
-
- gpio_set_value(pdata->ap_wakeup_bp, wake);
-
-}
-extern void rk28_send_wakeup_key(void);
-
-static void do_wakeup(struct work_struct *work)
-{
- if(suspend_int)
- {
- gpio_set_value(gpdata->ap_wakeup_bp, 0);
- suspend_int = 0;
- }
-
-}
-
-static DECLARE_DELAYED_WORK(wakeup_work, do_wakeup);
-static irqreturn_t detect_irq_handler(int irq, void *dev_id)
-{
- if(do_wakeup_irq)
- {
- do_wakeup_irq = 0;
- // MODEMDBG("%s[%d]: %s\n", __FILE__, __LINE__, __FUNCTION__);
- wake_lock_timeout(&modem_wakelock, 10 * HZ);
- schedule_delayed_work(&wakeup_work, 2*HZ);
- }
- return IRQ_HANDLED;
-}
-static int modem_poweron_off(int on_off)
-{
- struct rk29_mu509_data *pdata = gpdata;
- if(on_off)
- {
- gpio_set_value(pdata->bp_reset, GPIO_HIGH);
- msleep(100);
- gpio_set_value(pdata->bp_reset, GPIO_LOW);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- msleep(1000);
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- msleep(700);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- gpio_set_value(pdata->ap_wakeup_bp, GPIO_LOW);
- }
- else
- {
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- msleep(2500);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- }
- return 0;
-}
-static int mu509_open(struct inode *inode, struct file *file)
-{
- struct rk29_mu509_data *pdata = gpdata;
- device_init_wakeup(pdata->dev, 1);
- return 0;
-}
-
-static int mu509_release(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-static long mu509_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- struct rk29_mu509_data *pdata = gpdata;
- switch(cmd)
- {
- case MU509_RESET:
- gpio_set_value(pdata->bp_reset, GPIO_HIGH);
- msleep(100);
- gpio_set_value(pdata->bp_reset, GPIO_LOW);
- msleep(100);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- msleep(1000);
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- msleep(700);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- gpio_set_value(pdata->ap_wakeup_bp, GPIO_LOW);
- break;
- default:
- break;
- }
- return 0;
-}
-
-static struct file_operations mu509_fops = {
- .owner = THIS_MODULE,
- .open = mu509_open,
- .release = mu509_release,
- .unlocked_ioctl = mu509_ioctl
-};
-
-static struct miscdevice mu509_misc = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = MODEM_NAME,
- .fops = &mu509_fops
-};
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37))
-static ssize_t modem_status_read(struct class *cls, struct class_attribute *attr, char *_buf)
-#else
-static ssize_t modem_status_read(struct class *cls, char *_buf)
-#endif
-{
-
- return sprintf(_buf, "%d\n", modem_status);
-
-}
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37))
-static ssize_t modem_status_write(struct class *cls, struct class_attribute *attr, const char *_buf, size_t _count)
-#else
-static ssize_t modem_status_write(struct class *cls, const char *_buf, size_t _count)
-#endif
-{
- int new_state = simple_strtoul(_buf, NULL, 16);
- if(new_state == modem_status) return _count;
- if (new_state == 1){
- printk("%s, c(%d), open modem \n", __FUNCTION__, new_state);
- modem_poweron_off(1);
- }else if(new_state == 0){
- printk("%s, c(%d), close modem \n", __FUNCTION__, new_state);
- modem_poweron_off(0);
- }else{
- printk("%s, invalid parameter \n", __FUNCTION__);
- }
- modem_status = new_state;
- return _count;
-}
-static CLASS_ATTR(modem_status, 0777, modem_status_read, modem_status_write);
-static void rk29_early_suspend(struct early_suspend *h)
-{
-
-}
-static void rk29_early_resume(struct early_suspend *h)
-{
- if(suspend_int)
- {
- gpio_set_value(gpdata->ap_wakeup_bp, 0);
- suspend_int = 0;
- }
-}
-
-static struct early_suspend mu509_early_suspend = {
- .suspend = rk29_early_suspend,
- .resume = rk29_early_resume,
- .level = EARLY_SUSPEND_LEVEL_DISABLE_FB - 1,
- };
-static int mu509_probe(struct platform_device *pdev)
-{
- struct rk29_mu509_data *pdata = gpdata = pdev->dev.platform_data;
- struct modem_dev *mu509_data = NULL;
- int result, irq = 0;
-
- pdata->dev = &pdev->dev;
- if(pdata->io_init)
- pdata->io_init();
-
- printk("******** mu509_probe_mu509_probe*********\n");
-
- #if 0
- rk30_mux_api_set(GPIO1A1_UART0SOUT_NAME, GPIO1A_GPIO1A4);
- result = gpio_request(RK30_PIN1_PA4, "uart1_sout");
- if (result < 0) {
-
- printk("%s: gpio_request( uart1_sout ) failed\n", __func__);
-
- }
- else {
- printk("******* uart0_sout low ( %s ) 88 ********\n", __FUNCTION__);
- gpio_set_value(RK30_PIN1_PA4, GPIO_LOW); // Make sure the uart1_rx of MU509 is low for usb autosuspend
-
- }
-
- #endif
-
-
- mu509_data = kzalloc(sizeof(struct modem_dev), GFP_KERNEL);
- if(mu509_data == NULL)
- {
- printk("failed to request mu509_data\n");
- goto err0;
- }
- platform_set_drvdata(pdev, mu509_data);
- result = gpio_request(pdata->modem_power_en,"modem_power_en");
- if(result){
- printk("failed to request modem_power_en gpio\n");
- goto err1;
- }
- gpio_set_value(pdata->modem_power_en, GPIO_HIGH);
- result = gpio_request(pdata->bp_power,"modem_power");
- if(result){
- printk("failed to request modem_power gpio\n");
- goto err2;
- }
-
-
- register_early_suspend(&mu509_early_suspend);
-
- result = gpio_request(pdata->ap_wakeup_bp, "mu509");
- if (result) {
- printk("failed to request AP_BP_WAKEUP gpio\n");
- goto err3;
- }
- irq = gpio_to_irq(pdata->bp_wakeup_ap);
- enable_irq_wake(irq);
- if(irq < 0)
- {
- gpio_free(pdata->bp_wakeup_ap);
- printk("failed to request bp_wakeup_ap\n");
- }
- result = gpio_request(pdata->bp_wakeup_ap, "bp_wakeup_ap");
- if (result < 0) {
- printk("%s: gpio_request(%d) failed\n", __func__, pdata->bp_wakeup_ap);
- }
- wake_lock_init(&modem_wakelock, WAKE_LOCK_SUSPEND, "bp_wakeup_ap");
- gpio_direction_input(pdata->bp_wakeup_ap);
- gpio_pull_updown(pdata->bp_wakeup_ap, 1);
- result = request_irq(irq, detect_irq_handler, IRQ_BB_WAKEUP_AP_TRIGGER, "bp_wakeup_ap", NULL);
- if (result < 0) {
- printk("%s: request_irq(%d) failed\n", __func__, irq);
- gpio_free(pdata->bp_wakeup_ap);
- goto err4;
- }
- enable_irq_wake(gpio_to_irq(pdata->bp_wakeup_ap));
-
- msleep(1000);
- modem_poweron_off(1);
- modem_status = 1;
-
- result = misc_register(&mu509_misc);
- if(result)
- {
- printk("misc_register err\n");
- }
- return result;
-err0:
- kfree(mu509_data);
-err1:
- gpio_free(pdata->modem_power_en);
-err2:
- gpio_free(pdata->bp_power);
-err3:
- gpio_free(pdata->ap_wakeup_bp);
-err4:
- cancel_work_sync(&mu509_data->work);
- gpio_free(pdata->bp_wakeup_ap);
- return 0;
-}
-
-static int mu509_suspend(struct platform_device *pdev, pm_message_t state)
-{
- suspend_int = 1;
- do_wakeup_irq = 1;
- ap_wakeup_bp(pdev, 1);
-#if defined(CONFIG_ARCH_RK29)
- rk29_mux_api_set(GPIO1C1_UART0RTSN_SDMMC1WRITEPRT_NAME, GPIO1H_GPIO1C1);
-#endif
-#if defined(CONFIG_ARCH_RK30)
- rk30_mux_api_set(GPIO1A7_UART1RTSN_SPI0TXD_NAME, GPIO1A_GPIO1A7);
-#endif
- return 0;
-}
-
-static int mu509_resume(struct platform_device *pdev)
-{
-#if defined(CONFIG_ARCH_RK29)
- rk29_mux_api_set(GPIO1C1_UART0RTSN_SDMMC1WRITEPRT_NAME, GPIO1H_UART0_RTS_N);
-#endif
-#if defined(CONFIG_ARCH_RK30)
- rk30_mux_api_set(GPIO1A7_UART1RTSN_SPI0TXD_NAME, GPIO1A_UART1_RTS_N);
-#endif
- if(gpio_get_value(gpdata->bp_wakeup_ap))
- {
- schedule_delayed_work(&wakeup_work, 2*HZ);
- }
- return 0;
-}
-
-static void mu509_shutdown(struct platform_device *pdev)
-{
- struct rk29_mu509_data *pdata = pdev->dev.platform_data;
- struct modem_dev *mu509_data = platform_get_drvdata(pdev);
-
- modem_poweron_off(0);
- gpio_set_value(pdata->modem_power_en, GPIO_LOW);
-
- if(pdata->io_deinit)
- pdata->io_deinit();
- cancel_work_sync(&mu509_data->work);
- gpio_free(pdata->modem_power_en);
- gpio_free(pdata->bp_power);
- gpio_free(pdata->bp_reset);
- gpio_free(pdata->ap_wakeup_bp);
- gpio_free(pdata->bp_wakeup_ap);
- kfree(mu509_data);
-}
-
-static struct platform_driver mu509_driver = {
- .probe = mu509_probe,
- .shutdown = mu509_shutdown,
- .suspend = mu509_suspend,
- .resume = mu509_resume,
- .driver = {
- .name = "mu509",
- .owner = THIS_MODULE,
- },
-};
-
-static int __init mu509_init(void)
-{
- int ret ;
- modem_class = class_create(THIS_MODULE, "rk291x_modem");
- ret = class_create_file(modem_class, &class_attr_modem_status);
- if (ret)
- {
- printk("Fail to class rk291x_modem.\n");
- }
- return platform_driver_register(&mu509_driver);
-}
-
-static void __exit mu509_exit(void)
-{
- platform_driver_unregister(&mu509_driver);
- class_remove_file(modem_class, &class_attr_modem_status);
-}
-
-module_init(mu509_init);
-
-module_exit(mu509_exit);
diff --git a/drivers/misc/3g_module/mw100.c b/drivers/misc/3g_module/mw100.c
deleted file mode 100755
index 2a540af57214..000000000000
--- a/drivers/misc/3g_module/mw100.c
+++ /dev/null
@@ -1,235 +0,0 @@
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/i2c.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/input.h>
-#include <linux/platform_device.h>
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-#include <linux/miscdevice.h>
-#include <linux/circ_buf.h>
-#include <linux/interrupt.h>
-#include <linux/miscdevice.h>
-#include <mach/iomux.h>
-#include <mach/gpio.h>
-#include <linux/delay.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/wakelock.h>
-#include <linux/workqueue.h>
-#include <linux/mw100.h>
-#include <mach/iomux.h>
-#include<linux/ioctl.h>
-
-#include <linux/slab.h>
-
-MODULE_LICENSE("GPL");
-
-#ifdef DEBUG
-#define MODEMDBG(x...) printk(x)
-#else
-#define MODEMDBG(fmt,argss...)
-#endif
-
-#define MW100IO 0XA1
-#define MW_IOCTL_RESET _IO(MW100IO,0X01)
-
-#define SLEEP 1
-#define READY 0
-#define MW100_RESET 0x01
-#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_RISING
-//#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_RISING
-struct rk29_mw100_data *gpdata = NULL;
-static int bp_wakeup_ap_irq = 0;
-
-static struct wake_lock bp_wakelock;
-static bool bpstatus_irq_enable = false;
-
-static void do_wakeup(struct work_struct *work)
-{
- enable_irq(bp_wakeup_ap_irq);
-}
-
-static DECLARE_DELAYED_WORK(wakeup_work, do_wakeup);
-static irqreturn_t detect_irq_handler(int irq, void *dev_id)
-{
- wake_lock_timeout(&bp_wakelock, 10 * HZ);
-
- return IRQ_HANDLED;
-}
-
-static int mw100_open(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-static int mw100_release(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-static long mw100_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- struct rk29_mw100_data *pdata = gpdata;
- switch(cmd)
- {
- case MW_IOCTL_RESET:
- gpio_direction_output(pdata->bp_reset,GPIO_LOW);
- mdelay(120);
- gpio_set_value(pdata->bp_reset, GPIO_HIGH);
-
- break;
- default:
- break;
- }
- return 0;
-}
-
-static struct file_operations mw100_fops = {
- .owner = THIS_MODULE,
- .open = mw100_open,
- .release = mw100_release,
- .unlocked_ioctl = mw100_ioctl
-};
-
-static struct miscdevice mw100_misc = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = "mw100",
- .fops = &mw100_fops
-};
-
-static int mw100_probe(struct platform_device *pdev)
-{
- struct rk29_mw100_data *pdata = gpdata = pdev->dev.platform_data;
- struct modem_dev *mw100_data = NULL;
- int result, irq = 0;
-
- gpio_request(pdata->bp_power,"bp_power");
- gpio_request(pdata->bp_reset,"bp_reset");
- gpio_request(pdata->bp_wakeup_ap,"bp_wakeup_ap");
- gpio_request(pdata->ap_wakeup_bp,"ap_wakeup_bp");
- gpio_set_value(pdata->modem_power_en, GPIO_HIGH);
- msleep(1000);
- gpio_direction_output(pdata->bp_reset,GPIO_LOW);
- mdelay(120);
- gpio_set_value(pdata->bp_reset, GPIO_HIGH);
-
- gpio_set_value(pdata->ap_wakeup_bp, GPIO_HIGH);
- gpio_direction_output(pdata->ap_wakeup_bp,GPIO_HIGH);
-
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- gpio_direction_output(pdata->bp_power,GPIO_HIGH);
- mdelay(120);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- gpio_direction_output(pdata->bp_power,GPIO_LOW);
-
- mw100_data = kzalloc(sizeof(struct modem_dev), GFP_KERNEL);
- if(mw100_data == NULL){
- printk("failed to request mw100_data\n");
- goto err2;
- }
- platform_set_drvdata(pdev, mw100_data);
-
- gpio_direction_input(pdata->bp_wakeup_ap);
- irq = gpio_to_irq(pdata->bp_wakeup_ap);
- if(irq < 0){
- gpio_free(pdata->bp_wakeup_ap);
- printk("failed to request bp_wakeup_ap\n");
- }
-
- bp_wakeup_ap_irq = irq;
-
- result = request_irq(irq, detect_irq_handler, IRQ_BB_WAKEUP_AP_TRIGGER, "bp_wakeup_ap", NULL);
- if (result < 0) {
- printk("%s: request_irq(%d) failed\n", __func__, irq);
- gpio_free(pdata->bp_wakeup_ap);
- goto err0;
- }
-
- enable_irq_wake(bp_wakeup_ap_irq);
-
- wake_lock_init(&bp_wakelock, WAKE_LOCK_SUSPEND, "bp_resume");
-
- result = misc_register(&mw100_misc);
- if(result){
- MODEMDBG("misc_register err\n");
- }
- return result;
-err0:
- gpio_free(pdata->bp_wakeup_ap);
-err2:
- kfree(mw100_data);
- return 0;
-}
-
-static int mw100_suspend(struct platform_device *pdev, pm_message_t state)
-{
-
- struct rk29_mw100_data *pdata = pdev->dev.platform_data;
- int irq;
- gpio_set_value(pdata->ap_wakeup_bp, GPIO_LOW);
- irq = gpio_to_irq(pdata->bp_wakeup_ap);
- if (irq < 0) {
- printk("can't get pdata->bp_statue irq \n");
- }
- else
- {
- bpstatus_irq_enable = true;
- enable_irq_wake(irq);
- }
- return 0;
-}
-
-static int mw100_resume(struct platform_device *pdev)
-{
- struct rk29_mw100_data *pdata = pdev->dev.platform_data;
- int irq;
- gpio_set_value(pdata->ap_wakeup_bp, GPIO_HIGH);
- irq = gpio_to_irq(pdata->bp_wakeup_ap);
- if (irq ) {
- disable_irq_wake(irq);
- bpstatus_irq_enable = false;
- }
- return 0;
-}
-
-static void mw100_shutdown(struct platform_device *pdev)
-{
- struct rk29_mw100_data *pdata = pdev->dev.platform_data;
- struct modem_dev *mw100_data = platform_get_drvdata(pdev);
-
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- mdelay(2010);
- gpio_free(pdata->modem_power_en);
- gpio_free(pdata->bp_power);
- gpio_free(pdata->bp_reset);
- gpio_free(pdata->ap_wakeup_bp);
- gpio_free(pdata->bp_wakeup_ap);
- kfree(mw100_data);
-}
-
-static struct platform_driver mw100_driver = {
- .probe = mw100_probe,
- .shutdown = mw100_shutdown,
- .suspend = mw100_suspend,
- .resume = mw100_resume,
- .driver = {
- .name = "mw100",
- .owner = THIS_MODULE,
- },
-};
-
-static int __init mw100_init(void)
-{
- return platform_driver_register(&mw100_driver);
-}
-
-static void __exit mw100_exit(void)
-{
- platform_driver_unregister(&mw100_driver);
-}
-
-module_init(mw100_init);
-
-module_exit(mw100_exit);
diff --git a/drivers/misc/3g_module/sew868.c b/drivers/misc/3g_module/sew868.c
deleted file mode 100755
index fe4bd858ef96..000000000000
--- a/drivers/misc/3g_module/sew868.c
+++ /dev/null
@@ -1,228 +0,0 @@
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/i2c.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-#include <linux/input.h>
-#include <linux/platform_device.h>
-#include <linux/fs.h>
-#include <linux/uaccess.h>
-#include <linux/miscdevice.h>
-#include <linux/circ_buf.h>
-#include <linux/interrupt.h>
-#include <linux/miscdevice.h>
-#include <mach/iomux.h>
-#include <mach/gpio.h>
-#include <linux/delay.h>
-#include <linux/poll.h>
-#include <linux/wait.h>
-#include <linux/wakelock.h>
-#include <linux/workqueue.h>
-#include <linux/sew868.h>
-#include<linux/ioctl.h>
-#include<linux/slab.h>
-
-MODULE_LICENSE("GPL");
-
-#define DEBUG
-#ifdef DEBUG
-#define MODEMDBG(x...) printk(x)
-#else
-#define MODEMDBG(fmt,argss...)
-#endif
-#define SLEEP 1
-#define READY 0
-#define SEW868_RESET 0x01
-#define SEW868_POWON 0x02
-#define SEW868_POWOFF 0x03
-static struct wake_lock modem_wakelock;
-#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_FALLING
-//#define IRQ_BB_WAKEUP_AP_TRIGGER IRQF_TRIGGER_RISING
-struct rk30_sew868_data *gpdata = NULL;
-static int do_wakeup_irq = 0;
-
-extern void rk28_send_wakeup_key(void);
-
-static void do_wakeup(struct work_struct *work)
-{
- rk28_send_wakeup_key();
-}
-
-static DECLARE_DELAYED_WORK(wakeup_work, do_wakeup);
-static irqreturn_t detect_irq_handler(int irq, void *dev_id)
-{
- printk("%s\n", __FUNCTION__);
- if(do_wakeup_irq)
- {
- do_wakeup_irq = 0;
- wake_lock_timeout(&modem_wakelock, 10 * HZ);
- schedule_delayed_work(&wakeup_work, HZ / 10);
- }
- return IRQ_HANDLED;
-}
-static int modem_poweron_off(int on_off)
-{
- struct rk30_sew868_data *pdata = gpdata;
- if(on_off)
- {
- gpio_direction_output(pdata->bp_sys, GPIO_HIGH);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- msleep(200);//for charge
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- msleep(4000);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- msleep(200);
- }
- else
- {
- gpio_set_value(pdata->bp_power, GPIO_HIGH);
- msleep(4000);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- gpio_set_value(pdata->bp_sys, GPIO_LOW);
- msleep(50);
- gpio_set_value(pdata->bp_power, GPIO_LOW);
- }
- return 0;
-}
-static int sew868_open(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-static int sew868_release(struct inode *inode, struct file *file)
-{
- return 0;
-}
-
-static long sew868_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-{
- struct rk30_sew868_data *pdata = gpdata;
- switch(cmd)
- {
- case SEW868_RESET:
- gpio_set_value(pdata->bp_reset, GPIO_HIGH);
- mdelay(100);
- gpio_set_value(pdata->bp_reset, GPIO_LOW);
- mdelay(200);
- modem_poweron_off(1);
- break;
- case SEW868_POWON:
- modem_poweron_off(1);
- break;
- case SEW868_POWOFF:
- modem_poweron_off(0);
- break;
- default:
- break;
- }
- return 0;
-}
-
-static struct file_operations sew868_fops = {
- .owner = THIS_MODULE,
- .open = sew868_open,
- .release = sew868_release,
- .unlocked_ioctl = sew868_ioctl
-};
-
-static struct miscdevice sew868_misc = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = MODEM_NAME,
- .fops = &sew868_fops
-};
-
-static int sew868_probe(struct platform_device *pdev)
-{
- struct rk30_sew868_data *pdata = gpdata = pdev->dev.platform_data;
- struct modem_dev *sew868_data = NULL;
- int result, irq = 0;
-
- if(pdata->io_init)
- pdata->io_init();
-
- modem_poweron_off(1);
- sew868_data = kzalloc(sizeof(struct modem_dev), GFP_KERNEL);
- if(sew868_data == NULL)
- {
- printk("failed to request sew868_data\n");
- goto err1;
- }
- platform_set_drvdata(pdev, sew868_data);
-
- irq = gpio_to_irq(pdata->bp_wakeup_ap);
- if(irq < 0)
- {
- gpio_free(pdata->bp_wakeup_ap);
- printk("failed to request bp_wakeup_ap\n");
- }
-
- wake_lock_init(&modem_wakelock, WAKE_LOCK_SUSPEND, "bp_wakeup_ap");
- gpio_direction_input(pdata->bp_wakeup_ap);
- gpio_pull_updown(pdata->bp_wakeup_ap, GPIONormal);
- result = request_irq(irq, detect_irq_handler, IRQ_BB_WAKEUP_AP_TRIGGER, "bp_wakeup_ap", NULL);
- if (result < 0) {
- printk("%s: request_irq(%d) failed\n", __func__, irq);
- gpio_free(pdata->bp_wakeup_ap);
- goto err0;
- }
- enable_irq_wake(gpio_to_irq(pdata->bp_wakeup_ap));
- result = misc_register(&sew868_misc);
- if(result)
- {
- MODEMDBG("misc_register err\n");
- }
-
- return result;
-err0:
- cancel_work_sync(&sew868_data->work);
-err1:
- kfree(sew868_data);
- return 0;
-}
-
-static int sew868_suspend(struct platform_device *pdev, pm_message_t state)
-{
- do_wakeup_irq = 1;
- return 0;
-}
-
-static int sew868_resume(struct platform_device *pdev)
-{
- return 0;
-}
-
-static void sew868_shutdown(struct platform_device *pdev)
-{
- struct rk30_sew868_data *pdata = pdev->dev.platform_data;
- struct modem_dev *sew868_data = platform_get_drvdata(pdev);
- modem_poweron_off(0);
- if(pdata->io_deinit)
- pdata->io_deinit();
- cancel_work_sync(&sew868_data->work);
- kfree(sew868_data);
-}
-
-static struct platform_driver sew868_driver = {
- .probe = sew868_probe,
- .shutdown = sew868_shutdown,
- .suspend = sew868_suspend,
- .resume = sew868_resume,
- .driver = {
- .name = "sew868",
- .owner = THIS_MODULE,
- },
-};
-
-static int __init sew868_init(void)
-{
- return platform_driver_register(&sew868_driver);
-}
-
-static void __exit sew868_exit(void)
-{
- platform_driver_unregister(&sew868_driver);
-}
-
-module_init(sew868_init);
-
-module_exit(sew868_exit);