[Keyboard] Cleanup helix rules options (#6952)
* add temporary test shell-spript
* Use LINK_TIME_OPTIMIZATION_ENABLE instead of Link_Time_Optimization
No change in build result.
* Helix config.h use '#pragma once'
No change in build result.
* Helix helix.h,rev?/rev?.h,pico/pico.h use '#pragma once'
No change in build result.
* Use drivers/avr/pro_micro.h instead of keyboards/helix/pro_micro.h
No change in build result.
* remove keyboards/helix/{rev2|pico}/serial_config.h
No change in build result.
* 'HELIX_ROWS' macro is now referenced only in rev1/config.h and rev2/config.h.
No change in build result.
* The contents of helix/rules.mk were distributed to subdirectories.
This is a preparation to create a new subdirectory for helix code using split_common.
No change in build result.
remove 'USE_I2C = yes', 'SUBPROJECT_rev1 = no' from keyboards/helix/rules.mk.
follow code move from keyboards/helix/rules.mk to keyboards/helix/{rev1,rev2,pico}/rules.mk.
----
SRC += i2c.c
SRC += serial.c
SRC += ssd1306.c
CUSTOM_MATRIX = yes
---
* helix/{i2c.[ch], serial.[ch], ssd1306.[ch]} move into helix/local_drivers/
No change in build result.
* Simplified 'helix/pico/keymap/*/rules.mk' using KEYBOARD_LOCAL_FEATURES_MK.
No change in build result.
* add keyboards/helix/pico/local_features.mk
* add 'KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk' into keyboards/helix/pico/rules.mk
* remove HELIX_CUSTOMISE_MSG from keyboards/helix/pico/keymaps/*/rules.mk
* remove HELIX= process from keyboards/helix/pico/keymaps/*/rules.mk
* remove convert code(helix to standaerd) from keyboards/helix/pico/keymaps/*/rules.mk
* add 'include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))' into keyboards/helix/pico/keymaps/*/rules.mk
* Simplified 'helix/rev2/keymap/*/rules.mk' using KEYBOARD_LOCAL_FEATURES_MK.
No change in build result.
* add keyboards/helix/rev2/local_features.mk
* add 'KEYBOARD_LOCAL_FEATURES_MK := $(dir $(lastword $(MAKEFILE_LIST)))local_features.mk' into keyboards/helix/rev2/rules.mk
* remove HELIX_CUSTOMISE_MSG from keyboards/helix/rev2/keymaps/*/rules.mk
* remove HELIX= process from keyboards/helix/rev2/keymaps/*/rules.mk
* remove convert code(helix to standaerd) from keyboards/helix/rev2/keymaps/*/rules.mk
* add 'include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))' into keyboards/helix/rev2/keymaps/*/rules.mk
* Added helix keyboard build NEW method.
No change in build result.
## Helix build
$ make helix:default ## no oled, no backlight, no underglow
$ make helix/rev2/back:default ## no oled, with backlight, no underglow
$ make helix/rev2/under:default ## no oled, no backlight, with underglow
$ make helix/rev2/oled:default ## with oled, no backlight, not underglow
$ make helix/rev2/oled/back:default ## with oled, with backlight, no underglow
$ make helix/rev2/back/oled:default ## with oled, with backlight, no underglow
$ make helix/rev2/oled/under:default ## with oled, no backlight, with underglow
$ make helix/rev2/under/oled:default ## with oled, no backlight, with underglow
## Helix pico build
$ make helix/pico:default ## no oled, no backlight, no underglow
$ make helix/pico/back:default ## no oled, with backlight, no underglow
$ make helix/pico/under:default ## no oled, no backlight, with underglow
$ make helix/pico/oled:default ## with oled, no backlight, not underglow
* add temporary test shell-spript
* test end remove test script. Revert "add temporary test shell-spript"
This reverts commit 5dac20cd0f8b4bc192edb2313652c1635f829657.
* test end remove test script. Revert "add temporary test shell-spript"
This reverts commit ec49f63b2dc0f2b3fe8c1c36ffa615cee2f7e3ed.
* Extended the 'HELIX=' option. add keyword 'verbose', 'no_ani'.
No change in build result.
* update keyboards/helix/{rev2,pico}/keymaps/default/readme.md
* rename KEYBOARD_TOP_DIR to HELIX_TOP_DIR in rules.mk
* update keyboards/helix/{rev2,pico}/keymaps/default/readme_jp.md
* rm keyboards/helix/pico/oled/rules.mk
* update helix's readmes. All the ':avrdude' was replaced with ':flash'.
* remove F_CPU, ARCH, F_USB, INTERRUPT_CONTROL_ENDPOINT from helix/rules.mk
No change in build result.
2019-10-17 00:01:49 +06:00
|
|
|
#pragma once
|
2018-07-27 03:26:02 +06:00
|
|
|
|
|
|
|
#include "../helix.h"
|
|
|
|
|
|
|
|
#include "quantum.h"
|
|
|
|
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
//rgb led driver
|
|
|
|
#include "ws2812.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef USE_I2C
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __AVR__
|
|
|
|
#include <avr/io.h>
|
|
|
|
#include <avr/interrupt.h>
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef FLIP_HALF
|
|
|
|
// Standard Keymap
|
|
|
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
|
|
|
#define LAYOUT( \
|
|
|
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
|
|
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
|
|
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
|
|
|
L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \
|
|
|
|
) \
|
|
|
|
{ \
|
|
|
|
{ L00, L01, L02, L03, L04, L05, KC_NO }, \
|
|
|
|
{ L10, L11, L12, L13, L14, L15, KC_NO }, \
|
|
|
|
{ L20, L21, L22, L23, L24, L25, KC_NO }, \
|
|
|
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
|
|
|
{ R05, R04, R03, R02, R01, R00, KC_NO }, \
|
|
|
|
{ R15, R14, R13, R12, R11, R10, KC_NO }, \
|
|
|
|
{ R25, R24, R23, R22, R21, R20, KC_NO }, \
|
|
|
|
{ R35, R34, R33, R32, R31, R30, R36 }, \
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
// Keymap with right side flipped
|
|
|
|
// (TRRS jack on both halves are to the right)
|
|
|
|
#define LAYOUT( \
|
|
|
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
|
|
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
|
|
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
|
|
|
L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \
|
|
|
|
) \
|
|
|
|
{ \
|
|
|
|
{ L00, L01, L02, L03, L04, L05, KC_NO }, \
|
|
|
|
{ L10, L11, L12, L13, L14, L15, KC_NO }, \
|
|
|
|
{ L20, L21, L22, L23, L24, L25, KC_NO }, \
|
|
|
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
|
|
|
{ KC_NO, R00, R01, R02, R03, R04, R05 }, \
|
|
|
|
{ KC_NO, R10, R11, R12, R13, R14, R15 }, \
|
|
|
|
{ KC_NO, R20, R21, R22, R23, R24, R25 }, \
|
|
|
|
{ R36, R30, R31, R32, R33, R34, R35 }, \
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
Keyboard: Pr/helixpico add layout kc (#4686)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL
* add define USB_MAX_POWER_CONSUMPTION
* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk
rules.mk: add 4 Variables for compile control.
# Helix keyboard customize
# you can edit follows 4 Variables
# jp: 以下の4つの変数を必要に応じて編集します。
OLED_ENABLE = no # OLED_ENABLE
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define
* HELIX_ROWS define move from config.h to rules.mk
* add readme.md
* rename readme.md to readme_jp.md
* add readme.md and modify readme_jp.md
* change helix/ssd1306.c for select glcdfont.c position
* add variable LOCAL_GLCDFONT into each keymaps rules.mk
* Add iPhone/iPad LED support to Helix default keymap
* renumber _ADJUST for shrink program size
* Fix Helix i2c wrong bit rate
* add helix serial debug code
* serial debug macro move from config.h to serial.h
* helix serial.c debugging...
* refine debug macros
* add some comments
* add SELECT_SERIAL_SPEED
* add comments
* debugging sync_send/sync_recv
* add very high speed
* fix sync_send/sync_recv
* fix com. start and switch send/recv
* debug mode off
* remove debug codes
* temporary change, compiling C, C++ and ASM without -g
* helix config.h refine
* Revert "temporary change, compiling C, C++ and ASM without -g"
This reverts commit e9730cbbfd94fbcf792d992e3a1a65ad279b24d6.
* add change_reciver2sender()/change_sender2reciver()
This is a change to improve readability.
* txled, rxled off in matrix_init()
* add serial_send_packet() / serial_recive_packet()
This is a change to reduce object size.
* add serial_low() at ISR() top
* add __attribute__((always_inline)) to some functions
* modify serial_send_packet()/serial_recive_packet()
A little, object size reduction.
A little, speedup.
* add debug code to helix/serial.c
* Adjust sampling timing of serial signal being received
* add split_scomm.c/split_scomm.h and change serial.c/serial.h
serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.
* add split_scomm.c/split_scomm.h into helix/rev1
* reduce object size helix/rev2/matrix.c
* remove checksum check, add parity check
* force occur parity error for test
* parity test ok. remove test code
* change some comment & add skip code when buffer_size == 0
* serial.c: multiple types of transaction support
Add 4 bits transaction-type field at packet top.
Select Transaction Descriptor Table entry by transaction-type.
* helix serial master-slave transaction optimize
Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.
* add debug code for retry
* add comment into each config.h
* fix ISR status drop
* add a debug macro 'debug_retry_chg()'
* reduce led_test size
* remove debug code from helix/serial.c and etc.
* helix:five_rows change TAPPING_TERM value 140
* Improved compatibility with let's split of serial.c. Finish helix/serial.c improvement.
- The difference with the original let's split's serial.c
- It's high-speed about 4 times.
- Stable bi-directional data transfer. (Helix need master to slave transfer)
- serial.h was divided 2 files, serial_config.h and sereial.h
- With multiple types of transaction support, communication contents can be optimized. (NEW flexible API)
- USE OLD Simple APIs (compatible with let's split serial.c)
- files :
- serial_config.h -- hardware configuration (need include by config.h)
- serial.c/serial.h -- serial communication
- USE NEW flexible APIs. (Support multi-type transaction function.)
serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.
- files
- split_scomm.c -- communication buffer is defined in here. call by matrix.c.
- split_scomm.h -- buffer size is defined in here. include by matrix.c, split_util.c
- serial_config.h -- hardware configuration (need include by config.h)
To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION
- serial.c/serial.h -- serial communication lower layer
- NEW APIs for serial.c / serial.h (The lower layer)
// Soft Serial Transaction Descriptor
typedef struct _SSTD_t {
uint8_t *status;
uint8_t initiator2target_buffer_size;
uint8_t *initiator2target_buffer;
uint8_t target2initiator_buffer_size;
uint8_t *target2initiator_buffer;
} SSTD_t;
// initiator is transaction start side
void soft_serial_initiator_init(SSTD_t *sstd_table);
// target is interrupt accept side
void soft_serial_target_init(SSTD_t *sstd_table);
int soft_serial_transaction(int sstd_index);
int soft_serial_get_and_clean_target_status(int sstd_index);
- NEW APIs for split_scomm.c / split_scomm.h (The upper layer)
move from old serial.c the following buffer and functions
serial_slave_buffer[]
serial_master_buffer[]
void serial_master_init(void)
void serial_slave_init(void)
int serial_update_buffers(void)
define SERIAL_xxxxx_BUFFER_LENGTH move from serial_config.h to split_scomm.h
* fix comment typo
* Fix the value of helix:five_rows variable HELIX_ROWS to 5.
* led_test rules.mk some change
* Separate common parts of helix/rev2/keymaps/*/rules.mk into helix/rev2/keymaps_common.mk
* helix/rev2/keymaps/edvorakjp/rules.mk use helix/rev2/keymaps_common.mk
* Separate common parts of helix/pico/keymaps/*/rules.mk into helix/pico/keymaps_common.mk
* Helix each keymap's using rgblight mode symbol instead magic number
No change in build result.
* Helix pico keymaps: make rgblight modes selectable.
No change in build result.
* Helix rev2 keymaps: make rgblight modes selectable.
No change in build result.
* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)
* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
* Merge branch 'master' of https://github.com/qmk/qmk_firmware
* revert 955dcbc
* delete keymaps_common.mk
* add LAYOUT_kc() to keyboards/helix/pico/pico.h
2018-12-20 22:55:03 +06:00
|
|
|
#define LAYOUT_kc( \
|
|
|
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
|
|
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
|
|
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
|
|
|
L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \
|
|
|
|
) \
|
|
|
|
LAYOUT( \
|
|
|
|
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
|
|
|
|
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
|
|
|
|
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
|
|
|
|
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
|
|
|
|
)
|