summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/keyborg/touch_scan.c10
-rw-r--r--board/keyborg/touch_scan.h9
2 files changed, 9 insertions, 10 deletions
diff --git a/board/keyborg/touch_scan.c b/board/keyborg/touch_scan.c
index 3b3a7a84f1..5cc3f25a05 100644
--- a/board/keyborg/touch_scan.c
+++ b/board/keyborg/touch_scan.c
@@ -91,12 +91,12 @@ static void start_adc_sample(int id, int wait_cycle)
" bne 1b\n" :: "r"(wait_cycle / 3));
}
-#if ADC_SMPL_CYCLE_2 < ADC_CONV_CYCLE_2 * 2
+#if ADC_SMPL_CYCLE_2 < ADC_QUNTZ_CYCLE_2
static uint16_t flush_adc(int id)
{
while (!(STM32_ADC_SR(id) & (1 << 1)))
;
- return STM32_ADC_DR(id) & ADC_READ_MAX;
+ return STM32_ADC_DR(id);
}
#else
#define flush_adc(x) STM32_ADC_DR(x)
@@ -120,14 +120,14 @@ void scan_column(uint8_t *data)
int i;
STM32_PMSE_MRCR = mrcr_list[0];
- start_adc_sample(0, ADC_LONG_CPU_CYCLE);
+ start_adc_sample(0, ADC_SMPL_CPU_CYCLE);
STM32_PMSE_MRCR = mrcr_list[1];
- start_adc_sample(1, ADC_LONG_CPU_CYCLE);
+ start_adc_sample(1, ADC_SMPL_CPU_CYCLE);
for (i = 2; i < ROW_COUNT; ++i) {
data[i - 2] = ADC_DATA_WINDOW(flush_adc(i & 1));
STM32_PMSE_MRCR = mrcr_list[i];
- start_adc_sample(i & 1, ADC_SHORT_CPU_CYCLE);
+ start_adc_sample(i & 1, ADC_SMPL_CPU_CYCLE);
}
while (!(STM32_ADC_SR(ROW_COUNT & 1) & (1 << 1)))
diff --git a/board/keyborg/touch_scan.h b/board/keyborg/touch_scan.h
index 022c2b7d3e..e3f694a1da 100644
--- a/board/keyborg/touch_scan.h
+++ b/board/keyborg/touch_scan.h
@@ -22,13 +22,12 @@ enum pin_type {
#define THRESHOLD 35
/* ADC speed */
-#define ADC_SMPR_VAL 0x3 /* 28.5 cycles */
-#define ADC_SMPL_CYCLE_2 57
-#define ADC_CONV_CYCLE_2 25
+#define ADC_SMPR_VAL 0x2 /* 13.5 cycles */
+#define ADC_SMPL_CYCLE_2 27
+#define ADC_QUNTZ_CYCLE_2 25 /* Quantization always takes 12.5 cycles */
/* CPU clock is 4 times faster than ADC clock */
-#define ADC_LONG_CPU_CYCLE (ADC_SMPL_CYCLE_2 * 2)
-#define ADC_SHORT_CPU_CYCLE ((ADC_SMPL_CYCLE_2 - ADC_CONV_CYCLE_2) * 2)
+#define ADC_SMPL_CPU_CYCLE (ADC_SMPL_CYCLE_2 * 2)
struct ts_pin {
uint8_t port_id; /* GPIO_A = 0, GPIO_B = 1, ... */