Skip to content
Snippets Groups Projects
Commit 033167c4 authored by Nikita Kiryanov's avatar Nikita Kiryanov Committed by Anatolij Gustschin
Browse files

lcd: dt: extract simplefb support


We now have api functions that can support compiling simplefb code as its own
module. Since this code is not part of the display functionality, extract it
to its own file.

Raspberry Pi is updated to accommodate the changes.

Signed-off-by: default avatarNikita Kiryanov <nikita@compulab.co.il>
Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
Tested-by: default avatarBo Shen <voice.shen@atmel.com>
Tested-by: default avatarJosh Wu <josh.wu@atmel.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stephen Warren <swarren@wwwdotorg.org>
parent bf21a5de
No related branches found
No related tags found
No related merge requests found
......@@ -18,6 +18,7 @@
#include <config.h>
#include <dm.h>
#include <fdt_support.h>
#include <fdt_simplefb.h>
#include <lcd.h>
#include <mmc.h>
#include <asm/gpio.h>
......
......@@ -199,6 +199,7 @@ obj-$(CONFIG_I2C_EDID) += edid.o
obj-$(CONFIG_KALLSYMS) += kallsyms.o
obj-y += splash.o
obj-$(CONFIG_LCD) += lcd.o lcd_console.o
obj-$(CONFIG_LCD_DT_SIMPLEFB) += lcd_simplefb.o
obj-$(CONFIG_LYNXKDI) += lynxkdi.o
obj-$(CONFIG_MENU) += menu.o
obj-$(CONFIG_MODEM_SUPPORT) += modem.o
......
......@@ -20,13 +20,8 @@
#include <splash.h>
#include <asm/io.h>
#include <asm/unaligned.h>
#include <fdt_support.h>
#include <video_font.h>
#if defined(CONFIG_LCD_DT_SIMPLEFB)
#include <libfdt.h>
#endif
#ifdef CONFIG_LCD_LOGO
#include <bmp_logo.h>
#include <bmp_logo_data.h>
......@@ -777,48 +772,3 @@ int lcd_get_pixel_height(void)
{
return panel_info.vl_row;
}
#if defined(CONFIG_LCD_DT_SIMPLEFB)
static int lcd_dt_simplefb_configure_node(void *blob, int off)
{
#if LCD_BPP == LCD_COLOR16
return fdt_setup_simplefb_node(blob, off, gd->fb_base,
panel_info.vl_col, panel_info.vl_row,
panel_info.vl_col * 2, "r5g6b5");
#else
return -1;
#endif
}
int lcd_dt_simplefb_add_node(void *blob)
{
static const char compat[] = "simple-framebuffer";
static const char disabled[] = "disabled";
int off, ret;
off = fdt_add_subnode(blob, 0, "framebuffer");
if (off < 0)
return -1;
ret = fdt_setprop(blob, off, "status", disabled, sizeof(disabled));
if (ret < 0)
return -1;
ret = fdt_setprop(blob, off, "compatible", compat, sizeof(compat));
if (ret < 0)
return -1;
return lcd_dt_simplefb_configure_node(blob, off);
}
int lcd_dt_simplefb_enable_existing_node(void *blob)
{
int off;
off = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
if (off < 0)
return -1;
return lcd_dt_simplefb_configure_node(blob, off);
}
#endif
/*
* Simplefb device tree support
*
* (C) Copyright 2015
* Stephen Warren <swarren@wwwdotorg.org>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
#include <lcd.h>
#include <fdt_support.h>
#include <libfdt.h>
DECLARE_GLOBAL_DATA_PTR;
static int lcd_dt_simplefb_configure_node(void *blob, int off)
{
#if LCD_BPP == LCD_COLOR16
int vl_col = lcd_get_pixel_width();
int vl_row = lcd_get_pixel_height();
return fdt_setup_simplefb_node(blob, off, gd->fb_base, vl_col, vl_row,
vl_col * 2, "r5g6b5");
#else
return -1;
#endif
}
int lcd_dt_simplefb_add_node(void *blob)
{
static const char compat[] = "simple-framebuffer";
static const char disabled[] = "disabled";
int off, ret;
off = fdt_add_subnode(blob, 0, "framebuffer");
if (off < 0)
return -1;
ret = fdt_setprop(blob, off, "status", disabled, sizeof(disabled));
if (ret < 0)
return -1;
ret = fdt_setprop(blob, off, "compatible", compat, sizeof(compat));
if (ret < 0)
return -1;
return lcd_dt_simplefb_configure_node(blob, off);
}
int lcd_dt_simplefb_enable_existing_node(void *blob)
{
int off;
off = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
if (off < 0)
return -1;
return lcd_dt_simplefb_configure_node(blob, off);
}
/*
* Simplefb device tree support
*
* (C) Copyright 2015
* Stephen Warren <swarren@wwwdotorg.org>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef _FDT_SIMPLEFB_H_
#define _FDT_SIMPLEFB_H_
int lcd_dt_simplefb_add_node(void *blob);
int lcd_dt_simplefb_enable_existing_node(void *blob);
#endif
......@@ -128,9 +128,6 @@ void lcd_show_board_info(void);
/* Return the size of the LCD frame buffer, and the line length */
int lcd_get_size(int *line_length);
int lcd_dt_simplefb_add_node(void *blob);
int lcd_dt_simplefb_enable_existing_node(void *blob);
/* Update the LCD / flush the cache */
void lcd_sync(void);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment