diff options
Diffstat (limited to 'board/flapjack/board.c')
-rw-r--r-- | board/flapjack/board.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/board/flapjack/board.c b/board/flapjack/board.c index 23f42c1cd4..862a6c12a4 100644 --- a/board/flapjack/board.c +++ b/board/flapjack/board.c @@ -54,6 +54,22 @@ uint16_t board_version; uint8_t oem; uint32_t sku; +int board_read_id(enum adc_channel ch, const struct mv_to_id *table, int size) +{ + int mv = adc_read_channel(ch); + int i; + + if (mv == ADC_READ_ERROR) + mv = adc_read_channel(ch); + + for (i = 0; i < size; i++) { + if (ABS(mv - table[i].median_mv) < ADC_MARGIN_MV) + return table[i].id; + } + + return ADC_READ_ERROR; +} + static void board_setup_panel(void) { uint8_t channel; |