福州瑞芯微电子有限公司
密级状态:绝密( ) 秘密( ) 内部资料( ) 公开( √ )
Rockchip BOX 显示模块开发指南
(技术研发部,电视事业部)
文件状态:
[√] 草稿
文件标识: Rockchip BOX 显示模块开发指南
当前版本:
0.2
[ ] 正式发布
作 者: 郑阳
[ ] 正在修改
完成日期:
2014-03-18
审 核: 黄激流
审核日期:
2014.03.19
内部资料,不得扩散
Page 1 of 8
福州瑞芯微电子有限公司
版 本 历 史
版本号
作者
修改日期
修改说明
郑阳
2014-03-14 创建文件
郑阳
2014-03-18 添加 UI 分辨率设置说明
V0.1
V0.2
内部资料,不得扩散
Page 2 of 8
福州瑞芯微电子有限公司
目目 录录
1. 概述 .................................................................................................................................... 4
2. RK3066/RK3188 ............................................................................................................... 5
2.1 输入源 ........................................................................................................................... 5
2.2 内核配置 ....................................................................................................................... 6
3. 配置 UI 分辨率 ................................................................................................................. 8
内部资料,不得扩散
Page 3 of 8
福州瑞芯微电子有限公司
1. 概述
本文档介绍如何配置显示输出,适用于 RK3188&RK3066 R-Box Android4.4.2 SDK。
内部资料,不得扩散
Page 4 of 8
福州瑞芯微电子有限公司
2. RK3066/RK3188
2.1 输入源
RK3066/RK3188 拥有两个 LCDC,可以分别与不同的显示设备连接。Box 的默认配置里,
LCDC1 与 HDMI 连接,LCDC0 与 TV Encoder(RK1000)连接,如下图示。
LCDC0
RK1000
LCDC1
HDMI
Dongle 场景下只使用了一个 LCDC,与 HDMI 相连。默认 RK3066 LCDC0 连接到 HDMI;
RK3188 LCDC1 连接到 HDMI。
内核中定义了结构体 struct rkdisplay_platform_data 用于配置每个设备的输入源及控制信息。每
个显示设备可以在 board-rk30-box.c(RK3066)和 board-rk3188-box.c(RK3188)定义各自的属性,
以 RK3188 HDMI 为例,其属性如下为:
static struct rkdisplay_platform_data hdmi_data = {
.property = DISPLAY_MAIN,
//主显示设备或副显示设备
.video_source = DISPLAY_SOURCE_LCDC1,
//输入源为 LCDC1
.io_pwr_pin = INVALID_GPIO,
.io_reset_pin = RK30_PIN3_PB2,
//电源控制 GPIO
//复位 GPIO
};
内部资料,不得扩散
Page 5 of 8
福州瑞芯微电子有限公司
注意:
RK3066 只对外封装了 LCDC0 接口,所以除了 HDMI 之外的设备只能与 LCDC0 连接;
RK3066 的 HDMI 在驱动中当 LCDC1 使能时选择 LCDC1 作为输入源,LCDC1 不使
能时选择 LCDC0,不能通过配置该结构体定义输入源。
Box 4.4.2 SDK 不支持两个显示接口同时显示。
2.2 内核配置
执行 make menuconfig,进入如下目录:
Device Drivers --->
Graphics support --->
<*> Frame buffer support for Rockchip --->
RK3188 的选项如下:
RK3066 的选项如下:
内部资料,不得扩散
Page 6 of 8
福州瑞芯微电子有限公司
LCD Panel Select
选择 framebuffer 的大小,BOX SDK 推荐使用以下选项:
( ) ITV framebuffer size and timing is 480P
( ) ITV framebuffer size and timing is 720P
( ) ITV framebuffer size and timing is 1080P
如果 Android 的属性 video.use.overlay=0,这个选项与 Android 的 UI 分辨率对应。如果属
性 video.use.overlay=1,必须选择 ITV framebuffer size and timing is 1080P。
Rockchip HDMI support
选择 HDMI transmitter 型号
Rockchip TV Encoder support
选择 TV Encoder 型号
Enable LED control for display interface
支持使用 LED 灯标示当前显示接口的状态,LED 状态由 GPIO 控制,GPIO 的定义位于:
RK3066
arch/arm/mach-rk30/board-rk30-box.c,static struct gpio_led rk29_leds[];
RK3188
arch/arm/mach-rk3188/board-rk3188-box.c,static struct gpio_led rk3188_leds[];
以 RK3066 HDMI 为例,其定义为
{
.name = "hdmi-soc",
.gpio = RK30_PIN4_PD7,
.default_trigger = "timer",
.active_low = 0,
//GPIO
//使能电平
.retain_state_suspended = 0,
.default_state = LEDS_GPIO_DEFSTATE_OFF, //默认状态
},
内部资料,不得扩散
Page 7 of 8
福州瑞芯微电子有限公司
3. 配置 UI 分辨率
当 Android 属性 video.use.overlay=0 时,UI 的分辨率由内核的初始屏幕决定,在章节 2.2 中已
有介绍。
当 Android 属性 video.use.overlay=1 时,UI 的分辨率由属性 sys.ui.fakesize 决定。如果没有配
置 sys.ui.fakesize 属性,系统会默认设置该属性为 1280x720,即 UI 分辨率为 1280x720。如要修改
UI 的分辨率,有两种方式:
修改 hardware/rk29/libhwcomposer/hwc_utils.cpp
if(property_get("sys.ui.fakesize", property, NULL) <= 0) {
ALOGD("set default fake ui size 1280x720");
property_set("sys.ui.fakesize", "1280x720");
}
将 1280x720 替换为所需的分辨率,比如 1920x1080。然后重新编译 libhwcomposer 模块。
修改 device/rockchip/rksdk/device.mk
比如 UI 分辨率设置为 1920x1080,则在末尾添加
PRODUCT_PROPERTY_OVERRIDES += \
sys.ui.fakesize=1920x1080
然后清空工程,重新编译。
备注:在 4.4 上,属性 video.use.overlay 默认值为 1。
内部资料,不得扩散
Page 8 of 8