Пример #1
0
static int sec_bat_adc_ic_read(unsigned int channel)
{
	int data;
	int max_voltage;

	data = 0;
	if (system_rev == BOARD_REV02)
		max_voltage = 3300;
	else
		max_voltage = 3000;

	switch (channel) {
	case SEC_BAT_ADC_CHANNEL_CABLE_CHECK:
		data = stmpe811_adc_get_value(
			SMTPE811_CHANNEL_ADC_CHECK_1);
		data = data * max_voltage / 4096;
		break;
	case SEC_BAT_ADC_CHANNEL_FULL_CHECK:
		data = stmpe811_adc_get_value(
			SMTPE811_CHANNEL_VICHG);
		data = data * max_voltage / 4096;
		break;
	}

	return data;
}
static int sec_bat_adc_ic_read(unsigned int channel)
{
	int data;
	int max_voltage;

	data = 0;
	if (system_rev == BOARD_REV02)
		max_voltage = 3300;
	else
		max_voltage = 3000;

	switch (channel) {
	case SEC_BAT_ADC_CHANNEL_CABLE_CHECK:
		data = stmpe811_adc_get_value(
			SMTPE811_CHANNEL_ADC_CHECK_1);
		data = data * max_voltage / 4096;
#ifdef CONFIG_CAMERON_HEALTH
		if (is_cameron_health_connected)
			data = max_voltage;
#endif
		break;
	case SEC_BAT_ADC_CHANNEL_FULL_CHECK:
		data = stmpe811_adc_get_value(
			SMTPE811_CHANNEL_VICHG);
		data = data * max_voltage / 4096;
		break;
	}

	return data;
}
static int connector_detect_change(void)
{
	int i;
	u32 adc = 0, adc_sum = 0;
	u32 adc_buff[5] = {0};
	u32 mili_volt;
	u32 adc_min = 0;
	u32 adc_max = 0;

	for (i = 0; i < 5; i++) {
		/*change this reading ADC function  */
		mili_volt =  (u32)stmpe811_adc_get_value(7);
		adc_buff[i] = mili_volt;
		adc_sum += adc_buff[i];
		if (i == 0) {
			adc_min = adc_buff[0];
			adc_max = adc_buff[0];
		} else {
			if (adc_max < adc_buff[i])
				adc_max = adc_buff[i];
			else if (adc_min > adc_buff[i])
				adc_min = adc_buff[i];
		}
		msleep(20);
	}
	adc = (adc_sum - adc_max - adc_min)/3;
	ACC_CONDEV_DBG("ACCESSORY_ID : ADC value = %d\n", adc);
	return (int)adc;
}