int __init p3_sensors_init(void)
{
    p3_light_sensor_init();
    p3_ak8975_init();
    p3_mpu3050_init();

    if(system_rev > 0x0A) {
        i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_mpu_sensor_board_info));
    }
    else {
        i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info_rev05,
                                ARRAY_SIZE(p3_i2c_mpu_sensor_board_info_rev05));

    }
    i2c_register_board_info(12, p3_i2c_compass_sensor_board_info,
                            ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
    i2c_register_board_info(5, p3_i2c_light_sensor_board_info,
                            ARRAY_SIZE(p3_i2c_light_sensor_board_info));
#if 0 && defined(CONFIG_HC_32)

    if (system_rev >= 0x2) { /* rev0.2 */
        i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_mpu_sensor_board_info));
        i2c_register_board_info(12, p3_i2c_compass_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
        i2c_register_board_info(5, p3_i2c_light_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_light_sensor_board_info));
    } else if (system_rev >= 0x1) { /* rev0.1 */
        /* AK8975 and MPU3050 are on GEN1_I2C (bus 0) */
        /* BH1721FVC is on SW I2c (bus 5) */
        i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_mpu_sensor_board_info));
        i2c_register_board_info(0, p3_i2c_compass_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
        i2c_register_board_info(5, p3_i2c_light_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_light_sensor_board_info));
    } else if (system_rev >= 0x0) { /* rev0.0 */
        i2c_register_board_info(3, p3_i2c_compass_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
        i2c_register_board_info(5, p3_i2c_light_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_light_sensor_board_info));
    } else {
        /* on older lunchbox, AK8975 and BH1721FVC are both
         * on CAM_I2C (name in schematic), which is i2c bus 3.
         * MPU is on GEN1_I2C
         */
        i2c_register_board_info(3, p3_i2c_light_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_light_sensor_board_info));
        i2c_register_board_info(3, p3_i2c_compass_sensor_board_info,
                                ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
    }
#endif

    return 0;
}
int __init p3_sensors_init(void)
{
	p3_light_sensor_init();
	p3_ak8975_init();
	p3_mpu3050_init();

	i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info,
		ARRAY_SIZE(p3_i2c_mpu_sensor_board_info));
	i2c_register_board_info(12, p3_i2c_compass_sensor_board_info,
		ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
	i2c_register_board_info(5, p3_i2c_light_sensor_board_info,
		ARRAY_SIZE(p3_i2c_light_sensor_board_info));

	return 0;
}
int __init p3_sensors_init(void)
{
	p3_light_sensor_init();
	p3_ak8975_init();
	p3_mpu3050_init();

        if(system_rev > 0x0A){
        	i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info,
        		ARRAY_SIZE(p3_i2c_mpu_sensor_board_info));
        }
        else{
            	i2c_register_board_info(0, p3_i2c_mpu_sensor_board_info_rev05,
        		ARRAY_SIZE(p3_i2c_mpu_sensor_board_info_rev05));

        }
	i2c_register_board_info(12, p3_i2c_compass_sensor_board_info,
		ARRAY_SIZE(p3_i2c_compass_sensor_board_info));
	i2c_register_board_info(5, p3_i2c_light_sensor_board_info,
		ARRAY_SIZE(p3_i2c_light_sensor_board_info));

	return 0;
}
void p3_stmpe1801_gpio_setup_sensor(void)
{
	p3_light_sensor_init();
}