mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
Compare commits
5 commits
10dbdd6b22
...
cd54b4e046
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd54b4e046 | ||
|
|
df3712e708 | ||
|
|
b1511738f7 | ||
|
|
9722cad478 | ||
|
|
4736de39b6 |
6 changed files with 341 additions and 304 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -108,8 +108,8 @@
|
||||||
|
|
||||||
/* Main LCD backlight brightness range and defaults */
|
/* Main LCD backlight brightness range and defaults */
|
||||||
#define MIN_BRIGHTNESS_SETTING 0
|
#define MIN_BRIGHTNESS_SETTING 0
|
||||||
#define MAX_BRIGHTNESS_SETTING 100
|
#define MAX_BRIGHTNESS_SETTING 88
|
||||||
#define DEFAULT_BRIGHTNESS_SETTING 50
|
#define DEFAULT_BRIGHTNESS_SETTING 44
|
||||||
|
|
||||||
/* Which backlight fading type? */
|
/* Which backlight fading type? */
|
||||||
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
|
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,12 @@
|
||||||
/* define this if you have a colour LCD */
|
/* define this if you have a colour LCD */
|
||||||
#define HAVE_LCD_COLOR
|
#define HAVE_LCD_COLOR
|
||||||
|
|
||||||
|
/* define this if you have LCD enable function */
|
||||||
|
#define HAVE_LCD_ENABLE
|
||||||
|
|
||||||
|
/* Define this if the LCD can shut down */
|
||||||
|
#define HAVE_LCD_SHUTDOWN
|
||||||
|
|
||||||
#ifndef BOOTLOADER
|
#ifndef BOOTLOADER
|
||||||
#define HAVE_ALBUMART
|
#define HAVE_ALBUMART
|
||||||
|
|
||||||
|
|
@ -32,7 +38,7 @@
|
||||||
#define HAVE_JPEG
|
#define HAVE_JPEG
|
||||||
|
|
||||||
/* Define this if a programmable hotkey is mapped */
|
/* Define this if a programmable hotkey is mapped */
|
||||||
#define HAVE_HOTKEY
|
//#define HAVE_HOTKEY
|
||||||
|
|
||||||
/* define this if you have access to the quickscreen */
|
/* define this if you have access to the quickscreen */
|
||||||
#define HAVE_QUICKSCREEN
|
#define HAVE_QUICKSCREEN
|
||||||
|
|
@ -42,9 +48,6 @@
|
||||||
/* define this if you would like tagcache to build on this target */
|
/* define this if you would like tagcache to build on this target */
|
||||||
#define HAVE_TAGCACHE
|
#define HAVE_TAGCACHE
|
||||||
|
|
||||||
/* define this if you have LCD enable function */
|
|
||||||
#define HAVE_LCD_ENABLE
|
|
||||||
|
|
||||||
/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE
|
/* Define this if your LCD can be put to sleep. HAVE_LCD_ENABLE
|
||||||
should be defined as well.
|
should be defined as well.
|
||||||
#define HAVE_LCD_SLEEP
|
#define HAVE_LCD_SLEEP
|
||||||
|
|
@ -55,9 +58,8 @@
|
||||||
#define HAVE_LCD_FLIP
|
#define HAVE_LCD_FLIP
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* define this if you can invert the colours on your LCD
|
/* define this if you can invert the colours on your LCD */
|
||||||
#define HAVE_LCD_INVERT
|
#define HAVE_LCD_INVERT
|
||||||
*/
|
|
||||||
|
|
||||||
/* define this if you have a real-time clock */
|
/* define this if you have a real-time clock */
|
||||||
#define CONFIG_RTC RTC_IMX233
|
#define CONFIG_RTC RTC_IMX233
|
||||||
|
|
@ -108,8 +110,8 @@
|
||||||
|
|
||||||
/* Main LCD backlight brightness range and defaults */
|
/* Main LCD backlight brightness range and defaults */
|
||||||
#define MIN_BRIGHTNESS_SETTING 0
|
#define MIN_BRIGHTNESS_SETTING 0
|
||||||
#define MAX_BRIGHTNESS_SETTING 100
|
#define MAX_BRIGHTNESS_SETTING 88
|
||||||
#define DEFAULT_BRIGHTNESS_SETTING 50
|
#define DEFAULT_BRIGHTNESS_SETTING 44
|
||||||
|
|
||||||
/* Which backlight fading type? */
|
/* Which backlight fading type? */
|
||||||
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
|
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_SETTING
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
#include "ascodec.h"
|
#include "ascodec.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FIIO_M3K)
|
#if defined(FIIO_M3K) || defined(SONY_NWZE370)
|
||||||
#include "backlight-target.h"
|
#include "backlight-target.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -318,7 +318,7 @@ int rolo_load(const char* filename)
|
||||||
lcd_remote_update();
|
lcd_remote_update();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FIIO_M3K)
|
#if defined(FIIO_M3K) || defined(SONY_NWZE370)
|
||||||
/* Avoids the LCD backlight ramping down & up weirdly */
|
/* Avoids the LCD backlight ramping down & up weirdly */
|
||||||
backlight_hw_off();
|
backlight_hw_off();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,20 @@
|
||||||
#include "backlight-target.h"
|
#include "backlight-target.h"
|
||||||
#include "pwm-imx233.h"
|
#include "pwm-imx233.h"
|
||||||
#include "pinctrl-imx233.h"
|
#include "pinctrl-imx233.h"
|
||||||
|
#include "kernel.h"
|
||||||
|
|
||||||
|
static int last_brightness;
|
||||||
|
|
||||||
void backlight_hw_brightness(int brightness)
|
void backlight_hw_brightness(int brightness)
|
||||||
{
|
{
|
||||||
bool en = brightness > 0;
|
bool en = brightness > 0;
|
||||||
imx233_pwm_setup_simple(2, 24000, 100 - brightness);
|
/* brightness has extreme dip above 88% duty cycle, limit range to [87%, 0%] */
|
||||||
|
if (en)
|
||||||
|
imx233_pwm_setup_simple(2, 24000, 88 - brightness);
|
||||||
imx233_pwm_enable(2, en);
|
imx233_pwm_enable(2, en);
|
||||||
|
if (last_brightness == 0 && en)
|
||||||
|
sleep(HZ / 25); /* make sure PWM settings are applied */
|
||||||
|
last_brightness = brightness;
|
||||||
imx233_pinctrl_set_gpio(0, 10, en);
|
imx233_pinctrl_set_gpio(0, 10, en);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -40,9 +48,13 @@ bool backlight_hw_init(void)
|
||||||
imx233_pinctrl_acquire(0, 10, "backlight_enable");
|
imx233_pinctrl_acquire(0, 10, "backlight_enable");
|
||||||
imx233_pinctrl_set_function(0, 10, PINCTRL_FUNCTION_GPIO);
|
imx233_pinctrl_set_function(0, 10, PINCTRL_FUNCTION_GPIO);
|
||||||
imx233_pinctrl_enable_gpio(0, 10, true);
|
imx233_pinctrl_enable_gpio(0, 10, true);
|
||||||
imx233_pinctrl_set_gpio(0, 10, true);
|
#ifndef BOOTLOADER
|
||||||
|
backlight_hw_brightness(0);
|
||||||
|
return false;
|
||||||
|
#else
|
||||||
backlight_hw_brightness(DEFAULT_BRIGHTNESS_SETTING);
|
backlight_hw_brightness(DEFAULT_BRIGHTNESS_SETTING);
|
||||||
return true;
|
return true;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void backlight_hw_on(void)
|
void backlight_hw_on(void)
|
||||||
|
|
@ -50,6 +62,7 @@ void backlight_hw_on(void)
|
||||||
#ifdef HAVE_LCD_ENABLE
|
#ifdef HAVE_LCD_ENABLE
|
||||||
lcd_enable(true); /* power on lcd + visible display */
|
lcd_enable(true); /* power on lcd + visible display */
|
||||||
#endif
|
#endif
|
||||||
|
sleep(HZ / 10); /* make sure screen is not white anymore */
|
||||||
/* don't do anything special, the core will set the brightness */
|
/* don't do anything special, the core will set the brightness */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,9 @@
|
||||||
|
|
||||||
#ifdef HAVE_LCD_ENABLE
|
#ifdef HAVE_LCD_ENABLE
|
||||||
static bool lcd_on;
|
static bool lcd_on;
|
||||||
|
#ifdef HAVE_LCD_INVERT
|
||||||
|
static bool lcd_inverted;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void lcd_write_reg(uint8_t reg, void *data, int data_len)
|
static void lcd_write_reg(uint8_t reg, void *data, int data_len)
|
||||||
|
|
@ -120,6 +123,9 @@ static void lcd_enable_seq(bool enable)
|
||||||
if(enable)
|
if(enable)
|
||||||
{
|
{
|
||||||
lcd_write_reg(0x11, NULL, 0);
|
lcd_write_reg(0x11, NULL, 0);
|
||||||
|
#ifdef HAVE_LCD_INVERT
|
||||||
|
lcd_set_invert_display(lcd_inverted);
|
||||||
|
#endif
|
||||||
lcd_write_reg(0x29, NULL, 0);
|
lcd_write_reg(0x29, NULL, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -146,6 +152,22 @@ void lcd_enable(bool enable)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_LCD_SHUTDOWN
|
||||||
|
void lcd_shutdown(void) {
|
||||||
|
backlight_hw_off();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_LCD_INVERT
|
||||||
|
void lcd_set_invert_display(bool yesno)
|
||||||
|
{
|
||||||
|
lcd_write_reg(yesno ? 0x21 : 0x20, NULL, 0);
|
||||||
|
#ifdef HAVE_LCD_ENABLE
|
||||||
|
lcd_inverted = yesno;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void lcd_update(void)
|
void lcd_update(void)
|
||||||
{
|
{
|
||||||
lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT);
|
lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue