laforge submitted this change.
add ext power detect & dev reset
Change-Id: Ied62450670dba2227daa96cbcd162cfe8414445a
---
M sysmoOCTSIM/main.c
M sysmoOCTSIM/usb/device/usbdc.c
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c
index afb70e9..9849298 100644
--- a/sysmoOCTSIM/main.c
+++ b/sysmoOCTSIM/main.c
@@ -324,7 +324,19 @@
}
}
+/* used to update the usb ext power dev status flag + reset the device when (un)plugging ext power */
+bool old_extpwer_state = 0;
+void init_extpower_detect(void)
+{
+ old_extpwer_state = gpio_get_pin_level(MUX_STAT);
+}
+void poll_extpower_detect(void)
+{
+ if (old_extpwer_state != gpio_get_pin_level(MUX_STAT)) {
+ NVIC_SystemReset();
+ }
+}
/***********************************************************************
* Command Line interface
@@ -516,6 +528,7 @@
get_rstcause_str(rstcause_buf);
atmel_start_init();
+ init_extpower_detect();
board_init();
usb_init();
usb_start();
@@ -578,6 +591,7 @@
while (true) { // main loop
if (delayed_usb_reset)
do_usb_res();
+ poll_extpower_detect();
command_try_recv();
poll_card_detect();
submit_next_irq();
diff --git a/sysmoOCTSIM/usb/device/usbdc.c b/sysmoOCTSIM/usb/device/usbdc.c
index 3cfd7bc..4b84937 100644
--- a/sysmoOCTSIM/usb/device/usbdc.c
+++ b/sysmoOCTSIM/usb/device/usbdc.c
@@ -35,6 +35,8 @@
#define USBDC_VERSION 0x00000001u
+extern bool old_extpwer_state;
+
/**
* \brief USB Device Core Sof Handler
*/
@@ -318,6 +320,8 @@
switch (req->bmRequestType & USB_REQT_RECIP_MASK) {
case USB_REQT_RECIP_DEVICE:
+ st = old_extpwer_state ? 0x0 : 0x1;
+ break;
case USB_REQT_RECIP_INTERFACE:
st = 0;
break;
To view, visit change 39447. To unsubscribe, or for help writing mail filters, visit settings.