rt_fled_info_t *rt_fled_get_info_by_name(char *name) { struct flashlight_device *flashlight_dev; flashlight_dev = find_flashlight_by_name(name?name:RT_FLED_DEVICE); if (flashlight_dev==NULL) return (rt_fled_info_t *)NULL; return flashlight_get_data(flashlight_dev); }
struct flashlight_device* sprd_get_flashlight_by_name(void) { struct flashlight_device* flash_ptr = NULL; flash_ptr = find_flashlight_by_name("rt-flash-led"); if (NULL == flash_ptr) { printk("sprd_get_flashlight_by_name: flash_ptr is PNULL \n"); return NULL; } flashlight_set_mode(flash_ptr, FLASHLIGHT_MODE_FLASH); return flash_ptr; }
static ssize_t reg_debug_write(struct file *filp, const char __user *ubuf, size_t cnt, loff_t *ppos) { struct rt_debug_st *st = filp->private_data; struct rt8547_chip *di = st->info; char lbuf[32]; int rc; long int param[5]; if (cnt > sizeof(lbuf) - 1) return -EINVAL; rc = copy_from_user(lbuf, ubuf, cnt); if (rc) return -EFAULT; lbuf[cnt] = '\0'; switch (st->id) { case RT8547_DBG_REG: rc = get_parameters(lbuf, param, 1); if ((param[0] < RT8547_FLED_REGMAX) && (rc == 0)) { if ((param[0] >= RT8547_FLED_REG0 && param[0] <= RT8547_FLED_REG3)) di->reg_addr = (unsigned char)param[0]; else rc = -EINVAL; } else rc = -EINVAL; break; case RT8547_DBG_DATA: rc = get_parameters(lbuf, param, 1); if ((param[0] <= 0xff) && (rc == 0)) { rt8547_send_data(di, di->reg_addr, (unsigned char)param[0]); } else rc = -EINVAL; break; case RT8547_DBG_FLED: if (!di->fled_dev) di->fled_dev = find_flashlight_by_name("rt-flash-led"); rc = get_parameters(lbuf, param, 1); if ((param[0] <= FLASHLIGHT_MODE_FLASH) && (rc == 0) && di->fled_dev) { switch (param[0]) { case FLASHLIGHT_MODE_TORCH: flashlight_set_torch_brightness(di->fled_dev, 2); flashlight_set_mode(di->fled_dev, FLASHLIGHT_MODE_TORCH); break; case FLASHLIGHT_MODE_FLASH: flashlight_set_strobe_timeout(di->fled_dev, 256, 256); flashlight_set_strobe_brightness(di->fled_dev, 18); flashlight_set_mode(di->fled_dev, FLASHLIGHT_MODE_FLASH); flashlight_strobe(di->fled_dev); break; case FLASHLIGHT_MODE_OFF: flashlight_set_mode(di->fled_dev, FLASHLIGHT_MODE_OFF); break; } } else rc = -EINVAL; break; default: return -EINVAL; } if (rc == 0) rc = cnt; return rc; }