diff --git a/firmware/export/config/rk27generic.h b/firmware/export/config/rk27generic.h index 5427d1fed4..6ed7353d16 100644 --- a/firmware/export/config/rk27generic.h +++ b/firmware/export/config/rk27generic.h @@ -113,9 +113,12 @@ /* Define this for LCD backlight available */ #define HAVE_BACKLIGHT +#define HAVE_BACKLIGHT_BRIGHTNESS -/* Doesn't work so comment it out for now */ -/* #define HAVE_BACKLIGHT_BRIGHTNESS */ +/* Main LCD backlight brightness range and defaults */ +#define MIN_BRIGHTNESS_SETTING 0 +#define MAX_BRIGHTNESS_SETTING 31 +#define DEFAULT_BRIGHTNESS_SETTING 18 /* Define this if you have a software controlled poweroff */ #define HAVE_SW_POWEROFF diff --git a/firmware/target/arm/rk27xx/backlight-rk27xx.c b/firmware/target/arm/rk27xx/backlight-rk27xx.c index 0d871924ea..e759220dff 100644 --- a/firmware/target/arm/rk27xx/backlight-rk27xx.c +++ b/firmware/target/arm/rk27xx/backlight-rk27xx.c @@ -25,6 +25,14 @@ #include "backlight-target.h" #include "system.h" +static int brightness = DEFAULT_BRIGHTNESS_SETTING; +static const unsigned short log_brightness[] = { + 0x2710, 0x27ac, 0x2849, 0x2983, 0x2abd, 0x2c93, 0x2e6a, 0x30dd, + 0x3351, 0x3661, 0x3971, 0x3d1f, 0x40cc, 0x4516, 0x4960, 0x4e47, + 0x532e, 0x58b1, 0x5e35, 0x6456, 0x6a76, 0x7134, 0x77f1, 0x7f4c, + 0x86a6, 0x8e9d, 0x9695, 0x9f29, 0xa7bd, 0xb0ee, 0xba1f, 0xc350 +}; + bool _backlight_init(void) { /* configure PD4 as output */ @@ -36,15 +44,18 @@ bool _backlight_init(void) /* IOMUXB - set PWM0 pin as GPIO */ SCU_IOMUXB_CON &= ~(1 << 11); /* type<<11<