The ChromeOS ecosystem has a large amount of testing, both automated and manual across devices including measurement of power regressions.
It's safe to assume that any of these devices will handle USB auto-suspend appropriately. Use the script from ChromeOS https://chromium.googlesource.com/chromiumos/platform2/+/master/power_manager/udev/gen_autosuspend_rules.py to generate udev rules at build time.
This script in systemd `tools/chromeos/gen_autosuspend_rules.py` should be kept in sync with the ChromeOS version of the script.
Manually added autosuspend devices should be placed in the new template `rules/61-autosuspend-manual.rules`
b61d777abe rules: Add automatic suspend udev rules
meson.build | 3 +
rules/61-autosuspend-manual.rules | 20 ++
rules/meson.build | 9 +
tools/chromeos/gen_autosuspend_rules.py | 315 ++++++++++++++++++++++++++++++++
tools/make-autosuspend-rules.py | 14 ++
5 files changed, 361 insertions(+)