diff options
-rw-r--r-- | board/samus/board.c | 10 | ||||
-rw-r--r-- | board/samus/board.h | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/board/samus/board.c b/board/samus/board.c index 5961a937c9..753f71e9ee 100644 --- a/board/samus/board.c +++ b/board/samus/board.c @@ -73,7 +73,6 @@ const struct gpio_info gpio_list[] = { {"USB1_STATUS_L", LM4_GPIO_E, (1<<6), GPIO_INPUT, NULL}, {"USB2_OC_L", LM4_GPIO_E, (1<<0), GPIO_INPUT, NULL}, {"USB2_STATUS_L", LM4_GPIO_D, (1<<7), GPIO_INPUT, NULL}, - {"BAT_DETECT_L", LM4_GPIO_B, (1<<4), GPIO_INPUT, NULL}, /* Not yet sure if this will need to be handled as an interrupt */ {"CAPSENSE_INT_L", LM4_GPIO_N, (1<<0), GPIO_INPUT, NULL}, @@ -176,6 +175,13 @@ const struct adc_t adc_channels[] = { */ {"ChargerCurrent", LM4_ADC_SEQ1, 33000, ADC_READ_MAX * 4, 0, LM4_AIN(11), 0x06 /* IE0 | END0 */, LM4_GPIO_B, (1<<5)}, + + /* FIXME: We don't know what to expect here, but it's an analog input + * that's pulled high. We're using it as a battery presence indicator + * for now. We'll return just 0 - ADC_READ_MAX for now. + */ + {"BatteryTemp", LM4_ADC_SEQ2, 1, 1, 0, + LM4_AIN(10), 0x06 /* IE0 | END0 */, LM4_GPIO_B, (1<<4)}, }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); @@ -278,5 +284,5 @@ struct keyboard_scan_config keyscan_config = { */ int battery_is_connected(void) { - return (gpio_get_level(GPIO_BAT_DETECT_L) == 0); + return adc_read_channel(ADC_CH_BAT_TEMP) < (9 * ADC_READ_MAX / 10); } diff --git a/board/samus/board.h b/board/samus/board.h index 4f20537c36..a05f22a70f 100644 --- a/board/samus/board.h +++ b/board/samus/board.h @@ -114,7 +114,6 @@ enum gpio_signal { GPIO_USB1_STATUS_L, /* USB charger port 1 status output */ GPIO_USB2_OC_L, /* USB port overcurrent warning */ GPIO_USB2_STATUS_L, /* USB charger port 2 status output */ - GPIO_BAT_DETECT_L, /* Battery detect from BAT_TEMP */ GPIO_CAPSENSE_INT_L, /* Capsense interrupt (through EC_WAKE_L) */ /* Outputs */ @@ -186,6 +185,8 @@ enum adc_channel { ADC_CH_EC_TEMP = 0, /* Charger current in mA. */ ADC_CH_CHARGER_CURRENT, + /* BAT_TEMP */ + ADC_CH_BAT_TEMP, ADC_CH_COUNT }; |