Add kb and user level keyboard initialization functions (#3113)
* Add suspend functions * Disable RGB code if it's disabled * Add keyboard_init functions * Change where references so it will compile * Wrong command chained in wake up kb function * Fix non-feature file changes * Add documentation * Re-add matrix init docs * add rgblight code to example * Remove suspend code * Clean up docs * Fix docs * Fix suspend code * more doc fixes * change function to startup_* rather than keyboard_init_ * fix spelling error * fix up docs to finish removing keyboard_init * Use Pre and Post init functions * Update Documenation * Remove changes to my keymap and userspace code * Cleanup * Revert changes to extra files * Forgot a semicolon * Make sure all protocols call keyboard_setup * Cleanup functions * Unset startup_user * Remove changes from division keyboard * Readd startup_user function * Remove all to startup_user * Update docs/custom_quantum_functions.md Co-Authored-By: drashna <drashna@live.com> * Update docs/custom_quantum_functions.md Co-Authored-By: drashna <drashna@live.com> * Add suggestion line * Rebase fixes * Update documentation to be more useful/accurate * Cleanup of documentation * Fix spacing inconsistency * Revert unexpected change to keymap
This commit is contained in:
parent
40e67a3074
commit
cc5c6b449a
7 changed files with 125 additions and 28 deletions
|
@ -142,20 +142,20 @@ static void power_down(uint8_t wdto) {
|
|||
#endif
|
||||
suspend_power_down_kb();
|
||||
|
||||
// TODO: more power saving
|
||||
// See PicoPower application note
|
||||
// - I/O port input with pullup
|
||||
// - prescale clock
|
||||
// - BOD disable
|
||||
// - Power Reduction Register PRR
|
||||
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
|
||||
sleep_enable();
|
||||
sei();
|
||||
sleep_cpu();
|
||||
sleep_disable();
|
||||
// TODO: more power saving
|
||||
// See PicoPower application note
|
||||
// - I/O port input with pullup
|
||||
// - prescale clock
|
||||
// - BOD disable
|
||||
// - Power Reduction Register PRR
|
||||
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
|
||||
sleep_enable();
|
||||
sei();
|
||||
sleep_cpu();
|
||||
sleep_disable();
|
||||
|
||||
// Disable watchdog after sleep
|
||||
wdt_disable();
|
||||
// Disable watchdog after sleep
|
||||
wdt_disable();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -139,6 +139,40 @@ __attribute__ ((weak))
|
|||
void matrix_setup(void) {
|
||||
}
|
||||
|
||||
/** \brief keyboard_pre_init_user
|
||||
*
|
||||
* FIXME: needs doc
|
||||
*/
|
||||
__attribute__ ((weak))
|
||||
void keyboard_pre_init_user(void) { }
|
||||
|
||||
/** \brief keyboard_pre_init_kb
|
||||
*
|
||||
* FIXME: needs doc
|
||||
*/
|
||||
__attribute__ ((weak))
|
||||
void keyboard_pre_init_kb(void) {
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
/** \brief keyboard_post_init_user
|
||||
*
|
||||
* FIXME: needs doc
|
||||
*/
|
||||
|
||||
__attribute__ ((weak))
|
||||
void keyboard_post_init_user() {}
|
||||
|
||||
/** \brief keyboard_post_init_kb
|
||||
*
|
||||
* FIXME: needs doc
|
||||
*/
|
||||
|
||||
__attribute__ ((weak))
|
||||
void keyboard_post_init_kb(void) {
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
/** \brief keyboard_setup
|
||||
*
|
||||
* FIXME: needs doc
|
||||
|
@ -146,6 +180,7 @@ void matrix_setup(void) {
|
|||
void keyboard_setup(void) {
|
||||
disable_jtag();
|
||||
matrix_setup();
|
||||
keyboard_pre_init_kb();
|
||||
}
|
||||
|
||||
/** \brief is_keyboard_master
|
||||
|
@ -199,6 +234,7 @@ void keyboard_init(void) {
|
|||
#if defined(NKRO_ENABLE) && defined(FORCE_NKRO)
|
||||
keymap_config.nkro = 1;
|
||||
#endif
|
||||
keyboard_post_init_kb(); /* Always keep this last */
|
||||
}
|
||||
|
||||
/** \brief Keyboard task: Do keyboard routine jobs
|
||||
|
|
|
@ -70,6 +70,11 @@ void keyboard_set_leds(uint8_t leds);
|
|||
/* it runs whenever code has to behave differently on a slave */
|
||||
bool is_keyboard_master(void);
|
||||
|
||||
void keyboard_pre_init_kb(void);
|
||||
void keyboard_pre_init_user(void);
|
||||
void keyboard_post_init_kb(void);
|
||||
void keyboard_post_init_user(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -42,13 +42,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
{
|
||||
|
||||
CPU_PRESCALE(0);
|
||||
|
||||
// DDRD = _BV(PD5);
|
||||
// DDRB = _BV(PB0);
|
||||
|
||||
|
||||
// PORTD = _BV(PD5);
|
||||
// PORTB = _BV(PB0);
|
||||
|
||||
|
@ -59,22 +59,23 @@ int main(void)
|
|||
// while (!usb_configured()) /* wait */
|
||||
|
||||
|
||||
keyboard_setup();
|
||||
|
||||
dprintf("Initializing keyboard...\n");
|
||||
keyboard_init();
|
||||
|
||||
|
||||
// This implementation is pretty simplistic... if the USB connection
|
||||
// is not configured, choose the Bluefruit, otherwise use USB
|
||||
// Definitely would prefer to have this driven by an input pin and make
|
||||
// it switch dynamically - BCG
|
||||
// if (!usb_configured()) {
|
||||
|
||||
|
||||
// // Send power to Bluefruit... Adafruit says it takes 27 mA, I think
|
||||
// // the pins should provide 40 mA, but just in case I switch the
|
||||
// // the pins should provide 40 mA, but just in case I switch the
|
||||
// // Bluefruit using a transistor - BCG
|
||||
// DDRB = _BV(PB6);
|
||||
// PORTB |= _BV(PB6);
|
||||
|
||||
|
||||
dprintf("Setting host driver to bluefruit...\n");
|
||||
host_set_driver(bluefruit_driver());
|
||||
|
||||
|
@ -131,7 +132,7 @@ int main(void)
|
|||
// usb_remote_wakeup();
|
||||
// }
|
||||
// }
|
||||
// keyboard_task();
|
||||
// keyboard_task();
|
||||
// }
|
||||
// }
|
||||
|
||||
|
|
|
@ -119,6 +119,8 @@ int main(void) {
|
|||
// TESTING
|
||||
// chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
|
||||
|
||||
keyboard_setup();
|
||||
|
||||
/* Init USB */
|
||||
init_usb_driver(&USB_DRIVER);
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ int main(void)
|
|||
#ifndef NO_UART
|
||||
uart_init(UART_BAUD_RATE);
|
||||
#endif
|
||||
keyboard_setup();
|
||||
|
||||
keyboard_init();
|
||||
host_set_driver(vusb_driver());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue