diff options
| author | xyverz <xyverz@gmail.com> | 2016-12-06 17:36:19 -0800 | 
|---|---|---|
| committer | xyverz <xyverz@gmail.com> | 2016-12-06 17:36:19 -0800 | 
| commit | 9216bc73778ef0fe5830b91511f37dd90fb0f0a1 (patch) | |
| tree | 6c9f343c2485150c1912b7b68ade364a232015bd /tmk_core/common | |
| parent | f9cf4f75aec8cb24f054f243b985d9e5c18a2a80 (diff) | |
| parent | 985a091a739c99736d5b17de5161831488dbc219 (diff) | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'tmk_core/common')
| -rw-r--r-- | tmk_core/common/avr/suspend.c | 11 | ||||
| -rw-r--r-- | tmk_core/common/avr/timer.c | 36 | ||||
| -rw-r--r-- | tmk_core/common/backlight.c | 4 | ||||
| -rw-r--r-- | tmk_core/common/host_driver.h | 9 | ||||
| -rw-r--r-- | tmk_core/common/raw_hid.h | 8 | 
5 files changed, 40 insertions, 28 deletions
| diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index 8a7272bbc5..0c81e83612 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -47,6 +47,7 @@ void suspend_idle(uint8_t time)      sleep_disable();  } +#ifndef NO_SUSPEND_POWER_DOWN  /* Power down MCU with watchdog timer   * wdto: watchdog timer timeout defined in <avr/wdt.h>   *          WDTO_15MS @@ -61,6 +62,7 @@ void suspend_idle(uint8_t time)   *          WDTO_8S   */  static uint8_t wdt_timeout = 0; +  static void power_down(uint8_t wdto)  {  #ifdef PROTOCOL_LUFA @@ -98,19 +100,19 @@ static void power_down(uint8_t wdto)      // Disable watchdog after sleep      wdt_disable();  } +#endif  void suspend_power_down(void)  { +#ifndef NO_SUSPEND_POWER_DOWN      power_down(WDTO_15MS); +#endif  }  __attribute__ ((weak)) void matrix_power_up(void) {}  __attribute__ ((weak)) void matrix_power_down(void) {}  bool suspend_wakeup_condition(void)  { -#ifdef BACKLIGHT_ENABLE -    backlight_set(0); -#endif      matrix_power_up();      matrix_scan();      matrix_power_down(); @@ -126,10 +128,9 @@ void suspend_wakeup_init(void)      // clear keyboard state      clear_keyboard();  #ifdef BACKLIGHT_ENABLE -    backlight_set(0);      backlight_init();  #endif -led_set(host_keyboard_leds()); +	led_set(host_keyboard_leds());  }  #ifndef NO_SUSPEND_POWER_DOWN diff --git a/tmk_core/common/avr/timer.c b/tmk_core/common/avr/timer.c index 292b41c3a6..84af444885 100644 --- a/tmk_core/common/avr/timer.c +++ b/tmk_core/common/avr/timer.c @@ -17,6 +17,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include <avr/io.h>  #include <avr/interrupt.h> +#include <util/atomic.h>  #include <stdint.h>  #include "timer_avr.h"  #include "timer.h" @@ -24,7 +25,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  // counter resolution 1ms  // NOTE: union { uint32_t timer32; struct { uint16_t dummy; uint16_t timer16; }} -volatile uint32_t timer_count = 0; +volatile uint32_t timer_count;  void timer_init(void)  { @@ -52,10 +53,9 @@ void timer_init(void)  inline  void timer_clear(void)  { -    uint8_t sreg = SREG; -    cli(); +  ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {      timer_count = 0; -    SREG = sreg; +  }  }  inline @@ -63,10 +63,9 @@ uint16_t timer_read(void)  {      uint32_t t; -    uint8_t sreg = SREG; -    cli(); -    t = timer_count; -    SREG = sreg; +    ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { +      t = timer_count; +    }      return (t & 0xFFFF);  } @@ -76,10 +75,9 @@ uint32_t timer_read32(void)  {      uint32_t t; -    uint8_t sreg = SREG; -    cli(); -    t = timer_count; -    SREG = sreg; +    ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { +      t = timer_count; +    }      return t;  } @@ -89,10 +87,9 @@ uint16_t timer_elapsed(uint16_t last)  {      uint32_t t; -    uint8_t sreg = SREG; -    cli(); -    t = timer_count; -    SREG = sreg; +    ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { +      t = timer_count; +    }      return TIMER_DIFF_16((t & 0xFFFF), last);  } @@ -102,10 +99,9 @@ uint32_t timer_elapsed32(uint32_t last)  {      uint32_t t; -    uint8_t sreg = SREG; -    cli(); -    t = timer_count; -    SREG = sreg; +    ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { +      t = timer_count; +    }      return TIMER_DIFF_32(t, last);  } diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index c9e8fd3fd2..0e0ad2d154 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -36,9 +36,9 @@ void backlight_increase(void)      if(backlight_config.level < BACKLIGHT_LEVELS)      {          backlight_config.level++; -        backlight_config.enable = 1; -        eeconfig_update_backlight(backlight_config.raw);      } +    backlight_config.enable = 1; +    eeconfig_update_backlight(backlight_config.raw);      dprintf("backlight increase: %u\n", backlight_config.level);      backlight_set(backlight_config.level);  } diff --git a/tmk_core/common/host_driver.h b/tmk_core/common/host_driver.h index edb9e5dd9c..588d1c0be8 100644 --- a/tmk_core/common/host_driver.h +++ b/tmk_core/common/host_driver.h @@ -20,7 +20,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include <stdint.h>  #include "report.h" - +#ifdef MIDI_ENABLE +	#include "midi.h" +#endif  typedef struct {      uint8_t (*keyboard_leds)(void); @@ -28,6 +30,11 @@ typedef struct {      void (*send_mouse)(report_mouse_t *);      void (*send_system)(uint16_t);      void (*send_consumer)(uint16_t); +#ifdef MIDI_ENABLE +    void (*usb_send_func)(MidiDevice *, uint16_t, uint8_t, uint8_t, uint8_t); +    void (*usb_get_midi)(MidiDevice *); +    void (*midi_usb_init)(MidiDevice *); +#endif  } host_driver_t;  #endif diff --git a/tmk_core/common/raw_hid.h b/tmk_core/common/raw_hid.h new file mode 100644 index 0000000000..86da02fd15 --- /dev/null +++ b/tmk_core/common/raw_hid.h @@ -0,0 +1,8 @@ +#ifndef _RAW_HID_H_ +#define _RAW_HID_H_ + +void raw_hid_receive( uint8_t *data, uint8_t length ); + +void raw_hid_send( uint8_t *data, uint8_t length ); + +#endif | 
