* usb_device_state: add idle_rate, led and protocol
Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:
- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint
And a local variable that was exposed trough some indirection:
- keyboard_led_state: for the currently set indicator leds (caps lock etc.)
These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.
This reduces code duplication and centralizes the state management
across platforms and drivers.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* usb_device_state: reset protocol on reset
The usb hid specification section 7.2.6 states:
When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.
Thus on reset we should always do exactly that.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* keyboards: fix oversize warnings
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
---------
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* Clean up `DEBOUNCE` in config.h, 0-9
* Clean up `DEBOUNCE` in config.h, A
* Clean up `DEBOUNCE` in config.h, B
* Clean up `DEBOUNCE` in config.h, C
* Clean up `DEBOUNCE` in config.h, D
* Clean up `DEBOUNCE` in config.h, E
* Clean up `DEBOUNCE` in config.h, F
* Clean up `DEBOUNCE` in config.h, G
* Clean up `DEBOUNCE` in config.h, H
* Clean up `DEBOUNCE` in config.h, handwired
* Clean up `DEBOUNCE` in config.h, I
* Clean up `DEBOUNCE` in config.h, J
* Clean up `DEBOUNCE` in config.h, K
* Clean up `DEBOUNCE` in config.h, L
* Clean up `DEBOUNCE` in config.h, M
* Clean up `DEBOUNCE` in config.h, N
* Clean up `DEBOUNCE` in config.h, O
* Clean up `DEBOUNCE` in config.h, P
* Clean up `DEBOUNCE` in config.h, Q
* Clean up `DEBOUNCE` in config.h, R
* Clean up `DEBOUNCE` in config.h, S
* Clean up `DEBOUNCE` in config.h, T
* Clean up `DEBOUNCE` in config.h, U
* Clean up `DEBOUNCE` in config.h, V
* Clean up `DEBOUNCE` in config.h, W
* Clean up `DEBOUNCE` in config.h, X
* Clean up `DEBOUNCE` in config.h, Y
* Clean up `DEBOUNCE` in config.h, Z
* Remove default debounce from info.json
* Migrate non-default debounce to info.json