Commit graph

388 commits

Author SHA1 Message Date
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
e15f35fd9b rules.mk: Allow same name between .c and .cpp 2021-07-05 00:03:15 +09:00
tmk
d14a00c44e core: Fix keymap.h header for C++ 2021-06-30 17:04:08 +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
2b07c0bd00 core: Build option: NKRO_6KRO_ENABLE 2021-06-29 20:35:24 +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
3341801f21 core: Fix ACTION_LAYER_MODS 2021-06-29 18:15:24 +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
06d354c06b core: Fix is_tap_key() #673
System and media control keys work well with
ACTION_MODS_TAP_KEY and ACTION_LAYER_TAP_KEY now.
2021-02-08 16:28:59 +09:00
Oliver Sandli
141253e63e
English correction (#668)
See #667
2021-01-30 10:37:05 +09:00
tmk
1460fbcf1c core: Update comments in keycode.h 2021-01-24 15:44:03 +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
02664fe72a core: Fix TAP_KEY(CapsLock) for MacOS #659 2020-11-07 17:18:18 +09:00
tmk
ab083c7ecf core: Clean up code of Locking key support 2020-11-07 17:17:13 +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
5c45beb89e core: Fix matrix_print() 2020-06-02 00:57:37 +09:00
tmk
3208b7e447 core: Add default impl for led_set() 2020-05-30 15:20:05 +09:00
tmk
0ab0ebf8cb core: Make TIMER0 ISR noblock
The TIMER0 ISR takes 1.5us and can affect IBMPC protocol ISR.
Add ISR_NOBLOCK to allow interrupt during TIMER0 ISR.
2020-05-22 11:52:44 +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
dd316b990f core: Add HID usage for Display Brightness Control 2020-05-11 21:58:50 +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