usb: reset the device on usb reset if it was previously running

Usb init order is desc read -> reset-> set addr -> use device.

DADD.ADDEN is automatically cleared upon receiving a reset from the
host, at least according to the SAMD51 manual, but DADD.DADD is zero as
well (?) so it can't be used to check if usb was previously running and
the cable was pulled out and plugged in again while the device was
externally powered.
This works around this and ensures a device reset from the host leads to
a proper device restart and reinitialization in this case, there is no
state we want to keep in this case anyway.

Change-Id: I692de3dd98cfc30a010b457be87331e482632fb7
Closes: SYS#4908
1 file changed
tree: f47f9d8693b25250cf02566202fdeba736f95013
  1. ccid_common/
  2. ccid_host/
  3. contrib/
  4. sysmoOCTSIM/
  5. tests/
  6. .gitignore
  7. git-version-gen
  8. README.md
README.md

osmo-ccid-firmware - CCID implementation (not just) for firmware

This repository contains a C-language implementation of the USB CCID (Smart Card Reader) device class. The code is written in a portable fashin and can be found in the ccid_common sub-directory.

The code can be built to run as an userspace program on Linux, implementing a USB Gadget using the FunctionFS interface. For this version, see the ccid_host subdirectory.

The CCID code can also be built into a firmware for the sysmoOCTSIM 8-slot high-performance USB smart card reader.

Mailing List

Discussions related to osmo-ccid-firmware are happening on the slightly unrelated simtrace@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/simtrace for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Contributing

Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for osmo-ccid-firmware can be seen at https://gerrit.osmocom.org/#/q/project:osmo-ccid-firmware+status:open