summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tmk_core/protocol/ibm4704.c185
-rw-r--r--tmk_core/protocol/ibm4704.h103
-rw-r--r--tmk_core/protocol/news.c161
-rw-r--r--tmk_core/protocol/news.h48
-rw-r--r--tmk_core/protocol/next_kbd.c219
-rw-r--r--tmk_core/protocol/next_kbd.h60
6 files changed, 0 insertions, 776 deletions
diff --git a/tmk_core/protocol/ibm4704.c b/tmk_core/protocol/ibm4704.c
deleted file mode 100644
index a19443976e..0000000000
--- a/tmk_core/protocol/ibm4704.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-Copyright 2010,2011,2012,2013 Jun WAKO <wakojun@gmail.com>
-*/
-#include <stdbool.h>
-#include <util/delay.h>
-#include "debug.h"
-#include "ring_buffer.h"
-#include "ibm4704.h"
-
-#define WAIT(stat, us, err)      \
-    do {                         \
-        if (!wait_##stat(us)) {  \
-            ibm4704_error = err; \
-            goto ERROR;          \
-        }                        \
-    } while (0)
-
-uint8_t ibm4704_error = 0;
-
-void ibm4704_init(void) {
-    inhibit();  // keep keyboard from sending
-    IBM4704_INT_INIT();
-    IBM4704_INT_ON();
-    idle();  // allow keyboard sending
-}
-
-/*
-Host to Keyboard
-----------------
-Data bits are LSB first and Parity is odd. Clock has around 60us high and 30us low part.
-
-        ____        __   __   __   __   __   __   __   __   __   ________
-Clock       \______/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/
-            ^   ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ___
-Data    ____|__/    X____X____X____X____X____X____X____X____X____X   \___
-            |  Start   0    1    2    3    4    5    6    7    P   Stop
-            Request by host
-
-Start bit:  can be long as 300-350us.
-Request:    Host pulls Clock line down to request to send a command.
-Timing:     After Request keyboard pull up Data and down Clock line to low for start bit.
-            After request host release Clock line once Data line becomes hi.
-            Host writes a bit while Clock is hi and Keyboard reads while low.
-Stop bit:   Host releases or pulls up Data line to hi after 9th clock and waits for keyboard pull down the line to lo.
-*/
-uint8_t ibm4704_send(uint8_t data) {
-    bool parity   = true;  // odd parity
-    ibm4704_error = 0;
-
-    IBM4704_INT_OFF();
-
-    /* Request to send */
-    idle();
-    clock_lo();
-
-    /* wait for Start bit(Clock:lo/Data:hi) */
-    WAIT(data_hi, 300, 0x30);
-
-    /* Data bit */
-    for (uint8_t i = 0; i < 8; i++) {
-        WAIT(clock_hi, 100, 0x40 + i);
-        if (data & (1 << i)) {
-            parity = !parity;
-            data_hi();
-        } else {
-            data_lo();
-        }
-        WAIT(clock_lo, 100, 0x48 + i);
-    }
-
-    /* Parity bit */
-    WAIT(clock_hi, 100, 0x34);
-    if (parity) {
-        data_hi();
-    } else {
-        data_lo();
-    }
-    WAIT(clock_lo, 100, 0x35);
-
-    /* Stop bit */
-    WAIT(clock_hi, 100, 0x34);
-    data_hi();
-
-    /* End */
-    WAIT(data_lo, 100, 0x36);
-
-    idle();
-    IBM4704_INT_ON();
-    return 0;
-ERROR:
-    idle();
-    if (ibm4704_error > 0x30) {
-        xprintf("S:%02X ", ibm4704_error);
-    }
-    IBM4704_INT_ON();
-    return -1;
-}
-
-/* wait forever to receive data */
-uint8_t ibm4704_recv_response(void) {
-    while (!rbuf_has_data()) {
-        _delay_ms(1);
-    }
-    return rbuf_dequeue();
-}
-
-uint8_t ibm4704_recv(void) {
-    if (rbuf_has_data()) {
-        return rbuf_dequeue();
-    } else {
-        return -1;
-    }
-}
-
-/*
-Keyboard to Host
-----------------
-Data bits are LSB first and Parity is odd. Clock has around 60us high and 30us low part.
-
-        ____       __   __   __   __   __   __   __   __   __   _______
-Clock       \_____/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/
-             ____ ____ ____ ____ ____ ____ ____ ____ ____ ____
-Data    ____/    X____X____X____X____X____X____X____X____X____X________
-            Start   0    1    2    3    4    5    6    7    P  Stop
-
-Start bit:  can be long as 300-350us.
-Inhibit:    Pull Data line down to inhibit keyboard to send.
-Timing:     Host reads bit while Clock is hi.(rising edge)
-Stop bit:   Keyboard pulls down Data line to lo after 9th clock.
-*/
-ISR(IBM4704_INT_VECT) {
-    static enum { BIT0, BIT1, BIT2, BIT3, BIT4, BIT5, BIT6, BIT7, PARITY, STOP } state = BIT0;
-    // LSB first
-    static uint8_t data = 0;
-    // Odd parity
-    static uint8_t parity = false;
-
-    ibm4704_error = 0;
-
-    switch (state) {
-        case BIT0:
-        case BIT1:
-        case BIT2:
-        case BIT3:
-        case BIT4:
-        case BIT5:
-        case BIT6:
-        case BIT7:
-            data >>= 1;
-            if (data_in()) {
-                data |= 0x80;
-                parity = !parity;
-            }
-            break;
-        case PARITY:
-            if (data_in()) {
-                parity = !parity;
-            }
-            if (!parity) goto ERROR;
-            break;
-        case STOP:
-            // Data:Low
-            WAIT(data_lo, 100, state);
-            if (!rbuf_enqueue(data)) {
-                print("rbuf: full\n");
-            }
-            ibm4704_error = IBM4704_ERR_NONE;
-            goto DONE;
-            break;
-        default:
-            goto ERROR;
-    }
-    state++;
-    goto RETURN;
-ERROR:
-    ibm4704_error = state;
-    while (ibm4704_send(0xFE)) _delay_ms(1);  // resend
-    xprintf("R:%02X%02X\n", state, data);
-DONE:
-    state  = BIT0;
-    data   = 0;
-    parity = false;
-RETURN:
-    return;
-}
diff --git a/tmk_core/protocol/ibm4704.h b/tmk_core/protocol/ibm4704.h
deleted file mode 100644
index 4f88d148b3..0000000000
--- a/tmk_core/protocol/ibm4704.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-Copyright 2014 Jun WAKO <wakojun@gmail.com>
-*/
-
-#pragma once
-
-#define IBM4704_ERR_NONE 0
-#define IBM4704_ERR_PARITY 0x70
-
-void    ibm4704_init(void);
-uint8_t ibm4704_send(uint8_t data);
-uint8_t ibm4704_recv_response(void);
-uint8_t ibm4704_recv(void);
-
-/* Check pin configuration */
-#if !(defined(IBM4704_CLOCK_PORT) && defined(IBM4704_CLOCK_PIN) && defined(IBM4704_CLOCK_DDR) && defined(IBM4704_CLOCK_BIT))
-#    error "ibm4704 clock pin configuration is required in config.h"
-#endif
-
-#if !(defined(IBM4704_DATA_PORT) && defined(IBM4704_DATA_PIN) && defined(IBM4704_DATA_DDR) && defined(IBM4704_DATA_BIT))
-#    error "ibm4704 data pin configuration is required in config.h"
-#endif
-
-/*--------------------------------------------------------------------
- * static functions
- *------------------------------------------------------------------*/
-static inline void clock_lo(void) {
-    IBM4704_CLOCK_PORT &= ~(1 << IBM4704_CLOCK_BIT);
-    IBM4704_CLOCK_DDR |= (1 << IBM4704_CLOCK_BIT);
-}
-static inline void clock_hi(void) {
-    /* input with pull up */
-    IBM4704_CLOCK_DDR &= ~(1 << IBM4704_CLOCK_BIT);
-    IBM4704_CLOCK_PORT |= (1 << IBM4704_CLOCK_BIT);
-}
-static inline bool clock_in(void) {
-    IBM4704_CLOCK_DDR &= ~(1 << IBM4704_CLOCK_BIT);
-    IBM4704_CLOCK_PORT |= (1 << IBM4704_CLOCK_BIT);
-    _delay_us(1);
-    return IBM4704_CLOCK_PIN & (1 << IBM4704_CLOCK_BIT);
-}
-static inline void data_lo(void) {
-    IBM4704_DATA_PORT &= ~(1 << IBM4704_DATA_BIT);
-    IBM4704_DATA_DDR |= (1 << IBM4704_DATA_BIT);
-}
-static inline void data_hi(void) {
-    /* input with pull up */
-    IBM4704_DATA_DDR &= ~(1 << IBM4704_DATA_BIT);
-    IBM4704_DATA_PORT |= (1 << IBM4704_DATA_BIT);
-}
-static inline bool data_in(void) {
-    IBM4704_DATA_DDR &= ~(1 << IBM4704_DATA_BIT);
-    IBM4704_DATA_PORT |= (1 << IBM4704_DATA_BIT);
-    _delay_us(1);
-    return IBM4704_DATA_PIN & (1 << IBM4704_DATA_BIT);
-}
-
-static inline uint16_t wait_clock_lo(uint16_t us) {
-    while (clock_in() && us) {
-        asm("");
-        _delay_us(1);
-        us--;
-    }
-    return us;
-}
-static inline uint16_t wait_clock_hi(uint16_t us) {
-    while (!clock_in() && us) {
-        asm("");
-        _delay_us(1);
-        us--;
-    }
-    return us;
-}
-static inline uint16_t wait_data_lo(uint16_t us) {
-    while (data_in() && us) {
-        asm("");
-        _delay_us(1);
-        us--;
-    }
-    return us;
-}
-static inline uint16_t wait_data_hi(uint16_t us) {
-    while (!data_in() && us) {
-        asm("");
-        _delay_us(1);
-        us--;
-    }
-    return us;
-}
-
-/* idle state that device can send */
-static inline void idle(void) {
-    clock_hi();
-    data_hi();
-}
-
-/* inhibit device to send
- * keyboard checks Data line on start bit(Data:hi) and it stops sending if Data line is low.
- */
-static inline void inhibit(void) {
-    clock_hi();
-    data_lo();
-}
diff --git a/tmk_core/protocol/news.c b/tmk_core/protocol/news.c
deleted file mode 100644
index 4463e8dd42..0000000000
--- a/tmk_core/protocol/news.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
-Copyright 2012 Jun WAKO <wakojun@gmail.com>
-
-This software is licensed with a Modified BSD License.
-All of this is supposed to be Free Software, Open Source, DFSG-free,
-GPL-compatible, and OK to use in both free and proprietary applications.
-Additions and corrections to this file are welcome.
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in
-  the documentation and/or other materials provided with the
-  distribution.
-
-* Neither the name of the copyright holders nor the names of
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <stdbool.h>
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include "news.h"
-
-void news_init(void) { NEWS_KBD_RX_INIT(); }
-
-// RX ring buffer
-#define RBUF_SIZE 8
-static uint8_t rbuf[RBUF_SIZE];
-static uint8_t rbuf_head = 0;
-static uint8_t rbuf_tail = 0;
-
-uint8_t news_recv(void) {
-    uint8_t data = 0;
-    if (rbuf_head == rbuf_tail) {
-        return 0;
-    }
-
-    data      = rbuf[rbuf_tail];
-    rbuf_tail = (rbuf_tail + 1) % RBUF_SIZE;
-    return data;
-}
-
-// USART RX complete interrupt
-ISR(NEWS_KBD_RX_VECT) {
-    uint8_t next = (rbuf_head + 1) % RBUF_SIZE;
-    if (next != rbuf_tail) {
-        rbuf[rbuf_head] = NEWS_KBD_RX_DATA;
-        rbuf_head       = next;
-    }
-}
-
-/*
-SONY NEWS Keyboard Protocol
-===========================
-
-Resources
----------
-    Mouse protocol of NWA-5461(Japanese)
-    http://groups.google.com/group/fj.sys.news/browse_thread/thread/a01b3e3ac6ae5b2d
-
-    SONY NEWS Info(Japanese)
-    http://katsu.watanabe.name/doc/sonynews/
-
-
-Pinouts
--------
-    EIA 232 male connector from NWP-5461
-    -------------
-    \ 1 2 3 4 5 /
-     \ 6 7 8 9 /
-      ---------
-    1 VCC
-    2 BZ(Speaker)
-    3 Keyboard Data(from keyboard MCU TxD)
-    4 NC
-    5 GND
-    6 Unknown Input(to keyboard MCU RxD via schmitt trigger)
-    7 Mouse Data(from Mouse Ext connector)
-    8 Unknown Input(to Keyboard MCU Input via diode and buffer)
-    9 FG
-    NOTE: Two LED on keyboard are controlled by pin 6,8?
-
-    EIA 232 male connector from NWP-411A
-    -------------
-    \ 1 2 3 4 5 /
-     \ 6 7 8 9 /
-      ---------
-    1 VCC
-    2 BZ(Speaker)
-    3 Keyboard Data(from keyboard MCU TxD)
-    4 NC
-    5 GND
-    6 NC
-    7 Mouse Data(from Mouse Ext connector)
-    8 NC
-    9 FG
-    NOTE: These are just from my guess and not confirmed.
-
-
-Signaling
----------
-    ~~~~~~~~~~ ____XOO0X111X222X333X444X555X666X777~~~~ ~~~~~~~
-    Idle    Start  LSB                         MSB Stop Idle
-
-    Idle:       High
-    Start bit:  Low
-    Stop bit:   High
-    Bit order:  LSB first
-
-    Baud rate:  9600
-    Interface:  TTL level(5V) UART
-
-    NOTE: This is observed on NWP-5461 with its DIP switch all OFF.
-
-
-Format
-------
-    MSB         LSB
-    7 6 5 4 3 2 1 0   bit
-    | | | | | | | |
-    | +-+-+-+-+-+-+-- scan code(00-7F)
-    +---------------- break flag: sets when released
-
-
-Scan Codes
-----------
-    SONY NEWS NWP-5461
-    ,---.   ,------------------------, ,------------------------. ,---------.
-    | 7A|   | 01 | 02 | 03 | 04 | 05 | | 06 | 07 | 08 | 09 | 0A | | 68 | 69 | ,-----------.
-    `---'   `------------------------' `------------------------' `---------' | 64| 65| 52|
-    ,-------------------------------------------------------------. ,---. ,---------------|
-    | 0B| 0C| 0D| 0E| 0F| 10| 11| 12| 13| 14| 15| 16| 17| 18|  19 | | 6A| | 4B| 4C| 4D| 4E|
-    |-------------------------------------------------------------| |---| |---------------|
-    |  1A | 1B| 1C| 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27|   | | 6B| | 4F| 50| 51| 56|
-    |---------------------------------------------------------'   | |---| |---------------|
-    |  28  | 29| 2A| 2B| 2C| 2D| 2E| 2F| 30| 31| 32| 33| 34|  35  | | 6C| | 53| 54| 55|   |
-    |-------------------------------------------------------------| |---| |-----------| 5A|
-    |  36    | 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41|   42   | | 6D| | 57| 59| 58|   |
-    |-------------------------------------------------------------| |---| |---------------|
-    | 43  | 44 | 45 |       46          |    47    | 48| 49|  4A  | | 6E| | 66| 5B| 5C| 5D|
-    `-------------------------------------------------------------' `---' `---------------'
-*/
diff --git a/tmk_core/protocol/news.h b/tmk_core/protocol/news.h
deleted file mode 100644
index 327a13856d..0000000000
--- a/tmk_core/protocol/news.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright 2012 Jun WAKO <wakojun@gmail.com>
-
-This software is licensed with a Modified BSD License.
-All of this is supposed to be Free Software, Open Source, DFSG-free,
-GPL-compatible, and OK to use in both free and proprietary applications.
-Additions and corrections to this file are welcome.
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in
-  the documentation and/or other materials provided with the
-  distribution.
-
-* Neither the name of the copyright holders nor the names of
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#pragma once
-
-/*
- * Primitive PS/2 Library for AVR
- */
-
-/* host role */
-void    news_init(void);
-uint8_t news_recv(void);
-
-/* device role */
diff --git a/tmk_core/protocol/next_kbd.c b/tmk_core/protocol/next_kbd.c
deleted file mode 100644
index 6f118e6172..0000000000
--- a/tmk_core/protocol/next_kbd.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-
-NeXT non-ADB Keyboard Protocol
-
-Copyright 2013, Benjamin Gould (bgould@github.com)
-
-Based on:
-TMK firmware code Copyright 2011,2012 Jun WAKO <wakojun@gmail.com>
-Arduino code by "Ladyada" Limor Fried (http://ladyada.net/, http://adafruit.com/), released under BSD license
-
-Timing reference thanks to http://m0115.web.fc2.com/ (dead link), http://cfile7.uf.tistory.com/image/14448E464F410BF22380BB
-Pinouts thanks to http://www.68k.org/~degs/nextkeyboard.html
-Keycodes from http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-6/src/sys/arch/next68k/dev/
-
-This software is licensed with a Modified BSD License.
-All of this is supposed to be Free Software, Open Source, DFSG-free,
-GPL-compatible, and OK to use in both free and proprietary applications.
-Additions and corrections to this file are welcome.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in
-  the documentation and/or other materials provided with the
-  distribution.
-
-* Neither the name of the copyright holders nor the names of
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <util/atomic.h>
-#include <util/delay.h>
-#include "next_kbd.h"
-#include "debug.h"
-
-static inline void     out_lo(void);
-static inline void     out_hi(void);
-static inline void     query(void);
-static inline void     reset(void);
-static inline uint32_t response(void);
-
-/* The keyboard sends signal with 50us pulse width on OUT line
- * while it seems to miss the 50us pulse on In line.
- * next_kbd_set_leds() often fails to sync LED status with 50us
- * but it works well with 51us(+1us) on TMK converter(ATMeaga32u2) at least.
- * TODO: test on Teensy and Pro Micro configuration
- */
-#define out_hi_delay(intervals)                       \
-    do {                                              \
-        out_hi();                                     \
-        _delay_us((NEXT_KBD_TIMING + 1) * intervals); \
-    } while (0);
-#define out_lo_delay(intervals)                       \
-    do {                                              \
-        out_lo();                                     \
-        _delay_us((NEXT_KBD_TIMING + 1) * intervals); \
-    } while (0);
-#define query_delay(intervals)                        \
-    do {                                              \
-        query();                                      \
-        _delay_us((NEXT_KBD_TIMING + 1) * intervals); \
-    } while (0);
-#define reset_delay(intervals)                        \
-    do {                                              \
-        reset();                                      \
-        _delay_us((NEXT_KBD_TIMING + 1) * intervals); \
-    } while (0);
-
-void next_kbd_init(void) {
-    out_hi();
-    NEXT_KBD_IN_DDR &= ~(1 << NEXT_KBD_IN_BIT);  // KBD_IN  to input
-    NEXT_KBD_IN_PORT |= (1 << NEXT_KBD_IN_BIT);  // KBD_IN  pull up
-
-    query_delay(5);
-    reset_delay(8);
-
-    query_delay(5);
-    reset_delay(8);
-}
-
-void next_kbd_set_leds(bool left, bool right) {
-    cli();
-    out_lo_delay(9);
-
-    out_hi_delay(3);
-    out_lo_delay(1);
-
-    if (left) {
-        out_hi_delay(1);
-    } else {
-        out_lo_delay(1);
-    }
-
-    if (right) {
-        out_hi_delay(1);
-    } else {
-        out_lo_delay(1);
-    }
-
-    out_lo_delay(7);
-    out_hi();
-    sei();
-}
-
-#define NEXT_KBD_READ (NEXT_KBD_IN_PIN & (1 << NEXT_KBD_IN_BIT))
-uint32_t next_kbd_recv(void) {
-    // First check to make sure that the keyboard is actually connected;
-    // if not, just return
-    // TODO: reflect the status of the keyboard in a return code
-    if (!NEXT_KBD_READ) {
-        sei();
-        return 0;
-    }
-
-    query();
-    uint32_t resp = response();
-
-    return resp;
-}
-
-static inline uint32_t response(void) {
-    cli();
-
-    // try a 5ms read; this should be called after the query method has
-    // been run so if a key is pressed we should get a response within
-    // 5ms; if not then send a reset and exit
-    uint8_t  i             = 0;
-    uint32_t data          = 0;
-    uint16_t reset_timeout = 50000;
-    while (NEXT_KBD_READ && reset_timeout) {
-        asm("");
-        _delay_us(1);
-        reset_timeout--;
-    }
-    if (!reset_timeout) {
-        reset();
-        sei();
-        return 0;
-    }
-    _delay_us(NEXT_KBD_TIMING / 2);
-    for (; i < 22; i++) {
-        if (NEXT_KBD_READ) {
-            data |= ((uint32_t)1 << i);
-            /* Note:
-             * My testing with the ATmega32u4 showed that there might
-             * something wrong with the timing here; by the end of the
-             * second data byte some of the modifiers can get bumped out
-             * to the next bit over if we just cycle through the data
-             * based on the expected interval.  There is a bit (i = 10)
-             * in the middle of the data that is always on followed by
-             * one that is always off - so we'll use that to reset our
-             * timing in case we've gotten ahead of the keyboard;
-             */
-            if (i == 10) {
-                i++;
-                while (NEXT_KBD_READ)
-                    ;
-                _delay_us(NEXT_KBD_TIMING / 2);
-            }
-        } else {
-            /* redundant - but I don't want to remove if it might screw
-             * up the timing
-             */
-            data |= ((uint32_t)0 << i);
-        }
-        _delay_us(NEXT_KBD_TIMING);
-    }
-
-    sei();
-
-    return data;
-}
-
-static inline void out_lo(void) {
-    NEXT_KBD_OUT_PORT &= ~(1 << NEXT_KBD_OUT_BIT);
-    NEXT_KBD_OUT_DDR |= (1 << NEXT_KBD_OUT_BIT);
-}
-
-static inline void out_hi(void) {
-    /* input with pull up */
-    NEXT_KBD_OUT_DDR &= ~(1 << NEXT_KBD_OUT_BIT);
-    NEXT_KBD_OUT_PORT |= (1 << NEXT_KBD_OUT_BIT);
-}
-
-static inline void query(void) {
-    out_lo_delay(5);
-    out_hi_delay(1);
-    out_lo_delay(3);
-    out_hi();
-}
-
-static inline void reset(void) {
-    out_lo_delay(1);
-    out_hi_delay(4);
-    out_lo_delay(1);
-    out_hi_delay(6);
-    out_lo_delay(10);
-    out_hi();
-}
diff --git a/tmk_core/protocol/next_kbd.h b/tmk_core/protocol/next_kbd.h
deleted file mode 100644
index 1249ebf392..0000000000
--- a/tmk_core/protocol/next_kbd.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-NeXT non-ADB Keyboard Protocol
-
-Copyright 2013, Benjamin Gould (bgould@github.com)
-
-Based on:
-TMK firmware code Copyright 2011,2012 Jun WAKO <wakojun@gmail.com>
-Arduino code by "Ladyada" Limor Fried (http://ladyada.net/, http://adafruit.com/), released under BSD license
-
-Timing reference thanks to http://m0115.web.fc2.com/ (dead link), http://cfile7.uf.tistory.com/image/14448E464F410BF22380BB
-Pinouts thanks to http://www.68k.org/~degs/nextkeyboard.html
-Keycodes from http://ftp.netbsd.org/pub/NetBSD/NetBSD-release-6/src/sys/arch/next68k/dev/
-
-This software is licensed with a Modified BSD License.
-All of this is supposed to be Free Software, Open Source, DFSG-free,
-GPL-compatible, and OK to use in both free and proprietary applications.
-Additions and corrections to this file are welcome.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in
-  the documentation and/or other materials provided with the
-  distribution.
-
-* Neither the name of the copyright holders nor the names of
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-#pragma once
-
-#include <stdbool.h>
-
-#define NEXT_KBD_KMBUS_IDLE 0x300600
-#define NEXT_KBD_TIMING 50
-
-extern uint8_t next_kbd_error;
-
-/* host role */
-void     next_kbd_init(void);
-void     next_kbd_set_leds(bool left, bool right);
-uint32_t next_kbd_recv(void);