From 39285d06d5c30f2a4198721d115717063b874d64 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Mon, 10 Feb 2025 09:42:22 -0500 Subject: [PATCH] xduoox3: Rework how we detect "charging" state The "charging" status is apparently "charging needed" as it is asserted even when power is not being supplied. So first check to see if USB is connected, and if so, then check the "charging" status. Change-Id: I3050f187e0b6c9d97d25d80015b413cd02e5c3b2 --- .../mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c b/firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c index c9bcb47fcd..e724228ee0 100644 --- a/firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c +++ b/firmware/target/mips/ingenic_jz47xx/xduoo_x3/power-xduoo_x3.c @@ -29,13 +29,7 @@ /* Detect which power sources are present. */ unsigned int power_input_status(void) { - int rval = POWER_INPUT_NONE; - if(!__gpio_get_pin(PIN_USB_DET)) - rval |= POWER_INPUT_USB; - if(!__gpio_get_pin(CHARGE_STAT_GPIO)) - rval |= POWER_INPUT_USB_CHARGER; - - return rval; + return !__gpio_get_pin(PIN_USB_DET) ? POWER_INPUT_MAIN_CHARGER : POWER_INPUT_NONE; } void power_init(void) @@ -46,5 +40,5 @@ void power_init(void) bool charging_state(void) { - return (power_input_status() & POWER_INPUT_USB_CHARGER); + return power_input_status() && !__gpio_get_pin(CHARGE_STAT_GPIO); }