From 4f3b84f4c5721b6bef54257a997b7e722f9e69f1 Mon Sep 17 00:00:00 2001 From: Kai Ryu Date: Thu, 21 Nov 2013 12:33:03 +0900 Subject: [PATCH] Add custom backlight feature --- common/backlight.c | 23 +++++++++++++++++ keyboard/gh60/backlight.c | 54 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 keyboard/gh60/backlight.c diff --git a/common/backlight.c b/common/backlight.c index 00dc04a0..f13d9dbc 100644 --- a/common/backlight.c +++ b/common/backlight.c @@ -33,6 +33,16 @@ void backlight_init(void) void backlight_increase(void) { +#ifdef BACKLIGHT_CUSTOM + if (backlight_config.enable) { + if (backlight_config.level < BACKLIGHT_LEVELS) { + backlight_config.level++; + eeconfig_write_backlight(backlight_config.raw); + } + dprintf("backlight custom increase: %u\n", backlight_config.level); + backlight_set(backlight_config.level); + } +#else if(backlight_config.level < BACKLIGHT_LEVELS) { backlight_config.level++; @@ -41,10 +51,22 @@ void backlight_increase(void) } dprintf("backlight increase: %u\n", backlight_config.level); backlight_set(backlight_config.level); +#endif } void backlight_decrease(void) { +#ifdef BACKLIGHT_CUSTOM + if (backlight_config.enable) { + if(backlight_config.level > 1) + { + backlight_config.level--; + eeconfig_write_backlight(backlight_config.raw); + } + dprintf("backlight custom decrease: %u\n", backlight_config.level); + backlight_set(backlight_config.level); + } +#else if(backlight_config.level > 0) { backlight_config.level--; @@ -53,6 +75,7 @@ void backlight_decrease(void) } dprintf("backlight decrease: %u\n", backlight_config.level); backlight_set(backlight_config.level); +#endif } void backlight_toggle(void) diff --git a/keyboard/gh60/backlight.c b/keyboard/gh60/backlight.c new file mode 100644 index 00000000..9a248b52 --- /dev/null +++ b/keyboard/gh60/backlight.c @@ -0,0 +1,54 @@ +/* +Copyright 2013 Kai Ryu + +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 . +*/ + +#include +#include +#include +#include "backlight.h" + +#ifdef GH60_REV_C +static const uint8_t backlight_table[] PROGMEM = { + 0, 16, 128, 255 +}; + +/* Backlight pin configuration + * PWM: PB7 + */ +void backlight_set(uint8_t level) +{ + if (level > 0) { + // Turn on PWM + cli(); + DDRB |= (1<