summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403)Sergey Vlasov2021-04-251-6/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix default ADC_RESOLUTION for ADCv3 (and ADCv4) Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers (that macro should not have been there, because ADCv3 has CFGR instead of CFGR1). Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS if it is defined (that name is used for ADCv3 and ADCv4). * Update ADC docs to match the actually used resolution ADC driver for ChibiOS actually uses the 10-bit resolution by default (probably to match AVR); fix the documentation accordingly. Also add both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names differ according to the ADC implementation in the particular MCU). * Fix pinToMux() for B12 and B13 on STM32F3xx Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and B13 pins were wrong. * Add support for all possible analog pins on STM32F1xx Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx (they are the same at least for STM32F103x8 and larger F103 devices, and also F102, F105, F107 families). Actually tested on STM32F103C8T6 (therefore pins C0...C5 were not tested). Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages, cannot be supported at the moment, because those pins are connected only to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1. * Add support for all possible analog pins on STM32F4xx Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally F3...F10 (if STM32_ADC_USE_ADC3 is enabled). These mux values are apparently the same for all F4xx devices, except some smaller devices may not have ADC3. Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested. Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices which don't have ADC3 also don't have the GPIOF port, therefore the code which refers to Fx pins does not compile. * Fix STM32F3xx ADC mux table in documentation The ADC driver documentation had some errors in the mux table for STM32F3xx. Fix this table to match the datasheet and the actual code (mux settings for B12 and B13 were also tested on a real STM32F303CCT6 chip). * Add STM32F1xx ADC pins to the documentation * Add STM32F4xx ADC pins to the documentation
* Merge remote-tracking branch 'origin/master' into developQMK Bot2021-04-191-0/+2
|\
| * Fixup Satisfaction75 bootprocess. (#12621)Nick Brassel2021-04-191-0/+2
| | | | | | | | | | | | | | | | | | | | - Use normal ChibiOS I2C driver. - Move drawing code to housekeeping -- previously it was during matrix scan, which gets executed during bootmagic checks. However, bootmagic is invoked before QWIIC subsystem is enabled, which means I2C isn't configured yet. All I2C calls to the OLED fail with timeouts while bootmagic is being checked. Housekeeping ensures this is executed once the system has initialised and settled. - QWIIC OLED driver: properly clear out OLED buffer when clearing screen.
* | Format code according to conventions (#12381)github-actions[bot]2021-03-251-1/+3
| | | | | | Co-authored-by: QMK Bot <hello@qmk.fm>
* | Fix connection issue in split keyboards when slave and OLED display are ↵Oleg Senchenko2021-03-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | connected via I2C, fix #9335 (#11487) * In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335 * Revert "In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335" This reverts commit 3ee639e1f35fb0fe257fc3ba1095124e039af7d7. * In split keyboards fix connection issue when slave and OLED are connected via I2C. Fix #9335 * Update drivers/oled/oled_driver.c Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: osenchenko <osechenko@chiefmate.io> Co-authored-by: Drashna Jaelre <drashna@live.com>
* | Format code according to conventions (#12292)github-actions[bot]2021-03-191-9/+6
| | | | | | Co-authored-by: QMK Bot <hello@qmk.fm>
* | ARM WS2812 SPI config (baudrate and circular buffer) (#12216)Xelus222021-03-191-4/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial commit * include circular buffer command * add endif * circular buffer mode * remove untrue comment * revamp and add documentation * do not allow WS2812_SPI_SYNC & CIRCULAR_BUFFER
* | Set default OLED Update Interval for Split Keyboards (#12107)Drashna Jaelre2021-03-051-0/+4
| | | | | | | | | | | | Because the matrix scanning is slower for splits, in general, the frequent updating of the OLEDs can slow down the matrix scanning. To help prevent that, set the update interval for the OLEDs to not update as frequently.
* | Add support for complementary outputs to the WS2812 PWM driver (#11988)Sergey Vlasov2021-03-021-1/+10
|/
* Merge branch 'master' into developJoshua Diamond2021-02-142-3/+3
|\
| * LED Matrix: rename `LED_DRIVER_LED_COUNT` to `DRIVER_LED_TOTAL` (#11858)Ryan2021-02-152-3/+3
| |
* | Format code according to conventions (#11907)github-actions[bot]2021-02-151-1/+1
| | | | | | Co-authored-by: QMK Bot <hello@qmk.fm>
* | Add support for analog USBPD on STM32G4xx. (#11824)Nick Brassel2021-02-152-0/+105
| | | | | | | | | | * Add support for analog USBPD on STM32G4xx. * Split up to a list of driver types, allow for custom.
* | Format code according to conventions (#11905)github-actions[bot]2021-02-151-12/+3
| | | | | | Co-authored-by: QMK Bot <hello@qmk.fm>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-02-081-21/+17
|\|
| * ws2812: Fix number of nops for AVR at 8 MHz (#9559)Sergey Vlasov2021-02-091-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ws2812: Fix number of nops for AVR at 8 MHz When trying to calculate the number of nops for AVR running at 8 MHz, the value of `w3` is expected to be negative; however, because `F_CPU` is defined in tmk_core/avr.mk with the `UL` suffix, the preprocessor performs its calculations using `unsigned long`, getting a very large positive number instead of the expected negative number; this then results in generating code with a huge number of nops. Fix the broken calculations by performing a comparison before subtraction, so that the unsigned number wraparound does not occur. The keyboard which triggers the problem is `handwired/promethium`; the buggy code silently compiles, but the resulting timings would be completely wrong. * ws2812: Clean up the code after the 8 MHz fix Remove old code which was unsuccessfully trying to clamp negative w1, w2 and w3 values to 0, and set w1_nops, w2_nops and w3_nops directly.
* | Include stdbool.h in uart.h (#11728)Drashna Jaelre2021-01-301-0/+1
| |
* | Adds AT90USB162 support (#11570)Dasky2021-01-294-6/+6
| | | | | | | | | | | | | | | | | | | | | | * at90usb162 support * fix missing bracket * Apply suggestions from code review Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | UART driver refactor (#11637)Ryan2021-01-274-0/+340
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2021-01-153-0/+45
|\|
| * Add BGR byte order for WS2812 drivers (#11562)kb-elmo2021-01-163-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | * add byte order bgr for ws2812 * update docs for driver change * Update ws2812_driver.md * Update docs/ws2812_driver.md Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | Split up QWIIC_ENABLE to use QWIIC_DRIVERS as well, with yes/no for enable ↵Nick Brassel2021-01-041-4/+5
| | | | | | | | flag. (#11426)
* | Merge remote-tracking branch 'upstream/master' into developNick Brassel2021-01-031-2/+8
|\|
| * Align ChibiOS spi_master behaviour with AVR (#11404)Ryan2021-01-031-2/+8
| | | | | | | | | | * Align ChibiOS spi_master behaviour with AVR * Rollback `spi_transmit()` and `spi_receive()` to preserve DMA
* | Rewrite APA102 support (#10894)Aldehir Rojas2020-12-303-114/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rewrite APA102 support The APA102 source was broken by commit 16a15c1cfcbfd0feb2c2cf1383676747e2f97d73 as it did not include the quantum header. This commit addresses that, as well as other issues with transferring bytes over the SPI interface, i.e. it was not setting the clock pin back to low after sending a bit. The deviation when sending the end frame is kept, but updated to the latest from the referenced project. Finally, these changes expose the global LED brightness parameter of the APA102. Brightness values are configurable through `APA102_DEFAULT_BRIGHTNESS` and `APA102_MAX_BRIGHTNESS`. * Fix typo in led brightness extern * Move driver out of AVR directory and add delay for ARM * Experimental APA102 support on AVR and ARM Co-authored-by: Alde Rojas <hello@alde.io> * Refactor apa102_send_byte() calls to a loop * Implement io_wait function for ARM * Move APA102 drivers to own directory, fix copyright notice * Add APA102 keymap to handwired/onekey * Simplify RGBLIGHT_ENABLE/DRIVER option handling Co-authored-by: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-272-2/+2
|\|
| * Ensure single newline at EOF for core files (#11310)Ryan2020-12-282-2/+2
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-264-16/+5
|\|
| * Change include guards in tmk_core/ and drivers/ to pragma once (#11240)Ryan2020-12-264-16/+5
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-181-4/+1
|\|
| * Various compilation fixes for avr-gcc 10 (#9269)Joel Challis2020-12-181-4/+1
| |
* | Merge remote-tracking branch 'upstream/master' into developfauxpark2020-12-183-8/+8
|\|
| * Run cformat and dos2unix manually (#11235)Ryan2020-12-173-8/+8
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-162-2/+2
|\|
| * Normalise include statements in keyboard code (#11185)Ryan2020-12-162-2/+2
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-131-0/+5
|\|
| * Add i2c 24LC64 eeprom (#11200)Xelus222020-12-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | * add 24LC64 eeprom * docs update * Update docs/eeprom_driver.md Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-1110-12/+12
|\|
| * Normalise include statements in core code (#11153)Ryan2020-12-1110-12/+12
| | | | | | | | | | * Normalise include statements in core code * Missed one
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-061-8/+9
|\|
| * Update is31fl3731-simple (#7610)Xelus222020-12-061-8/+9
| | | | | | | | | | * update simple * Update is31fl3731-simple.c
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-063-3/+55
|\|
| * add definition WS2812_BYTE_ORDER to fix RGB LED issues (#10184)Josh Hinnebusch2020-12-063-3/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add define for WS2812B-2020 to fix RGB issues * update driver doc * add WS2812_BYTE_ORDER definition to correct RGB byte issues * add definition variable thing * update per PR request * update per PR reqs * update per PR request * inital changes * move defines to color.h and add rgbw incase * Update docs/ws2812_driver.md Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: hineybush <hineybushkeyboards@gmail.com> Co-authored-by: Xelus22 <preyas22@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-061-0/+28
|\|
| * Added OLED Initialized checks (#11129)XScorpion22020-12-061-0/+28
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2020-12-061-5/+11
|\|
| * Fix error handling in SPI master. (#11122)Dimitris Papavasiliou2020-12-061-5/+11
| | | | | | Co-authored-by: Dimitris Papavasiliou <dpapavas@gmail.com>
* | Configurable serial usart timeout (#11057)XScorpion22020-11-301-5/+8
|/
* 2020 November 28 Breaking Changes Update (#11053)James Young2020-11-289-115/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
* ST7565 tidyup (#10907)Ryan2020-11-263-80/+56
|