diff options
| -rw-r--r-- | keyboards/acheron/austin/austin.c | 18 | ||||
| -rw-r--r-- | keyboards/acheron/austin/austin.h | 21 | ||||
| -rw-r--r-- | keyboards/acheron/austin/chconf.h | 520 | ||||
| -rw-r--r-- | keyboards/acheron/austin/config.h | 71 | ||||
| -rw-r--r-- | keyboards/acheron/austin/halconf.h | 354 | ||||
| -rwxr-xr-x | keyboards/acheron/austin/info.json | 124 | ||||
| -rwxr-xr-x | keyboards/acheron/austin/keymaps/default/keymap.c | 28 | ||||
| -rw-r--r-- | keyboards/acheron/austin/keymaps/via/keymap.c | 55 | ||||
| -rw-r--r-- | keyboards/acheron/austin/keymaps/via/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/acheron/austin/mcuconf.h | 176 | ||||
| -rw-r--r-- | keyboards/acheron/austin/readme.md | 29 | ||||
| -rw-r--r-- | keyboards/acheron/austin/rules.mk | 25 | 
12 files changed, 1422 insertions, 0 deletions
| diff --git a/keyboards/acheron/austin/austin.c b/keyboards/acheron/austin/austin.c new file mode 100644 index 0000000000..347e7c0f1a --- /dev/null +++ b/keyboards/acheron/austin/austin.c @@ -0,0 +1,18 @@ +#include "austin.h" + +void keyboard_pre_init_kb(void) { +    setPinOutput(A0); +    setPinOutput(A1); +    setPinOutput(A2); + +    keyboard_pre_init_user(); +} + +bool led_update_kb(led_t led_state) { +    if (led_update_user(led_state)) { +        writePin(A2, led_state.num_lock); +        writePin(A0, led_state.caps_lock); +        writePin(A1, led_state.scroll_lock); +    } +    return true; +} diff --git a/keyboards/acheron/austin/austin.h b/keyboards/acheron/austin/austin.h new file mode 100644 index 0000000000..6c066eb046 --- /dev/null +++ b/keyboards/acheron/austin/austin.h @@ -0,0 +1,21 @@ +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_all( \ +    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D,       K0E,  K0F, K0G, K0H, K0I, \ +    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E,  K1F,  K1G, K1H, K1I, K5I, \ +    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D,       K2E,  K2F, K2G, K2H, K3I, \ +    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C,            K3E,  K3F, K3G, K3H,      \ +    K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C,   K4D,           K4F, K4G, K4H, K4I, \ +    K50, K51, K52,                K55,                K59, K5A,   K5B, K5C, K5E,      K5F, K5G, K5H       \ +) { \ +    {  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, K0I  }, \ +    {  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, K1I  }, \ +    {  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, ___  }, \ +    {  K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F, K3G, K3H, K3I  }, \ +    {  K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, ___, K4F, K4G, K4H, K4I  }, \ +    {  K50, K51, K52, ___, ___, K55, ___, ___, ___, K59, K5A, K5B, K5C, ___, K5E, K5F, K5G, K5H, K5I  } \ +} diff --git a/keyboards/acheron/austin/chconf.h b/keyboards/acheron/austin/chconf.h new file mode 100644 index 0000000000..89388dd5a3 --- /dev/null +++ b/keyboards/acheron/austin/chconf.h @@ -0,0 +1,520 @@ +/* +    ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + +    Licensed under the Apache License, Version 2.0 (the "License"); +    you may not use this file except in compliance with the License. +    You may obtain a copy of the License at + +        http://www.apache.org/licenses/LICENSE-2.0 + +    Unless required by applicable law or agreed to in writing, software +    distributed under the License is distributed on an "AS IS" BASIS, +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +    See the License for the specific language governing permissions and +    limitations under the License. +*/ + +/** + * @file    templates/chconf.h + * @brief   Configuration file template. + * @details A copy of this file must be placed in each project directory, it + *          contains the application specific kernel settings. + * + * @addtogroup config + * @details Kernel related settings and hooks. + * @{ + */ + +#ifndef CHCONF_H +#define CHCONF_H + +#define _CHIBIOS_RT_CONF_ + +/*===========================================================================*/ +/** + * @name System timers settings + * @{ + */ +/*===========================================================================*/ + +/** + * @brief   System time counter resolution. + * @note    Allowed values are 16 or 32 bits. + */ +#define CH_CFG_ST_RESOLUTION                32 + +/** + * @brief   System tick frequency. + * @details Frequency of the system timer that drives the system ticks. This + *          setting also defines the system tick time unit. + */ +#define CH_CFG_ST_FREQUENCY                 10000 + +/** + * @brief   Time delta constant for the tick-less mode. + * @note    If this value is zero then the system uses the classic + *          periodic tick. This value represents the minimum number + *          of ticks that is safe to specify in a timeout directive. + *          The value one is not valid, timeouts are rounded up to + *          this value. + */ +#define CH_CFG_ST_TIMEDELTA                 2 + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel parameters and options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief   Round robin interval. + * @details This constant is the number of system ticks allowed for the + *          threads before preemption occurs. Setting this value to zero + *          disables the preemption for threads with equal priority and the + *          round robin becomes cooperative. Note that higher priority + *          threads can still preempt, the kernel is always preemptive. + * @note    Disabling the round robin preemption makes the kernel more compact + *          and generally faster. + * @note    The round robin preemption is not supported in tickless mode and + *          must be set to zero in that case. + */ +#define CH_CFG_TIME_QUANTUM                 0 + +/** + * @brief   Managed RAM size. + * @details Size of the RAM area to be managed by the OS. If set to zero + *          then the whole available RAM is used. The core memory is made + *          available to the heap allocator and/or can be used directly through + *          the simplified core memory allocator. + * + * @note    In order to let the OS manage the whole RAM the linker script must + *          provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note    Requires @p CH_CFG_USE_MEMCORE. + */ +#define CH_CFG_MEMCORE_SIZE                 0 + +/** + * @brief   Idle thread automatic spawn suppression. + * @details When this option is activated the function @p chSysInit() + *          does not spawn the idle thread. The application @p main() + *          function becomes the idle thread and must implement an + *          infinite loop. + */ +#define CH_CFG_NO_IDLE_THREAD               FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Performance options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief   OS optimization. + * @details If enabled then time efficient rather than space efficient code + *          is used when two possible implementations exist. + * + * @note    This is not related to the compiler optimization options. + * @note    The default is @p TRUE. + */ +#define CH_CFG_OPTIMIZE_SPEED               FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Subsystem options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief   Time Measurement APIs. + * @details If enabled then the time measurement APIs are included in + *          the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_TM                       FALSE + +/** + * @brief   Threads registry APIs. + * @details If enabled then the registry APIs are included in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_REGISTRY                 TRUE + +/** + * @brief   Threads synchronization APIs. + * @details If enabled then the @p chThdWait() function is included in + *          the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_WAITEXIT                 TRUE + +/** + * @brief   Semaphores APIs. + * @details If enabled then the Semaphores APIs are included in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_SEMAPHORES               TRUE + +/** + * @brief   Semaphores queuing mode. + * @details If enabled then the threads are enqueued on semaphores by + *          priority rather than in FIFO order. + * + * @note    The default is @p FALSE. Enable this if you have special + *          requirements. + * @note    Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_SEMAPHORES_PRIORITY      FALSE + +/** + * @brief   Mutexes APIs. + * @details If enabled then the mutexes APIs are included in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_MUTEXES                  TRUE + +/** + * @brief   Enables recursive behavior on mutexes. + * @note    Recursive mutexes are heavier and have an increased + *          memory footprint. + * + * @note    The default is @p FALSE. + * @note    Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_MUTEXES_RECURSIVE        FALSE + +/** + * @brief   Conditional Variables APIs. + * @details If enabled then the conditional variables APIs are included + *          in the kernel. + * + * @note    The default is @p TRUE. + * @note    Requires @p CH_CFG_USE_MUTEXES. + */ +#define CH_CFG_USE_CONDVARS                 TRUE + +/** + * @brief   Conditional Variables APIs with timeout. + * @details If enabled then the conditional variables APIs with timeout + *          specification are included in the kernel. + * + * @note    The default is @p TRUE. + * @note    Requires @p CH_CFG_USE_CONDVARS. + */ +#define CH_CFG_USE_CONDVARS_TIMEOUT         FALSE + +/** + * @brief   Events Flags APIs. + * @details If enabled then the event flags APIs are included in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_EVENTS                   TRUE + +/** + * @brief   Events Flags APIs with timeout. + * @details If enabled then the events APIs with timeout specification + *          are included in the kernel. + * + * @note    The default is @p TRUE. + * @note    Requires @p CH_CFG_USE_EVENTS. + */ +#define CH_CFG_USE_EVENTS_TIMEOUT           TRUE + +/** + * @brief   Synchronous Messages APIs. + * @details If enabled then the synchronous messages APIs are included + *          in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_MESSAGES                 TRUE + +/** + * @brief   Synchronous Messages queuing mode. + * @details If enabled then messages are served by priority rather than in + *          FIFO order. + * + * @note    The default is @p FALSE. Enable this if you have special + *          requirements. + * @note    Requires @p CH_CFG_USE_MESSAGES. + */ +#define CH_CFG_USE_MESSAGES_PRIORITY        FALSE + +/** + * @brief   Mailboxes APIs. + * @details If enabled then the asynchronous messages (mailboxes) APIs are + *          included in the kernel. + * + * @note    The default is @p TRUE. + * @note    Requires @p CH_CFG_USE_SEMAPHORES. + */ +#define CH_CFG_USE_MAILBOXES                TRUE + +/** + * @brief   Core Memory Manager APIs. + * @details If enabled then the core memory manager APIs are included + *          in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_MEMCORE                  FALSE + +/** + * @brief   Heap Allocator APIs. + * @details If enabled then the memory heap allocator APIs are included + *          in the kernel. + * + * @note    The default is @p TRUE. + * @note    Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or + *          @p CH_CFG_USE_SEMAPHORES. + * @note    Mutexes are recommended. + */ +#define CH_CFG_USE_HEAP                     FALSE + +/** + * @brief   Memory Pools Allocator APIs. + * @details If enabled then the memory pools allocator APIs are included + *          in the kernel. + * + * @note    The default is @p TRUE. + */ +#define CH_CFG_USE_MEMPOOLS                 FALSE + +/** + * @brief   Dynamic Threads APIs. + * @details If enabled then the dynamic threads creation APIs are included + *          in the kernel. + * + * @note    The default is @p TRUE. + * @note    Requires @p CH_CFG_USE_WAITEXIT. + * @note    Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. + */ +#define CH_CFG_USE_DYNAMIC                  FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Debug options + * @{ + */ +/*===========================================================================*/ + +/** + * @brief   Debug option, kernel statistics. + * + * @note    The default is @p FALSE. + */ +#define CH_DBG_STATISTICS                   FALSE + +/** + * @brief   Debug option, system state check. + * @details If enabled the correct call protocol for system APIs is checked + *          at runtime. + * + * @note    The default is @p FALSE. + */ +#define CH_DBG_SYSTEM_STATE_CHECK           FALSE + +/** + * @brief   Debug option, parameters checks. + * @details If enabled then the checks on the API functions input + *          parameters are activated. + * + * @note    The default is @p FALSE. + */ +#define CH_DBG_ENABLE_CHECKS                FALSE + +/** + * @brief   Debug option, consistency checks. + * @details If enabled then all the assertions in the kernel code are + *          activated. This includes consistency checks inside the kernel, + *          runtime anomalies and port-defined checks. + * + * @note    The default is @p FALSE. + */ +#define CH_DBG_ENABLE_ASSERTS               FALSE + +/** + * @brief   Debug option, trace buffer. + * @details If enabled then the trace buffer is activated. + * + * @note    The default is @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_MASK                   CH_DBG_TRACE_MASK_DISABLED + +/** + * @brief   Trace buffer entries. + * @note    The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is + *          different from @p CH_DBG_TRACE_MASK_DISABLED. + */ +#define CH_DBG_TRACE_BUFFER_SIZE            128 + +/** + * @brief   Debug option, stack checks. + * @details If enabled then a runtime stack check is performed. + * + * @note    The default is @p FALSE. + * @note    The stack check is performed in a architecture/port dependent way. + *          It may not be implemented or some ports. + * @note    The default failure mode is to halt the system with the global + *          @p panic_msg variable set to @p NULL. + */ +#define CH_DBG_ENABLE_STACK_CHECK           FALSE + +/** + * @brief   Debug option, stacks initialization. + * @details If enabled then the threads working area is filled with a byte + *          value when a thread is created. This can be useful for the + *          runtime measurement of the used stack. + * + * @note    The default is @p FALSE. + */ +#define CH_DBG_FILL_THREADS                 FALSE + +/** + * @brief   Debug option, threads profiling. + * @details If enabled then a field is added to the @p thread_t structure that + *          counts the system ticks occurred while executing the thread. + * + * @note    The default is @p FALSE. + * @note    This debug option is not currently compatible with the + *          tickless mode. + */ +#define CH_DBG_THREADS_PROFILING            FALSE + +/** @} */ + +/*===========================================================================*/ +/** + * @name Kernel hooks + * @{ + */ +/*===========================================================================*/ + +/** + * @brief   Threads descriptor structure extension. + * @details User fields added to the end of the @p thread_t structure. + */ +#define CH_CFG_THREAD_EXTRA_FIELDS                                          \ +  /* Add threads custom fields here.*/ + +/** + * @brief   Threads initialization hook. + * @details User initialization code added to the @p chThdInit() API. + * + * @note    It is invoked from within @p chThdInit() and implicitly from all + *          the threads creation APIs. + */ +#define CH_CFG_THREAD_INIT_HOOK(tp) {                                       \ +  /* Add threads initialization code here.*/                                \ +} + +/** + * @brief   Threads finalization hook. + * @details User finalization code added to the @p chThdExit() API. + */ +#define CH_CFG_THREAD_EXIT_HOOK(tp) {                                       \ +  /* Add threads finalization code here.*/                                  \ +} + +/** + * @brief   Context switch hook. + * @details This hook is invoked just before switching between threads. + */ +#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) {                              \ +  /* Context switch code here.*/                                            \ +} + +/** + * @brief   ISR enter hook. + */ +#define CH_CFG_IRQ_PROLOGUE_HOOK() {                                        \ +  /* IRQ prologue code here.*/                                              \ +} + +/** + * @brief   ISR exit hook. + */ +#define CH_CFG_IRQ_EPILOGUE_HOOK() {                                        \ +  /* IRQ epilogue code here.*/                                              \ +} + +/** + * @brief   Idle thread enter hook. + * @note    This hook is invoked within a critical zone, no OS functions + *          should be invoked from here. + * @note    This macro can be used to activate a power saving mode. + */ +#define CH_CFG_IDLE_ENTER_HOOK() {                                          \ +  /* Idle-enter code here.*/                                                \ +} + +/** + * @brief   Idle thread leave hook. + * @note    This hook is invoked within a critical zone, no OS functions + *          should be invoked from here. + * @note    This macro can be used to deactivate a power saving mode. + */ +#define CH_CFG_IDLE_LEAVE_HOOK() {                                          \ +  /* Idle-leave code here.*/                                                \ +} + +/** + * @brief   Idle Loop hook. + * @details This hook is continuously invoked by the idle thread loop. + */ +#define CH_CFG_IDLE_LOOP_HOOK() {                                           \ +  /* Idle loop code here.*/                                                 \ +} + +/** + * @brief   System tick event hook. + * @details This hook is invoked in the system tick handler immediately + *          after processing the virtual timers queue. + */ +#define CH_CFG_SYSTEM_TICK_HOOK() {                                         \ +  /* System tick event code here.*/                                         \ +} + +/** + * @brief   System halt hook. + * @details This hook is invoked in case to a system halting error before + *          the system is halted. + */ +#define CH_CFG_SYSTEM_HALT_HOOK(reason) {                                   \ +  /* System halt code here.*/                                               \ +} + +/** + * @brief   Trace hook. + * @details This hook is invoked each time a new record is written in the + *          trace buffer. + */ +#define CH_CFG_TRACE_HOOK(tep) {                                            \ +  /* Trace code here.*/                                                     \ +} + +/** @} */ + +/*===========================================================================*/ +/* Port-specific settings (override port settings defaulted in chcore.h).    */ +/*===========================================================================*/ + +#endif  /* CHCONF_H */ + +/** @} */ diff --git a/keyboards/acheron/austin/config.h b/keyboards/acheron/austin/config.h new file mode 100644 index 0000000000..859c9051cd --- /dev/null +++ b/keyboards/acheron/austin/config.h @@ -0,0 +1,71 @@ +/* +Copyright 2015 Jun Wako <[email protected]> + +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 2 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/>. +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID       0x0159 +#define PRODUCT_ID      0xA71C +#define DEVICE_VER      0x0001 +#define MANUFACTURER    DriftMechanics +#define PRODUCT         Austin +#define DESCRIPTION     Austin Keyboard + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 19 + +#define MATRIX_COL_PINS { B10, B11, B12, B13, B14, B15, A8, A9, A10, A5, A15, B3, B4, B5, B8, A3, C15, C14, F1 } +#define MATRIX_ROW_PINS { C13, A4, A7, B0, B1, B2 } +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN           A6 +#define BACKLIGHT_PWM_DRIVER    PWMD3 +#define BACKLIGHT_PWM_CHANNEL   1 +#define BACKLIGHT_PAL_MODE      1 +#define BACKLIGHT_LEVELS 6 +#define BACKLIGHT_BREATHING +#define BREATHING_PERIOD 6 + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE    5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Feature disable options + *  These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/acheron/austin/halconf.h b/keyboards/acheron/austin/halconf.h new file mode 100644 index 0000000000..38743e0904 --- /dev/null +++ b/keyboards/acheron/austin/halconf.h @@ -0,0 +1,354 @@ +/* +    ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + +    Licensed under the Apache License, Version 2.0 (the "License"); +    you may not use this file except in compliance with the License. +    You may obtain a copy of the License at + +        http://www.apache.org/licenses/LICENSE-2.0 + +    Unless required by applicable law or agreed to in writing, software +    distributed under the License is distributed on an "AS IS" BASIS, +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +    See the License for the specific language governing permissions and +    limitations under the License. +*/ + +/** + * @file    templates/halconf.h + * @brief   HAL configuration header. + * @details HAL configuration file, this file allows to enable or disable the + *          various device drivers from your application. You may also use + *          this file in order to override the device drivers default settings. + * + * @addtogroup HAL_CONF + * @{ + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +#include "mcuconf.h" + +/** + * @brief   Enables the PAL subsystem. + */ +#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) +#define HAL_USE_PAL                 TRUE +#endif + +/** + * @brief   Enables the ADC subsystem. + */ +#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) +#define HAL_USE_ADC                 FALSE +#endif + +/** + * @brief   Enables the CAN subsystem. + */ +#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) +#define HAL_USE_CAN                 FALSE +#endif + +/** + * @brief   Enables the DAC subsystem. + */ +#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) +#define HAL_USE_DAC                 FALSE +#endif + +/** + * @brief   Enables the EXT subsystem. + */ +#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) +#define HAL_USE_EXT                 FALSE +#endif + +/** + * @brief   Enables the GPT subsystem. + */ +#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) +#define HAL_USE_GPT                 FALSE +#endif + +/** + * @brief   Enables the I2C subsystem. + */ +#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) +#define HAL_USE_I2C                 TRUE +#endif + +/** + * @brief   Enables the I2S subsystem. + */ +#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) +#define HAL_USE_I2S                 FALSE +#endif + +/** + * @brief   Enables the ICU subsystem. + */ +#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) +#define HAL_USE_ICU                 FALSE +#endif + +/** + * @brief   Enables the MAC subsystem. + */ +#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) +#define HAL_USE_MAC                 FALSE +#endif + +/** + * @brief   Enables the MMC_SPI subsystem. + */ +#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define HAL_USE_MMC_SPI             FALSE +#endif + +/** + * @brief   Enables the PWM subsystem. + */ +#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) +#define HAL_USE_PWM                 TRUE +#endif + +/** + * @brief   Enables the RTC subsystem. + */ +#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) +#define HAL_USE_RTC                 FALSE +#endif + +/** + * @brief   Enables the SDC subsystem. + */ +#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) +#define HAL_USE_SDC                 FALSE +#endif + +/** + * @brief   Enables the SERIAL subsystem. + */ +#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL              FALSE +#endif + +/** + * @brief   Enables the SERIAL over USB subsystem. + */ +#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) +#define HAL_USE_SERIAL_USB          FALSE +#endif + +/** + * @brief   Enables the SPI subsystem. + */ +#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) +#define HAL_USE_SPI                 TRUE +#endif + +/** + * @brief   Enables the UART subsystem. + */ +#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) +#define HAL_USE_UART                FALSE +#endif + +/** + * @brief   Enables the USB subsystem. + */ +#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) +#define HAL_USE_USB                 TRUE +#endif + +/** + * @brief   Enables the WDG subsystem. + */ +#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) +#define HAL_USE_WDG                 FALSE +#endif + +/*===========================================================================*/ +/* ADC driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Enables synchronous APIs. + * @note    Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) +#define ADC_USE_WAIT                TRUE +#endif + +/** + * @brief   Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. + * @note    Disabling this option saves both code and data space. + */ +#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define ADC_USE_MUTUAL_EXCLUSION    TRUE +#endif + +/*===========================================================================*/ +/* CAN driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Sleep mode related APIs inclusion switch. + */ +#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) +#define CAN_USE_SLEEP_MODE          TRUE +#endif + +/*===========================================================================*/ +/* I2C driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Enables the mutual exclusion APIs on the I2C bus. + */ +#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define I2C_USE_MUTUAL_EXCLUSION    TRUE +#endif + +/*===========================================================================*/ +/* MAC driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) +#define MAC_USE_ZERO_COPY           FALSE +#endif + +/** + * @brief   Enables an event sources for incoming packets. + */ +#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) +#define MAC_USE_EVENTS              TRUE +#endif + +/*===========================================================================*/ +/* MMC_SPI driver related settings.                                          */ +/*===========================================================================*/ + +/** + * @brief   Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + *          routines releasing some extra CPU time for the threads with + *          lower priority, this may slow down the driver a bit however. + *          This option is recommended also if the SPI driver does not + *          use a DMA channel and heavily loads the CPU. + */ +#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) +#define MMC_NICE_WAITING            TRUE +#endif + +/*===========================================================================*/ +/* SDC driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Number of initialization attempts before rejecting the card. + * @note    Attempts are performed at 10mS intervals. + */ +#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) +#define SDC_INIT_RETRY              100 +#endif + +/** + * @brief   Include support for MMC cards. + * @note    MMC support is not yet implemented so this option must be kept + *          at @p FALSE. + */ +#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) +#define SDC_MMC_SUPPORT             FALSE +#endif + +/** + * @brief   Delays insertions. + * @details If enabled this options inserts delays into the MMC waiting + *          routines releasing some extra CPU time for the threads with + *          lower priority, this may slow down the driver a bit however. + */ +#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) +#define SDC_NICE_WAITING            TRUE +#endif + +/*===========================================================================*/ +/* SERIAL driver related settings.                                           */ +/*===========================================================================*/ + +/** + * @brief   Default bit rate. + * @details Configuration parameter, this is the baud rate selected for the + *          default configuration. + */ +#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) +#define SERIAL_DEFAULT_BITRATE      38400 +#endif + +/** + * @brief   Serial buffers size. + * @details Configuration parameter, you can change the depth of the queue + *          buffers depending on the requirements of your application. + * @note    The default is 64 bytes for both the transmission and receive + *          buffers. + */ +#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_BUFFERS_SIZE         16 +#endif + +/*===========================================================================*/ +/* SERIAL_USB driver related setting.                                        */ +/*===========================================================================*/ + +/** + * @brief   Serial over USB buffers size. + * @details Configuration parameter, the buffer size must be a multiple of + *          the USB data endpoint maximum packet size. + * @note    The default is 64 bytes for both the transmission and receive + *          buffers. + */ +#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) +#define SERIAL_USB_BUFFERS_SIZE     1 +#endif + +/*===========================================================================*/ +/* SPI driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Enables synchronous APIs. + * @note    Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) +#define SPI_USE_WAIT                TRUE +#endif + +/** + * @brief   Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. + * @note    Disabling this option saves both code and data space. + */ +#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) +#define SPI_USE_MUTUAL_EXCLUSION    TRUE +#endif + + +/*===========================================================================*/ +/* USB driver related settings.                                              */ +/*===========================================================================*/ + +/** + * @brief   Enables synchronous APIs. + * @note    Disabling this option saves both code and data space. + */ +#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) +#define USB_USE_WAIT                TRUE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/keyboards/acheron/austin/info.json b/keyboards/acheron/austin/info.json new file mode 100755 index 0000000000..af857f9739 --- /dev/null +++ b/keyboards/acheron/austin/info.json @@ -0,0 +1,124 @@ +{ +    "keyboard_name": "Austin", +    "url": "", +    "maintainer": "qmk", +    "width": 19.75, +    "height": 5.25, +    "layouts": { +        "LAYOUT_all": { +            "key_count": 105, +            "layout": [ +                {"label":"Esc", "x":0, "y":0}, +                {"label":"F1", "x":1.25, "y":0}, +                {"label":"F2", "x":2.25, "y":0}, +                {"label":"F3", "x":3.25, "y":0}, +                {"label":"F4", "x":4.25, "y":0}, +                {"label":"F5", "x":5.5, "y":0}, +                {"label":"F6", "x":6.5, "y":0}, +                {"label":"F7", "x":7.5, "y":0}, +                {"label":"F8", "x":8.5, "y":0}, +                {"label":"F9", "x":9.75, "y":0}, +                {"label":"F10", "x":10.75, "y":0}, +                {"label":"F11", "x":11.75, "y":0}, +                {"label":"F12", "x":12.75, "y":0}, +                {"label":"Print Screen", "x":14, "y":0}, +                {"label":"Scroll Lock", "x":15.25, "y":0}, +                {"label":"Pause", "x":16.5, "y":0}, +                {"label":"Home", "x":17.5, "y":0}, +                {"label":"End", "x":18.5, "y":0}, +                {"label":"Delete", "x":19.5, "y":0}, + +                {"label":"`", "x":0, "y":1.25}, +                {"label":"1", "x":1, "y":1.25}, +                {"label":"2", "x":2, "y":1.25}, +                {"label":"3", "x":3, "y":1.25}, +                {"label":"4", "x":4, "y":1.25}, +                {"label":"5", "x":5, "y":1.25}, +                {"label":"6", "x":6, "y":1.25}, +                {"label":"7", "x":7, "y":1.25}, +                {"label":"8", "x":8, "y":1.25}, +                {"label":"9", "x":9, "y":1.25}, +                {"label":"0", "x":10, "y":1.25}, +                {"label":"-", "x":11, "y":1.25}, +                {"label":"=", "x":12, "y":1.25}, +                {"label":"Backspace", "x":13, "y":1.25}, +                {"label":"Backspace", "x":14, "y":1.25}, +                {"label":"Insert", "x":15.25, "y":1.25}, +                {"label":"Num Lock", "x":16.5, "y":1.25}, +                {"label":"/", "x":17.5, "y":1.25}, +                {"label":"*", "x":18.5, "y":1.25}, +                {"label":"-", "x":19.5, "y":1.25}, + +                {"label":"Tab", "x":0, "y":2.25, "w":1.5}, +                {"label":"Q", "x":1.5, "y":2.25}, +                {"label":"W", "x":2.5, "y":2.25}, +                {"label":"E", "x":3.5, "y":2.25}, +                {"label":"R", "x":4.5, "y":2.25}, +                {"label":"T", "x":5.5, "y":2.25}, +                {"label":"Y", "x":6.5, "y":2.25}, +                {"label":"U", "x":7.5, "y":2.25}, +                {"label":"I", "x":8.5, "y":2.25}, +                {"label":"O", "x":9.5, "y":2.25}, +                {"label":"P", "x":10.5, "y":2.25}, +                {"label":"[", "x":11.5, "y":2.25}, +                {"label":"]", "x":12.5, "y":2.25}, +                {"label":"\\", "x":13.5, "y":2.25, "w":1.5}, +                {"label":"Page Up", "x":15.25, "y":2.25}, +                {"label":"7", "x":16.5, "y":2.25}, +                {"label":"8", "x":17.5, "y":2.25}, +                {"label":"9", "x":18.5, "y":2.25}, +                {"label":"+", "x":19.5, "y":2.25, "h":2}, + +                {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, +                {"label":"A", "x":1.75, "y":3.25}, +                {"label":"S", "x":2.75, "y":3.25}, +                {"label":"D", "x":3.75, "y":3.25}, +                {"label":"F", "x":4.75, "y":3.25}, +                {"label":"G", "x":5.75, "y":3.25}, +                {"label":"H", "x":6.75, "y":3.25}, +                {"label":"J", "x":7.75, "y":3.25}, +                {"label":"K", "x":8.75, "y":3.25}, +                {"label":"L", "x":9.75, "y":3.25}, +                {"label":";", "x":10.75, "y":3.25}, +                {"label":"'", "x":11.75, "y":3.25}, +                {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, +                {"label":"Page Down", "x":15.25, "y":3.25}, +                {"label":"4", "x":16.5, "y":3.25}, +                {"label":"5", "x":17.5, "y":3.25}, +                {"label":"6", "x":18.5, "y":3.25}, + +                {"label":"Shift", "x":0, "y":4.25, "w":1.25}, +                {"label":"ISO \\", "x":1.25, "y":4.25}, +                {"label":"Z", "x":2.25, "y":4.25}, +                {"label":"X", "x":3.25, "y":4.25}, +                {"label":"C", "x":4.25, "y":4.25}, +                {"label":"V", "x":5.25, "y":4.25}, +                {"label":"B", "x":6.25, "y":4.25}, +                {"label":"N", "x":7.25, "y":4.25}, +                {"label":"M", "x":8.25, "y":4.25}, +                {"label":",", "x":9.25, "y":4.25}, +                {"label":".", "x":10.25, "y":4.25}, +                {"label":"/", "x":11.25, "y":4.25}, +                {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, +                {"label":"Up", "x":14.25, "y":4.5}, +                {"label":"1", "x":16.5, "y":4.25}, +                {"label":"2", "x":17.5, "y":4.25}, +                {"label":"3", "x":18.5, "y":4.25}, +                {"label":"Enter", "x":19.5, "y":4.25, "h":2}, + +                {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, +                {"label":"GUI", "x":1.25, "y":5.25, "w":1.25}, +                {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, +                {"label":"Space", "x":3.75, "y":5.25, "w":6.25}, +                {"label":"Alt", "x":10, "y":5.25, "w":1.5}, +                {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, +                {"label":"Left", "x":13.25, "y":5.5}, +                {"label":"Down", "x":14.25, "y":5.5}, +                {"label":"Right", "x":15.25, "y":5.5}, +                {"label":"0", "x":16.5, "y":5.25}, +                {"label":"0", "x":17.5, "y":5.25}, +                {"label":".", "x":18.5, "y":5.25} +            ] +        } +    } +} diff --git a/keyboards/acheron/austin/keymaps/default/keymap.c b/keyboards/acheron/austin/keymaps/default/keymap.c new file mode 100755 index 0000000000..0dd5531a20 --- /dev/null +++ b/keyboards/acheron/austin/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +/* +Copyright 2012,2013 Jun Wako <[email protected]> + +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 2 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +   [0] = LAYOUT_all( +        KC_ESC , KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 , KC_F12 , KC_PSCR,            KC_SLCK,   KC_PAUS, KC_HOME, KC_END , KC_DEL , +        KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,   KC_INS ,   KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, +        KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_LBRC, KC_RBRC, KC_BSLS,            KC_PGUP,   KC_P7  , KC_P8  , KC_P9  , KC_PPLS, +        KC_CAPS, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT, KC_ENT ,                     KC_PGDN,   KC_P4  , KC_P5  , KC_P6  ,  +        KC_LSFT, KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,   KC_UP  ,                     KC_P1  , KC_P2  , KC_P3  , KC_PENT, +        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC ,                            KC_RALT, KC_RCTL,   KC_LEFT, KC_DOWN, KC_RGHT,            KC_P0  , KC_P0  , KC_PDOT   +    ) +}; diff --git a/keyboards/acheron/austin/keymaps/via/keymap.c b/keyboards/acheron/austin/keymaps/via/keymap.c new file mode 100644 index 0000000000..d745542e0d --- /dev/null +++ b/keyboards/acheron/austin/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* +Copyright 2012,2013 Jun Wako <[email protected]> + +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 2 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +   [0] = LAYOUT_all( +        KC_ESC , KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 , KC_F12 , KC_PSCR,            KC_SLCK,   KC_PAUS, KC_HOME, KC_END , KC_DEL , +        KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC,   KC_INS ,   KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, +        KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_LBRC, KC_RBRC, KC_BSLS,            KC_PGUP,   KC_P7  , KC_P8  , KC_P9  , KC_PPLS, +        KC_CAPS, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_H   , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT, KC_ENT ,                     KC_PGDN,   KC_P4  , KC_P5  , KC_P6  ,  +        KC_LSFT, KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,   KC_UP  ,                     KC_P1  , KC_P2  , KC_P3  , KC_PENT, +        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC ,                            KC_RALT, KC_RCTL,   KC_LEFT, KC_DOWN, KC_RGHT,            KC_P0  , KC_P0  , KC_PDOT   +    ), + +   [1] = LAYOUT_all( +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                     _______,   _______, _______, _______,  +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                       _______, _______, _______, _______, +        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______,              _______, _______, _______ +    ), + +  [2] = LAYOUT_all( +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                     _______,   _______, _______, _______,  +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                       _______, _______, _______, _______, +        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______,              _______, _______, _______ +  ), + +  [3] = LAYOUT_all( +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,   _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,            _______,   _______, _______, _______, _______, +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                     _______,   _______, _______, _______,  +        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,                       _______, _______, _______, _______, +        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______,              _______, _______, _______ +  ) +}; diff --git a/keyboards/acheron/austin/keymaps/via/rules.mk b/keyboards/acheron/austin/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/acheron/austin/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/acheron/austin/mcuconf.h b/keyboards/acheron/austin/mcuconf.h new file mode 100644 index 0000000000..048eb4df65 --- /dev/null +++ b/keyboards/acheron/austin/mcuconf.h @@ -0,0 +1,176 @@ +/* +    ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + +    Licensed under the Apache License, Version 2.0 (the "License"); +    you may not use this file except in compliance with the License. +    You may obtain a copy of the License at + +        http://www.apache.org/licenses/LICENSE-2.0 + +    Unless required by applicable law or agreed to in writing, software +    distributed under the License is distributed on an "AS IS" BASIS, +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +    See the License for the specific language governing permissions and +    limitations under the License. +*/ + +#ifndef _MCUCONF_H_ +#define _MCUCONF_H_ + +/* + * STM32F0xx drivers configuration. + * The following settings override the default settings present in + * the various device driver implementation headers. + * Note that the settings for each driver only have effect if the whole + * driver is enabled in halconf.h. + * + * IRQ priorities: + * 3...0       Lowest...Highest. + * + * DMA priorities: + * 0...3        Lowest...Highest. + */ + +#define STM32F0xx_MCUCONF +// #define STM32F070xB + +/* + * HAL driver system settings. + */ +#define STM32_NO_INIT                       FALSE +#define STM32_PVD_ENABLE                    FALSE +#define STM32_PLS                           STM32_PLS_LEV0 +#define STM32_HSI_ENABLED                   TRUE +#define STM32_HSI14_ENABLED                 TRUE +#define STM32_HSI48_ENABLED                 FALSE +#define STM32_LSI_ENABLED                   TRUE +#define STM32_HSE_ENABLED                   FALSE +#define STM32_LSE_ENABLED                   FALSE +#define STM32_SW                            STM32_SW_PLL +#define STM32_PLLSRC                        STM32_PLLSRC_HSI_DIV2 +#define STM32_PREDIV_VALUE                  1 +#define STM32_PLLMUL_VALUE                  12 +#define STM32_HPRE                          STM32_HPRE_DIV1 +#define STM32_PPRE                          STM32_PPRE_DIV1 +#define STM32_ADCSW                         STM32_ADCSW_HSI14 +#define STM32_ADCPRE                        STM32_ADCPRE_DIV4 +#define STM32_MCOSEL                        STM32_MCOSEL_NOCLOCK +#define STM32_ADCPRE                        STM32_ADCPRE_DIV4 +#define STM32_ADCSW                         STM32_ADCSW_HSI14 +#define STM32_USBSW                         STM32_USBSW_HSI48 +#define STM32_CECSW                         STM32_CECSW_HSI +#define STM32_I2C1SW                        STM32_I2C1SW_HSI +#define STM32_USART1SW                      STM32_USART1SW_PCLK +#define STM32_RTCSEL                        STM32_RTCSEL_LSI + +/* + * ADC driver system settings. + */ +#define STM32_ADC_USE_ADC1                  FALSE +#define STM32_ADC_ADC1_DMA_PRIORITY         2 +#define STM32_ADC_IRQ_PRIORITY              2 +#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY     2 + +/* + * EXT driver system settings. + */ +#define STM32_EXT_EXTI0_1_IRQ_PRIORITY      3 +#define STM32_EXT_EXTI2_3_IRQ_PRIORITY      3 +#define STM32_EXT_EXTI4_15_IRQ_PRIORITY     3 +#define STM32_EXT_EXTI16_IRQ_PRIORITY       3 +#define STM32_EXT_EXTI17_IRQ_PRIORITY       3 + +/* + * GPT driver system settings. + */ +#define STM32_GPT_USE_TIM1                  FALSE +#define STM32_GPT_USE_TIM2                  FALSE +#define STM32_GPT_USE_TIM3                  FALSE +#define STM32_GPT_USE_TIM14                 FALSE +#define STM32_GPT_TIM1_IRQ_PRIORITY         2 +#define STM32_GPT_TIM2_IRQ_PRIORITY         2 +#define STM32_GPT_TIM3_IRQ_PRIORITY         2 +#define STM32_GPT_TIM14_IRQ_PRIORITY        2 + +/* + * I2C driver system settings. + */ +#define STM32_I2C_USE_I2C1                  TRUE +#define STM32_I2C_USE_I2C2                  FALSE +#define STM32_I2C_BUSY_TIMEOUT              50 +#define STM32_I2C_I2C1_IRQ_PRIORITY         3 +#define STM32_I2C_I2C2_IRQ_PRIORITY         3 +#define STM32_I2C_USE_DMA                   TRUE +#define STM32_I2C_I2C1_DMA_PRIORITY         1 +#define STM32_I2C_I2C2_DMA_PRIORITY         1 +#define STM32_I2C_I2C1_RX_DMA_STREAM        STM32_DMA_STREAM_ID(1, 7) +#define STM32_I2C_I2C1_TX_DMA_STREAM        STM32_DMA_STREAM_ID(1, 6) +#define STM32_I2C_DMA_ERROR_HOOK(i2cp)      osalSysHalt("DMA failure") + +/* + * ICU driver system settings. + */ +#define STM32_ICU_USE_TIM1                  FALSE +#define STM32_ICU_USE_TIM2                  FALSE +#define STM32_ICU_USE_TIM3                  FALSE +#define STM32_ICU_TIM1_IRQ_PRIORITY         3 +#define STM32_ICU_TIM2_IRQ_PRIORITY         3 +#define STM32_ICU_TIM3_IRQ_PRIORITY         3 + +/* + * PWM driver system settings. + */ +#define STM32_PWM_USE_ADVANCED              FALSE +#define STM32_PWM_USE_TIM1                  FALSE +#define STM32_PWM_USE_TIM2                  FALSE +#define STM32_PWM_USE_TIM3                  TRUE +#define STM32_PWM_TIM1_IRQ_PRIORITY         3 +#define STM32_PWM_TIM2_IRQ_PRIORITY         3 +#define STM32_PWM_TIM3_IRQ_PRIORITY         3 + +/* + * SERIAL driver system settings. + */ +#define STM32_SERIAL_USE_USART1             FALSE +#define STM32_SERIAL_USE_USART2             FALSE +#define STM32_SERIAL_USART1_PRIORITY        3 +#define STM32_SERIAL_USART2_PRIORITY        3 + +/* + * SPI driver system settings. + */ +#define STM32_SPI_USE_SPI1                  FALSE +#define STM32_SPI_USE_SPI2                  TRUE +#define STM32_SPI_SPI1_DMA_PRIORITY         1 +#define STM32_SPI_SPI2_DMA_PRIORITY         1 +#define STM32_SPI_SPI1_IRQ_PRIORITY         2 +#define STM32_SPI_SPI2_IRQ_PRIORITY         2 +#define STM32_SPI_SPI2_RX_DMA_STREAM        STM32_DMA_STREAM_ID(1, 4) +#define STM32_SPI_SPI2_TX_DMA_STREAM        STM32_DMA_STREAM_ID(1, 5) +#define STM32_SPI_DMA_ERROR_HOOK(spip)      osalSysHalt("DMA failure") + +/* + * ST driver system settings. + */ +#define STM32_ST_IRQ_PRIORITY               2 +#define STM32_ST_USE_TIMER                  2 + +/* + * UART driver system settings. + */ +#define STM32_UART_USE_USART1               FALSE +#define STM32_UART_USE_USART2               FALSE +#define STM32_UART_USART1_IRQ_PRIORITY      3 +#define STM32_UART_USART2_IRQ_PRIORITY      3 +#define STM32_UART_USART1_DMA_PRIORITY      0 +#define STM32_UART_USART2_DMA_PRIORITY      0 +#define STM32_UART_DMA_ERROR_HOOK(uartp)    osalSysHalt("DMA failure") + +/* + * USB driver system settings. + */ +#define STM32_USB_USE_USB1                  TRUE +#define STM32_USB_LOW_POWER_ON_SUSPEND      FALSE +#define STM32_USB_USB1_LP_IRQ_PRIORITY      3 + +#endif /* _MCUCONF_H_ */ diff --git a/keyboards/acheron/austin/readme.md b/keyboards/acheron/austin/readme.md new file mode 100644 index 0000000000..7d7357fd37 --- /dev/null +++ b/keyboards/acheron/austin/readme.md @@ -0,0 +1,29 @@ +# Acheron Aχξρων 1800CP-SM-S-STM32-MX-TH-WI (codename "Austin") QMK firmware + +<p align="center"> +  <img align="middle" src="https://raw.githubusercontent.com/Gondolindrim/acheronLibrary/master/graphics/acheronLong.png"  width="400">  +</p> + +## Introduction + +This is the QMK firmware repository for the Austin, updated until [revision Alpha](https://github.com/Gondolindrim/Austin/releases/tag/Alpha). + +The AustinPCB is an Open-Hardware guidelines compliant PCB which files can be found at [this link](https://github.com/Gondolindrim/Austin). Its designer and maintainer is [Gondolindrim](https://github.com/Gondolindrim). + +The Austin keyboard is a collaboration between Gondolindrim, DriftingBunnies from DriftMechanics and PheonixStarr from Nightingale Studios. + +See the [IC page](https://geekhack.org/index.php?topic=100883) and the [GB page](https://geekhack.org/index.php?topic=102542) for further information. The GB was the only known way to obtain an Austin from the official vendor. + +## PCB Documentation + +See the [AcheronDocs](https://gondolindrim.github.io/AcheronDocs/austin/intro.html) page for the AustinPCB full documentation. You can also check the KiCad PCB files at the [Austin GitHub repository](https://github.com/Gondolindrim/Austin). + +Before using the files for personal or commercial use, please read the [Acheron Open-Hardware License V1.2](https://gondolindrim.github.io/AcheronDocs/license/license.html) under which the Austin PCB is published. + +## How to compile + +After setting up your build environment, you can compile the Austin default keymap by using: + +    make acheron/austin: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).
\ No newline at end of file diff --git a/keyboards/acheron/austin/rules.mk b/keyboards/acheron/austin/rules.mk new file mode 100644 index 0000000000..17e589ad7c --- /dev/null +++ b/keyboards/acheron/austin/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = STM32F072 + +# Build Options +#   change yes to no to disable +# +BOOTMAGIC_ENABLE = yes      # Virtual DIP switch configuration +MOUSEKEY_ENABLE = yes       # Mouse keys +EXTRAKEY_ENABLE = yes       # Audio control and System control +CONSOLE_ENABLE = yes        # Console for debug +COMMAND_ENABLE = yes        # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes           # USB Nkey Rollover +BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow +MIDI_ENABLE = no            # MIDI support +BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no           # Audio output on port C6 +FAUXCLICKY_ENABLE = no      # Use buzzer to emulate clicky switches +HD44780_ENABLE = no         # Enable support for HD44780 based LCDs + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE | 
