コード例 #1
0
ファイル: ssp_dev.c プロジェクト: bigzz/Galaxy_S6_920F_Kernel
int initialize_mcu(struct ssp_data *data)
{
	int iRet = 0;

	clean_pending_list(data);

	iRet = get_chipid(data);
	pr_info("[SSP] MCU device ID = %d, reading ID = %d\n", DEVICE_ID, iRet);
	if (iRet != DEVICE_ID) {
		if (iRet < 0) {
			pr_err("[SSP]: %s - MCU is not working : 0x%x\n",
				__func__, iRet);
		} else {
			pr_err("[SSP]: %s - MCU identification failed\n",
				__func__);
			iRet = -ENODEV;
		}
		goto out;
	}

	iRet = set_sensor_position(data);
	if (iRet < 0) {
		pr_err("[SSP]: %s - set_sensor_position failed\n", __func__);
		goto out;
	}
	    
#ifdef CONFIG_SENSORS_MULTIPLE_GLASS_TYPE
    	iRet = set_glass_type(data);
	if (iRet < 0) {
		pr_err("[SSP]: %s - set_sensor_position failed\n", __func__);
		goto out;
	}
#endif

	data->uSensorState = get_sensor_scanning_info(data);
	if (data->uSensorState == 0) {
		pr_err("[SSP]: %s - get_sensor_scanning_info failed\n",
			__func__);
		iRet = ERROR;
		goto out;
	}

	iRet = initialize_magnetic_sensor(data);
	if (iRet < 0)
		pr_err("[SSP]: %s - initialize magnetic sensor failed\n",
			__func__);

	data->uCurFirmRev = get_firmware_rev(data);
	pr_info("[SSP] MCU Firm Rev : New = %8u\n",
		data->uCurFirmRev);

// hoi: il dan mak a
#ifndef CONFIG_SENSORS_SSP_BBD
	iRet = ssp_send_cmd(data, MSG2SSP_AP_MCU_DUMP_CHECK, 0);
#endif
out:
	return iRet;
}
コード例 #2
0
ファイル: ssp_dev.c プロジェクト: sdemills/SM-V700
static int initialize_sensors(struct ssp_data *data)
{
	int iRet;

	iRet = initialize_ssp_mcu(data);
	if (iRet < 0)
		goto err_init_mcu;
	iRet = initialize_accelerometer_sensor(data);
	if (iRet < 0)
		goto err_init_acc;
	iRet = initialize_gyroscope_sensor(data);
	if (iRet < 0)
		goto err_init_gyro;
	iRet = initialize_magnetic_sensor(data);
	if (iRet < 0)
		goto err_init_mag;
	iRet = initialize_barometer_sensor(data);
	if (iRet < 0)
		goto err_init_baro;
	iRet = initialize_proximity_sensor(data);
	if (iRet < 0)
		goto err_init_prox;
	iRet = initialize_light_sensor(data);
	if (iRet < 0)
		goto err_init_light;
	iRet = initialize_gesture_sensor(data);
	if (iRet < 0)
		goto err_init_ges;
	iRet = initialize_temphumidity_sensor(data);
	if (iRet < 0)
		goto err_init_th;

	return SUCCESS;

err_init_th:
	remove_gesture_sensor(data);
err_init_ges:
	remove_light_sensor(data);
err_init_light:
	remove_proximity_sensor(data);
err_init_prox:
	remove_barometer_sensor(data);
err_init_baro:
	remove_magnetic_sensor(data);
err_init_mag:
	remove_gyroscope_sensor(data);
err_init_gyro:
	remove_accelerometer_sensor(data);
err_init_acc:
	remove_ssp_mcu(data);
err_init_mcu:
	return ERROR;
}
コード例 #3
0
ファイル: ssp_dev.c プロジェクト: ShedrockN4/wiliteneo
int initialize_mcu(struct ssp_data *data)
{
	int iRet = 0;

	clean_pending_list(data);

	iRet = get_chipid(data);
	ssp_info("MCU device ID = %d, reading ID = %d", DEVICE_ID, iRet);
	if (iRet != DEVICE_ID) {
		if (iRet < 0) {
			ssp_errf("MCU is not working : 0x%x", iRet);
		} else {
			ssp_errf("MCU identification failed");
			iRet = -ENODEV;
		}
		goto out;
	}

	iRet = set_sensor_position(data);
	if (iRet < 0) {
		ssp_errf("set_sensor_position failed");
		goto out;
	}

#ifdef CONFIG_SENSORS_MULTIPLE_GLASS_TYPE
    	iRet = set_glass_type(data);
	if (iRet < 0) {
		pr_err("[SSP]: %s - set_sensor_position failed\n", __func__);
		goto out;
	}
#endif

	data->uSensorState = get_sensor_scanning_info(data);
	if (data->uSensorState == 0) {
		ssp_errf("get_sensor_scanning_info failed");
		iRet = ERROR;
		goto out;
	}

	iRet = initialize_magnetic_sensor(data);
	if (iRet < 0)
		ssp_errf("initialize magnetic sensor failed");

	data->uCurFirmRev = get_firmware_rev(data);
	ssp_info("MCU Firm Rev : New = %8u", data->uCurFirmRev);

out:
	return iRet;
}