static int pn547_dev_open(struct inode *inode, struct file *filp) { struct pn547_dev *pn547_dev = i2c_get_clientdata(pn547_client); filp->private_data = pn547_dev; pn547_enable_irq(pn547_dev); pr_debug("%s : %d,%d\n", __func__, imajor(inode), iminor(inode)); return 0; }
static int pn547_dev_open(struct inode *inode, struct file *filp) { struct pn547_dev *pn547_dev = i2c_get_clientdata(pn547_client); filp->private_data = pn547_dev; #ifdef CONFIG_LGE_NFC_SET_IRQ_WAKEUP #else pn547_enable_irq(pn547_dev); #endif pr_debug("%s : %d,%d\n", __func__, imajor(inode), iminor(inode)); return 0; }
static int pn547_dev_open(struct inode *inode, struct file *filp) { struct pn547_dev *pn547_dev = container_of(filp->private_data, struct pn547_dev, pn547_device); filp->private_data = pn547_dev; pn547_enable_irq(pn547_dev); pr_err("%s : %d,%d\n", __func__, imajor(inode), iminor(inode)); return 0; }
static long pn547_dev_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { struct pn547_dev *pn547_dev = filp->private_data; unsigned long flags; switch (cmd) { case pn547_SET_PWR: if (arg == 2) { /* power on with firmware download (requires hw reset) */ dprintk(PN547_DRV_NAME ":%s power on with firmware\n", __func__); gpio_set_value(pn547_dev->ven_gpio, 1); gpio_set_value(pn547_dev->firm_gpio, 1); msleep(10); gpio_set_value(pn547_dev->ven_gpio, 0); msleep(10); gpio_set_value(pn547_dev->ven_gpio, 1); msleep(10); } else if (arg == 1) { /* power on */ pr_info(PN547_DRV_NAME ":%s power on\n", __func__); if (sPowerState == NFC_POWER_OFF) { #ifdef CONFIG_LGE_NFC_USE_PMIC pn547_change_clk(pn547_dev, CLK_PIN); #endif gpio_set_value(pn547_dev->firm_gpio, 0); gpio_set_value(pn547_dev->ven_gpio, 1); msleep(10); #ifdef CONFIG_LGE_NFC_SET_IRQ_WAKEUP pn547_enable_irq(pn547_dev); #endif spin_lock_irqsave(&pn547_dev->irq_enabled_lock, flags); //pr_err("%s NFC_POWER_ON\n", __func__); // for debug sPowerState = NFC_POWER_ON; spin_unlock_irqrestore(&pn547_dev->irq_enabled_lock, flags); } else { pr_err("%s NFC is alread On!\n", __func__); } } else if (arg == 0) { /* power off */ pr_info(PN547_DRV_NAME ":%s power off\n", __func__); if (sPowerState == NFC_POWER_ON) { #ifdef CONFIG_LGE_NFC_USE_PMIC pn547_change_clk(pn547_dev, CLK_DISABLE); #endif gpio_set_value(pn547_dev->firm_gpio, 0); gpio_set_value(pn547_dev->ven_gpio, 0); msleep(10); #ifdef CONFIG_LGE_NFC_SET_IRQ_WAKEUP pn547_disable_irq(pn547_dev); #endif spin_lock_irqsave(&pn547_dev->irq_enabled_lock, flags); if (sIsWakeLocked == true) { pr_err("%s: Release Wake_Lock\n", __func__); wake_unlock(&nfc_wake_lock); sIsWakeLocked = false; } //pr_err("%s NFC_POWER_OFF\n", __func__); // for debug sPowerState = NFC_POWER_OFF; spin_unlock_irqrestore(&pn547_dev->irq_enabled_lock, flags); } else { pr_err("%s NFC is alread Off!\n", __func__); } } else { pr_err("%s bad arg %ld\n", __func__, arg); return -EINVAL; } break; case pn547_HW_REVISION: { return pn547_get_hw_revision(); } default: pr_err("%s bad ioctl %d\n", __func__, cmd); return -EINVAL; } return 0; }