laforge has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/39447?usp=email )

Change subject: add ext power detect & dev reset
......................................................................

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(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved




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 https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/39447?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-Change-Id: Ied62450670dba2227daa96cbcd162cfe8414445a
Gerrit-Change-Number: 39447
Gerrit-PatchSet: 11
Gerrit-Owner: Hoernchen <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>

Reply via email to