Commit graph

175 commits

Author SHA1 Message Date
tmk
bff5cff1f2 ibmpc: ISR optimization 2021-07-06 23:24:59 +09:00
tmk
848cac6eb2 ibmpc: busy wait only first time
This is not tested well yet
2021-07-06 23:24:59 +09:00
tmk
f4f47aaee7 ibmpc: C++ class for two-interface support 2021-07-06 23:24:59 +09:00
tmk
106a18caf6 lufa: Add Boot protocol support for mouse 2021-06-29 20:36:59 +09:00
tmk
5948ea0ac6 lufa: Integrate EXTRAKEY into MOUSE interface 2021-06-29 20:36:59 +09:00
tmk
d5bdc55b17 lufa: Integrate NKRO into infterface 0
Build options for Keyboard:
NKRO_ENABLE         - NKRO shares interface 0 with Boot/6KRO
                      this can save Endpoint resources of MCU
NKRO_6KRO_ENABLE    - NKRO has its own interface
                      this is equivalent to old NKRO impl.
Otherwise           - Boot/6KRO interface 0 only
2021-06-29 20:31:44 +09:00
tmk
a532b426c4 adb: Add reset() and reset_hard() 2021-06-22 11:46:50 +09:00
tmk
c3a0141878 ibmpc: Replace unit16_t recv_data with ringbuf 2021-06-22 00:33:40 +09:00
tmk
d13ce4d06f ibmpc: Inhibit device while buffer is full 2021-06-22 00:33:40 +09:00
tmk
22b6e87f37 ibmpc: Revert 2a0471fd on ibmpc_host_send()
Restoring old recv_data can overwrite response data when the response is
multi-byte. This can happen when device responds with multiple bytes quickly,
for example Logitech MX518(PS/2) sends FA 00 in short period to F2 command
while most of devices doesn't send second byte that fast.

recv_data is cleared when calling ibmpc_host_send() you will have to
retain the data yourself before calling it. Or you have to make sure
that recv_data is empty as possible before calling the function.

Alternatively, ibmpc_host_send() can be changed to check if recv_data is
empty before seding command.
2021-06-22 00:33:40 +09:00
tmk
4ed3e40fc0 lufa: Boot support for mouse extended report #692 2021-06-22 00:02:16 +09:00
Ethan Halsall
9b77bf9295 lufa: Update mouse descriptor for 16 bit #692
Squashed commit from: https://github.com/tmk/tmk_keyboard/pull/692
2021-06-22 00:02:16 +09:00
tmk
2a0471fdc4 ibmpc: Retain recv_data across host_send() 2021-06-03 01:17:48 +09:00
tmk
67d37ef7b3 ibmpc: Retry for start bit error of Z-150 AT #661
This is fix for Zenith Z-150 AT. Root cause is still
not clear but retrying works well somehow.
https://github.com/tmk/tmk_keyboard/issues/661#issuecomment-772298392

Add checking isr_state and line state before sending data
2021-06-03 01:17:48 +09:00
tmk
0a1dcacbfd ibmpc: Fix ACK check in host_send() for Z-150 AT #661
Zenith Z-150 AT doesn't seems to place ACK signaling normally.
https://github.com/tmk/tmk_keyboard/issues/661#issue-743168434
https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige

IBM genuine PC host checks data line only, not clock on ACK. In this
case Z-150 AT ACK signaling can be handled.
http://www.halicery.com/Hardware/Intel%208042%20and%208048/8042_PS2_INTERN.TEXT (026C:)
http://halicery.com/8042/8042_1503033.TXT (0274:)

Place 'inhibit' on lines for long enough to cancel current state and
recovery from ERROR but not sure this really helps.
2021-06-03 01:17:48 +09:00
tmk
2b74203bd7 usb_usb: Update USB_Host_Shield_2.0
Fix for STALL at GET DESCRIPTOR(CONFIGURATION)
https://github.com/tmk/USB_Host_Shield_2.0/issues/4
2020-12-24 23:19:36 +09:00
tmk
7e268c8c12 ibmpc: Add adhoc fix for Z-150 AT send
This is not confirmed yet, test report is needed.
2020-11-22 21:26:54 +09:00
tmk
97782dd59e usb_hid: Update and fix USB Host Shield lib
- Fix TOGGLE Error
- Fix HUBPRE
- Update from upstream repo
2020-11-06 00:22:10 +09:00
tmk
d7548097fc usb_hid: Update arduino cores to 1.8.13 2020-11-06 00:19:34 +09:00
tmk
78e05bd172 usb_hid: Delete arduino cores 1.0.1 2020-11-06 00:18:47 +09:00
tmk
842b3f29b6 ibmpc: Fix XT reset comment and add inhibit_xt() 2020-10-27 02:33:33 +09:00
tmk
12e5a3a13e xt_usb: Fix XT soft reset
Data line should be hi while Clock line is low
https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-XT-Keyboard-Protocol#keyboard-soft-reset
2020-10-27 02:15:42 +09:00
tmk
6271878a02 vusb: Fix keyboard_protocol and keyboard_idle #547 2020-07-27 10:02:38 +09:00
tmk
12eaedf9cf ibmpc: Change timeout period: 1.0ms to 2.0ms
Timeout error *could*(not always) detects when signal sequence takes beyond 1.0ms.
Now this gives 2.0ms window at least to read signal sequence.
2020-07-05 12:46:47 +09:00
tmk
f80601db96 ibmpc: Add Z-150 AT protocol recognition
https://github.com/tmk/tmk_keyboard/wiki/IBM-PC-AT-Keyboard-Protocol#zenith-z-150-beige
2020-05-15 14:32:14 +09:00
tmk
343c32afc6 ibmpc: Fix 'Ack' check of sending data 2020-05-13 23:12:50 +09:00
tmk
54e3c239fc ibmpc: Fix AT 'request to send' signaling
Without this fix Realforce 101 PS/2 fails to receive 'set indicator'
command sometimes when pressing Caps Lock and some keys simultaneously.

before fix:
      ____     ______
clock     \___/
      ________
data          \_______
          | 100|

after fix:
      ____          __
clock     \________/
      ________
data          \_______
          | 100| 100|
2020-05-13 22:32:14 +09:00
tmk
c6a6049bc8 ibmpc_usb: Add 'protocol change detection'
for better keybaord hotswap support
2020-05-13 14:47:18 +09:00
tmk
346169c5ed ibmpc: Fix ibmpc_host_isr_clear() 2020-05-12 18:51:39 +09:00
tmk
3e801a63e4 ibmpc: Add debug code for isr_state 2020-05-12 18:50:21 +09:00
tmk
77c5017cb2 ibmpc: Fix buffer full check
recv_data should appear to as 'sstt' when it is full with two data.
Both upper and lower byte should be checked.
2020-05-12 18:28:07 +09:00
tmk
4028b200be ibmpc: Fix Timeout error
Timeout error may be recoverable but may not in some situations.
For safety it is handled as a real error to start keyboard
recognition again.
2020-05-12 18:21:40 +09:00
tmk
53d10fe247 ibmpc: Update ERR_FF, ERR_FULL handling 2020-05-11 16:13:47 +09:00
tmk
0cf9dfc888 ibmpc: Add ibmpc_isr_debug to see isr_state 2020-05-11 16:12:36 +09:00
tmk
7c3b669e6f ibmpc: Add handling for erroneous start bit XT(IBM)
This is **not perferred** if it is evitable.
It allows to read start(0) as 1 wrongly at cost of 100us wait.
2020-05-11 16:11:39 +09:00
tmk
9f04146031 lufa: Fix comment on INTERRUPT_CONTROL_ENDPOINT 2020-05-08 22:39:55 +09:00
tmk
820d96bdab core: ibmpc: Check response of set indicator command 2020-05-08 21:48:59 +09:00
tmk
27812520eb core: ibmpc: Add comments on stop bit of Z-150 AT 2020-05-08 21:46:33 +09:00
tmk
a7ccdc25b1 lufa: Add comment on INTERRUPT_CONTROL_ENDPOINT
This feature can block other executions and prevents converter
from handling signal.
2020-03-20 14:34:44 +09:00
tmk
ab16474335 lufa: Disable SOF interrupt
The interrupt takes 3us every 1ms and can prevent
signal handling of ibmpc converter.
2020-03-20 12:46:48 +09:00
tmk
f8685ce694 ibmpc: Fix debug print 2020-03-02 14:11:16 +09:00
tmk
2c9ae5ac95 ibmpc: Protocol detection between AT and XT 2020-03-02 11:04:30 +09:00
tmk
0481aa08e5 ibmpc: Check buffer full and error code FF 2020-03-02 01:48:11 +09:00
tmk
0b1fbeb135 ibmpc: Fix comments 2020-03-02 01:21:04 +09:00
tmk
b7412f6228 ibmpc: Add timeout check 2020-03-02 00:14:09 +09:00
tmk
2f640de68d ibmpc: Refactor code 2020-02-29 17:29:55 +09:00
tmk
4588ae8dac ibmpc: Fix debug print and wait time 2020-02-29 17:29:55 +09:00
tmk
9acc900ffb ibmpc: Add two-byte buffer for data received 2020-02-29 17:29:55 +09:00
tmk
e89ade52e1 ibmpc: Fix stop bit check code in ISR
removing function call makes prologue/epilogue shorter
2020-02-29 17:29:55 +09:00
tmk
a42cc4bddb ibmpc_usb: Fix hard reset code 2020-02-29 17:29:55 +09:00