summaryrefslogtreecommitdiffstats
path: root/quantum/split_common
Commit message (Collapse)AuthorAgeFilesLines
* format code according to conventions [skip ci]QMK Bot2020-05-211-2/+2
|
* Slight speed increases for matrix scanning (#9150)Joel Challis2020-05-211-16/+25
|
* Use LUFA funcs for split_util (#8594)Joel Challis2020-05-211-21/+44
|
* Run clang-format manually to fix recently changed files (#8552)Joel Challis2020-03-251-2/+2
|
* Add Word Per Minute calculation feature (#8054)brickbots2020-03-231-0/+27
| | | | | | | | | | | | | | | | | | | | | * Add Word Per Minute calculation feature * Fix copyright info * Remove header from quantum.c, setup overloadable keycode inclusion for WPM, update docs * Simplify logic for keycode filtering * Adding link from summary to wpm_feature info * Update docs/feature_wpm.md Typo in function prototype example in docs Co-Authored-By: James Young <18669334+noroadsleft@users.noreply.github.com> * Add WPM transport via i2c Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
* Split - Avoid race condition during matrix_init_quantum (#8235)Joel Challis2020-02-253-17/+19
| | | | | | * Avoid race condition during matrix_init_quantum * spelling is hard
* Allow 30us matrix delay to be keyboard/user overridable (#8216)Joel Challis2020-02-211-3/+2
| | | | | | | | * Allow 30us matrix delay to be configurable via define * Move wait logic to matrix_common * Move wait logic to matrix_common - fix wait includes
* Align split_common/matrix.c with matrix.c (#8153)Joel Challis2020-02-121-8/+11
|
* Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)Joel Challis2020-02-041-4/+8
| | | | | | | | | | * Update SPLIT_USB_TIMEOUT -500ms * Align keyboard level SPLIT_USB_TIMEOUT defaults * Align keyboard level SPLIT_USB_TIMEOUT_POLL * Review fixes
* Update split serial code to use driver pattern (#7990)Joel Challis2020-01-242-570/+0
| | | | | | * Move avr serial code to drivers * Update src+= serial.c to driver pattern
* Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915)fauxpark2020-01-191-2/+8
| | | | | | | | | | * Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards * Define diode direction for failing boards * Matching parentheses * Put onekey diode directions in top level config
* Migrate more custom matrix 'lite' code to core (#7863)Joel Challis2020-01-151-8/+2
| | | | | | | | * Migrate more custom matrix lite code to core * Align function names * fix up MATRIX_MASKED
* Move some common matrix code to a common location (#7699)Joel Challis2020-01-042-92/+29
| | | | | | | | | | * Move some common matrix code to a common location * Refactor some 'custom_matrix_helper' logic to use custom matrix lite * Fix build for kinesis/stapelberg - abuse of vpath was picking up matrix.c from core when custom matrix was enabled * Add validation for CUSTOM_MATRIX
* Disable usb on slave half to resolve random 'lockup' (#7649)Joel Challis2019-12-161-1/+3
|
* Remove check for EH define (#7525)Danny2019-12-023-3/+3
| | | Its use in lets_split_eh was factored out in https://github.com/qmk/qmk_firmware/pull/6411
* Remove duplicate pro_micro.h (#7246)fauxpark2019-11-031-1/+0
|
* SPLIT - Remove NO_USB_STARTUP_CHECK requirement for usb detection (#7053)Joel Challis2019-10-171-0/+6
| | | | | | | | | | * Avoid NO_USB_STARTUP_CHECK - Disable USB as checks seem to enable it somehow * Update quantum/split_common/split_util.c Co-Authored-By: fauxpark <fauxpark@gmail.com> * Also remove NO_USB_STARTUP_CHECK from vitamins_included/rev1
* ARM split - detect USB to select master/slave (#6424)Joel Challis2019-10-113-9/+29
| | | | | | | | | | | | * Initial split refactor to allow usb master detection * Add split USB detect docs * Add SPLIT_USB_DETECT demo mode limitation * fix rebase issues * clang-format
* ARM split - Add bootmagic/magic keycodes for setting handedness (#6545)Joel Challis2019-09-241-2/+1
| | | | | | | | | | * Add docs on bootmagic/magic keycodes for setting handedness * Clang format fixes * Maintain backwards compatibility * Maintain backwards compatibility
* clang-format changesskullY2019-08-307-764/+716
|
* AVR GPIO macro defines more readable (#5937)Takeshi ISHII2019-08-211-18/+13
| | | | | | | | | | | | | | | | | | | | | | * A little easier to read the definition of the GPIO control macro for AVR. No change in build result. * Changed to not use GNU statement expression extension. No change in build result. * Modified split_common/serial.c to use qmk_firmware standard GPIO control macro. No change in build result. * fix PE6 -> E6 * remove some space * add some comment to config_common.h * Changed split_common/serial.c to use a newer version of qmk_firmware standard GPIO control macro.
* [Split] Add config option for DIRECT_PINS_RIGHT (#6479)Garrett Singer2019-08-031-0/+8
| | | Adds support for different direct pin mappings on the halves of a split keyboard.
* Fix MATRIX_X_PINS_RIGHT ARM compilation (#6395)Joel Challis2019-07-231-2/+2
|
* Merge pull request #6264 from zvecr/split_master_checkDanny2019-07-201-0/+1
|\ | | | | Allow board to override split keyboard master check
| * Small fix to allow board to override split keyboard master checkzvecr2019-07-051-0/+1
| |
* | Remove the need to specify NUM_OF_ENCODERS for the Encoder feature (#6328)Drashna Jaelre2019-07-161-0/+2
|/ | | | | | | | | | | | * Remove the need to set NUM_OF_ENCODERS Instead, calculate the size of the array, and use that instead * Add hack for split common support * Remove NUM_OF_ENCODERS from keyboard config Can be reverted, if needed
* Set default I2C clock speed to 100kHz for split_common (#6161)Danny2019-06-191-0/+4
| | | | | | | | * Set default I2C clock rate for split_common boards to 100kHz Default from I2C driver is 400kHz. * Update documentation for setting I2C clock speed
* Fix compilation error when I2C and encoder is enabled for split codeDanny Nguyen2019-06-021-1/+1
|
* [Split] fix split_common i2c backlight disabling (#3886)Rainer Clasen2019-05-071-3/+2
| | | | | | | slave backlight was always on - as get_backlight_level() doesn't indicate if the backlight is enabled or not. also updated the corosponding code for serial transport to stop peeking directly at 'internal' backlight_config structure.
* [Keyboard] Sol keyboard conversion to split common (#5773)XScorpion22019-05-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | * Split common conversion * Updated serial and encoder pins * Fixing default folder until r2 * Fixing oled driver on slave split common * Fixing keymap compile errors * Fixing oled inactivity timer on slave split common * Hoisted oled driver task, init, & activity to keyboard.c * Update keyboards/sol/config.h Co-Authored-By: XScorpion2 <rcalt2vt@gmail.com> * Remove TAPPING_FORCE_HOLD
* Change split_common to use RGBLIGHT_SPLIT (#5509)Takeshi ISHII2019-04-192-74/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add I2C_slave_buffer_t to quantum/split_common/transport.c Improvements to ease the maintenance of the I2C slave buffer layout. And this commit does not change the compilation results. * add temporary pdhelix(Patched Helix) code * temporary cherry-pick from #5020 add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * add post_config.h support to build_keyboard.mk * add quantum/rgblight_post_config.h, quantum/split_common/post_config.h Add quantum/rgblight_post_config.h and quantum/split_common/post_config.h using POST_CONFIG_H variable of build_keyboard.mk. quantum/rgblight_post_config.h additionally defines RGBLIGHT_SPLIT if RGBLED_SPIT is defined. quantum/split_common/post_config.h defines RGBLIGHT_SPLIT additionally when master-slave communication is I2C. * Change split_common's transport.c I2C to use the synchronization feature of rgblight.c * Change split_common's transport.c serial to use the synchronization feature of rgblight.c * test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix * Test End Revert "test RGBLIGHT_SPLIT on keyboards/handwired/pdhelix" This reverts commit 80118a6bbd3d9fc4c7797fef0c34bc67aa73aa98. [x] make RGBLIGHT_TEST=1 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/i2c:default (same RGBLIGHT_TEST=3) [x] make RGBLIGHT_TEST=3 handwired/pdhelix/i2c:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2:default [x] make RGBLIGHT_TEST=1 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=2 handwired/pdhelix/pd2_2oled:default [x] make RGBLIGHT_TEST=3 handwired/pdhelix/pd2_2oled:default * Test End, Revert "temporary cherry-pick from #5020" This reverts commit d35069f68bda0c50370442a5c7aae60c2f4ce5c0. * Test End, Revert "add temporary pdhelix(Patched Helix) code" This reverts commit aebddfc1a879796afae297ef0723a4fe73af3660. * temporarily cherry-pick from #5020 to see if it passes the travis-ci test. add new version(#5020) quantum/rgblight.[ch], quantum/rgblight_modes.h * Passed the travis-ci test. Revert "temporarily cherry-pick from #5020 to see if it passes the travis-ci test." This reverts commit 647c0a9755eb6a05f76d09b2d59bce67b85a841f. * update docs/config_options.md * update split_common/transport.c, improves maintainability of serial transaction IDs. No change in build result. * temporary cherry-pick from #5020 * fix build fail keebio/iris/rev3:default * fix build fail lets_split_eh/eh:default * Revert "temporary cherry-pick from #5020" This reverts commit be48ca1b4515366a097af8dd1cd7b28b7ee09947. * temporary cherry-pick from #5020 (0.6.336) * Revert "temporary cherry-pick from #5020 (0.6.336)" This reverts commit 978d26a8b3cf0acc485838a7d76d6128b77c630c. * temporary cherry-pick from #5020 (0.6.336)
* Added encoder support to split common code (#5477)XScorpion22019-04-032-14/+70
| | | | | | | | * Added slave encoder support to split common * Fixing handwired/xealous/rev1 compile error * Removed unnecessary ifdef
* Add support for RGB LEDs wired directly to each half's controller (#5392)Danny2019-03-232-19/+36
| | | | | | | | | | | | | | | | * Add support for wiring RGB LEDs for both halves directly to their respective controllers RGB LEDs for each half don't need to be chained together across the TRRS cable with this * Add split RGB LED support for serial * Update config/rules for bakingpy layout * Un-nest ifdefs for hand detection * Read RGB config state from memory instead of EEPROM for serial updates * Reuse existing LED pointer instead of creating new one
* Fix i2c splits with >8 columns (#5454)James Churchill2019-03-201-3/+3
|
* rgblight split transfer non-eeprom config (#5396)Len Trigg2019-03-151-5/+7
| | | | | | | | | | | * Make rgblight_update_dword not update eeprom (we already have eeconfig_update_rgblight for that). Make split i2c keyboards transfer active rgblight config rather than eeprom saved version of rgblight config, enabling runtime changes that aren't persisted to eeprom. * prev_level and prev_rgb only store successfully transmitted values
* Next set of split_common changes (#4974)James Churchill2019-03-127-420/+85
| | | | | | | | | | | | | | | | * Update split_common to use standard i2c drivers * Eliminate RGB_DIRTY/BACKLIT_DIRTY * Fix avr i2c_master error handling * Fix i2c_slave addressing * Remove unneeded timeout on i2c_stop() * Fix RGB I2C transfers * Remove incorrect comment
* Fix `quantum/split_common/matrix.c: select_col()/select_row()` (#5174)Takeshi ISHII2019-02-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | * add temporary pdhelix(Patched Helix) code * add test code into quantum/split_common/matrix.c * add test code into keyboards/handwired/pdhelix/ * Revert "add test code into keyboards/handwired/pdhelix/" This reverts commit 9ed98f0797ddd962c99756689fc4ecb4cd067d3d. * Revert "add test code into quantum/split_common/matrix.c" This reverts commit 1876d3ed69f6c213153a9f6476192be839f16c1f. * Revert "add temporary pdhelix(Patched Helix) code" This reverts commit 41ac92b814e3f894eaf85bc3e5bb945895342fa8. * fix quantum/split_common/matrix.c: select_col()/select_row()
* Simplify split_common Code significantly (#4772)James Churchill2019-01-179-595/+494
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Eliminate separate slave loop Both master and slave run the standard keyboard_task main loop now. * Refactor i2c/serial specific code Simplify some of the preprocessor mess by using common function names. * Fix missing #endif * Move direct pin mapping support from miniaxe to split_common For boards with more pins than sense--sorry, switches. * Reordering and reformatting only * Don't run matrix_scan_quantum on slave side * Clean up the offset/slaveOffset calculations * Cut undebounced matrix size in half * Refactor debouncing * Minor fixups * Split split_common transport and debounce code into their own files Can now be replaced with custom versions per keyboard using CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes * Refactor debounce for non-split keyboards too * Update handwired/xealous to build using new split_common * Fix debounce breaking basic test * Dodgy method to allow a split kb to only include one of i2c/serial SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only that driver code in the binary. SPLIT_TRANSPORT = custom (or anything else) will include neither, the keyboard must supply it's own code if SPLIT_TRANSPORT is not defined then the original behaviour (include both avr i2c and serial code) is maintained. This could be better but it would require explicitly updating all the existing split keyboards. * Enable LTO to get lets_split/sockets under the line * Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE * Remove avr-specific sei() from split matrix_setup Not needed now that slave doesn't have a separate main loop. Both sides (on avr) call sei() in lufa's main() after exiting keyboard_setup(). * Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT. * Add comments and fix formatting.
* Add explicit eeprom include in split_commonJames Churchill2019-01-031-0/+4
| | | | Fixes builds that set EE_HANDS.
* Convert split_common to use generic GPIO apiJames Churchill2019-01-032-53/+22
|
* Fix Split Common Split_util.c typoDrashna Jaelre2018-12-281-1/+1
|
* Update split keyboard docs (#4735)Danny2018-12-282-3/+2
| | | | | | * Remove unused I2C_MASTER_RIGHT setting * Update documentation about split keyboard options
* Replace serial.c of quantum/split_common/ (#4669)Takeshi ISHII2018-12-247-159/+526
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add provisional Helix implementation to test the quantum/split_common. * copy keyboards/helix/serial.[ch] to quantum/split_common/ * Make serial.c a pure driver. Remove buffer name and buffer size from serial.c. They should be placed in the caller(matrix.c, split_utils.c). * remove quantum/split_common/serial_backward_compatibility.h * Changed array serial_master_buffer to structure serial_m2s_buffer. * Changed array serial_slave_buffer to structure serial_s2m_buffer. * Change keyboards/miniaxe/matrix.c I also made changes to quantum/split_comon/matrix.c to keyboards/miniaxe/matrix.c. Note: I contacted @ka2hiro, creator of miniaxe, and I got permission to change keyboards/miniaxe/matrix.c. * update history comment in quantum/split_common/serial.c * Revert "Add provisional Helix implementation to test the quantum/split_common." This reverts commit 168c82ef82c88e79979d9796bab9cc819cc2f685. * fix keyboards/miniaxe/matrix.c, quantum/split_common/matrix.c avr-gcc 4.9.[23] report error. avr-gcc 5.4.0, avr-gcc 7.3.0 pass. It is funny. * update comment quantum/split_common/serial.c * Reserve RGBLIGHT_SPLIT macro in quantum/split_common
* Refactor quantum/split_common/i2c.c, quantum/split_common/serial.c (#4522)Takeshi ISHII2018-12-142-13/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add temporary compile test shell script * Extended support of SKIP_VERSION to make invariant compile results during testing. * build_keyboard.mk, tmk_core/rules.mk: add LIB_SRC, QUANTUM_LIB_SRC support Support compiled object enclosed in library. e.g. ``` LIB_SRC += xxxx.c xxxx.c --> xxxx.o ---> xxxx.a ``` * remove 'ifdef/ifndef USE_I2C' from quantum/split_common/{i2c|serial}.c * add SKIP_DEBUG_INFO into tmk_core/rules.mk When SKIP_DEBUG_INFO=yes is specified, do not use the -g option at compile time. * tmk_core/rules.mk: Library object need -fno-lto * add SKIP_DEBUG_INFO=yes * remove temporary compile test shell script * add '#define SOFT_SERIAL_PIN D0' to keyboards/lets_split/rev?/config.h * quantum/split_common/serial.c: Changed not to use USE_I2C.
* Make quantum/split_common/serial.[ch] configurable (#4419)Takeshi ISHII2018-12-144-13/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add temporary compile test shell script * add 'CONFIG_H += serial_backward_compatibility.h' into common_features.mk:SPLIT_KEYBOARD block * add quantum/split_common/serial_backward_compatibility.h SERIAL_PIN_PORT and other PIN define move to serial_backward_compatibility.h SERIAL_BACKLIT_START move to split_util.h * quantum/split_common/serial.c change to helix-serial.c style serial configuration * add temporary file quantum/split_common/split-keyboards-list.txt * add '#define SOFT_SERIAL_PIN D0' to keyboards/6lit/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/divergetm2/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/ergotravel/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/foobar/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/dactyl_manuform/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/handwired/qc60/config.h * add '//#define SOFT_SERIAL_PIN D0' to keyboards/handwired/xealous/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/iris/rev*/config.h * add '//#define SOFT_SERIAL_PIN D0' to keyboards/lets_split_eh/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/levinson/rev*/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/miniaxe/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/nyquist/rev?/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/quefrency/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/qwertyydox/config.h,keyboards/qwertyydox/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/redox/rev1/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/rorschach/rev1/config.h * remove '#define SOFT_SERIAL_PIN D0' from quantum/split_common/serial_backward_compatibility.h * remove temporary file quantum/split_common/split-keyboards-list.txt * remove temporary compile test shell script * Revert "remove temporary compile test shell script" This reverts commit 15b0021b4092127b8d8a21f572642ad3702b46d4. * update quantum/split_common/compile_split_test.sh for new keyboard test * add '#define SOFT_SERIAL_PIN D0' to keyboards/diverge3/config.h * add '#define SOFT_SERIAL_PIN D0' to keyboards/40percentclub/25/config.h * remove temporary compile test shell script * update docs/config_options.md, quantum/template/avr/config.h * fix quantum/template/avr/config.h * fix typo docs/config_options.md
* Remove old declarationDrashna Jaelre2018-11-021-1/+0
| | | Co-Authored-By: nooges <nooges@users.noreply.github.com>
* Move disable JTAG code from `keyboard_init` to `keyboard_setup`Danny Nguyen2018-11-022-20/+0
| | | | This way all split keyboards are using that code instead of just those using split_common with the fix
* Add pointer(?) to disable_JTAG to prevent compiler errors (#4310)Drashna Jaelre2018-10-311-6/+7
|
* Added JTAG disable code to the split_common (#4309)That-Canadian2018-10-311-0/+14
| | | | | Added JTAG disable code to the split_common slave code since the slave never calls keyboard_init(). In the future the slave should likely be modified to call keyboard_init() in some way, but without calling any of the unnecessary USB initialization code.
* split_common: fix backlight update for serial boardsChiang Fong Lee2018-09-271-7/+7
|