aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common
diff options
context:
space:
mode:
authorishtob <ishtob@gmail.com>2019-02-16 21:39:30 -0500
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>2019-02-16 18:39:30 -0800
commit2cee371bf125a6ec541dd7c5a809573facc7c456 (patch)
tree7bb6c074b759843d531eee67d65d91618bd79732 /tmk_core/common
parenta7a647b7f6d707e9c952461beeca1f3637039d36 (diff)
downloadqmk_firmware-2cee371bf125a6ec541dd7c5a809573facc7c456.tar.gz
qmk_firmware-2cee371bf125a6ec541dd7c5a809573facc7c456.zip
Haptic feedback generalized - DRV2605 and solenoids (#4939)
* initial work to add eeprom to haptic feedback and decouple the feedback process from keyboards * Haptic feedback enhancements: on/off toggle working, feedback order working todo: -work on modes switching -get modes switching to save to eeprom * haptic enhancement - eeprom and modes added * Added set and get functions for haptic feedback * initial implementation of solenoids under haptic feedback * changed eeprom to 32 bits to reserve blocks for future features * start documentation of haptic feedback * change keycode per comment from reviewers * typo fixes * added eeprom for solenoid configs * added solenoid and docs * Add/fix default parameters configs, improve docs * more doc cleanup * add in solenoid buzz toggle, clean up doc * some fixes for error in compiling solenoid * fix a chibios specific i2c read function and added one for AVR controllers in DRV2605L.c * fixes for avr side issues * update keymap * fix keymap compile error * fix bugs found during solenoid testing * set pin that is not powered during bootloader * added warning about certain pins on the MCU may trip solenoid during DFU/bootloader
Diffstat (limited to 'tmk_core/common')
-rw-r--r--tmk_core/common/eeconfig.c9
-rw-r--r--tmk_core/common/eeconfig.h7
2 files changed, 16 insertions, 0 deletions
diff --git a/tmk_core/common/eeconfig.c b/tmk_core/common/eeconfig.c
index 59b2bffbc..ded27e599 100644
--- a/tmk_core/common/eeconfig.c
+++ b/tmk_core/common/eeconfig.c
@@ -45,6 +45,7 @@ void eeconfig_init_quantum(void) {
45 eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default 45 eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default
46 eeprom_update_dword(EECONFIG_RGBLIGHT, 0); 46 eeprom_update_dword(EECONFIG_RGBLIGHT, 0);
47 eeprom_update_byte(EECONFIG_STENOMODE, 0); 47 eeprom_update_byte(EECONFIG_STENOMODE, 0);
48 eeprom_update_dword(EECONFIG_HAPTIC, 0);
48 49
49 eeconfig_init_kb(); 50 eeconfig_init_kb();
50} 51}
@@ -177,3 +178,11 @@ uint32_t eeconfig_read_user(void) { return eeprom_read_dword(EECONFIG_USER)
177void eeconfig_update_user(uint32_t val) { eeprom_update_dword(EECONFIG_USER, val); } 178void eeconfig_update_user(uint32_t val) { eeprom_update_dword(EECONFIG_USER, val); }
178 179
179 180
181uint32_t eeconfig_read_haptic(void) { return eeprom_read_dword(EECONFIG_HAPTIC); }
182/** \brief eeconfig update user
183 *
184 * FIXME: needs doc
185 */
186void eeconfig_update_haptic(uint32_t val) { eeprom_update_dword(EECONFIG_HAPTIC, val); }
187
188
diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h
index eedd67602..d576634f5 100644
--- a/tmk_core/common/eeconfig.h
+++ b/tmk_core/common/eeconfig.h
@@ -41,6 +41,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
41#define EECONFIG_KEYBOARD (uint32_t *)15 41#define EECONFIG_KEYBOARD (uint32_t *)15
42#define EECONFIG_USER (uint32_t *)19 42#define EECONFIG_USER (uint32_t *)19
43 43
44#define EECONFIG_HAPTIC (uint32_t*)24
45
44/* debug bit */ 46/* debug bit */
45#define EECONFIG_DEBUG_ENABLE (1<<0) 47#define EECONFIG_DEBUG_ENABLE (1<<0)
46#define EECONFIG_DEBUG_MATRIX (1<<1) 48#define EECONFIG_DEBUG_MATRIX (1<<1)
@@ -94,4 +96,9 @@ void eeconfig_update_kb(uint32_t val);
94uint32_t eeconfig_read_user(void); 96uint32_t eeconfig_read_user(void);
95void eeconfig_update_user(uint32_t val); 97void eeconfig_update_user(uint32_t val);
96 98
99#ifdef HAPTIC_ENABLE
100uint32_t eeconfig_read_haptic(void);
101void eeconfig_update_haptic(uint32_t val);
102#endif
103
97#endif 104#endif