UPSTREAM: PCI: rockchip: cleanup bit definition for PCIE_RC_CONFIG_LCS
[firefly-linux-kernel-4.4.55.git] / drivers / misc / tdsc8800.c
index d30d82ccb17ac9f4b7483c9b4cd3878ec13f1950..6db48f071b767bba138fd630fc47d5c4f1f6c2df 100755 (executable)
@@ -33,6 +33,7 @@ MODULE_LICENSE("GPL");
 
 #define SLEEP 1
 #define READY 0
+#define RESET 1
 struct rk2818_23d_data *gpdata = NULL;
 
 
@@ -64,11 +65,22 @@ static int tdsc8800_open(struct inode *inode, struct file *file)
 static int tdsc8800_release(struct inode *inode, struct file *file)
 {
        MODEMDBG("tdsc8800_release\n");
+       modem_poweron_off(0);
 
        return 0;
 }
 static long  tdsc8800_ioctl(struct file *file, unsigned int a, unsigned long b)
 {
+       switch(a){
+               case RESET:
+                       modem_poweron_off(0);
+                       msleep(1000);
+                       modem_poweron_off(1);
+                       break;
+               default:
+                       MODEMDBG("cmd error !!!\n");
+                       break;
+       }
        return 0;
 }
 
@@ -113,7 +125,7 @@ static int tdsc8800_probe(struct platform_device *pdev)
        
         gpio_direction_output(pdata->bp_power, GPIO_LOW);
 
-       gpio_set_value(pdata->bp_power, pdata->bp_reset_active_low? GPIO_LOW:GPIO_HIGH);
+       gpio_set_value(pdata->bp_power, pdata->bp_power_active_low? GPIO_LOW:GPIO_HIGH);
        result = misc_register(&tdsc8800_misc);
        if(result)
        {