diff --git a/firmware/target/arm/imx233/power-imx233.c b/firmware/target/arm/imx233/power-imx233.c index 9972a21e69..fa2f8488cf 100644 --- a/firmware/target/arm/imx233/power-imx233.c +++ b/firmware/target/arm/imx233/power-imx233.c @@ -84,6 +84,15 @@ static struct current_step_bit_t g_4p2_charge_limit_bits[] = #define USE_VBUSVALID #endif +bool imx233_power_usb_detect(void) +{ +#ifdef USE_VBUSVALID + return BF_RD(POWER_STS, VBUSVALID); +#else + return BF_RD(POWER_STS, VDD5V_GT_VDDIO); +#endif +} + void INT_VDD5V(void) { #ifdef USE_VBUSVALID diff --git a/firmware/target/arm/imx233/power-imx233.h b/firmware/target/arm/imx233/power-imx233.h index d33ca20333..59ffcd37a2 100644 --- a/firmware/target/arm/imx233/power-imx233.h +++ b/firmware/target/arm/imx233/power-imx233.h @@ -82,6 +82,7 @@ void imx233_power_init(void); void imx233_power_set_charge_current(unsigned current); /* in mA */ void imx233_power_set_stop_current(unsigned current); /* in mA */ void imx233_power_enable_batadj(bool enable); +bool imx233_power_usb_detect(void); enum imx233_regulator_t { diff --git a/firmware/target/arm/imx233/usb-imx233.c b/firmware/target/arm/imx233/usb-imx233.c index a4099ceecf..05e412c77a 100644 --- a/firmware/target/arm/imx233/usb-imx233.c +++ b/firmware/target/arm/imx233/usb-imx233.c @@ -61,7 +61,7 @@ void usb_init_device(void) int usb_detect(void) { - return BF_RD(POWER_STS, VBUSVALID) ? USB_INSERTED : USB_EXTRACTED; + return imx233_power_usb_detect() ? USB_INSERTED : USB_EXTRACTED; } void usb_enable(bool on)