diff options
| -rw-r--r-- | keyboards/planck/rev6/chconf.h | 21 | ||||
| -rw-r--r-- | keyboards/planck/rev6/config.h | 21 | ||||
| -rw-r--r-- | keyboards/planck/rev6/mcuconf.h | 30 | ||||
| -rw-r--r-- | keyboards/planck/rev6/rev6.c | 19 | ||||
| -rw-r--r-- | keyboards/planck/rev6/rules.mk | 3 | 
5 files changed, 83 insertions, 11 deletions
| diff --git a/keyboards/planck/rev6/chconf.h b/keyboards/planck/rev6/chconf.h new file mode 100644 index 0000000000..0298c11c40 --- /dev/null +++ b/keyboards/planck/rev6/chconf.h @@ -0,0 +1,21 @@ +/* Copyright 2020 QMK Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +// Need to override the SysTick timer to use TIM3 -- this is a 16-bit timer on F303 +// so we need to change resolution and frequency to match. +#define CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 +#include_next "chconf.h" diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h index 3fbbae0278..0adca592bb 100644 --- a/keyboards/planck/rev6/config.h +++ b/keyboards/planck/rev6/config.h @@ -126,17 +126,18 @@  /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */  //#define MIDI_TONE_KEYCODE_OCTAVES 1 -// #define WS2812_LED_N 2 -// #define RGBLED_NUM WS2812_LED_N -// #define WS2812_TIM_N 2 -// #define WS2812_TIM_CH 2 -// #define PORT_WS2812     GPIOA -// #define PIN_WS2812      1 -// #define WS2812_DMA_STREAM STM32_DMA1_STREAM2  // DMA stream for TIMx_UP (look up in reference manual under DMA Channel selection) -//#define WS2812_DMA_CHANNEL 7                  // DMA channel for TIMx_UP -//#define WS2812_EXTERNAL_PULLUP + +/* + * WS2812 Underglow Matrix options + */  #define RGB_DI_PIN A1  #define RGBLED_NUM 9 -#define RGBLIGHT_ANIMATIONS +#define DRIVER_LED_TOTAL RGBLED_NUM + +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2  #endif diff --git a/keyboards/planck/rev6/mcuconf.h b/keyboards/planck/rev6/mcuconf.h new file mode 100644 index 0000000000..dde67871cd --- /dev/null +++ b/keyboards/planck/rev6/mcuconf.h @@ -0,0 +1,30 @@ +/* Copyright 2020 QMK Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include_next "mcuconf.h" + +// The SysTick timer from the normal quantum/stm32 uses TIM2 -- the WS2812 pin used +// on the Planck requires the use of TIM2 to run PWM -- rework which timers are +// allocated for PWM usage. +#undef STM32_PWM_USE_TIM2 +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM2 TRUE +#define STM32_PWM_USE_TIM3 FALSE + +// As mentioned above, we need to reallocate the SysTick timer used from +// TIM2 to TIM3. +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 3 diff --git a/keyboards/planck/rev6/rev6.c b/keyboards/planck/rev6/rev6.c index 8f4d168bf4..6fe7772b5e 100644 --- a/keyboards/planck/rev6/rev6.c +++ b/keyboards/planck/rev6/rev6.c @@ -15,6 +15,25 @@   */  #include "rev6.h" +led_config_t g_led_config = { { +  // Key Matrix to LED Index +  { NO_LED, 6,      NO_LED, NO_LED, 5,      NO_LED }, +  { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, +  { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0      }, +  { NO_LED, 7,      NO_LED, NO_LED, 2,      NO_LED }, +  { NO_LED, 4,      NO_LED, NO_LED, 3,      NO_LED }, +  { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, +  { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, +  { NO_LED, 1,      NO_LED, NO_LED, 8,      NO_LED }, +}, { +  // LED Index to Physical Position +  {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} +}, { +  // LED Index to Flag +  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, +  LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL +} }; +  void matrix_init_kb(void) {  	matrix_init_user();  } diff --git a/keyboards/planck/rev6/rules.mk b/keyboards/planck/rev6/rules.mk index d101f36d65..a1ff82b17e 100644 --- a/keyboards/planck/rev6/rules.mk +++ b/keyboards/planck/rev6/rules.mk @@ -18,13 +18,14 @@ AUDIO_ENABLE = yes           # Audio output  UNICODE_ENABLE = no         # Unicode  BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID  RGBLIGHT_ENABLE = yes        # Enable WS2812 RGB underlight. -WS2812_DRIVER = bitbang +WS2812_DRIVER = pwm  API_SYSEX_ENABLE = no  # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE  SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend  #SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend +RGB_MATRIX_ENABLE = WS2812  # SERIAL_LINK_ENABLE = yes  ENCODER_ENABLE = yes  DIP_SWITCH_ENABLE = yes | 
