]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - tmk_core/protocol/adb.c
usb_usb: usb_hid: Change for USB_Host_Shield_2.0
[max/tmk_keyboard.git] / tmk_core / protocol / adb.c
index 3f4e14bac47bf69f25d96b8400ff59ed91e0245d..164255efaeccf25b63c2a0cbbafb3d890b4317e8 100644 (file)
@@ -86,9 +86,9 @@ bool adb_host_psw(void)
  * <http://geekhack.org/index.php?topic=14290.msg1068919#msg1068919>
  * <http://geekhack.org/index.php?topic=14290.msg1070139#msg1070139>
  */
-uint16_t adb_host_kbd_recv(void)
+uint16_t adb_host_kbd_recv(uint8_t addr)
 {
-    return adb_host_talk(ADB_ADDR_KEYBOARD, ADB_REG_0);
+    return adb_host_talk(addr, ADB_REG_0);
 }
 
 #ifdef ADB_MOUSE_ENABLE
@@ -156,11 +156,11 @@ error:
     return -n;
 }
 
-void adb_host_listen(uint8_t cmd, uint8_t data_h, uint8_t data_l)
+void adb_host_listen(uint8_t addr, uint8_t reg, uint8_t data_h, uint8_t data_l)
 {
     cli();
     attention();
-    send_byte(cmd);
+    send_byte((addr<<4) | (ADB_CMD_LISTEN<<2) | reg);
     place_bit0();               // Stopbit(0)
     _delay_us(200);             // Tlt/Stop to Start
     place_bit1();               // Startbit(1)
@@ -171,12 +171,12 @@ void adb_host_listen(uint8_t cmd, uint8_t data_h, uint8_t data_l)
 }
 
 // send state of LEDs
-void adb_host_kbd_led(uint8_t led)
+void adb_host_kbd_led(uint8_t addr, uint8_t led)
 {
-    // Addr:Keyboard(0010), Cmd:Listen(10), Register2(10)
-    // send upper byte (not used)
-    // send lower byte (bit2: ScrollLock, bit1: CapsLock, bit0:
-    adb_host_listen(0x2A,0,led&0x07);
+    // Listen Register2
+    //  upper byte: not used
+    //  lower byte: bit2=ScrollLock, bit1=CapsLock, bit0=NumLock
+    adb_host_listen(addr, 2, 0, led & 0x07);
 }
 
 
@@ -325,7 +325,7 @@ Commands
 
     bits                commands
     ------------------------------------------------------
-    - - - - 0 0 0 0     Send Request(reset all devices)
+    - - - - 0 0 0 0     Send Reset(reset all devices)
     A A A A 0 0 0 1     Flush(reset a device)
     - - - - 0 0 1 0     Reserved
     - - - - 0 0 1 1     Reserved
@@ -433,6 +433,16 @@ Keyboard LEDs & state of keys(Register2)
      | +-----------------------------   Delete
      +-------------------------------   Reserved
 
+Address, Handler ID and bits(Register3)
+    1514131211 . . 8 7 . . . . . . 0
+     | | | | | | | | | | | | | | | |
+     | | | | | | | | +-+-+-+-+-+-+-+-   Handler ID
+     | | | | +-+-+-+-----------------   Address
+     | | | +-------------------------   0
+     | | +---------------------------   Service request enable(1 = enabled)
+     | +-----------------------------   Exceptional event(alwyas 1 if not used)
+     +-------------------------------   0
+
 ADB Bit Cells
     bit cell time: 70-130us
     low part of bit0: 60-70% of bit cell