/* * 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; }
/* * 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; }
/* * 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; }
/* * 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 }