Ejemplo n.º 1
0
/* sensor layout init for different board */
void sensor_layout_init(void)
{
	unsigned int sensor_type;

	sensor_type = get_sensor_type();
	switch (sensor_type) {
	case E_SENSOR_TYPE_PHONE:
		gs_platform_data.negate_x = 1;
		gs_platform_data.negate_y = 1;
		mma8452_platform_data.config_mxc_mma_position = 1;
		adxl34x_default_init.config_adxl34x_position = 0;
		compass_platform_data.config_akm_position = 3;
		l3g4200d_gyr_platform_data.negate_x = 1;
		l3g4200d_gyr_platform_data.negate_y = 1;
		break;
	case E_SENSOR_TYPE_PLATFORM:
		gs_platform_data.negate_x = 0;
		gs_platform_data.negate_y = 0;
		mma8452_platform_data.config_mxc_mma_position = 3;
		adxl34x_default_init.config_adxl34x_position = 2;
		compass_platform_data.config_akm_position = 1;
		l3g4200d_gyr_platform_data.negate_x = 0;
		l3g4200d_gyr_platform_data.negate_y = 0;
		break;
	case E_SENSOR_TYPE_PAD:
		printk("wanglin test boardid sensor,boardid %d\n",get_boardid());
		gs_platform_data.negate_x = 0;
		gs_platform_data.negate_z = 1;
		mma8452_platform_data.config_mxc_mma_position = 1;
		adxl34x_default_init.config_adxl34x_position = 6;
		compass_platform_data.config_akm_position = 7;
		l3g4200d_gyr_platform_data.negate_x = 0;
		l3g4200d_gyr_platform_data.negate_z = 1;
		break;
	case E_SENSOR_TYPE_LINK:
		printk("test boardid sensor,boardid %d\n",get_boardid());
		gs_platform_data.axis_map_x = 1;
		gs_platform_data.axis_map_y = 0;
		gs_platform_data.negate_y   = 0;
		mma8452_platform_data.config_mxc_mma_position = 1;
		adxl34x_default_init.config_adxl34x_position = 3;
		compass_platform_data.config_akm_position = 7;
		l3g4200d_gyr_platform_data.negate_x = 0;
		l3g4200d_gyr_platform_data.negate_z = 1;
	default:
		pr_err("sensor_type unsupported\n");
		break;
	}
}
static ssize_t config_boardid_read(struct file *filp,  char  __user *buffer, size_t count, loff_t *ppos)
{
	int len = 0;
	char idarray[32];
	memset(idarray, 0, 32);

	len = sprintf(idarray, "0x%02x\n", get_boardid());
	return simple_read_from_buffer(buffer, count, ppos, (void *)idarray, len);
}
Ejemplo n.º 3
0
static long boardid_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
	void __user *argp = (void __user *)arg;
	unsigned int boardid = 0;
	int ret = 0;

	switch (cmd) {
    case BOARDID_READ_DATA:
    	boardid = get_boardid();
    	pr_info("%s: get boardid : %d\n", __func__, boardid);
    	if (copy_to_user(argp, &boardid, sizeof(int))){
        	pr_err("%s: copy_to_user error\n", __func__);
            ret = -EFAULT;
        }
    	break;
    default:
		pr_err("%s: invalid command %d\n", __func__, _IOC_NR(cmd));
    	break;
    }

    return ret;
}