~ruther/qmk_firmware

be8257f0a784a07e7dd93ecafe96c1d7774383f7 — noroadsleft 6 years ago da2eedc
[Keyboard] handwired/trackpoint: refactor and readme cleanup (#5325)

* handwired/trackpoint: refactor

- layout macro KEYMAP renamed to LAYOUT
- keymap now uses #include QMK_KEYBOARD_H

* handwired/trackpoint: readme cleanup

- fix wiring layout image URL
- update readme structure

* handwired/trackpoint: rename readme to lowercase

* handwired/trackpoint: update header files to use #pragma once
D keyboards/handwired/trackpoint/README.md => keyboards/handwired/trackpoint/README.md +0 -10
@@ 1,10 0,0 @@
# IBM Trackpoint demonstration

This is just a simple demo to show how to integrate IBM Trackpoint in QMK.

Wiring used in the demonstration:
![Wiring example](http://imgur.com/8ghG2U8)

Some documentation:
* [How to wire IBM Trackpoint](https://github.com/alonswartz/trackpoint)
* [QMK documentation](https://docs.qmk.fm/)

M keyboards/handwired/trackpoint/config.h => keyboards/handwired/trackpoint/config.h +58 -61
@@ 1,70 1,67 @@
#ifndef CONFIG_H
    #define CONFIG_H
#pragma once

    #include "config_common.h"
#include "config_common.h"

    #define VENDOR_ID       0x1234
    #define PRODUCT_ID      0x5678
    #define DEVICE_VER      0x0001
    #define MANUFACTURER    QMK
    #define PRODUCT         TRACKPOINT-DEMO
    #define DESCRIPTION     Simple demonstration for IBM Trackpoint integration
#define VENDOR_ID       0x1234
#define PRODUCT_ID      0x5678
#define DEVICE_VER      0x0001
#define MANUFACTURER    QMK
#define PRODUCT         TRACKPOINT-DEMO
#define DESCRIPTION     Simple demonstration for IBM Trackpoint integration

    #define MATRIX_ROWS 1
    #define MATRIX_COLS 3
#define MATRIX_ROWS 1
#define MATRIX_COLS 3

    #ifdef PS2_USE_USART
        #define PS2_CLOCK_PORT  PORTD
        #define PS2_CLOCK_PIN   PIND
        #define PS2_CLOCK_DDR   DDRD
        #define PS2_CLOCK_BIT   5
        #define PS2_DATA_PORT   PORTD
        #define PS2_DATA_PIN    PIND
        #define PS2_DATA_DDR    DDRD
        #define PS2_DATA_BIT    2
#ifdef PS2_USE_USART
    #define PS2_CLOCK_PORT  PORTD
    #define PS2_CLOCK_PIN   PIND
    #define PS2_CLOCK_DDR   DDRD
    #define PS2_CLOCK_BIT   5
    #define PS2_DATA_PORT   PORTD
    #define PS2_DATA_PIN    PIND
    #define PS2_DATA_DDR    DDRD
    #define PS2_DATA_BIT    2

        /* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
        /* set DDR of CLOCK as input to be slave */
        #define PS2_USART_INIT() do {   \
            PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT);   \
            PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT);     \
            UCSR1C = ((1 << UMSEL10) |  \
                      (3 << UPM10)   |  \
                      (0 << USBS1)   |  \
                      (3 << UCSZ10)  |  \
                      (0 << UCPOL1));   \
            UCSR1A = 0;                 \
            UBRR1H = 0;                 \
            UBRR1L = 0;                 \
        } while (0)
        #define PS2_USART_RX_INT_ON() do {  \
            UCSR1B = ((1 << RXCIE1) |       \
                      (1 << RXEN1));        \
        } while (0)
        #define PS2_USART_RX_POLL_ON() do { \
            UCSR1B = (1 << RXEN1);          \
        } while (0)
        #define PS2_USART_OFF() do {    \
            UCSR1C = 0;                 \
            UCSR1B &= ~((1 << RXEN1) |  \
                        (1 << TXEN1));  \
        } while (0)
        #define PS2_USART_RX_READY      (UCSR1A & (1<<RXC1))
        #define PS2_USART_RX_DATA       UDR1
        #define PS2_USART_ERROR         (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
        #define PS2_USART_RX_VECT       USART1_RX_vect
    #endif

    #define MATRIX_COL_PINS { F1, F4, F5 }
    #define MATRIX_ROW_PINS { F0 }
    #define UNUSED_PINS
    /* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */
    /* set DDR of CLOCK as input to be slave */
    #define PS2_USART_INIT() do {   \
        PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT);   \
        PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT);     \
        UCSR1C = ((1 << UMSEL10) |  \
                  (3 << UPM10)   |  \
                  (0 << USBS1)   |  \
                  (3 << UCSZ10)  |  \
                  (0 << UCPOL1));   \
        UCSR1A = 0;                 \
        UBRR1H = 0;                 \
        UBRR1L = 0;                 \
    } while (0)
    #define PS2_USART_RX_INT_ON() do {  \
        UCSR1B = ((1 << RXCIE1) |       \
                  (1 << RXEN1));        \
    } while (0)
    #define PS2_USART_RX_POLL_ON() do { \
        UCSR1B = (1 << RXEN1);          \
    } while (0)
    #define PS2_USART_OFF() do {    \
        UCSR1C = 0;                 \
        UCSR1B &= ~((1 << RXEN1) |  \
                    (1 << TXEN1));  \
    } while (0)
    #define PS2_USART_RX_READY      (UCSR1A & (1<<RXC1))
    #define PS2_USART_RX_DATA       UDR1
    #define PS2_USART_ERROR         (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1)))
    #define PS2_USART_RX_VECT       USART1_RX_vect
#endif

    /* COL2ROW or ROW2COL */
    #define DIODE_DIRECTION COL2ROW
#define MATRIX_COL_PINS { F1, F4, F5 }
#define MATRIX_ROW_PINS { F0 }
#define UNUSED_PINS

    #define DEBOUNCING_DELAY 5
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

    #define LOCKING_SUPPORT_ENABLE
    #define LOCKING_RESYNC_ENABLE
#define DEBOUNCING_DELAY 5

#endif
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE

M keyboards/handwired/trackpoint/keymaps/default/keymap.c => keyboards/handwired/trackpoint/keymaps/default/keymap.c +2 -2
@@ 1,7 1,7 @@
#include "trackpoint.h"
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = KEYMAP(
    [0] = LAYOUT(
        KC_BTN1,    KC_BTN3,    KC_BTN2 \
    )
};

A keyboards/handwired/trackpoint/readme.md => keyboards/handwired/trackpoint/readme.md +19 -0
@@ 0,0 1,19 @@
# IBM Trackpoint demonstration

This is just a simple demo to show how to integrate IBM Trackpoint in QMK.

Wiring used in the demonstration:  
![Wiring example](https://i.imgur.com/8ghG2U8.png)

Some documentation:

- [How to wire IBM Trackpoint](https://github.com/alonswartz/trackpoint)

Keyboard Maintainer: [The QMK Community](https://github.com/qmk)  
Hardware Supported: Teensy  

Make example for this keyboard (after setting up your build environment):

    make handwired/trackpoint:default

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

M keyboards/handwired/trackpoint/trackpoint.h => keyboards/handwired/trackpoint/trackpoint.h +4 -7
@@ 1,13 1,10 @@
#ifndef TRACKPOINT_H
#define TRACKPOINT_H
#pragma once

#include "quantum.h"

#define KEYMAP( \
	k00, k01, k02  \
#define LAYOUT( \
  k00, k01, k02  \
) \
{ \
	{ k00, k01, k02} \
  { k00, k01, k02} \
}

#endif