From: phc Date: Mon, 25 Apr 2011 09:19:26 +0000 (+0800) Subject: RKMobileSDK:add reset ioctl for 23d X-Git-Tag: firefly_0821_release~10418 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3d91347adc7735034c71ad5a177b533df7b9866c;p=firefly-linux-kernel-4.4.55.git RKMobileSDK:add reset ioctl for 23d --- diff --git a/drivers/misc/mtk23d.c b/drivers/misc/mtk23d.c index 2faa0ab859a7..aa54011023e2 100755 --- a/drivers/misc/mtk23d.c +++ b/drivers/misc/mtk23d.c @@ -160,7 +160,21 @@ static int mtk23d_release(struct inode *inode, struct file *file) static int mtk23d_ioctl(struct inode *inode,struct file *file, unsigned int cmd, unsigned long arg) { - MODEMDBG("mtk23d_ioctl\n"); + struct rk2818_23d_data *pdata = gpdata; + + MODEMDBG("mtk23d_ioctl, cmd = %d\n", cmd); + + if(cmd == MODEM_RESET) + { + gpio_direction_output(pdata->bp_reset, pdata->bp_reset_active_low? GPIO_LOW:GPIO_HIGH); + mdelay(100); + gpio_set_value(pdata->bp_reset, pdata->bp_reset_active_low? GPIO_HIGH:GPIO_LOW); + mdelay(10); + gpio_direction_output(pdata->bp_power, pdata->bp_power_active_low? GPIO_LOW:GPIO_HIGH); + mdelay(2000); + gpio_set_value(pdata->bp_power, pdata->bp_power_active_low? GPIO_HIGH:GPIO_LOW); + } + return 0; } diff --git a/include/linux/mtk23d.h b/include/linux/mtk23d.h old mode 100644 new mode 100755 index 6be28a66497d..144c15f07b7e --- a/include/linux/mtk23d.h +++ b/include/linux/mtk23d.h @@ -1,6 +1,10 @@ #include #include #include + +#define MODEM_POWER_START 0x3 +#define MODEM_POWER_END 0x2 +#define MODEM_RESET 0x1 struct modem_dev {