Example #1
0
/*
* Description :
* Input :
* Output :
*/
static ssize_t felica_cal_read(struct file *fp, char *buf, size_t count, loff_t *pos)
{
    unsigned char read_buf = 0x00;
    int rc = -1;

#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CAL] felica_cal_read - start \n");
#endif

    /* Check error */
    if(NULL == fp)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR fp \n");
        return -1;
    }

    if(NULL == buf)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR buf \n");
        return -1;
    }

    if(1 != count)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR count \n");
        return -1;
    }

    if(NULL == pos)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR file \n");
        return -1;
    }



    rc = felica_i2c_read(FELICA_I2C_REG_ADDRSS_01, &read_buf, 1);
    if(rc)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] felica_i2c_read : %d \n",rc);
        return -1;
    }

#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CAL] felica_cal : 0x%02x \n",read_buf);
#endif

    rc = copy_to_user(buf, &read_buf, count);
    if(rc)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR - copy_from_user \n");
        return -1;
    }

#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CAL] felica_cal_read - end \n");
#endif

    return 1;
}
Example #2
0
/*
 * Description:
 * Input:
 * Output:
 */
static ssize_t felica_cen_write(struct file *fp, const char *buf, size_t count, loff_t *pos)
{
  unsigned char write_buf = 0x00, read_buf = 0x00;
  int rc = -1;


  #ifdef FEATURE_DEBUG_LOW
  FELICA_DEBUG_MSG("[FELICA_CEN] felica_cen_write - start \n");
  #endif

/* Check error */
  if(NULL == fp)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR file \n");
    return -1;
  }

  if(NULL == buf)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR buf \n");
    return -1;
  }

  if(1 != count)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN]ERROR count \n");
    return -1;
  }

  if(NULL == pos)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR file \n");
    return -1;
  }

  /* copy from user data */
  rc = copy_from_user(&write_buf, buf, count);
  if(rc)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR - copy_from_user \n");
    return -1;
  }

#ifdef FEATURE_DEBUG_LOW
	FELICA_DEBUG_MSG("[FELICA_CEN] copy_from_user(%d) \n",*buf);
#endif

  /* check user data */
  if(*buf == 1)
  {
    #ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CEN] CEN = High (UNLOCK) \n");
    #endif
    write_buf = 0x81; // set unlock
  }
  else
  {
    #ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CEN] CEN = Low (LOCK) \n");
    #endif
    write_buf = 0x80; // set lock
  }

  /* read register value before writing new value */
  rc = felica_i2c_read(0x02, &read_buf, 1);
  udelay(50);

  /* write new value */
  rc = felica_i2c_write(0x02, &write_buf, 1);
  mdelay(2);

  /* read register value after writing new value */
  rc = felica_i2c_read(0x02, &read_buf, 1);
  udelay(50);

#ifdef FEATURE_DEBUG_LOW
  FELICA_DEBUG_MSG("[FELICA_CEN] felica_cen_write - end \n");
#endif

  return 1;
}
Example #3
0
/*
* Description :
* Input :
* Output :
*/
static ssize_t felica_cal_write(struct file *fp, const char *buf, size_t count, loff_t *pos)
{
    unsigned char write_buf = 0x00, read_buf = 0x00;
    int rc = -1;

#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CAL] felica_cal_write - start \n");
#endif

    /* Check error */
    if(NULL == fp)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR file \n");
        return -1;
    }

    if(NULL == buf)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR buf \n");
        return -1;
    }

    if(1 != count)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL]ERROR count \n");
        return -1;
    }

    if(NULL == pos)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR file \n");
        return -1;
    }

    /* copy from user data */
    rc = copy_from_user(&write_buf, buf, count);
    if(rc)
    {
        FELICA_DEBUG_MSG("[FELICA_CAL] ERROR - copy_from_user \n");
        return -1;
    }

#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CAL] write_buf : 0x%02x \n",write_buf);
#endif

    /* read register value before writing new value */
    rc = felica_i2c_read(FELICA_I2C_REG_ADDRSS_01, &read_buf, 1);
    udelay(50);

    /* write new value */
    write_buf = write_buf | 0x80;
    rc = felica_i2c_write(FELICA_I2C_REG_ADDRSS_01, &write_buf, 1);
    mdelay(2);

    /* read register value after writing new value */
    rc = felica_i2c_read(FELICA_I2C_REG_ADDRSS_01, &read_buf, 1);
    udelay(50);

#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CAL] felica_cal_write - end \n");
#endif

    return 1;
}
Example #4
0
/*
 * Description:
 * Input:
 * Output:
 */
static ssize_t felica_cen_read(struct file *fp, char *buf, size_t count, loff_t *pos)
{
  unsigned char read_buf = 0x00;
  int felica_cen = -1, rc = -1;


#ifdef FEATURE_DEBUG_LOW
  FELICA_DEBUG_MSG("[FELICA_CEN] felica_cen_read - start \n");
#endif

/* Check error */
  if(NULL == fp)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR fp \n");
    return -1;
  }

  if(NULL == buf)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR buf \n");
    return -1;
  }

  if(1 != count)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR count \n");
    return -1;
  }

  if(NULL == pos)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR file \n");
    return -1;
  }


  rc = felica_i2c_read(0x02, &read_buf, 1);
  if(rc)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] felica_i2c_read : %d \n",rc);
    return -1;
  }

  // check bit 7(locken)
  if(read_buf&0x01)  // unlock
  {
#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CEN] CEN = High (UNLOCK) \n");
#endif
    felica_cen = GPIO_HIGH_VALUE;
  }
  else  // lock
  {
#ifdef FEATURE_DEBUG_LOW
    FELICA_DEBUG_MSG("[FELICA_CEN] CEN = Low (LOCK) \n");
#endif
    felica_cen = GPIO_LOW_VALUE;
  }

  rc = copy_to_user(buf, &felica_cen, count);
  if(rc)
  {
    FELICA_DEBUG_MSG("[FELICA_CEN] ERROR - copy_from_user \n");
    return -1;
  }

#ifdef FEATURE_DEBUG_LOW
  FELICA_DEBUG_MSG("[FELICA_CEN] felica_cen_write - end \n");
#endif

#ifdef FELICA_FN_DEVICE_TEST
	FELICA_DEBUG_MSG("[FELICA_CEN] felica_cen_read - result_read_cen(%d) \n",result_read_cen);
	return result_read_cen;
#else
  return 1;
#endif
}