bdk: display: use spare reg to store dcs bl duty
And also remove backlight pwm restoring from coreboot hw deinit path.
This commit is contained in:
@@ -33,10 +33,9 @@
|
|||||||
|
|
||||||
#include "di.inl"
|
#include "di.inl"
|
||||||
|
|
||||||
static u32 _panel_id_raw = 0;
|
|
||||||
static u32 _panel_id = 0;
|
|
||||||
static u32 _dsi_bl = -1;
|
|
||||||
static bool _nx_aula = false;
|
static bool _nx_aula = false;
|
||||||
|
static u32 _panel_id = 0;
|
||||||
|
static u32 _panel_id_raw = 0;
|
||||||
|
|
||||||
static void _display_panel_and_hw_end(bool no_panel_deinit);
|
static void _display_panel_and_hw_end(bool no_panel_deinit);
|
||||||
|
|
||||||
@@ -366,7 +365,7 @@ void display_init()
|
|||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_L_SET) = BIT(CLK_L_DISP1);
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_L_SET) = BIT(CLK_L_DISP1);
|
||||||
|
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) = BIT(CLK_X_UART_FST_MIPI_CAL);
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_X_SET) = BIT(CLK_X_UART_FST_MIPI_CAL);
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_UART_FST_MIPI_CAL) = CLK_SRC_DIV(6); // Set PLLP_OUT3 and div 6 (68MHz).
|
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_UART_FST_MIPI_CAL) = CLK_SRC_DIV(6); // Set PLLP_OUT3 and div 6 (17MHz).
|
||||||
|
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_W_SET) = BIT(CLK_W_DSIA_LP);
|
CLOCK(CLK_RST_CONTROLLER_CLK_ENB_W_SET) = BIT(CLK_W_DSIA_LP);
|
||||||
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_DSIA_LP) = CLK_SRC_DIV(6); // Set PLLP_OUT and div 6 (68MHz).
|
CLOCK(CLK_RST_CONTROLLER_CLK_SOURCE_DSIA_LP) = CLK_SRC_DIV(6); // Set PLLP_OUT and div 6 (68MHz).
|
||||||
@@ -491,7 +490,6 @@ void display_init()
|
|||||||
DSI(_DSIREG(DSI_WR_DATA)) = 0x000051; // MIPI_DCS_SET_BRIGHTNESS 0000: 0%. FF07: 100%.
|
DSI(_DSIREG(DSI_WR_DATA)) = 0x000051; // MIPI_DCS_SET_BRIGHTNESS 0000: 0%. FF07: 100%.
|
||||||
DSI(_DSIREG(DSI_TRIGGER)) = DSI_TRIGGER_HOST;
|
DSI(_DSIREG(DSI_TRIGGER)) = DSI_TRIGGER_HOST;
|
||||||
usleep(5000);
|
usleep(5000);
|
||||||
_dsi_bl = 0;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PANEL_JDI_XXX062M:
|
case PANEL_JDI_XXX062M:
|
||||||
@@ -608,7 +606,7 @@ void display_backlight(bool enable)
|
|||||||
|
|
||||||
static void _display_dsi_backlight_brightness(u32 duty)
|
static void _display_dsi_backlight_brightness(u32 duty)
|
||||||
{
|
{
|
||||||
if (_dsi_bl == duty)
|
if (DISPLAY_A(_DIREG(DC_DISP_BACKLIGHT_DUTY)) == duty)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Convert duty to candela.
|
// Convert duty to candela.
|
||||||
@@ -621,7 +619,7 @@ static void _display_dsi_backlight_brightness(u32 duty)
|
|||||||
if (!duty)
|
if (!duty)
|
||||||
usleep(100000);
|
usleep(100000);
|
||||||
|
|
||||||
_dsi_bl = duty;
|
DISPLAY_A(_DIREG(DC_DISP_BACKLIGHT_DUTY)) = duty;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _display_pwm_backlight_brightness(u32 duty, u32 step_delay)
|
static void _display_pwm_backlight_brightness(u32 duty, u32 step_delay)
|
||||||
@@ -661,14 +659,6 @@ void display_backlight_brightness(u32 brightness, u32 step_delay)
|
|||||||
_display_dsi_backlight_brightness(brightness);
|
_display_dsi_backlight_brightness(brightness);
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 display_get_backlight_brightness()
|
|
||||||
{
|
|
||||||
if (_panel_id != PANEL_SAM_AMS699VC01)
|
|
||||||
return ((PWM(PWM_CONTROLLER_PWM_CSR_0) >> 16) & 0xFF);
|
|
||||||
else
|
|
||||||
return _dsi_bl;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void _display_panel_and_hw_end(bool no_panel_deinit)
|
static void _display_panel_and_hw_end(bool no_panel_deinit)
|
||||||
{
|
{
|
||||||
if (no_panel_deinit)
|
if (no_panel_deinit)
|
||||||
|
|||||||
@@ -291,7 +291,6 @@
|
|||||||
#define CURSOR_SIZE_128 (2 << 24)
|
#define CURSOR_SIZE_128 (2 << 24)
|
||||||
#define CURSOR_SIZE_256 (3 << 24)
|
#define CURSOR_SIZE_256 (3 << 24)
|
||||||
#define DC_DISP_CURSOR_POSITION 0x440
|
#define DC_DISP_CURSOR_POSITION 0x440
|
||||||
#define DC_DISP_BLEND_BACKGROUND_COLOR 0x4E4
|
|
||||||
#define DC_DISP_CURSOR_START_ADDR_HI 0x4EC
|
#define DC_DISP_CURSOR_START_ADDR_HI 0x4EC
|
||||||
#define DC_DISP_CURSOR_START_ADDR_HI_NS 0x4ED
|
#define DC_DISP_CURSOR_START_ADDR_HI_NS 0x4ED
|
||||||
#define DC_DISP_BLEND_CURSOR_CONTROL 0x4F1
|
#define DC_DISP_BLEND_CURSOR_CONTROL 0x4F1
|
||||||
@@ -309,6 +308,10 @@
|
|||||||
#define DC_DISP_SD_BL_CONTROL 0x4DC
|
#define DC_DISP_SD_BL_CONTROL 0x4DC
|
||||||
#define DC_DISP_BLEND_BACKGROUND_COLOR 0x4E4
|
#define DC_DISP_BLEND_BACKGROUND_COLOR 0x4E4
|
||||||
|
|
||||||
|
#define DC_DISP_DISPLAY_SPARE0 0x4F7 // Used by SW.
|
||||||
|
#define DC_DISP_DISPLAY_SPARE1 0x4F8
|
||||||
|
#define DC_DISP_BACKLIGHT_DUTY DC_DISP_DISPLAY_SPARE1
|
||||||
|
|
||||||
#define DC_WINC_COLOR_PALETTE 0x500
|
#define DC_WINC_COLOR_PALETTE 0x500
|
||||||
#define COLOR_PALETTE_IDX(off) (DC_WINC_COLOR_PALETTE + (off))
|
#define COLOR_PALETTE_IDX(off) (DC_WINC_COLOR_PALETTE + (off))
|
||||||
#define COLOR_PALETTE_RGB(rgb) (byte_swap_32(rgb) >> 8)
|
#define COLOR_PALETTE_RGB(rgb) (byte_swap_32(rgb) >> 8)
|
||||||
@@ -884,10 +887,9 @@ void display_dsi_vblank_write(u8 cmd, u32 len, void *data);
|
|||||||
/*! Show one single color on the display. */
|
/*! Show one single color on the display. */
|
||||||
void display_color_screen(u32 color);
|
void display_color_screen(u32 color);
|
||||||
|
|
||||||
/*! Switches screen backlight ON/OFF. */
|
/*! Screen backlight ON/OFF or set via duty and fading. */
|
||||||
void display_backlight(bool enable);
|
void display_backlight(bool enable);
|
||||||
void display_backlight_brightness(u32 brightness, u32 step_delay);
|
void display_backlight_brightness(u32 brightness, u32 step_delay);
|
||||||
u32 display_get_backlight_brightness();
|
|
||||||
|
|
||||||
u32 *display_init_window_a_pitch();
|
u32 *display_init_window_a_pitch();
|
||||||
u32 *display_init_window_a_pitch_vic();
|
u32 *display_init_window_a_pitch_vic();
|
||||||
|
|||||||
@@ -520,11 +520,9 @@ void hw_deinit(bool coreboot, u32 bl_magic)
|
|||||||
switch (bl_magic)
|
switch (bl_magic)
|
||||||
{
|
{
|
||||||
case BL_MAGIC_CRBOOT_SLD:;
|
case BL_MAGIC_CRBOOT_SLD:;
|
||||||
// Set pwm to 0%, switch to gpio mode and restore pwm duty.
|
// Set pwm to 0% and switch to gpio mode.
|
||||||
u32 brightness = display_get_backlight_brightness();
|
|
||||||
display_backlight_brightness(0, 1000);
|
display_backlight_brightness(0, 1000);
|
||||||
gpio_config(GPIO_PORT_V, GPIO_PIN_0, GPIO_MODE_GPIO);
|
gpio_config(GPIO_PORT_V, GPIO_PIN_0, GPIO_MODE_GPIO);
|
||||||
display_backlight_brightness(brightness, 0);
|
|
||||||
break;
|
break;
|
||||||
case BL_MAGIC_L4TLDR_SLD:
|
case BL_MAGIC_L4TLDR_SLD:
|
||||||
// Do not disable display or backlight at all.
|
// Do not disable display or backlight at all.
|
||||||
|
|||||||
Reference in New Issue
Block a user