mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-09-25 07:41:40 +02:00
BuR: Drop old LCD code
This relies on the old LCD implementation which is to be removed. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
2285864a3e
commit
0852d58361
@ -164,21 +164,12 @@ int board_late_init(void)
|
|||||||
br_resetc_bmode();
|
br_resetc_bmode();
|
||||||
|
|
||||||
/* setup othbootargs for bootvx-command (vxWorks bootline) */
|
/* setup othbootargs for bootvx-command (vxWorks bootline) */
|
||||||
#ifdef CONFIG_LCD
|
|
||||||
snprintf(othbootargs, sizeof(othbootargs),
|
|
||||||
"u=vxWorksFTP pw=vxWorks o=0x%08x;0x%08x;0x%08x;0x%08x",
|
|
||||||
(u32)gd->fb_base - 0x20,
|
|
||||||
(u32)env_get_ulong("vx_memtop", 16, gd->fb_base - 0x20),
|
|
||||||
(u32)env_get_ulong("vx_romfsbase", 16, 0),
|
|
||||||
(u32)env_get_ulong("vx_romfssize", 16, 0));
|
|
||||||
#else
|
|
||||||
snprintf(othbootargs, sizeof(othbootargs),
|
snprintf(othbootargs, sizeof(othbootargs),
|
||||||
"u=vxWorksFTP pw=vxWorks o=0x%08x;0x%08x;0x%08x;0x%08x",
|
"u=vxWorksFTP pw=vxWorks o=0x%08x;0x%08x;0x%08x;0x%08x",
|
||||||
(u32)gd->relocaddr,
|
(u32)gd->relocaddr,
|
||||||
(u32)env_get_ulong("vx_memtop", 16, gd->relocaddr),
|
(u32)env_get_ulong("vx_memtop", 16, gd->relocaddr),
|
||||||
(u32)env_get_ulong("vx_romfsbase", 16, 0),
|
(u32)env_get_ulong("vx_romfsbase", 16, 0),
|
||||||
(u32)env_get_ulong("vx_romfssize", 16, 0));
|
(u32)env_get_ulong("vx_romfssize", 16, 0));
|
||||||
#endif
|
|
||||||
env_set("othbootargs", othbootargs);
|
env_set("othbootargs", othbootargs);
|
||||||
/*
|
/*
|
||||||
* reset VBAR registers to its reset location, VxWorks 6.9.3.2 does
|
* reset VBAR registers to its reset location, VxWorks 6.9.3.2 does
|
||||||
|
@ -23,14 +23,8 @@
|
|||||||
#define BMODE_PME 12
|
#define BMODE_PME 12
|
||||||
#define BMODE_DIAG 15
|
#define BMODE_DIAG 15
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(LCD) && !CONFIG_IS_ENABLED(DM_VIDEO)
|
|
||||||
#include <lcd.h>
|
|
||||||
#define LCD_SETCURSOR(x, y) lcd_position_cursor(x, y)
|
|
||||||
#define LCD_PUTS(x) lcd_puts(x)
|
|
||||||
#else
|
|
||||||
#define LCD_SETCURSOR(x, y)
|
#define LCD_SETCURSOR(x, y)
|
||||||
#define LCD_PUTS(x)
|
#define LCD_PUTS(x)
|
||||||
#endif /* CONFIG_LCD */
|
|
||||||
|
|
||||||
static const char *bootmodeascii[16] = {
|
static const char *bootmodeascii[16] = {
|
||||||
"BOOT", "reserved", "reserved", "reserved",
|
"BOOT", "reserved", "reserved", "reserved",
|
||||||
|
@ -11,12 +11,6 @@
|
|||||||
#ifndef _BUR_COMMON_H_
|
#ifndef _BUR_COMMON_H_
|
||||||
#define _BUR_COMMON_H_
|
#define _BUR_COMMON_H_
|
||||||
|
|
||||||
#if !CONFIG_IS_ENABLED(DM_VIDEO)
|
|
||||||
#include <../../../drivers/video/ti/am335x-fb.h>
|
|
||||||
|
|
||||||
int load_lcdtiming(struct am335x_lcdpanel *panel);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void br_summaryscreen(void);
|
void br_summaryscreen(void);
|
||||||
void pmicsetup(u32 mpupll, unsigned int bus);
|
void pmicsetup(u32 mpupll, unsigned int bus);
|
||||||
void enable_uart0_pin_mux(void);
|
void enable_uart0_pin_mux(void);
|
||||||
|
@ -22,230 +22,6 @@
|
|||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------*/
|
/* --------------------------------------------------------------------------*/
|
||||||
#if defined(CONFIG_LCD) && defined(CONFIG_AM335X_LCD) && \
|
|
||||||
!defined(CONFIG_DM_VIDEO) && !defined(CONFIG_SPL_BUILD)
|
|
||||||
#include <asm/arch/hardware.h>
|
|
||||||
#include <asm/arch/cpu.h>
|
|
||||||
#include <asm/gpio.h>
|
|
||||||
#include <power/tps65217.h>
|
|
||||||
#include "../../../drivers/video/ti/am335x-fb.h"
|
|
||||||
|
|
||||||
void lcdbacklight(int on)
|
|
||||||
{
|
|
||||||
unsigned int driver = env_get_ulong("ds1_bright_drv", 16, 0UL);
|
|
||||||
unsigned int bright = env_get_ulong("ds1_bright_def", 10, 50);
|
|
||||||
unsigned int pwmfrq = env_get_ulong("ds1_pwmfreq", 10, ~0UL);
|
|
||||||
unsigned int tmp;
|
|
||||||
struct gptimer *timerhw;
|
|
||||||
|
|
||||||
if (on)
|
|
||||||
bright = bright != ~0UL ? bright : 50;
|
|
||||||
else
|
|
||||||
bright = 0;
|
|
||||||
|
|
||||||
switch (driver) {
|
|
||||||
case 2:
|
|
||||||
timerhw = (struct gptimer *)DM_TIMER5_BASE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
timerhw = (struct gptimer *)DM_TIMER6_BASE;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (driver) {
|
|
||||||
case 0: /* PMIC LED-Driver */
|
|
||||||
/* brightness level */
|
|
||||||
tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
|
|
||||||
TPS65217_WLEDCTRL2, bright, 0xFF);
|
|
||||||
/* current sink */
|
|
||||||
tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
|
|
||||||
TPS65217_WLEDCTRL1,
|
|
||||||
bright != 0 ? 0x0A : 0x02,
|
|
||||||
0xFF);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
case 2: /* PWM using timer */
|
|
||||||
if (pwmfrq != ~0UL) {
|
|
||||||
timerhw->tiocp_cfg = TCFG_RESET;
|
|
||||||
udelay(10);
|
|
||||||
while (timerhw->tiocp_cfg & TCFG_RESET)
|
|
||||||
;
|
|
||||||
tmp = ~0UL-(V_OSCK/pwmfrq); /* bottom value */
|
|
||||||
timerhw->tldr = tmp;
|
|
||||||
timerhw->tcrr = tmp;
|
|
||||||
tmp = tmp + ((V_OSCK/pwmfrq)/100) * bright;
|
|
||||||
timerhw->tmar = tmp;
|
|
||||||
timerhw->tclr = (TCLR_PT | (2 << TCLR_TRG_SHIFT) |
|
|
||||||
TCLR_CE | TCLR_AR | TCLR_ST);
|
|
||||||
} else {
|
|
||||||
puts("invalid pwmfrq in env/dtb! skip PWM-setup.\n");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
puts("no suitable backlightdriver in env/dtb!\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int load_lcdtiming(struct am335x_lcdpanel *panel)
|
|
||||||
{
|
|
||||||
struct am335x_lcdpanel pnltmp;
|
|
||||||
|
|
||||||
pnltmp.hactive = env_get_ulong("ds1_hactive", 10, ~0UL);
|
|
||||||
pnltmp.vactive = env_get_ulong("ds1_vactive", 10, ~0UL);
|
|
||||||
pnltmp.bpp = env_get_ulong("ds1_bpp", 10, ~0UL);
|
|
||||||
pnltmp.hfp = env_get_ulong("ds1_hfp", 10, ~0UL);
|
|
||||||
pnltmp.hbp = env_get_ulong("ds1_hbp", 10, ~0UL);
|
|
||||||
pnltmp.hsw = env_get_ulong("ds1_hsw", 10, ~0UL);
|
|
||||||
pnltmp.vfp = env_get_ulong("ds1_vfp", 10, ~0UL);
|
|
||||||
pnltmp.vbp = env_get_ulong("ds1_vbp", 10, ~0UL);
|
|
||||||
pnltmp.vsw = env_get_ulong("ds1_vsw", 10, ~0UL);
|
|
||||||
pnltmp.pxl_clk = env_get_ulong("ds1_pxlclk", 10, ~0UL);
|
|
||||||
pnltmp.pol = env_get_ulong("ds1_pol", 16, ~0UL);
|
|
||||||
pnltmp.pup_delay = env_get_ulong("ds1_pupdelay", 10, ~0UL);
|
|
||||||
pnltmp.pon_delay = env_get_ulong("ds1_tondelay", 10, ~0UL);
|
|
||||||
panel_info.vl_rot = env_get_ulong("ds1_rotation", 10, 0);
|
|
||||||
|
|
||||||
if (
|
|
||||||
~0UL == (pnltmp.hactive) ||
|
|
||||||
~0UL == (pnltmp.vactive) ||
|
|
||||||
~0UL == (pnltmp.bpp) ||
|
|
||||||
~0UL == (pnltmp.hfp) ||
|
|
||||||
~0UL == (pnltmp.hbp) ||
|
|
||||||
~0UL == (pnltmp.hsw) ||
|
|
||||||
~0UL == (pnltmp.vfp) ||
|
|
||||||
~0UL == (pnltmp.vbp) ||
|
|
||||||
~0UL == (pnltmp.vsw) ||
|
|
||||||
~0UL == (pnltmp.pxl_clk) ||
|
|
||||||
~0UL == (pnltmp.pol) ||
|
|
||||||
~0UL == (pnltmp.pup_delay) ||
|
|
||||||
~0UL == (pnltmp.pon_delay)
|
|
||||||
) {
|
|
||||||
puts("lcd-settings in env/dtb incomplete!\n");
|
|
||||||
printf("display-timings:\n"
|
|
||||||
"================\n"
|
|
||||||
"hactive: %d\n"
|
|
||||||
"vactive: %d\n"
|
|
||||||
"bpp : %d\n"
|
|
||||||
"hfp : %d\n"
|
|
||||||
"hbp : %d\n"
|
|
||||||
"hsw : %d\n"
|
|
||||||
"vfp : %d\n"
|
|
||||||
"vbp : %d\n"
|
|
||||||
"vsw : %d\n"
|
|
||||||
"pxlclk : %d\n"
|
|
||||||
"pol : 0x%08x\n"
|
|
||||||
"pondly : %d\n",
|
|
||||||
pnltmp.hactive, pnltmp.vactive, pnltmp.bpp,
|
|
||||||
pnltmp.hfp, pnltmp.hbp, pnltmp.hsw,
|
|
||||||
pnltmp.vfp, pnltmp.vbp, pnltmp.vsw,
|
|
||||||
pnltmp.pxl_clk, pnltmp.pol, pnltmp.pon_delay);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
debug("lcd-settings in env complete, taking over.\n");
|
|
||||||
memcpy((void *)panel,
|
|
||||||
(void *)&pnltmp,
|
|
||||||
sizeof(struct am335x_lcdpanel));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void br_summaryscreen_printenv(char *prefix,
|
|
||||||
char *name, char *altname,
|
|
||||||
char *suffix)
|
|
||||||
{
|
|
||||||
char *envval = env_get(name);
|
|
||||||
if (0 != envval) {
|
|
||||||
lcd_printf("%s %s %s", prefix, envval, suffix);
|
|
||||||
} else if (0 != altname) {
|
|
||||||
envval = env_get(altname);
|
|
||||||
if (0 != envval)
|
|
||||||
lcd_printf("%s %s %s", prefix, envval, suffix);
|
|
||||||
} else {
|
|
||||||
lcd_printf("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void br_summaryscreen(void)
|
|
||||||
{
|
|
||||||
br_summaryscreen_printenv(" - B&R -", "br_orderno", 0, "-\n");
|
|
||||||
br_summaryscreen_printenv(" Serial/Rev :", "br_serial", 0, "\n");
|
|
||||||
br_summaryscreen_printenv(" MAC1 :", "br_mac1", "ethaddr", "\n");
|
|
||||||
br_summaryscreen_printenv(" MAC2 :", "br_mac2", 0, "\n");
|
|
||||||
lcd_puts(" Bootloader : " PLAIN_VERSION "\n");
|
|
||||||
lcd_puts("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcdpower(int on)
|
|
||||||
{
|
|
||||||
u32 pin, swval, i;
|
|
||||||
char buf[16] = { 0 };
|
|
||||||
|
|
||||||
pin = env_get_ulong("ds1_pwr", 16, ~0UL);
|
|
||||||
|
|
||||||
if (pin == ~0UL) {
|
|
||||||
puts("no pwrpin in dtb/env, cannot powerup display!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < 3; i++) {
|
|
||||||
if (pin != 0) {
|
|
||||||
snprintf(buf, sizeof(buf), "ds1_pwr#%d", i);
|
|
||||||
if (gpio_request(pin & 0x7F, buf) != 0) {
|
|
||||||
printf("%s: not able to request gpio %s",
|
|
||||||
__func__, buf);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
swval = pin & 0x80 ? 0 : 1;
|
|
||||||
if (on)
|
|
||||||
gpio_direction_output(pin & 0x7F, swval);
|
|
||||||
else
|
|
||||||
gpio_direction_output(pin & 0x7F, !swval);
|
|
||||||
|
|
||||||
debug("switched pin %d to %d\n", pin & 0x7F, swval);
|
|
||||||
}
|
|
||||||
pin >>= 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
vidinfo_t panel_info = {
|
|
||||||
.vl_col = 1366, /*
|
|
||||||
* give full resolution for allocating enough
|
|
||||||
* memory
|
|
||||||
*/
|
|
||||||
.vl_row = 768,
|
|
||||||
.vl_bpix = 5,
|
|
||||||
.priv = 0
|
|
||||||
};
|
|
||||||
|
|
||||||
void lcd_ctrl_init(void *lcdbase)
|
|
||||||
{
|
|
||||||
struct am335x_lcdpanel lcd_panel;
|
|
||||||
|
|
||||||
memset(&lcd_panel, 0, sizeof(struct am335x_lcdpanel));
|
|
||||||
if (load_lcdtiming(&lcd_panel) != 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
lcd_panel.panel_power_ctrl = &lcdpower;
|
|
||||||
|
|
||||||
if (0 != am335xfb_init(&lcd_panel))
|
|
||||||
printf("ERROR: failed to initialize video!");
|
|
||||||
/*
|
|
||||||
* modifiy panel info to 'real' resolution, to operate correct with
|
|
||||||
* lcd-framework.
|
|
||||||
*/
|
|
||||||
panel_info.vl_col = lcd_panel.hactive;
|
|
||||||
panel_info.vl_row = lcd_panel.vactive;
|
|
||||||
|
|
||||||
lcd_set_flush_dcache(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void lcd_enable(void)
|
|
||||||
{
|
|
||||||
br_summaryscreen();
|
|
||||||
lcdbacklight(1);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_LCD */
|
|
||||||
|
|
||||||
int ft_board_setup(void *blob, struct bd_info *bd)
|
int ft_board_setup(void *blob, struct bd_info *bd)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user