Chapter 07 Display Subsystem.pdf
Chapter 07 Display Subsystem.pdf
Chapter 07 Display Subsystem.pdf
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Public Version<br />
This chapter describes the <strong>Display</strong> <strong>Subsystem</strong> for the device.<br />
<strong>Chapter</strong> 7<br />
SPRUGN4L–May 2010–Revised June 2011<br />
<strong>Display</strong> <strong>Subsystem</strong><br />
NOTE: This chapter contains information that is ©2005-2008 MIPI Alliance, Inc. All rights reserved.<br />
MIPI Alliance Member Confidential.<br />
All rights reserved. This material is reprinted with the permission of the MIPI Alliance, Inc. No<br />
part(s) of this document may be disclosed, reproduced or used for any purpose other than as<br />
needed to support the use of the products of TI.<br />
See Device 37xx MIPI Disclaimer for details.<br />
NOTE: This chapter gives information about all modules and features in the high-tier device. To<br />
check availability of modules and features, see Section 1.5, AM/DM37x Family and your<br />
device-specific data manual. In unavailable modules and features, the memory area is<br />
reserved, read is undefined, and write can lead to unpredictable behavior.<br />
NOTE: This document is strictly for wireless/cellular software developers using AM/DM37x<br />
application processors, which are not available for the broad market through authorized<br />
distributors.<br />
Topic ........................................................................................................................... Page<br />
7.1 <strong>Display</strong> <strong>Subsystem</strong> Overview .......................................................................... 1542<br />
7.2 <strong>Display</strong> <strong>Subsystem</strong> Environment ..................................................................... 1547<br />
7.3 <strong>Display</strong> <strong>Subsystem</strong> Integration ........................................................................ 1599<br />
7.4 <strong>Display</strong> <strong>Subsystem</strong> Functional Description ....................................................... 1616<br />
7.5 <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model .................................................. 1690<br />
7.6 <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips ........................................................... 1761<br />
7.7 <strong>Display</strong> <strong>Subsystem</strong> Register Manual ................................................................ 1795<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1541
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Overview www.ti.com<br />
7.1 <strong>Display</strong> <strong>Subsystem</strong> Overview<br />
The display subsystem provides the logic to display a video frame from the memory frame buffer (either<br />
SDRAM or SRAM) on a liquid-crystal display (LCD) panel or a TV set. The display subsystem integrates<br />
the following elements:<br />
• <strong>Display</strong> controller (DISPC) module<br />
• Remote frame buffer interface (RFBI) module<br />
• <strong>Display</strong> serial interface (DSI) complex I/O module and a DSI protocol engine<br />
• DSI PLL controller that drives a DSI PLL and high-speed (HS) divider.<br />
• NTSC/PAL video encoder<br />
The display controller and the DSI protocol engine are connected to the L3 and L4 interconnect; the RFBI<br />
and the TV out encoder modules are connected to the L4 interconnect.<br />
NOTE: The DSI complex I/O module, and the DSI PLL controller are not connected to an L3 or L4<br />
interconnect. Specific display subsystem registers manage their programmable features.<br />
Figure 7-1 shows a block diagram of the display subsystem.<br />
1542 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Device<br />
PRCM<br />
L4 interconnect<br />
L3 interconnect<br />
System DMA<br />
controller<br />
(sDMA)<br />
MPU<br />
subsystem<br />
interrupt<br />
controller<br />
IVA2.2<br />
subsystem<br />
interrupt<br />
controller<br />
System<br />
control<br />
module<br />
L3 clock<br />
L4 clock<br />
Functional clock1<br />
Functional clock2<br />
54-MHz clock<br />
4<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
DSS_TV_FCLK<br />
DSI1_PLL_FCLK<br />
DSI2_PLL_FCLK<br />
DSS_LINE_TRIGGER<br />
DSS_DMA_REQ[3:0]<br />
DSS_IRQ<br />
<strong>Display</strong><br />
controller<br />
Syncs<br />
DSI<br />
protocol<br />
engine<br />
<strong>Display</strong> subsystem<br />
Digital data<br />
24<br />
TV syncs<br />
Data<br />
Controls<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Overview<br />
Figure 7-1. <strong>Display</strong> <strong>Subsystem</strong> Highlight<br />
Remote<br />
frame buffer<br />
interface<br />
TV out<br />
encoder<br />
Video DAC<br />
stage<br />
TVACEN<br />
TVOUTBYPASS<br />
COMP_EN<br />
DSI<br />
complex I/O<br />
DSI<br />
PLL<br />
controller<br />
DSS_PCLK<br />
DSS_VSYNC<br />
DSS_HSYNC<br />
DSS_ACBIAS<br />
DSS_DATA[17:6]<br />
DSS_DATA[23:18]<br />
TVINT<br />
Composite/Luma<br />
DSS_DATA[5:0]<br />
DSI_DX0<br />
DSI_DY0<br />
DSI_DX1<br />
DSI_DY1<br />
DSI_DX2<br />
DSI_DY2<br />
Status<br />
Chroma<br />
PLL control<br />
Pin multiplexing<br />
Pin multiplexing<br />
DSI PLL<br />
HS divider<br />
GPIO2<br />
dss_pclk<br />
dss_vsync<br />
dss_hsync<br />
dss_acbias<br />
dss_data[17:6]<br />
dss_data[23:18]<br />
cvideo1_out<br />
cvideo2_out<br />
cvideo1_vfb<br />
cvideo2_vfb<br />
cvideo1_rset<br />
vdda_dac<br />
vssa_dac<br />
dss_data[0]/dsi_dx0<br />
dss_data[1]/ dsi_dy0<br />
dss_data[2]/ dsi_dx1<br />
dss_data[3]/ dsi_dy1<br />
dss_data[4]/ dsi_dx2<br />
dss_data[5]/ dsi_dy2<br />
NOTE: For more information about connecting the LOCK, RECAL, and TVINT signals through the<br />
GPIO2 and GPIO3 modules, see <strong>Chapter</strong> 25, GPIO.<br />
The display subsystem includes the following main features:<br />
• <strong>Display</strong> controller<br />
– <strong>Display</strong> modes<br />
vdds_dsi<br />
vdd_dsi<br />
vss_dsi<br />
camdss-001<br />
• Programmable pixel display modes (1, 2, 4, 8, 12, 16, and 24 bits-per-pixel [BPP] modes)<br />
• Programmable display size supported:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1543
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Overview www.ti.com<br />
• XGA - 1024 x 768 VESA timings at 60 fps (pixel clock = 63.5 MHz)<br />
• WXGA - 1280 x 800 VESA timings at 59.91 fps (pixel clock = 71 MHz)<br />
• SXGA+ - 1400 x 1050 direct drive of LCD with minimal blanking at 50 fps (pixel clock = 75<br />
MHz)<br />
• HD 720p - 1280 x 720 at 60 fps (pixel clock = 74.25 MHz)<br />
• 256 x 24-bit entries palette in red, green, and blue (RGB)<br />
• Programmable pixel rate up to 75 MHz<br />
NOTE: The panel size is programmable and can be any width that is a multiple of 8 pixels (line<br />
length) in the range [1:2048] pixels (in the case of the RFBI mode, the minimum transfer<br />
size is a byte). The maximum resolution is 2048 (lines) x 2048 (pixels).<br />
– <strong>Display</strong> support<br />
• Four types of displays are supported: Passive (super-twist nematic [STN]) and active (thin-film<br />
transistor [TFT]) colors, passive (STN), and active (TFT) monochromes.<br />
• 4-/8-bit monochrome passive matrix panel interface support (15 grayscale levels supported<br />
using dithering block)<br />
• 8-bit color passive matrix panel interface support (3375 colors supported for a color panel using<br />
dithering block)<br />
• 12-/16-/18-/24-bit active matrix panel interface support (replicated or dithered encoded pixel<br />
values)<br />
• Remote frame buffer support through the RFBI module<br />
• Partial display through the RFBI module<br />
• Second 24-bit digital output<br />
• Multiple-cycle output format on 8-/9-/12-/16-bit interface time division multiplexing (TDM)<br />
• HDMI through external bridge<br />
– Signal processing<br />
• Overlay support for graphics (ARGB, RGBA, RGB, or Color Look-Up Table (CLUT)) and video1<br />
(YCbCr 4:2:2, RGB), video2 (YCbCr 4:2:2, or ARGB, RGBA, RGB)<br />
• Programmable video resizer independent horizontal and vertical resampling: Upsampling (up to<br />
x8) and downsampling (down to 1/4), maximum input width of 1024 pixels in 5-tap mode, and<br />
2048 pixels in 3-tap configurations; no limitation on input height<br />
• Rotation 90-, 180-, and 270-degrees with DISPC DMA engine<br />
• Transparency color key (source and destination)<br />
• Synchronized buffer update<br />
• Programmable video color space conversion YCbCr 4:2:2 into RGB<br />
• Hardware cursor<br />
• Gamma curve support on LCD output<br />
• Multiple-buffer support<br />
• Mirroring support<br />
• Programmable color phase rotation (CPR)<br />
• Alpha blending support (no rescaling in ARGB or RGBA formats), with pre-multiplied alpha<br />
control<br />
– Advanced<br />
• Self-refresh using the DMA FIFO<br />
• Arbitration between high/low priority (graphics video1 and video2)<br />
• FIFO handcheck in STALL mode<br />
– Power modes: Low-power saving modes<br />
• RFBI (MIPI® DBI protocol)<br />
– Access to remote frame buffer (RFB) direct microprocessor unit (MPU) interface<br />
• Sends commands to the RFB panel through the L4 interconnect<br />
• Sends data, received from the display controller or from the MPU through the DISPC pixel data<br />
bus, to the RFB panel<br />
1544 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Overview<br />
• Reads data/status from the RFB to the L4 interconnect<br />
– RFB interface<br />
• 8-/9-/12-/16-bit 8086-series parallel interface<br />
• Two programmable configurations for two devices connected to the RFBI module<br />
– Data formats<br />
• Programmable pixel modes (12-/16-/18-/24-BPP modes in RGB format)<br />
• Programmable output formats on one/multiple cycles per pixel (data from the display controller<br />
and from the L4 interconnect)<br />
– Interconnect/FIFO<br />
• One slave port with DMA request and interconnect FIFO of 24x32-bit depth (for write access to<br />
DSS.RFBI_DATA register only)<br />
• One video port FIFO of 8 × 24-bit depth receiving data from the display controller<br />
• MIPI DSI<br />
– Transfer pixels and data received on the video port or L4 interconnect to the display through the<br />
DSI DSI_PHY<br />
– The maximum resolution supported on the video port is XGA at 60 fps with 24-bit pixels (maximum<br />
pixel clock of 67 MHz) for low voltage.<br />
– Supports video mode and command mode<br />
– Bidirectional data link support (only one data lane is used in reverse direction in command mode)<br />
– Supports up to two data-configurable lanes, in addition to the clock signaling (minimum of one data<br />
link and maximum of two, depending on speed, signal integrity requirements, and number of<br />
displays)<br />
– Maximum data rate of up to 900 Mbps per data pair<br />
– Data splitter for 2-data lane configuration<br />
– Error-correction code (ECC) and check-sum generation<br />
– Burst support for the video mode<br />
– RGB16, RGB18 packed and nonpacked, and RGB24 formats supported for video mode<br />
– Serial configuration port (SCP) for the DSI_PHY complex I/O and DSI PLL<br />
– Connection to the DSI_PHY complex I/O through PPI<br />
– Data interleaving support for one synchronous stream (video mode) from the display controller and<br />
up to three interleaved asynchronous streams (command mode) from the interconnect concurrently<br />
– Data interleaving supports up to four interleaved asynchronous streams (command mode) from the<br />
interconnect or video port when there is no video mode<br />
– MIPI DCS support (transparent to the protocol engine, no decoding and interpretation of the<br />
information from and to the peripheral)<br />
– Supports selection between low-power state and HS mode between HS packet transfers<br />
– Generic data type (DT) support<br />
NOTE: The DSI pins are multiplexed with LCD parallel outputs.<br />
• Video encoder<br />
– NTSC/PAL encoder outputs with the following standards:<br />
• NTSC-J, M<br />
• PAL-B, D, G, H, I<br />
• PAL-M<br />
– CGMS-A as described in the CEA-608-x Standard.<br />
– Input data interface compatible with the following protocols:<br />
• 24-bit input bus compatible with external sync<br />
• RGB 4:4:4<br />
– Dual output data 10-bit interface for two internal digital-to-analog converters (DACs) that support:<br />
• Composite video (CVBS)<br />
• Separate video (S-video)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1545
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Overview www.ti.com<br />
– TV output data supports ITU-R BT 470-7 recommendation standard for consumer market<br />
– Master clock input 13.5 MHz, 27 MHz (supports ITU-R 601 sampling for NTSC/PAL), and 54 MHz<br />
– Programmable horizontal sync, vertical timing, and waveforms<br />
– Programmable subcarrier frequency and SCH<br />
– Internal test pattern generation (color bar, flat field, color burst)<br />
– 2x/4x oversampling<br />
– Supports square pixel sampling (NTSC: 12.27 MHz, 24.54 MHz, 49.09 MHz PAL: 14.75 MHz,<br />
29.5 MHz, 59 MHz)<br />
CAUTION<br />
In square pixel mode, an external clock generator is required to provide<br />
sampling frequencies.<br />
– TV detection gating pulse generation<br />
1546 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
7.2 <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
This section describes the two main functions handled by the display subsystem:<br />
• LCD support<br />
• TV display support<br />
7.2.1 LCD Support<br />
LCD panels can be connected to the display subsystem of the device using parallel and/or serial<br />
interfaces.<br />
Table 7-1 provides more details on the supported interfaces to LCD panels, and the respective pad and<br />
signal configurations.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1547
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Table 7-1. LCD Interface Signals and Configurations<br />
Pads and Signals Configuration Possible Operational Interfaces<br />
Pad names at Pads Property Basic signal multiplexing on pads Additional signal multiplexing on Simultaneous Sequential<br />
device level pads<br />
boundary.<br />
Parallel Parallel Serial Interface, Parallel Parallel "1. Parallel "1. Parallel "1. Parallel<br />
Interface, Interface, RFBI DSI. Interface, Interface, RFBI Interface, Interface, Interface,<br />
Bypass Mode. mode. Bypass Mode. mode. Bypass mode RFBI-0 mode RFBI-0 mode<br />
24-bit 16-bit 16-bit<br />
2. Serial 2. Serial 2. Parallel<br />
Interface, DSI (2 Interface, DSI (2 Interface,<br />
data lanes)" data lanes)" RFBI-1 mode<br />
16-bit"<br />
dss_hsync <strong>Display</strong> DISPC_HSYNC RFBI_CS0 DISPC RFBI (CS0) RFBI (CS0)<br />
subsystem<br />
dss_vsync DISPC_VSYNC RFBI_WR RFBI RFBI<br />
dss_pclk DISPC_PCLK RFBI_RD<br />
dss_acbias DISPC_ACBIAS RFBI_A0<br />
dss_data0 DISPC_DATA_L RFBI_DA0 DSI_DX0 DSI DSI RFBI_DA [0-5]<br />
CD0<br />
dss_data1 DISPC_DATA_L RFBI_DA1 DSI_DY0<br />
CD1<br />
dss_data2 DISPC_DATA_L RFBI_DA2 DSI_DX1<br />
CD2<br />
dss_data3 DISPC_DATA_L RFBI_DA3 DSI_DY1<br />
CD3<br />
dss_data4 DISPC_DATA_L RFBI_DA4 DSI_DX2<br />
CD4<br />
dss_data5 DISPC_DATA_L RFBI_DA5 DSI_DY2<br />
CD5<br />
dss_data6 DISPC_DATA_L RFBI_DA6 DISPC_DATA_L RFBI_DA [6-15] RFBI_DA [6-15]<br />
CD6 CD [6-17]<br />
dss_data7 DISPC_DATA_L RFBI_DA7<br />
CD7<br />
dss_data8 DISPC_DATA_L RFBI_DA8<br />
CD8<br />
dss_data9 DISPC_DATA_L RFBI_DA9<br />
CD9<br />
dss_data10 DISPC_DATA_L RFBI_DA10<br />
CD10<br />
dss_data11 DISPC_DATA_L RFBI_DA11<br />
CD11<br />
dss_data12 DISPC_DATA_L RFBI_DA12<br />
CD12<br />
1548<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Table 7-1. LCD Interface Signals and Configurations (continued)<br />
Pads and Signals Configuration Possible Operational Interfaces<br />
Pad names at Pads Property Basic signal multiplexing on pads Additional signal multiplexing on Simultaneous Sequential<br />
device level pads<br />
boundary.<br />
Parallel Parallel Serial Interface, Parallel Parallel "1. Parallel "1. Parallel "1. Parallel<br />
Interface, Interface, RFBI DSI. Interface, Interface, RFBI Interface, Interface, Interface,<br />
Bypass Mode. mode. Bypass Mode. mode. Bypass mode RFBI-0 mode RFBI-0 mode<br />
24-bit 16-bit 16-bit<br />
2. Serial 2. Serial 2. Parallel<br />
Interface, DSI (2 Interface, DSI (2 Interface,<br />
data lanes)" data lanes)" RFBI-1 mode<br />
16-bit"<br />
dss_data13 DISPC_DATA_L RFBI_DA13<br />
CD13<br />
dss_data14 DISPC_DATA_L RFBI_DA14 RFBI_DA [6-15] RFBI_DA [6-15]<br />
CD14<br />
dss_data15 <strong>Display</strong> DISPC_DATA_L RFBI_DA15 DISPC_DATA_L<br />
subsystem CD15 CD [6-17]<br />
dss_data16 DISPC_DATA_L RFBI_TE_VSYN "RFBI(sync0)" "RFBI(sync0)"<br />
CD16 C0<br />
dss_data17 DISPC_DATA_L RFBI_HSYNC0<br />
CD17<br />
dss_data18 DISPC_DATA_L RFBI_TE_VSYN DISPC_DATA_L RFBI_DA0 DISPC_DATA_L RFBI_DA [0-5] "RFBI(sync1)"<br />
CD18 C1 CD0 CD [0-5]<br />
dss_data19 DISPC_DATA_L RFBI_HSYNC1 DISPC_DATA_L RFBI_DA1<br />
CD19 CD1<br />
dss_data20 DISPC_DATA_L RFBI_CS1 DISPC_DATA_L RFBI_DA2 RFBI (CS1)<br />
CD20 CD2<br />
dss_data21 DISPC_DATA_L DISPC_DATA_L RFBI_DA3<br />
CD21 CD3<br />
dss_data22 DISPC_DATA_L DISPC_DATA_L RFBI_DA4<br />
CD22 CD4<br />
dss_data23 DISPC_DATA_L DISPC_DATA_L RFBI_DA5<br />
CD23 CD5<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1549<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Table 7-1. LCD Interface Signals and Configurations (continued)<br />
Pads and Signals Configuration Possible Operational Interfaces<br />
Pad names at Pads Property Basic signal multiplexing on pads Additional signal multiplexing on Simultaneous Sequential<br />
device level pads<br />
boundary.<br />
Parallel Parallel Serial Interface, Parallel Parallel "1. Parallel "1. Parallel "1. Parallel<br />
Interface, Interface, RFBI DSI. Interface, Interface, RFBI Interface, Interface, Interface,<br />
Bypass Mode. mode. Bypass Mode. mode. Bypass mode RFBI-0 mode RFBI-0 mode<br />
24-bit 16-bit 16-bit<br />
2. Serial 2. Serial 2. Parallel<br />
Interface, DSI (2 Interface, DSI (2 Interface,<br />
data lanes)" data lanes)" RFBI-1 mode<br />
16-bit"<br />
sys_boot0 System control DISPC_DATA_L DISPC_DATA_L<br />
module CD18 CD [18-23]<br />
sys_boot1 DISPC_DATA_L<br />
CD19<br />
sys_boot3 DISPC_DATA_L<br />
CD20<br />
sys_boot4 DISPC_DATA_L<br />
CD21<br />
sys_boot5 DISPC_DATA_L<br />
CD22<br />
sys_boot6 DISPC_DATA_L<br />
CD23<br />
The DISPC_DATA_LCD[23:18] data is additionally multiplexed on the sys_boot device pads to allow simultaneous availability of the DSI interface<br />
and the complete parallel 24-bit DSS interface.<br />
NOTE: The DISPC_DATA_LCD[5:0] data multiplexed with the DSI signals on dss_data[5:0] pads is limited to up to 60 MHz pixel clock<br />
frequency. If the parallel 18/24-bit interface in bypass mode with a pixel clock above 60 MHz is required, the DISPC_DATA_LCD[5:0]<br />
multiplexed on dss_data[23:18] pads, and DISPC_DATA_LCD[23:18] multiplexed on sys_boot pads must be used.<br />
NOTE: Table 7-1 shows only the DSS capabilities of supporting simultaneous and sequential LCD interfaces due to the additional signal<br />
multiplexing, without describing explicitly all possible configurations.<br />
For more information on signals multiplexing, see <strong>Chapter</strong> 13, System Control Module. The parallel interface connectivity is detailed in<br />
Section 7.2.1.1, Parallel Interface. For more details on the serial interface, see Section 7.2.1.2, DSI Serial Interface.<br />
1550<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
7.2.1.1 Parallel Interface<br />
In parallel interface, the paths of the display subsystem modules are the display controller and the RFBI.<br />
The display controller provides the required control signals to interface the memory frame buffer (SDRAM<br />
or SRAM) directly to the external displays. The display controller is connected to the memory through the<br />
L3 interconnect and has its own DMA (with embedded FIFOs) to read data from the system memory. The<br />
L3 interconnect is the master port, while the L4 interconnect is the slave port of the display subsystem.<br />
The display controller has two I/O pad modes at the module level:<br />
• RFBI mode (RFBI enabled), which implements the MIPI DBI 2.0 protocol<br />
• Bypass mode (RFBI disabled), which implements the MIPI DPI 1.0 protocol<br />
The DSS.DISPC_CONTROL[16:15] GPOUT[1:0] bits control selection of the display subsystem modules<br />
(see Table 7-2).<br />
Table 7-2. I/O Pad Mode Selection<br />
DSS.DISPC_CONTROL[16] GPOUT1 DSS.DISPC_CONTROL[15] GPOUT0 Mode<br />
0 0 Reset<br />
0 1 RFBI mode<br />
1 0 Invalid<br />
1 1 Bypass mode<br />
The RFB of the LCD panel is connected directly to the RFBI module of the device. The RFBI controls the<br />
reads/writes from/to the RFB. The RFBI receives the output from the DISPC (which takes data from the<br />
memory) and generates the signals to control the LCD panel. Through the RFBI, the MPU can send<br />
commands or parameter/display data to the LCD panel and directly set the DISPC registers to read/write<br />
the data from/to the memory in the LCD panel. The RFBI can manage up to two LCD panels when the<br />
serial interface is not used.<br />
7.2.1.1.1 Parallel Interface in RFBI Mode (MIPI DBI Protocol)<br />
Figure 7-2 shows the LCD support parallel interface in RFBI mode (example for 16-bit data interface).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1551
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
RFBI<br />
RFBI_DA[15:0]<br />
RFBI_RD<br />
RFBI_WR<br />
RFBI_A0<br />
RFBI_CS0<br />
RFBI_TE_VSYNC0<br />
RFBI_HSYNC0<br />
RFBI_TE_VSYNC1<br />
RFBI_HSYNC1<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-2. LCD Support Parallel Interface (RFBI Mode)<br />
RFBI_CS1<br />
dss_data[15:0]<br />
dss_pclk<br />
dss_vsync<br />
dss_acbias<br />
dss_hsync<br />
dss_data16<br />
dss_data17<br />
dss_data18<br />
dss_data19<br />
dss_data20<br />
LCD<br />
panel 1<br />
with RFB<br />
LCD<br />
panel 2<br />
with RFB<br />
NOTE: Configure the DSS.RFBI_CONTROL[3:2] CONFIGSELECT bit field to drive signals for LCD<br />
1 only, LCD 2 only, or both LCD 1 and LCD 2.<br />
Table 7-3 describes the interface signals to/from the LCD panel in RFBI mode.<br />
Signal Name Type (1) Description<br />
RFBI_DA[15:0] I/O RFBI I/O data<br />
Table 7-3. LCD Interface Signals (RFBI Mode)<br />
RFBI_RD O Read access signal<br />
RFBI_WR O Write access signal<br />
RFBI_A0 O Command/data selection signal<br />
RFBI_CS0 O Chip-select (CS) signal for LCD 1<br />
RFBI_CS1 O CS signal for LCD 2<br />
RFBI_TE_VSYNC0 I Tearing effect (TE) synchronization signal (TE or VSYNC for LCD panel 1)<br />
RFBI_HSYNC0 I HSYNC from LCD panel 1<br />
RFBI_TE_VSYNC1 I TE synchronization signal (TE or VSYNC for LCD panel 2)<br />
RFBI_HSYNC1 I HSYNC from LCD panel 2<br />
(1) I = Input, O = Output<br />
• RFBI_DA[15:0]: The pixel data comprises the RFBI pixel data (bits 15:0). A write/read command must<br />
be sent to the LCD panel to send/read the data.<br />
Before any data access, the application must send commands and parameters when it is necessary to<br />
configure an LCD panel. The data is used as input in read operations during production test and also<br />
to read the status of the registers in the LCD panel and pixels from the embedded frame buffer in the<br />
LCD panel module. RFBI_DA is multiplexed at the chip-level boundary with dss_data [15:0].<br />
• RFBI_RD: This is the read-enable signal used to indicate when a read from the embedded memory in<br />
the LCD panel is ongoing. The RFBI registers describe the behavior of the read signal (off/on/cycle<br />
time). The polarity of the read-enable signal is programmable. This signal is multiplexed at the<br />
1552 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-002
DSS_L4_ICLK<br />
TE<br />
VSYNC<br />
HSYNC<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
chip-level boundary with dss_pclk. The read is used to get status/data information from the LCD panel.<br />
• RFBI_WR: The write-enable signal is used to indicate when a write is ongoing. The RFBI registers<br />
describe the behavior of the write signal (off/on/cycle time). The polarity of the write-enable signal is<br />
programmable. This signal is multiplexed at the chip-level boundary with dss_vsync.<br />
• RFBI_A0: The signal is asserted to indicate its status: Command or data. The polarity is programmable<br />
and the status of the signal depends on the RFBI registers written by the application<br />
(CMD/READ/STATUS/PARAM/PIXEL). The register in use by the hardware defines the status of<br />
RFBI_A0. The order of the writes/reads to the RFBI registers CMD/READ/STATUS/PARAM/PIXEL<br />
defines the transitions of A0. This signal is multiplexed at the chip-level boundary with dss_acbias.<br />
• RFBI_CSx: The signal is the chip-select (CSx) asserted to indicate which LCD panel is selected and<br />
must be ready to receive/transmit commands and data. When RE or WE is on, CSx must not be<br />
changed (x = 0 for LCD panel 1; x = 1 for LCD panel 2). CS0 is multiplexed at the chip-level boundary<br />
with dss_hsync, and CS1 is multiplexed at the chip-level boundary with dss_data[20].<br />
• RFBI_TE_VSYNCx: Based on the trigger mode selected, the signal is the TE pulse signal or the LCD<br />
panel VSYNC (vertical synchronization) pulse signal. RFBI_TE_VSYNCx is used by the TE logic as the<br />
synchronization signal to send the pixel to the LCD panel.<br />
To select the trigger mode, configure the DSS.RFBI_CONFIGi[3:2] TRIGGERMODE bit field (0x0:<br />
Internal trigger mode with the DSS.RFBI_CONTROL[4] ITE bit, 0x1: External trigger mode with the TE<br />
signal RFBI_TE_VSYNCx, 0x2: External trigger mode with the RFBI_TE_VSYNCx, and<br />
RFBI_HSYNCx signals with the programmable line counter).<br />
These signals are multiplexed at the chip-level boundary with dss_data[16] (RFBI_TE_VSYNC0) and<br />
dss_data[18] (RFBI_TE_VSYNC1) (LCD panel 1: x = 0; LCD panel 2: x = 1).<br />
• RFBI_HSYNCx: The HSYNC pulse signals indicate to the RFBI module when horizontal<br />
synchronization occurs. The polarity of the HSYNC signals is programmable. The minimum pulse width<br />
of the signal is two L4 cycles. RFBI_HSYNC is used by the TE logic as a synchronization signal to<br />
send the pixel to the LCD panel. These signals are multiplexed at the chip-level boundary with<br />
dss_data[17] (RFBI_HSYNC0) and dss_data[19] (RFBI_HSYNC1) (LCD panel 1: x = 0; LCD panel 2: x<br />
= 1).<br />
7.2.1.1.1.1 Description of the TE Pulse Signal<br />
The externally-generated TE synchronization signal is a logical OR or AND operation between the HSYNC<br />
and VSYNC signals (see Figure 7-3). The logical operation (OR or AND) depends on the HSYNC and<br />
VSYNC signals polarity. The VSYNC signal indicates to the RFBI module when vertical synchronization<br />
occurs; the HSYNC signal indicates to the RFBI module when horizontal synchronization occurs.<br />
Figure 7-3. External Generation of TE Signal Based on Logical OR Operation Between HSYNC and<br />
VSYNC (Active-High)<br />
The RFBI module detects the VSYNC and HSYNC pulses embedded in the received signal. VSYNC is<br />
detected based on the minimum pulse width defined by the DSS.RFBI_VSYNC_WIDTH register.<br />
HSYNC is detected based on the minimum pulse width defined by the DSS.RFBI_HSYNC_WIDTH<br />
register.<br />
The signal is generated from external logic based on the VSYNC/HSYNC of the LCD panel. The<br />
automatic trigger can be programmed based on the RFBI_TE signal or use a bit field in the RFBI registers<br />
to start data capture.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-003<br />
1553
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
DISPC_DATA_LCD[23:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
The polarity of the TE signal is programmable. The HSYNC and VSYNC pulses embedded in the TE<br />
signal have the same polarity, which is active high for an ORed signal and active low for an ANDed signal.<br />
The minimum pulse width of the signal is two L4 cycles. Hardware resets the line counter when the<br />
VSYNC occurs and increments it at every HSYNC. Transfer to the LCD panel begins when the line<br />
counter reaches the programmable line number.<br />
7.2.1.1.2 Parallel Interface in Bypass Mode (MIPI DPI Protocol)<br />
When bypass mode is enabled, the display controller must be set to use it.<br />
Figure 7-4 shows the LCD support parallel interface in bypass mode.<br />
Figure 7-4. LCD Support Parallel Interface (Bypass Mode)<br />
RFBI<br />
dss_data[23:0]<br />
dss_pclk<br />
dss_vsync<br />
dss_hsync<br />
dss_acbias<br />
Table 7-4 describes the interface signals to/from the LCD panel in bypass mode.<br />
Table 7-4. LCD Interface Signals (Bypass Mode)<br />
Signal Name Type (1) Description<br />
DISPC_DATA_LCD[23:0] O LCD data from the display controller module<br />
DISPC_PCLK O Pixel CLK from the display controller module<br />
DISPC_VSYNC O VSYNC from the display controller module<br />
DISPC_HSYNC O HSYNC from the display controller module<br />
DISPC_ACBIAS O ACBIAS from the display controller module<br />
(1) I = Input, O = Output, I/O = Input/Output<br />
LCD<br />
panel<br />
• DISPC_DATA_LCD[23:0]: The panel pixel data comes directly from the display controller module.<br />
DISPC_DATA_LCD is connected at the chip-level boundary with dss_data[23:0].<br />
• DISPC_PCLK: This signal is the pixel clock that comes directly from the display controller. This signal<br />
is multiplexed at the chip-level boundary with dss_pclk.<br />
• DISPC_VSYNC: Uses the vertical synchronization signal from the display controller. The LCD frame<br />
clock (VSYNC) toggles after all the lines in a frame are transmitted to the LCD panel and a<br />
programmable number of line clock cycles has elapsed both at the beginning and at the end of each<br />
frame. This signal is multiplexed with dss_vsync at the chip-level boundary.<br />
• DISPC_HSYNC: Uses the horizontal synchronization signal from the display controller. The LCD line<br />
clock (HSYNC) toggles after all pixels in a line are transmitted to the LCD panel and a programmable<br />
number of pixel clock wait-states elapse, both at the beginning and at the end of each line. This signal<br />
is multiplexed on the chip-level boundary with dss_hsync.<br />
• DISPC_ACBIAS: Uses the ac-bias signal from the display controller.<br />
– In passive matrix technology, the ac-bias signal is configured to transition each time a<br />
programmable number of line clocks occurs. To prevent a dc charge within the screen pixels, the<br />
power and ground supplies of the panel are periodically switched. The DISPC signals the panel to<br />
switch the polarity by toggling the ac-bias pin.<br />
1554 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-004
LCD<br />
controller<br />
output<br />
pins<br />
Pixel clock<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
– In active matrix technology, the ac-bias signal acts as an output-enable signal to indicate when data<br />
must be latched using the pixel clock. This signal is multiplexed on the chip-level boundary with<br />
dss_acbias.<br />
7.2.1.1.3 LCD Output and Data Format for the Parallel Interface<br />
This section describes the pixel data bus and shows timing diagrams of transactions and synchronizations<br />
in both RFBI and bypass modes.<br />
Figure 7-5 through Figure 7-11 show the pixel data bus for bypass mode, depending on the use of 4-, 8-,<br />
12-, 16-, 18-, or 24-pixel data output pins. In RFBI mode, the pixel data bus is reformatted in accordance<br />
with the input and output data bus width.<br />
Table 7-5 lists the number of displayed pixels per pixel clock cycle based on the type of display panel.<br />
Table 7-5. Number of <strong>Display</strong>ed Pixels per Pixel Clock Cycle Based on <strong>Display</strong><br />
Type<br />
<strong>Display</strong> Panel Number of <strong>Display</strong>ed<br />
Pixels per Pixel Clock Cycle<br />
Monochrome 4-bit 4<br />
Monochrome 8-bit 8<br />
Passive matrix color 8/3<br />
Active matrix 1<br />
• Passive matrix technology, Monochrome mode<br />
Monochrome displays use either a 4-bit or 8-bit interface. Each bit represents one pixel (on or off),<br />
which means that either 4 or 8 pixels are sent to the LCD at each pixel clock.<br />
Figure 7-5 and Figure 7-6 show 4- and 8-bit monochrome displays, respectively.<br />
Figure 7-5. LCD Pixel Data Monochrome4 Passive Matrix<br />
Pix1<br />
Pix2<br />
Pix3<br />
Pix4<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[2]<br />
dss_data[3]<br />
Pixel data [3:0]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-005<br />
1555
<strong>Display</strong><br />
controller<br />
output pins<br />
Pixel clock<br />
LCD<br />
controller<br />
output pins<br />
Pixel clock<br />
(Pix3) G<br />
(Pix3) R<br />
(Pix2) B<br />
(Pix2) G<br />
(Pix2) R<br />
(Pix1) B<br />
(Pix1) G<br />
(Pix1) R<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-6. LCD Pixel Data Monochrome8 Passive Matrix<br />
Pix1<br />
Pix2<br />
Pix3<br />
Pix4<br />
Pix5<br />
Pix6<br />
Pix7<br />
Pix8<br />
(Pix6) R<br />
(Pix5) B<br />
(Pix5) G<br />
(Pix5) R<br />
(Pix4) B<br />
(Pix4) G<br />
(Pix4) R<br />
(Pix3) B<br />
(Pix8) B<br />
(Pix8) G<br />
(Pix8) R<br />
(Pix7) B<br />
(Pix7) G<br />
(Pix7) R<br />
(Pix6) B<br />
(Pix6) G<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[2]<br />
dss_data[3]<br />
dss_data[4]<br />
dss_data[5]<br />
dss_data[6]<br />
dss_data[7]<br />
Pixel data [7:0]<br />
• Passive matrix technology, color mode<br />
Color passive displays use 8-bit data input lines. In a given pixel clock cycle, each line represents one<br />
color component (red, green, or blue).<br />
Figure 7-7 shows an 8-bit color passive matrix display.<br />
Figure 7-7. LCD Pixel Data Color Passive Matrix<br />
dss-006<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[2]<br />
dss_data[3]<br />
dss_data[4]<br />
dss_data[5]<br />
dss_data[6]<br />
dss_data[7]<br />
• Active matrix technology<br />
Active matrix displays bypass the STN dithering logic block and the output FIFO. Each line represents<br />
one pixel.<br />
Figure 7-8 through Figure 7-11 show 12-, 16-, 18-, and 24-active matrix displays, respectively.<br />
1556 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Pixel<br />
data<br />
[7:0]<br />
dss-0<strong>07</strong>
LCD<br />
controller<br />
output pins<br />
Pixel clock<br />
(Pix1) B0<br />
(Pix1) B1<br />
(Pix1) B2<br />
(Pix1) B3<br />
(Pix1) G0<br />
(Pix1) G1<br />
(Pix1) G2<br />
(Pix1) G3<br />
(Pix1) R0<br />
(Pix1) R1<br />
(Pix1) R2<br />
(Pix1) R3<br />
(Pix2) B0<br />
(Pix2) B1<br />
(Pix2) B2<br />
(Pix2) B3<br />
(Pix2) G0<br />
(Pix2) G1<br />
(Pix2) G2<br />
(Pix2) G3<br />
(Pix2) R0<br />
(Pix2) R1<br />
(Pix2) R2<br />
(Pix2) R3<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-8. LCD Pixel Data Color12 Active Matrix<br />
(Pix3) B0<br />
(Pix3) B1<br />
(Pix3) B2<br />
(Pix3) B3<br />
(Pix3) G0<br />
(Pix3) G1<br />
(Pix3) G2<br />
(Pix3) G3<br />
(Pix3) R0<br />
(Pix3) R1<br />
(Pix3) R2<br />
(Pix3) R3<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[2]<br />
dss_data[3]<br />
dss_data[4]<br />
dss_data[5]<br />
dss_data[6]<br />
dss_data[7]<br />
dss_data[8]<br />
dss_data[9]<br />
dss_data[10]<br />
dss_data[11]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Pixel<br />
data<br />
[11:0]<br />
dss-008<br />
1557
LCD<br />
controller<br />
output pins<br />
Pixel clock<br />
LCD<br />
controller<br />
output pins<br />
Pixel clock<br />
(Pix1) B0<br />
(Pix1) B1<br />
(Pix1) B2<br />
(Pix1) B3<br />
(Pix1) B4<br />
(Pix1) R0<br />
(Pix1) R1<br />
(Pix1) R2<br />
(Pix1) R3<br />
(Pix1) R4<br />
(Pix1) B0<br />
(Pix1) B1<br />
(Pix1) B5<br />
(Pix1) R0<br />
(Pix1) R3<br />
(Pix1) R4<br />
(Pix1) R5<br />
(Pix2) B0<br />
(Pix2) B1<br />
(Pix2) B2<br />
(Pix2) B3<br />
(Pix2) B4<br />
(Pix2) R0<br />
(Pix2) R1<br />
(Pix2) R2<br />
(Pix2) R3<br />
(Pix2) R4<br />
(Pix2) B0<br />
(Pix2) B1<br />
(Pix2) B5<br />
(Pix2) R0<br />
(Pix2) R3<br />
(Pix2) R4<br />
(Pix2) R5<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-9. LCD Pixel Data Color16 Active Matrix<br />
(Pix3) B0<br />
(Pix3) B1<br />
(Pix3) B2<br />
(Pix3) B3<br />
(Pix3) B4<br />
(Pix3) R0<br />
(Pix3) R1<br />
(Pix3) R2<br />
(Pix3) R3<br />
(Pix3) R4<br />
Figure 7-10. LCD Pixel Data Color18 Active Matrix<br />
(Pix3) B0<br />
(Pix3) B1<br />
(Pix3) B5<br />
(Pix3) R0<br />
(Pix3) R3<br />
(Pix3) R4<br />
(Pix3) R5<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[2]<br />
dss_data[3]<br />
dss_data[4]<br />
dss_data[11]<br />
dss_data[12]<br />
dss_data[13]<br />
dss_data[14]<br />
dss_data[15]<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[5]<br />
dss_data[12]<br />
dss_data[15]<br />
dss_data[16]<br />
dss_data[17]<br />
Pixel<br />
data<br />
[15:0]<br />
dss-009<br />
Pixel<br />
data<br />
[17:0]<br />
1558 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-010
LCD<br />
controller<br />
output pins<br />
DISPC_FCLK<br />
DISPC_PCLK<br />
DISPC_DATA_STALL<br />
DISPC_LCD_DATA[23:0]<br />
Pixel clock<br />
(Pix1) B0<br />
(Pix1) B1<br />
(Pix1) B7<br />
(Pix1) G0<br />
(Pix1) G7<br />
(Pix1) R0<br />
(Pix1) R5<br />
(Pix1) R6<br />
(Pix1) R7<br />
(Pix2) B0<br />
(Pix2) B1<br />
(Pix2) B7<br />
(Pix2) G0<br />
(Pix2) G7<br />
(Pix2) R0<br />
(Pix2) R5<br />
(Pix2) R6<br />
(Pix2) R7<br />
4_DISPC_CLK_cycle_for_assertion<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
7.2.1.1.4 Transaction Timing Diagrams<br />
• Timing diagrams in flow control mode<br />
Figure 7-11. LCD Pixel Data Color24 Active Matrix<br />
(Pix3) B0<br />
(Pix3) B1<br />
(Pix3) B7<br />
(Pix3) G0<br />
(Pix3) G7<br />
(Pix3) R0<br />
(Pix3) R5<br />
(Pix3) R6<br />
(Pix3) R7<br />
Pixel data<br />
dss_data[0]<br />
dss_data[1]<br />
dss_data[7]<br />
dss_data[8]<br />
dss_data[15]<br />
dss_data[16]<br />
dss_data[21]<br />
dss_data[22]<br />
dss_data[23]<br />
PIXELS 1 PIXELS 2 PIXELS 3 PIXELS 4 PIXELS 5<br />
Pixel<br />
data<br />
[23:0]<br />
– Stall signal<br />
The stall signal is used in RFBI and DSI modes. In the case of RFBI mode, it is used to indicate<br />
when the display controller must stop sending data over the LCD output interface. The RFBI<br />
module asserts the stall signal to stop data output by the display controller. It is deasserted to<br />
indicate when new data must be outputted by the display controller.<br />
Figure 7-12. RFBI Data Stall Signal Diagram<br />
dss-011<br />
1_DISPC_CLK.cycle_after_for_de_assertion<br />
To avoid underflow of the DMA FIFO, the FIFO handcheck feature can be enabled by setting the<br />
DSS.DISPC_CONFIG[16] FIFOHANDCHECK bit to 1. The fullness of the FIFOs associated with<br />
the pipelines used for the LCD output is checked when the STALL signal is inactive before<br />
providing data to the pipeline. This prevents emptying the FIFO when the RFBI module requests<br />
data and there is not enough data in the display controller DMA FIFO. This feature must be enabled<br />
only when the STALL mode is used (DSS.DISPC_CONTROL[11] STALLMODE bit set to 1).<br />
When the FIFO handcheck feature is activated, the pixel transfer to the RFBI module during STALL<br />
inactivity period can be stopped (no DISPC_PCLK pulse) and restarted when there is enough data<br />
in the FIFO. The FIFO handcheck ensures that underflow cannot occur for the pipelines associated<br />
with the LCD output in RFBI mode. Figure 7-13 details the RFBI data stall with FIFO handcheck<br />
mode activated.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-134<br />
1559
DISPC_FCLK<br />
DISPC_PCLK<br />
DISPC_DATA_STALL<br />
DISPC_LCD_DATA[23:0]<br />
L4_CLK<br />
RFBI_A0(D/C)<br />
RFBI_CSi<br />
(with i = 0, 1)<br />
RFBI_WR<br />
DISPC_CLK_cycles_for_assertion<br />
1_DISPC_CLK_cycle_for_de_assertion<br />
PIXELS 1 PIXELS 2 PIXELS 3<br />
WECycleTime<br />
CSOnTime<br />
CSOffTime<br />
WEOffTime<br />
WEOnTime<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-13. RFBI Data Stall Signal Diagram With Handcheck<br />
– RFBI timing diagrams<br />
Table 7-6 lists the programmable timing fields. Figure 7-14 through Figure 7-16 show timing diagrams<br />
of read/write transactions to the LCD panel for the RFBI mode.<br />
Table 7-6. Programmable Timing Fields in RFBI Mode<br />
Timing Name Register Field Description<br />
CSOnTime DSS.RFBI_ONOFF_TIMEi[3:0] CS assertion time from start access time<br />
CSONTIME (with I = 0 or 1)<br />
CSOffTime DSS.RFBI_ONOFF_TIMEi[9:4] CS deassertion time from start access time<br />
CSOFFTIME (with I = 0 or 1)<br />
WeCycleTime DSS.RFBI_CYCLE_TIMEi[5:0] The time when A0 becomes valid until write cycle<br />
WECYCLETIME (with I = 0 or 1) completion<br />
WEOnTime DSS_RFBI_ONOFF_TIMEi[13:10] WE assertion delay time from start access time<br />
WEONTIME (with I = 0 or 1)<br />
WEOffTime DSS_RFBI_ONOFF_TIMEi[19:14] WE deassertion delay time from start access time<br />
WEOFFTIME (with I = 0 or 1)<br />
RECycleTime DSS.RFBI_CYCLE_TIMEi[11:6] The time when A0 becomes valid until read cycle<br />
RECYCLETIME (with I = 0 or 1) completion<br />
REOnTime DSS_RFBI_ONOFF_TIMEi[23:20] RE assertion delay time from start access time<br />
REONTIME (with I = 0 or 1)<br />
REOffTime DSS.RFBI_ONOFF_TIMEi[29:24] RE assertion delay time from start access time<br />
REOFFTIME (with I = 0 or 1)<br />
CSPulseWidth DSS.RFBI_CYCLE_TIMEi[17:12] The time when write cycle time or read cycle time<br />
CSPULSEWIDTH (with I = 0 or 1) completes<br />
Figure 7-14. Command Data Write<br />
WECycleTime<br />
CSOnTime<br />
RFBI_DA[15:0] DATA0 DATA1<br />
1560 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-135<br />
dss-012
L4_CLK<br />
RFBI_A0(D/C)<br />
RFBI_CSi<br />
(with i = 0, 1)<br />
RFBI_RD<br />
RFBI_DA[15:0]<br />
L4_CLK<br />
RFBI_A0(D/C)<br />
RFBI_CSi<br />
(with i = 0, 1)<br />
RFBI_RD<br />
RFBI_WR<br />
RFBI_DA[15:0]<br />
RECycleTime<br />
CSOffTime<br />
CSOnTime<br />
REOnTime<br />
AccessTime<br />
CSOnTime<br />
REOffTime REOffTime<br />
CSOffTime<br />
CSOnTime<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-15. <strong>Display</strong> Data Read<br />
DATA0 DATA1<br />
Figure 7-16. Read to Write and Write to Read<br />
RECycleTime WECycleTime<br />
CSPulseWidth CSPulseWidth<br />
CSOffTime CSOffTime<br />
CSOnTime<br />
CSOnTime<br />
READ0 WRITE0 READ1<br />
• Timing diagrams in bypass mode<br />
Figure 7-17 through Figure 7-32 show timing diagrams of synchronization signals and pixel clock in<br />
bypass mode for both passive matrix and active matrix panels. The display controller directly drives<br />
these signals, which are related to the programmable fields described in Table 7-7.<br />
Table 7-7. Programmable Fields in Bypass Mode<br />
Name Register Description<br />
PPL DSS.DISPC_SIZE_LCD[10:0] PPL bit field value + 1 Pixels per line (PPL)<br />
LPP DSS.DISPC_SIZE_LCD[26:16] LPP bit field value + 1 Lines per panel<br />
HBP DSS.DISPC_TIMING_H[31:20] HBP bit field value + 1 Horizontal back porch<br />
HFP DSS.DISPC_TIMING_H[19:8] HFP bit field value + 1 Horizontal front porch<br />
HSW DSS.DISPC_TIMING_H[7:0] HSW bit field value + 1 Horizontal synchronization pulse width<br />
VBP DSS.DISPC_TIMING_V[31:20] VBP bit field value Vertical back porch<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1561<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-013<br />
dss-014
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
HSW VSW VBP HBP<br />
DISPC_DATA_LCD[23:0] PIXELS<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Table 7-7. Programmable Fields in Bypass Mode (continued)<br />
Name Register Description<br />
VFP DSS.DISPC_TIMING_V[19:8] VFP bit field value Vertical front porch<br />
VSW DSS.DISPC_TIMING_V[7:0] VSW bit field value + 1 Vertical synchronization pulse width<br />
ONOFF DSS.DISPC_POL_FREQ[17] ONOFF bit DISPC_HSYNC and DISPC_VSYNC pixel clock<br />
control<br />
RF DSS.DISPC_POL_FREQ[16] RF bit DISPC_HSYNC and DISPC_VSYNC pixel clock<br />
edge control<br />
IEO DSS.DISPC_POL_FREQ[15] IEO bit Invert DISPC_ACBIAS<br />
IPC DSS.DISPC_POL_FREQ[14] IPC bit Invert DISPC_PCLK<br />
IHS DSS.DISPC_POL_FREQ[13] IHS bit Invert DISPC_HSYNC<br />
IVS DSS.DISPC_POL_FREQ[12] IVS bit Invert DISPC_VSYNC<br />
• Active matrix timing configuration 1<br />
– DSS.DISPC_POL_FREQ[17] ONOFF bit = 0<br />
– DSS.DISPC_POL_FREQ[16] RF bit = 0<br />
The DISPC_HSYNC and DISPC_VSYNC signals are driven on the opposite edge of DISPC_PCLK<br />
from the pixel data.<br />
– DSS.DISPC_POL_FREQ[15] IEO = 0<br />
The DISPC_ACBIAS signal is active high.<br />
– DSS.DISPC_POL_FREQ[14] IPC = 0<br />
The pixel data are driven on the rising edge of DISPC_PCLK.<br />
– DSS.DISPC_POL_FREQ[13] IHS = 0<br />
The DISPC_HSYNC signal is active high.<br />
– DSS.DISPC_POL_FREQ[12] IVS = 0<br />
The DISPC_VSYNC signal is active high.<br />
Figure 7-17. Active Matrix Timing Diagram of Configuration 1 (Start of Frame)<br />
Figure 7-18. Active Matrix Timing Diagram of Configuration 1 (Between Lines)<br />
HSW HBP HFP HSW HBP<br />
PIXELS<br />
PIXELS<br />
1562 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-015<br />
dss-016
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC*<br />
DISPC_HSYNC*<br />
DISPC_ACBIAS*<br />
DISPC_DATA_LCD[23:0]<br />
* Active Low signals<br />
HFP<br />
HSW<br />
VFP VSW<br />
HBP<br />
PIXELS PIXELS<br />
HSW<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-19. Active Matrix Timing Diagram of Configuration 1 (Between Frames)<br />
Figure 7-20. Active Matrix Timing Diagram of Configuration 1 (End of Frame)<br />
• Active matrix timing configuration 2<br />
PIXELS<br />
VBP<br />
HSW<br />
VFP<br />
HSW HBP<br />
HSW HSW<br />
– DSS.DISPC_POL_FREQ[17] ONOFF bit = 1<br />
– DSS.DISPC_POL_FREQ[16] RF bit = 1<br />
The DISPC_HSYNC and DISPC_VSYNC signals are driven on the rising edge of DISPC_PCLK.<br />
– DSS.DISPC_POL_FREQ[15] IEO = 1<br />
The DISPC_ACBIAS signal is active low.<br />
– DSS.DISPC_POL_FREQ[14] IPC = 1<br />
The pixel data is driven on the falling edge of DISPC_PCLK.<br />
– DSS.DISPC_POL_FREQ[13] IHS = 1<br />
The DISPC_HSYNC signal is active low.<br />
– DSS.DISPC_POL_FREQ[12] IVS = 1<br />
The DISPC_VSYNC signal is active low.<br />
Figure 7-21. Active Matrix Timing Diagram of Configuration 2 (Start of Frame)<br />
VSW VBP<br />
HBP<br />
dss-017<br />
dss-018<br />
PIXELS<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-019<br />
1563
DISPC_PCLK<br />
DISPC_VSYNC*<br />
DISPC_HSYNC*<br />
DISPC_ACBIAS*<br />
DISPC_DATA_LCD[23:0]<br />
*Active-low signals<br />
DISPC_PCLK<br />
DISPC_VSYNC*<br />
DISPC_HSYNC*<br />
DISPC_ACBIAS*<br />
DISPC_DATA_LCD[23:0]<br />
*Active Low signals<br />
DISPC_PCLK<br />
DISPC_VSYNC*<br />
DISPC_HSYNC*<br />
DISPC_ACBIAS*<br />
DISPC_DATA_LCD[23:0]<br />
* Active Low signals<br />
HSW HBP HFP HSW HBP<br />
HFP<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-22. Active Matrix Timing Diagram of Configuration 2 (Between Lines)<br />
HSW<br />
Pixels Pixels<br />
Figure 7-23. Active Matrix Timing Diagram of Configuration 2 (Between Frames)<br />
VFP VSW<br />
VBP<br />
HSW<br />
HBP<br />
PIXELS PIXELS<br />
Figure 7-24. Active Matrix Timing Diagram of Configuration 2 (End of Frame)<br />
• Active matrix timing configuration 3<br />
HSW HBP<br />
HSW HSW<br />
PIXELS<br />
– DSS.DISPC_POL_FREQ[17] ONOFF bit = 1<br />
– DSS.DISPC_POL_FREQ[16] RF bit = 1<br />
The DISPC_HSYNC and DISPC_VSYNC signals are driven on the rising edge of DISPC_PCLK.<br />
– DSS.DISPC_POL_FREQ[15] IEO = 0<br />
The DISPC_ACBIAS signal is active high.<br />
– DSS.DISPC_POL_FREQ[14] IPC = 0<br />
The pixel data are driven on the rising edge of DISPC_PCLK.<br />
– DSS.DISPC_POL_FREQ[13] IHS = 0<br />
The DISPC_HSYNC signal is active high.<br />
– DSS.DISPC_POL_FREQ[12] IVS = 0<br />
The DISPC_VSYNC signal is active high.<br />
1564 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VFP<br />
dss-020<br />
dss-021<br />
dss-022
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
HSW VSW VBP HBP<br />
HSW HBP HFP HSW HBP<br />
HFP<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-25. Active Matrix Timing Diagram of Configuration 3 (Start of Frame)<br />
HSW<br />
VFP<br />
PIXELS<br />
Figure 7-26. Active Matrix Timing Diagram of Configuration 3 (Between Lines)<br />
PIXELS PIXELS<br />
Figure 7-27. Active Matrix Timing Diagram of Configuration 3 (Between Frames)<br />
VSW<br />
HSW<br />
VBP<br />
HBP<br />
PIXELS PIXELS<br />
Figure 7-28. Active Matrix Timing Diagram of Configuration 3 (End of Frame)<br />
• Passive matrix timing configuration<br />
HSW HBP<br />
HSW<br />
PIXELS<br />
– DSS.DISPC_POL_FREQ[17] ONOFF bit = 0<br />
– DSS.DISPC_POL_FREQ[16] RF bit = 0<br />
The DISPC_HSYNC and DISPC_VSYNC signals are driven on the opposite edge of DISPC_PCLK<br />
from the pixel data.<br />
– DSS.DISPC_POL_FREQ[15] IEO = 0<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VFP<br />
HSW<br />
dss-023<br />
dss-024<br />
dss-025<br />
dss-026<br />
1565
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[7:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[7:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[7:0]<br />
DISPC_PCLK<br />
DISPC_VSYNC<br />
DISPC_HSYNC<br />
DISPC_ACBIAS<br />
DISPC_DATA_LCD[23:0]<br />
PIXELS<br />
HSW<br />
VSW<br />
PIXELS<br />
HFP HSW HBP<br />
HFP HSW<br />
PIXELS<br />
PIXELS<br />
HSW HBP HFP HSW HBP<br />
HFP VFP VSW VBP<br />
HSW<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
The DISPC_ACBIAS signal is active high.<br />
– DSS.DISPC_POL_FREQ[14] IPC = 0<br />
The pixel data are driven on the rising edge of DISPC_PCLK.<br />
– DSS.DISPC_POL_FREQ[13] IHS = 0<br />
The DISPC_HSYNC signal is active high.<br />
– DSS.DISPC_POL_FREQ[12] IVS = 0<br />
The DISPC_VSYNC signal is active high.<br />
7.2.1.2 DSI Serial Interface<br />
Figure 7-29. Passive Matrix Timing Diagram (Start of Frame)<br />
Figure 7-30. Passive Matrix Timing Diagram (Between Lines)<br />
Figure 7-31. Passive Matrix Timing Diagram (Between Frames)<br />
PIXELS<br />
HBP<br />
Figure 7-32. Passive Matrix Timing Diagram (End of Frame)<br />
VFP<br />
HSW HBP<br />
HSW HSW<br />
PIXELS<br />
PIXELS<br />
Figure 7-33 shows a typical connection between the DSI modules and a compliant panel display.<br />
1566 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-027<br />
dss-028<br />
dss-029<br />
dss-030
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
DSI protocol<br />
engine and<br />
DSI complex<br />
I/O<br />
DSI_DX0 dss_data0<br />
DSI_DY0<br />
DSI_DX1<br />
DSI_DY1<br />
DSI_DX2<br />
DSI_DY2<br />
VDDA_DSI<br />
(supply)<br />
VSSA_DSI<br />
(ground)<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-33. Typical DSI Connection<br />
vss<br />
dss_data1<br />
dss_data2<br />
dss_data3<br />
dss_data4<br />
dss_data5<br />
vdda_dsi<br />
vssa_dsi<br />
Digital ground<br />
NOTE: The DSI pins are multiplexed in mode 1 with some LCD parallel pins. See <strong>Chapter</strong> 13,<br />
System Control Module, for more details on pad multiplexing.<br />
7.2.2 LCD Support With MIPI DSI 1.0 Protocol and Data Format<br />
This section summarizes the MIPI® DSI1.0 protocol and data format.<br />
NOTE: Copyright ©2005-2008 MIPI Alliance, Inc. All rights reserved. MIPI Alliance Member<br />
Confidential.<br />
7.2.2.1 Physical Layer<br />
Table 7-8 lists the DSI interface I/O.<br />
(1)<br />
Table 7-8. I/O Description for DSI Serial Interface<br />
Signal Name I/O (1) Description Value at Reset<br />
LCD panel DSI<br />
Power IC<br />
dsi_dx0 line 1 I/O Serial data/clock input/output N/A<br />
dsi_dy0<br />
dsi_dx1 line 2 I/O Serial data/clock input/output N/A<br />
dsi_dy1<br />
dsi_dx2 line 3 I/O Serial data/clock input/output N/A<br />
dsi_dy2<br />
I/O = Input/Output<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1567<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-194
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
NOTE: Each serial line (line 1, line 2, and line 3) can be used as clock lane or data lane. All<br />
polarities are supported. The MIPI DSI 1.0 protocol requires at least one clock line and one<br />
data lane.<br />
Lanes support four operating modes:<br />
• HS mode: High-speed transmit mode<br />
• LP mode: Low-power transmit mode (also called low-power state [LPS])<br />
• ULPS: Ultra-low power state used between two transmissions<br />
• Off mode: Lane is off.<br />
7.2.2.1.1 Data/Clock Configuration<br />
From the device point of view, the DSI interface consists of six input/output signals representing three<br />
differential signals: The serial clock and one or two serial data. The minimum configuration is one data pair<br />
and one clock pair.<br />
• The data signal carries the bit-serial data. The DSI transmitter in the host sends the data in-quadrature<br />
with the DDR clock in high speed mode; otherwise, the clock is extracted from the received data in<br />
low-speed mode. The data is transmitted byte-wise least significant bit (LSB) first.<br />
• The clock signal carries the DDR clock signal in high speed transmission.<br />
• Software users must configure the order of the data lanes to indicate the byte order while splitting the<br />
byte stream for each DSI_PHY into bytes.<br />
Table 7-9 details all the DSI lanes configuration.<br />
Table 7-9. DSI Lane Configuration<br />
DSI DSI_PHY Lane<br />
Data/Clock Lane Position<br />
Configuration 1 2 3<br />
Description<br />
Mode CLK + DATA1 CLK DATA1 Not used Single data lane<br />
Mode CLK + DATA1 +<br />
DATA2<br />
CLK Not used DATA1<br />
DATA1 CLK Not used<br />
Not used CLK DATA1<br />
DATA1 Not used CLK<br />
Not used DATA1 CLK<br />
CLK DATA1 DATA2 Two data lanes<br />
CLK DATA2 DATA1<br />
DATA1 CLK DATA2<br />
DATA2 CLK DATA1<br />
DATA1 DATA2 CLK<br />
DATA2 DATA1 CLK<br />
1568 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
NOTE:<br />
7.2.2.1.2 ULPS<br />
• The byte on Dn is sent before the byte on Dn+1, all the combinations of data and clock<br />
are supported through programming of the DSS.DSI_COMPLEXIO_CFG1 register. The<br />
CLOCK_POSITION and CLOCK_POL bit fields configure which lane transmits the clock<br />
and define its polarity. Four bit fields (DATA1_POSITION, DATA1_POL,<br />
DATA2_POSITION, and DATA2_POL) configure the data lanes and their polarity. The<br />
DATA2_POSITION bit field can be set to 0; in this case, only the data lane defined in<br />
the DATA1_POSITION bit field is used, and data is transmitted on only one clock lane<br />
and one data lane.<br />
• The configuration of the DSI complex I/O (number of data lanes, position, differential<br />
order) must not be changed while DSS.DSI_CLK_CTRL[20] LP_CLK_ENABLE bit is set<br />
to 1. For the hardware to recognize a new configuration of the complex I/O (done in<br />
DSS.DSI_COMPLEXIO_CFG1 register), it is recommended to follow this sequence:<br />
First set the DSS.DSI_CTRL[0] IF_EN bit to 1, next reset the DSS.DSI_CTRL[0] IF_EN<br />
to 0, then set DSS.DSI_CLK_CTRL[20] LP_CLK_ENABLE to 1, and finally, set again the<br />
DSS.DSI_CTRL[0] IF_EN bit to 1. If the sequence is not followed, the DSI complex I/O<br />
configuration is undetermined.<br />
• Only DATA1 is bidirectional in command mode. The low-power received information is<br />
always sent by the display panel using DATA1. Since any lane of the DSI complex I/O<br />
can be configured as data lane DATA1, all lanes of the complex I/O are bidirectional<br />
Each lane can be put in ultra-low power state (ULPS) by software configuration. The ULPS mode requires<br />
all the following conditions:<br />
• The lane must be in stop state.<br />
• For data lanes, no data must be pending in the DSI module.<br />
• For data lane 1, no BTA should have been sent. The DSI module should have control of the bus.<br />
The control of each lane is independently controlled by the DSS.DSI_COMPLEXIO_CFG2 register.<br />
7.2.2.2 Video Port (VP) Interface<br />
NOTE: The signals described in this section are internal and not bounded outside the device. This<br />
section aims at helping software users understand the internal connections between the<br />
display controller (DISPC) and the DSI protocol engine.<br />
Table 7-10 summarizes the video interface signals. This interface is used to connect the display controller<br />
to the DSI protocol engine to send real time data streams. Note that only the active matrix timings are<br />
supported by DSI protocol engine. The HSYNC/VSYNC/DE/DATA signals are driven on the rising or<br />
falling edge of the pixel clock (VP_PCLK).<br />
Signal Name Type (1) Description<br />
Table 7-10. Video Interface for DSI Protocol Engine<br />
VP_HSYNC I Horizontal sync signal<br />
VP_VSYNC I Vertical sync signal<br />
VP_DATA[23:0] I Parallel output data: Bits 0 to 23<br />
VP_PCLK I Pixel clock. In case of STALL configuration, it is used to indicate when new data<br />
is on the data bus during the clock period of VP_CLK. The VP_PCLK is<br />
generated from VP_CLK through division. The clock ratio is defined in the<br />
DSS.DSI_CTRL[4] VP_CLK_RATIO bit and must be aligned with the<br />
configuration of the clock divisor in the display controller<br />
(DSS.DISPC_DIVISOR[7:0] PCD bit field).<br />
VP_DE I Data enable<br />
(1)<br />
I = Input, O = Output<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1569<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Signal Name Type (1)<br />
Table 7-10. Video Interface for DSI Protocol Engine (continued)<br />
Description<br />
VP_STALL O The stall signal must be deasserted to receive pixel and asserted to stop<br />
receiving pixel. (It can be used only while the display controller is configured in<br />
STALL mode; in that mode, HSYNC and VSYNC are not generated).<br />
VP_CLK I <strong>Display</strong> controller internal clock. It is a free-running clock.<br />
NOTE:<br />
• The polarities of VP_HSYNC and VP_VSYNC are programmable by setting the<br />
DSS.DSI_CTRL register.<br />
• The maximum frequency for VP_CLK is 173 MHz at nominal voltage, and 96 MHz at low<br />
voltage.<br />
• Clocks VP_CLK and VP_PCLK can have the same frequency.<br />
• The number of bits to be captured on the video port is defined in the<br />
DSS.DSI_CTRL[7:6] VP_DATA_BUS_WIDTH bit field.<br />
• VP_DE is connected to the dss_acbias signal in the display controller, and its polarity<br />
can be controlled by setting the DISPC_POL_FREQ[15] IEO bit.<br />
The data received on the video port can be stored into the line buffer memories or sent directly on the DSI<br />
interface in two cases:<br />
• The line buffer size is too small compared to the line from the display controller.<br />
• There is no line buffer instantiated. If there is no line buffer, the burst mode, defined as frequency burst<br />
mode, cannot be used. Only the transparency burst mode is supported.<br />
NOTE: The DSS.DSI_CTRL[13:12] LINE_BUFFER bit field defines the number of lines to be used<br />
for transferring data from the video port to the DSI link.<br />
7.2.2.2.1 Video Port Used for Video Mode<br />
If the video port is used for video mode, the VP_STALL is not used. Table 7-11 lists the active signals on<br />
the video port.<br />
Table 7-11. Video Interface in the Context of Video Mode<br />
Signal Name Type (1) Description<br />
VP_HSYNC I Horizontal sync signal<br />
VP_VSYNC I Vertical sync signal<br />
VP_DATA[23:0] I Parallel output data: bits 0 to 23<br />
VP_PCLK I Pixel clock.<br />
VP_DE I Data enable<br />
VP_CLK I It is a free running clock used as the display controller functional clock. The<br />
maximum frequency is 173 MHz at nominal voltage, and 96 MHz at low voltage.<br />
(1) I = Input, O = Output<br />
Three video modes are available:<br />
• No line buffer: The data received on the video port are directly output of the DSI port without buffering.<br />
The ration of VP_CLK and the DSI high-speed (HS) clock period must ensure identical throughput on<br />
the two ports (the two clocks must be generated using the same PLL; the subsystem must provide<br />
such configuration).<br />
• One line buffer:<br />
– The data are first stored in the line buffer; once all the data for one line are received, the DSI<br />
protocol engine sends the whole line. The software must adjust timings to allow for the storage of<br />
all line data into the line buffer before sending to DSI outputs. The synchronization packets are<br />
never stored into the line buffer.<br />
• Two line buffers:<br />
1570 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
– One line is stored when the second line is output on the DSI port. It allows burst capability. While<br />
receiving the first line of the frame, there is no RGB packets sent because the line buffers are<br />
empty. To send the last line of the frame, a dummy line must be provided by the display controller<br />
to flush the line buffers. The synchronization packets are never stored into the line buffer.<br />
NOTE: If more active lines are received on the video port than the number defined in the<br />
DSS.DSI_VM_TIMING3[15:0] VACT bit field, the extra lines are discarded by the DSI<br />
protocol engine. These lines are treated as blanking lines.<br />
Figure 7-34, Figure 7-35, and Figure 7-36 show these three video modes.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1571
VP waveforms:<br />
DSI waveform:<br />
t L<br />
V<br />
S BL<br />
LP H S BL<br />
LP<br />
H<br />
S<br />
H SA<br />
...<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
DATA[23:0] PIXELS<br />
V<br />
E BL<br />
LP H S BL<br />
LP<br />
H<br />
H<br />
E<br />
B<br />
P<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
DATA[23:0]<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
HSW VSW VBP HBP<br />
Active matrix timing – Start of frame ( (first one) )<br />
...<br />
H<br />
S BL<br />
LP<br />
RGB HFP<br />
HSW HBP HFP HSW HBP<br />
Active matrix timing – Between lines<br />
DATA[23:0] PIXELS PIXELS<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
HFP<br />
HSW<br />
VFP VSW<br />
DATA[23:0] PIXELS<br />
t L t L t L<br />
Not used for the first frame<br />
...<br />
Active video area<br />
H<br />
S<br />
H<br />
S<br />
A<br />
H<br />
H<br />
E<br />
BP<br />
H<br />
S BL<br />
LP<br />
...<br />
RGB HFP<br />
H<br />
S BL<br />
LP<br />
VSA lines VBP lines VFP lines<br />
t L<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-34. DSI Video Mode Without Burst (No-Line Buffer)<br />
PIXELS PIXELS<br />
VACT lines<br />
VBP<br />
HSWHBP<br />
Active matrix timing – Between frames<br />
VFP<br />
HSW HBP<br />
HSW HSW<br />
Active matrix timing – End of the frame (last one)<br />
*(VSA + VBP + VACT + VFP)<br />
t L t L t L<br />
1572 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
B<br />
H LL<br />
S<br />
P<br />
L<br />
V<br />
P<br />
M<br />
S<br />
dss-136
VP waveforms:<br />
DSI waveform:<br />
V<br />
S<br />
tL<br />
BL<br />
LP<br />
H<br />
S<br />
tL<br />
BL<br />
LP<br />
H<br />
S<br />
H<br />
S<br />
A<br />
...<br />
V<br />
E<br />
H<br />
E<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
DATA[23:0] PIXELS<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
tL<br />
DE<br />
DATA[23:0]<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
Not used for the first frame<br />
DE<br />
BL<br />
LP<br />
H<br />
S<br />
tL<br />
tL<br />
BL<br />
LP<br />
HSW VSW VBP HBP<br />
...<br />
H<br />
S<br />
tL<br />
BL<br />
LP<br />
RGB HFP<br />
Active matrix timing – Start of the frame (firts one)<br />
HSW HBP HFP HSW HBP<br />
Active matrix timing – between lines<br />
DATA[23:0] PIXELS PIXELS<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
HFP<br />
HSW<br />
VFP VSW<br />
DATA[23:0] PIXELS<br />
Active matrix timing – between frames<br />
Active matrix timing – End of the frame (last one)<br />
tL * (VSA + VBP + VACT + VFP)<br />
...<br />
Active video area<br />
VSA lines VBP lines VFP lines<br />
HBP<br />
Extended HBP due to<br />
buffering<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-35. DSI Video Mode Without Burst (One-Line Buffer)<br />
VACT lines<br />
PIXELS PIXELS<br />
H<br />
S<br />
H<br />
S<br />
A<br />
H<br />
E<br />
VBP<br />
HSWHBP<br />
HSW HBP<br />
HSW HSW<br />
Reduced HFP due to buffering<br />
VFP<br />
H<br />
S<br />
tL<br />
BL<br />
LP<br />
...<br />
RGB HFP<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
HBP<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
H<br />
S<br />
tL<br />
BL<br />
LP<br />
Buffer<br />
H<br />
S<br />
tL<br />
B<br />
L<br />
L<br />
P<br />
L<br />
V<br />
P<br />
S<br />
M<br />
dss-137<br />
1573
VP waveforms:<br />
Dummy line<br />
(not stored in the buffer )<br />
DSI waveform:<br />
V<br />
S<br />
t L<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
H<br />
S<br />
A<br />
...<br />
V<br />
E<br />
H<br />
E<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
DATA[23:0] PIXELS<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
H<br />
B<br />
P<br />
DE<br />
DATA[23:0]<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
DE<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
HSW VSW VBP HBP<br />
...<br />
H<br />
S<br />
RGB HFP<br />
Active matrix timing – Start of the frame (first one)<br />
HSW HBP HFP HSW HBP<br />
BL<br />
LP<br />
Active matrix timing – Between lines<br />
DATA[23:0] PIXELS PIXELS<br />
PCLK<br />
VSYNC<br />
HSYNC<br />
Not used for the first frame<br />
DE<br />
HFP<br />
HSW<br />
VFP VSW<br />
DATA[23:0] PIXELS<br />
t L t L t L t L<br />
Active matrix timing – Between frames<br />
Active Matrix Timing – End of the frame (last one)<br />
t L* (VSA + VBP + VACT + VFP)<br />
...<br />
Active video area<br />
VSA lines VBP lines VFP lines<br />
t L<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-36. DSI Video Mode With Burst (Two-Line Buffers)<br />
VACT lines<br />
PIXELS PIXELS<br />
H<br />
S<br />
H<br />
S<br />
A<br />
VBP<br />
H<br />
H<br />
B<br />
E<br />
P<br />
HSWHBP<br />
VFP<br />
HSW HBP<br />
HSW HSW<br />
H<br />
S<br />
t L<br />
BL<br />
LP<br />
RGB HFP<br />
1574 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
...<br />
H<br />
S<br />
tL<br />
BL<br />
LP<br />
H<br />
S<br />
Buffer 1<br />
Buffer 2<br />
tL<br />
B<br />
L<br />
L<br />
P<br />
L<br />
V<br />
P<br />
S<br />
M<br />
dss-138
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
NOTE: In Figure 7-34, Figure 7-35, and Figure 7-36:<br />
• When HSync start and Hsync end short packets are not generated (HSA does not exist),<br />
HBP signal must be different from 0.<br />
• The software must ensure that VBP is always defined so that there is at least one<br />
HSYNC during VBP.<br />
• In blanking low-power mode (BL-LP), two options are possible<br />
– The lane remains in ULPS, and the DSI_CTRL[20] BLANKING_MODE bit is set to<br />
0x0.<br />
– Dummy bytes are sent during LP with the DSI_CTRL[20] BLANKING_MODE bit set<br />
to 0x1; the number of sent bytes is determined by the DSI_VM_TIMING6[15:0]<br />
BL_LP_INTERLEAVING bit field.<br />
If the signal VP_DE is not asserted during enough VP_PCLK cycles to be able to capture the number of<br />
bytes defined in the word count of the header, the module must send the valid data received on the video<br />
port followed by bytes of 0s to match the required number of bytes to transmit. The VP_PCLK must be<br />
present during all extra cycles where the DSI protocol engine is expecting pixels.<br />
If the VP_DE signal is asserted for too many VP_PCLK cycles, the module should stop capturing the data<br />
on the video port while the number of bytes to capture, as defined in the word count field of the header, is<br />
reached.<br />
The HS must check that the received synchronization events on the video port (VSYNC and HSYNC) are<br />
within the synchronization window based on expected timings. If the timings (internal and received) are<br />
out of sync, the interrupt for out-of-sync must be generated and the interface must be disabled<br />
(DSS.DSI_CTRL[0] IF_EN bit is automatically reset by hardware). The unsynchronization window is<br />
defined by the DSS.DSI_VM_TIMING2[27:24] WINDOW_SYNC bit field.<br />
7.2.2.2.2 Video Port Used on Command Mode<br />
If the video port is used for command mode, the VP_HSYNC, VP_VSYNC, and VP_DE signals are not<br />
used. Table 7-12 describes the active signals on the video port.<br />
Table 7-12. Video Interface in the Context of Command Mode<br />
Signal Name Type (1) Description<br />
VP_DATA[23:0] I Parallel output data: bits 0 to 23<br />
VP_PCLK I One pulse is generated every time new data is output on the data bus<br />
VP_STALL O The stall signal must be deasserted to receive pixel and asserted to stop<br />
receiving pixel. (It can be used only while the display controller is configured in<br />
STALL mode; in that mode, HSYNC and VSYNC are not generated).<br />
VP_CLK I <strong>Display</strong> controller internal clock: It is a free running clock used as the display<br />
controller functional clock. The maximum frequency is 173 MHz at nominal<br />
voltage and 96 MHz at low voltage.<br />
(1) I = Input, O = Output<br />
NOTE: The stall signal must be deasserted to receive pixels and asserted to stop receiving pixels.<br />
Figure 7-37 and Figure 7-38 show the VP_STALL signal assertion and deassertion on rising and falling<br />
edges, respectively.<br />
NOTE: In DSI command mode, the display controller must be configured in stall mode by setting<br />
the DSS.DISPC_CONTROL[11] STALLMODE bit to 1.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1575
VP_CLK<br />
VP_PCLK<br />
VP_STALL<br />
VP_DATA[23:0]<br />
VP_CLK<br />
VP_PCLK<br />
VP_STALL<br />
VP_DATA[23:0]<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-37. Stall Timing With Pixel on Rising Edge<br />
ALWAYS_1_period_of_VP.CLK<br />
4_VP.CLK_cycles_for_assertion<br />
PIXELS #1 PIXELS #2 PIXELS #3 PIXELS #4 PIXELS #5<br />
ALWAYS_1_period_of_VP.CLK<br />
4_VP.CLK_cycles_for_assertion<br />
PIXELS #1 PIXELS #2 PIXELS #3 PIXELS #4 PIXELS #5<br />
1_VP.CLK_cycles_after_rising_edge_pclk<br />
Figure 7-38. Stall Timing With Pixel on Falling Edge<br />
dss-187<br />
1_VP.CLK_cycles_after_for_de-assertion<br />
To stop the transfer, the VP_STALL signal must be asserted when the last data is output. The data can be<br />
output on the rising or falling edge of the VP_PCLK through registers in the display controller module. The<br />
case with data output on falling edge of VP_PCLK is supported by the DSI protocol engine.<br />
The VP_PCLK clock is generated from VP_CLK; these two clocks are balanced. Assertion and<br />
deassertion of VP_PCLK is done on the rising edge of VP_CLK. The width of the VP_PCLK pulse<br />
depends on the configuration of the clock divisor in the display controller (DSS.DISPC_DIVISOR[7:0] PCD<br />
bit field). In the DSI protocol engine, the information is defined in the DSS.DSI_CTRL[4] VP_CLK_RATIO<br />
bit and must be aligned with the display controller configuration.<br />
Deassertion of the VP_STALL signal must occur at least 4 VP_CLK cycles before assertion of VP_PCLK.<br />
Assertion of VP_STALL must occur one cycle VP_CLK after deassertion of VP_PCLK for the last pixel to<br />
be transferred. The VP_CLK clock is generated by the display controller under software control. It can be<br />
kept running between assertion and deassertion of VP_STALL.<br />
The word count (WC) defined in the DSS.DSI_VCn_LONG_PACKET_HEADER register for the virtual<br />
channel (VC)associated with the video port, indicates the number of bytes to receive (one line or two lines<br />
can be used, depending on the WC and size of the line buffer). The total size defined in the WC of the<br />
header register cannot exceed the size of the line buffer multiplied by the number of buffer lines.<br />
The stall assertion/deassertion depends on the number of bytes to be received considering the size of the<br />
video port bus defined in the DSS.DSI_CTRL[7:6] VP_DATA_BUS_WIDTH bit field.<br />
Figure 7-39 shows the data flow in command mode using the video port.<br />
1576 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-188
VP_CLK<br />
VP_PCLK<br />
VP_STALL<br />
VP_DATA[23:0]<br />
DSI link<br />
ALWAYS_1_period_of_VP.CLK ALWAYS_1_period_of_VP.CLK<br />
4_VP.CLK_cycles_for_assertion<br />
1_VP.CLK_cycles_after_risir<br />
4_VP.CLK_cycles_for_assertion<br />
PIXELS #1 PIXELS #2 PIXELS #3 PIXELS #4 PIXELS #5 PIXELS #1 PIXELS #2 PIXELS #3 PIXELS #4 PIXELS #5<br />
RGB HS<br />
or<br />
LP<br />
Buffer Buffer<br />
Start as soon<br />
as last data is<br />
received in the<br />
buffer<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-39. Data Flow in Command Mode Using the Video Port<br />
Two command modes are available:<br />
RGB HS<br />
... or<br />
LP<br />
...<br />
Start as soon<br />
as last data is<br />
received in the<br />
buffer<br />
HS<br />
or<br />
LP<br />
HS packet, LP<br />
packet, or LP<br />
with no data<br />
• One line buffer: The data are stored in the line buffer before being sent.<br />
• Two line buffers: The two lines are used if the word count defined in the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER register is bigger than the line size; otherwise, one line<br />
buffer is used.<br />
NOTE: In command mode, the video port can only be used in one or two line buffer configuration.<br />
The no-line buffer configuration is not allowed.<br />
The packets can be sent using high-speed or low-speed.<br />
NOTE: The DCS command in the payload can be inserted automatically using the DSI_CTRL[24]<br />
DCS_CMD_ENABLE bit. If TE is used, hardware automatically inserts the DCS Write Start<br />
command for the first packet of the frame transfer and the DCS Write Continue command for<br />
all subsequent packets.<br />
7.2.2.2.3 Burst Mode<br />
When the burst mode is enabled, the video port receives data from the display controller at the pixel clock.<br />
The DSI protocol engine buffers the data in its own line FIFO (double-line buffer of 1024 x 24-bit pixels<br />
maximum). The read speed of the line can be twice the pixel clock to increase the blanking time of the<br />
video mode and to allow command mode traffic to be interleaved during the blanking period. The burst<br />
mode uses a dual-line buffer.<br />
The DSI port can output data from one line buffer while the second one is accessed by the video port. The<br />
two processes are concurrent but they do not access the same line at the same time. The DSI transfer<br />
can start only when the whole video port line is transferred into a line buffer. The switch is controlled by<br />
the VP_HS signal on the video port side and by internal signal on the DSI port indicating that the last data<br />
for the current line has been written into the line buffer.<br />
NOTE: The line buffers are used to store the pixels only. The synchronization codes are not stored<br />
in the line buffers. They must be sent according to the video port timings.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-139<br />
1577
Data<br />
lane 1<br />
All data lanes finish at the same time.<br />
LPS SoT Byte 0 Byte 2 Byte 5 Byte N-6 Byte N-4 Byte N-2 EoT LPS<br />
Data<br />
lane 2<br />
LPS SoT Byte 1 Byte 3 Byte 4 Byte N-5 Byte N-3 Byte N-1 EoT LPS<br />
The number of bytes, N, is not an integer multiple of the number of lanes (2).<br />
Data<br />
lane 1<br />
Data lane 2 finishes 1 byte earlier than lane 1.<br />
LPS SoT Byte 0 Byte 2 Byte 5 Byte N-5 Byte N-3 Byte N-1 EoT LPS<br />
Data<br />
lane 2<br />
LPS SoT Byte 1 Byte 3 Byte 4 Byte N-4 Byte N-2 EoT LPS<br />
Key:<br />
LPS: Low-power state<br />
SoT: Start of transmission<br />
EoT: End of transmission<br />
Data<br />
lane 1<br />
LPS SoT Byte 0 Byte 1 Byte 2 Byte N-3 Byte N-2 Byte N-1 EoT LPS<br />
Key:<br />
LPS: Low-power state<br />
SoT: Start of transmission<br />
EoT: End of transmission<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
7.2.2.3 Multilane Layer<br />
Peripherals do not typically have high bandwidth requirements for returning data to the host processor. To<br />
keep designs simple and improve interoperability, all DSI-compliant systems must use only Lane 1 in LP<br />
mode for returning data from a peripheral to the host processor.<br />
7.2.2.3.1 SoT and EoT in Multilane Configurations<br />
Since a HS transmission is composed of an arbitrary number of bytes that may not be an integer multiple<br />
of the number of lanes, some lanes may run out of data before others. Therefore, the lane management<br />
layer, as it buffers up the final set of less-than-N bytes, deasserts its valid data signal into all lanes for<br />
which there is no further data. Although all lanes start simultaneously with parallel SoTs, each lane<br />
operates independently and may complete the HS transmission before the other lanes, sending an EoT<br />
one cycle (byte) earlier.<br />
7.2.2.3.2 Lane Splitter<br />
The lane splitter can split the byte stream into 2 lanes (for 1 lane, the splitter is bypassed). Figure 7-40<br />
and Figure 7-41 show the byte position into each serial link for 1 and 2 data lane configurations. The byte<br />
stream always starts from lane 1. It finishes on one of the lanes, depending on the number of bytes to<br />
send and the number of lanes. The splitter module is only used when packets are sent using high-speed<br />
mode (HS). In low-power mode (LP), only one data lane is used (Lane 1).<br />
Figure 7-40. Two Data Lane Configuration<br />
Figure 7-41. One Data Lane Configuration<br />
1578 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-140<br />
dss-329
Data LPS<br />
lane 1:<br />
Data LPS<br />
lane 2:<br />
Key:<br />
LPS: Low-power state<br />
SoT: Start of transmission<br />
EoT: End of transmission<br />
Data lane 2 finishes 1 byte earlier than data lane 1.<br />
SoT Byte 0 Byte 2<br />
Byte N-1 Byte M-3 Byte M-1 EoT<br />
SoT Byte 1 Byte 3<br />
Byte 0 Byte M-2 EoT LPS<br />
Short<br />
packet<br />
Long<br />
packet<br />
Long<br />
packet<br />
LPS LPS LPS LPS<br />
LPS<br />
ST SP ET ST PH Data PF ET ST PH Data PF ET ST SP ET<br />
Key:<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
In case of back-to-back packets, the byte stream is considered as a single packet by the splitter module.<br />
Figure 7-42 shows the example of two packets sent back to back. N bytes for the first packet and M bytes<br />
for the second one.<br />
7.2.2.4 Protocol Layer<br />
Figure 7-42. Two Packets Using Two-Data Lane Configuration (Example)<br />
The low level protocol (LLP) is a byte-oriented protocol. It supports short and long packet formats. The<br />
DSI protocol layer defines how the display data is transported onto the physical layer. Packets can be sent<br />
using high-speed or low-speed mode. LLP is selected through DSI registers. The features of the DSI<br />
protocol layer are:<br />
• Transport of arbitrary data (payload independent)<br />
• 8-bit word size<br />
• Support for up to four interleaved VCs on the same link<br />
• Special packets for frame start, frame end, line start, and line end information<br />
• Descriptor for the type, pixel depth, and format of application-specific payload data<br />
• ECC for 1-bit or 2-bit error detection in the header<br />
• 16-bit checksum code for error detection<br />
Figure 7-43 shows the protocol layer with short and long packets.<br />
7.2.2.4.1 Short Packet<br />
Figure 7-43. Protocol Layer With Short and Long Packets<br />
ST: Start of transmission ET: End of transmission<br />
PH: Packet header PF: Packet footer<br />
LPS: Low-power state SP: Short packet<br />
Short<br />
packet<br />
Figure 7-44 shows the structure of the short packet. A short packet must contain an 8-bit data ID followed<br />
by two command or data bytes and an 8-bit ECC; a packet footer must not be present. Short packets must<br />
be 4 bytes in length. The ECC byte allows correction of single-bit errors and detection of 2-bit errors in the<br />
short packet.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-143<br />
LPS<br />
dss-142<br />
1579
Data ID<br />
Word count<br />
(WC)<br />
32-bit<br />
packet<br />
header<br />
(PH)<br />
ECC<br />
Data ID<br />
Short packet<br />
data field<br />
ECC<br />
32-bit short packet (SP)<br />
Data type (DT) = 0x01 – 0x37<br />
Data 0<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-44. Short Packet Structure<br />
dss-144<br />
NOTE: The short packets can be sent in low-power mode or in high-speed mode.<br />
7.2.2.4.2 Long Packet<br />
Figure 7-45 shows the structure of the low-level protocol long packet. A long packet must consist of three<br />
elements: A 32-bit packet header (PH), an application-specific data payload with a variable number of<br />
bytes, and a 16-bit packet footer (PF). The packet header is further composed of three elements: An 8-bit<br />
data identifier, a 16-bit word count, and 8-bit ECC. The packet footer has one element, a 16-bit checksum.<br />
Long packets can be from 6 to 65,541 bytes in length.<br />
Figure 7-45. Long Packet Structure<br />
Data 1<br />
Data 2<br />
Data WC-3<br />
Data WC-2<br />
Packet data:<br />
Length = word count (WC) * data word<br />
width (8 bits). There are no restrictions<br />
on the values of the data words.<br />
Data WC-1<br />
16-bit<br />
checksum<br />
16-bit<br />
packet<br />
footer<br />
(PF)<br />
• The data identifier defines the VC for the data and the DT for the application-specific payload data.<br />
• The word count defines the number of bytes in the data payload between the end of the packet header<br />
and the start of the packet footer. Neither the packet header nor the packet footer must be included in<br />
the word count.<br />
• The ECC byte allows single-bit errors to be corrected and 2-bit errors to be detected in the packet<br />
header. This includes the data identifier and the word count fields.<br />
After the end of the packet header, the receiver reads the next word count * bytes of the data payload.<br />
There are no limitations on the value of a data word within the data payload block, that is, no embedded<br />
codes are used. Once the receiver has read the data payload, it reads the checksum in the packet footer.<br />
The host processor must always calculate and transmit a checksum in the packet footer. Peripherals are<br />
not required to calculate a checksum. Also note the special case of zero-byte data payload: If the payload<br />
has length 0, then the checksum calculation results in (0xFFFF). If the checksum is not calculated, the<br />
packet footer must consist of 2 bytes of all zeros (0x0000). In the generic case, the length of the data<br />
payload must be a multiple of bytes. In addition, each data format may impose additional restrictions on<br />
the length of the payload data, that is, multiple of 4 bytes. Each byte is transmitted LSB first. Payload data<br />
may be transmitted in any byte order, restricted only by data format requirements. Multibyte elements<br />
such as word count and checksum must be transmitted least-significant byte first.<br />
NOTE: The long packets can be sent in low-power mode or high-speed mode.<br />
1580 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-145
Data in<br />
B7<br />
B6<br />
B5<br />
B4<br />
B3<br />
VC DT<br />
Virtual channel<br />
(VC)<br />
Channel<br />
detect<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
7.2.2.4.3 Data Identifier<br />
The data identifier byte contains the virtual VC ID value and the DT value, as shown in Figure 7-46. The<br />
VC ID is contained in the 2 MSBs of the data identifier byte. The DT value is contained in the 6 LSBs of<br />
the data identifier byte. DI[7:6]: These 2 bits identify the data as directed to one of four VCs. DI[5:0]:<br />
These six bits specify the DT.<br />
7.2.2.4.4 Virtual Channel ID - VC Field, DI[7:6]<br />
Figure 7-46. Data Identifier Structure<br />
Data identifier (DI) byte<br />
B2<br />
Data type<br />
(DT)<br />
The host can service up to four peripherals with tagged commands or blocks of data using the VC ID field<br />
of the header for packets targeted at different peripherals. The VC ID enables one serial stream to service<br />
two or more virtual peripherals by multiplexing packets onto a common transmission channel. Note that<br />
each packet sent in a single transmission have its own VC assignment and can be directed to different<br />
peripherals. The VC ID is defined in the DSS.DSI_VCn_SHORT_PACKET_HEADER and<br />
DSS.DSI_VCn_LONG_PACKET_HEADER registers for short and long packets, respectively. It should not<br />
be modified by hardware. There is one set of registers for each VC. Each set of registers defines the<br />
characteristics of the traffic between the host and the display associated with the VC.<br />
Figure 7-47 shows the VC controller.<br />
7.2.2.4.5 Data Type Field DT[5:0]<br />
Virtual channel control<br />
B1<br />
B0<br />
dss-146<br />
Figure 7-47. Virtual Channel Controller<br />
Channel identifier Channel configuration<br />
Channel 0<br />
Channel 1<br />
Channel 2<br />
Channel 3<br />
The DT field specifies whether the packet is a long or short packet type and the packet format. The DT<br />
field, along with the word count field for long packets, informs the receiver on how many bytes to expect in<br />
the remainder of the packet. This is necessary because there are no special packet start/end sync codes<br />
to indicate the beginning and end of a packet. This permits packets to convey arbitrary data, but it also<br />
requires the packet header to explicitly specify the size of the packet.<br />
7.2.2.4.6 Pixel Data Formats in Video Mode<br />
The host can send different pixel formats in video mode. Table 7-13 summarizes the pixel formats<br />
supported by the DSI interface in video mode.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-147<br />
1581
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Table 7-13. Pixel Data Format in Video Mode<br />
Mode Description<br />
RGB888 (using 24-bit container) RGB888<br />
RGB666 (using 24-bit container) RGB666<br />
RGB666 (18-bit packet using 18-bit container) RGB666_PACKET<br />
7.2.2.4.7 Synchronization Codes<br />
RGB565 (using 16-bit container) RGB565<br />
Each frame can be identified by two synchronization codes: One for the start of vertical synchronization<br />
pulse (VSSC) and one for the end of the vertical synchronization pulse (VSEC). Each line can be identified<br />
by two synchronization codes: One for the start of horizontal synchronization pulse (HSSC) and one for<br />
the end of the horizontal synchronization pulse (HSEC). The synchronization events may not be required<br />
by the display (peripheral): They are optional. Users can program which sync events are generated to the<br />
display from the timings received from the display controller in video mode. When data are received on the<br />
L4 interconnect slave port, the synchronization codes are not automatically generated by the protocol<br />
engine. They can be provided on the L4 interconnect port by writing to the registers with limited timing<br />
control. It is highly recommended to use the video port from the display controller to receive the<br />
synchronization events to automatically generate the short synchronization packets to the peripheral.<br />
When the DSI protocol engine detects that the VSYNC signal from the display controller transitions from<br />
inactive to active state, the VSSC short packet replaces the following HSSC corresponding to the following<br />
HSYNC synchronization short packet (if the generation is enabled). When the transition from active to<br />
inactive state is detected, the VSEC short packet is generated (if the generation is enabled) replacing the<br />
HSSC synchronization packet corresponding to the following HSYNC. When the DSI protocol engine<br />
detects that the HSYNC signal from the display controller transition from inactive to active state, the HSSC<br />
short packet is generated (if the generation is enabled). When the transition from active to inactive state is<br />
detected, the HSEC short packet is generated (if the generation is enabled). For the first frame, any<br />
HSYNC and data received on the video port before the first VSYNC should be ignored. Because the first<br />
VSYNC sent to the display is also recognized as a HSYNC for the first line, there should be no HSYNC<br />
sent for the first line. To send the synchronization codes, the DSI protocol engine uses the short packets.<br />
Table 7-14 summarizes the 6-bit DT synchronization code values.<br />
Table 7-14. Synchronization Codes<br />
Synchronization Code Value Comments<br />
V sync start code (VSSC) 0x1 Optional<br />
V sync end code (VSEC) 0x11 Optional<br />
H sync start code (HSSC) 0x21 Optional<br />
H sync end code (HSEC) 0x31 Optional<br />
7.2.2.4.8 Blanking<br />
To keep the DSI link in HS state while using the video mode, during blanking periods, the long blanking<br />
packets are sent to the display. The DSS.DSI_VM_TIMINGi (I between 1 and 7) registers define the size<br />
of the long blanking packets after:<br />
• Horizontal sync start code (short packet)<br />
• Horizontal sync end code (short packet)<br />
• Vertical sync start code (short packet)<br />
• Vertical sync end code (short packet)<br />
• Pixels (long packet)<br />
Table 7-15 defines the short packet values for the synchronization packets:<br />
1582 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Table 7-15. Sync Short Packet Values<br />
Virtual Sync Code Header Header (2nd Byte): Header (3rd Byte): Header (ECC)<br />
Channel ID (1st Byte) Data Field LSB Data Field MSB<br />
0x1 0x1 See note following this<br />
table<br />
0x0 0x11 0x11<br />
0x21 0x21<br />
0x31 0x31<br />
0x1 0x41<br />
0x1 0x11 0x51<br />
0x21 0x61<br />
0x31 0x91 0x0 0x0<br />
0x1 0x81<br />
0x2 0x11 0x81<br />
0x21 0xA1<br />
0x31 0xB1<br />
0x1 0xC1<br />
0x3 0x11 0xD1<br />
NOTE:<br />
0x21 0xC1<br />
0x31 0xF1<br />
• If the ECC is enabled by setting the DSS.DSI_VCn_CTRL[8] ECC_TX_EN bit to 1 for<br />
the VC in video mode, the ECC value is calculated; otherwise, 0x00 is used for the<br />
blanking long packets and sync short packets. If the CRC is enabled by setting the<br />
DSS.DSI_VCn_CTRL[7] CS_TX_EN bit to 1 for the VC in video mode, the check-sum<br />
value is calculated; otherwise, 0x00 is used for the blanking long packets.<br />
• In other cases, when the DSS.DSI_VCn_CTRL[7] CS_TX_EN bit is set to 0, the value<br />
0x00 is always used for the CRC (long packets). When the DSS.DSI_VCn_CTRL[8]<br />
ECC_TX_EN bit is set to 0, the value 0x00 is used for the ECC for short and long<br />
packets, except when the header is provided by the register, since the ECC field is<br />
available in the register. It can be used to generate invalid ECC values when the header<br />
is provided by the register.<br />
The link [lane(s) and clock separately] can be put in ULPS mode. While using the blanking values formerly<br />
defined, the packets (short and long) are considered in HS mode.<br />
Timing parameters VSA, VBP, VFP, HSA, HBP, HFP, VACT, and t L are defined in the<br />
DSS.DSI_VM_TIMINGx (x between 1 and 7) register. HSA, HBP, HFP, and t L are defined using the byte<br />
clock unit (TxByteClkHS) and also in low-power clock cycles (TxClkEsc). VSA, VBP, VFP, and VACT are<br />
defined in term of number of lines. When the HS blanking packets are sent during the blanking periods,<br />
the parameters are used to determine the blanking packet payload size (taking into account the 4-byte<br />
header and the 2-byte check sum).<br />
The configuration of the display controller timing generator must be used when the display controller<br />
timings are used to generate the DSI HS video mode transfer.<br />
Special care must be taken in the case of the last line of the frame. The LPS transition is required when<br />
the link is in HS mode for the whole frame.<br />
When BTA is sent for the data packets, the following blanking period cannot be used for sending any data<br />
from the TX FIFO. When the blanking period starts with one HS packet from one VC, it can only be<br />
followed by another HS packet from the same VC, or by trigger (BTA for example). When there is no more<br />
HS data to send for this VC, the lane is in LPS. When the blanking period starts with one LP packet from<br />
one VC, it can only be followed by another LP packet from the same VC, by another VC, by trigger (BTA<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1583
V<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
H<br />
S<br />
A<br />
...<br />
V<br />
E<br />
H<br />
E<br />
H<br />
B<br />
P<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
...<br />
H<br />
S<br />
BL<br />
LP<br />
RGB HFP<br />
t L* (VSA + VBP + VACT + VFP)<br />
t L t L t L t L t L t L t L t L<br />
Active video area<br />
VSA lines VBP lines VFP lines<br />
t L<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
for example), or by extra LP NULL packets. If the trigger has been sent, it is not possible to send any<br />
more data. When there is no more data from the TX FIFO to send in LP mode or the trigger has been<br />
sent, the lane is put into LPS. If the lanes must be kept in HS mode during blanking periods (except for<br />
the last blanking period of the frame), the HS blanking packets must be used. In case one trigger is sent<br />
at the beginning of the blanking period, the rest of the blanking period is in ULPS.<br />
Figure 7-48 and Figure 7-49 show a nonburst transfer in DSI video mode with, and without VE and HE,<br />
respectively.<br />
Figure 7-48. DSI Video Mode: Nonburst Transfer With VE and HE<br />
...<br />
VACT lines<br />
H<br />
S<br />
H<br />
S<br />
A<br />
H<br />
E<br />
H<br />
B<br />
P<br />
H<br />
S<br />
BL<br />
LP<br />
...<br />
RGB HFP<br />
1584 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
B<br />
L<br />
L<br />
P<br />
L<br />
P<br />
M<br />
V<br />
S<br />
dss-148
V<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
H<br />
B<br />
P<br />
...<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
...<br />
H<br />
S<br />
BL<br />
LP<br />
RGB HFP<br />
t L*<br />
(VSA + VBP + VACT + VFP)<br />
t L t L t L t L t L t L t L t L<br />
VSA lines VBP lines<br />
t L<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-49. DSI Video Mode: Nonburst Transfer Without VE and HE<br />
...<br />
VACT lines<br />
Active video area<br />
H<br />
S<br />
H<br />
B<br />
P<br />
H<br />
S<br />
BL<br />
LP<br />
...<br />
RGB HFP<br />
H<br />
S<br />
BL<br />
LP<br />
VFP lines<br />
NOTE: HSA timing is not used and does not have to be programmed when HE short packet is not<br />
generated.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
H<br />
S<br />
B LL<br />
P<br />
L<br />
P<br />
M<br />
V<br />
S<br />
dss-149<br />
1585
V<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
H<br />
B<br />
P<br />
...<br />
H<br />
S<br />
BL<br />
LP<br />
H<br />
S<br />
BL<br />
LP<br />
...<br />
H<br />
S<br />
BL<br />
LP<br />
BL<br />
RGB HFP<br />
LP<br />
t (VSA + VBP + VACT + VFP)<br />
L*<br />
t L t L t L t L t L t L t L t L<br />
VSA lines VBP lines<br />
t L<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-50. DSI Video Mode: Burst Transfer Without VE and HE<br />
...<br />
VACT lines<br />
Active video area<br />
H<br />
S<br />
H<br />
B<br />
P<br />
H<br />
S<br />
BL<br />
LP<br />
BL<br />
RGB HFP<br />
LP<br />
...<br />
H<br />
S<br />
VFP lines<br />
NOTE: HSA timing is not used and does not have to be programmed when HE short packet is not<br />
generated.<br />
In Figure 7-49 and Figure 7-50, if HSync end short packet is not generated (HSA does not exist), HBP<br />
must be other than 0.<br />
7.2.2.4.9 Frame Structures<br />
Figure 7-51 shows the general DSI frame structure.<br />
1586 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
BL<br />
LP<br />
H<br />
S<br />
B<br />
L<br />
L<br />
P<br />
L<br />
P<br />
M<br />
V<br />
S<br />
dss-150
Packet footer, PF<br />
Packet footer, PF<br />
Line blanking<br />
FE<br />
Line blanking<br />
FE<br />
FS<br />
FS<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-51. DSI General Frame Structure<br />
Frame blanking<br />
Frame of pixels<br />
Frame blanking<br />
Frame of pixels<br />
Frame blanking<br />
Data per line is a multiple of 8 bits.<br />
Key:<br />
PH – Packet header PF – Packet footer<br />
FS – Frame start FE – Frame end<br />
LS – Line start LE – Line end<br />
Figure 7-52 shows the general frame structure using burst mode.<br />
Packet header, PH<br />
Packet header, PH<br />
Video mode<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-151<br />
1587
Packet footer, PF<br />
Packet footer, PF<br />
Line blanking<br />
FE<br />
Line blanking<br />
FE<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-52. DSI General Frame Structure Using Burst Mode<br />
Frame blanking<br />
FS<br />
Frame blanking<br />
Frame blanking<br />
Frame of pixels<br />
Data per line is a multiple of 8 bits.<br />
Key:<br />
PH – Packet header PF – Packet footer<br />
FS – Frame start FE – Frame end<br />
LS – Line start LE – Line end<br />
FS<br />
Packet header, PH<br />
Packet header, PH<br />
Frame of pixels<br />
Video mode<br />
Figure 7-53 shows the general frame structure using burst mode and interleaving.<br />
1588 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-152
Packet footer, PF<br />
Packet footer, PF<br />
Packet header, PH<br />
Packet header, PH<br />
FE<br />
FE<br />
Frame of pixels<br />
Panel 2<br />
Frame of pixels<br />
Panel 2<br />
Packet footer, PF<br />
Packet footer, PF<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-53. DSi General Frame Structure Using Burst Mode and Interleaving<br />
Line blanking<br />
Line blanking<br />
Frame blanking<br />
Frame blanking<br />
Frame blanking<br />
Frame of pixels<br />
Panel 1<br />
Data per line is a multiple of 8 bits.<br />
Key:<br />
PH – Packet header PF – Packet footer<br />
FS – Frame start FE – Frame end<br />
LS – Line start LE – Line end<br />
FS<br />
FS<br />
Packet header, PH<br />
Packet header, PH<br />
Frame of pixels<br />
Panel 1<br />
Video mode<br />
Command mode<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-153<br />
1589
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
7.2.2.4.10 Virtual Channels<br />
The DSI protocol layer transports VCs. The purpose of VCs is to separate different data flows, which are<br />
interleaved in a same data stream. Each VC is identified by a unique channel identification number in the<br />
packet header. The channel identification number is encoded in 2-bits. The DSI protocol engine<br />
determines the channel identifier number to be used for generating the packet header and multiplexes the<br />
interleaved data streams. The DSI protocol engine supports multiple concurrent VCs: Up to 4. Table 7-16<br />
summarizes the VC values used for each channel.<br />
Table 7-16. Virtual Channel Values<br />
Virtual Channel Number Value<br />
Virtual channel 0 0x0<br />
Virtual channel 1 0x1<br />
Virtual channel 2 0x2<br />
Virtual channel 3 0x3<br />
In the case of multiple displays connected to the single DSI port on the host, a hub may be used to root<br />
the data stream to the appropriate display based on the VC ID. Typically, VC ID 0x0 is used for the<br />
primary display and 0x1 for the secondary. The hub may have its own VC ID to provide communication<br />
capability between the host and the hub.<br />
7.2.2.5 Pixel Data Formats<br />
This section summarizes how the DSI supported pixel data formats in video mode are transmitted over the<br />
serial interface. For pixel formats in command mode. The DSI protocol engine can cope with all data<br />
formats given that the data line length sent through the DSI physical protocol is a multiple of a pixel. This<br />
condition is required for the DSI protocol engine to work properly.<br />
7.2.2.5.1 24 Bits per Pixel - RGB Color Format, Long Packet<br />
Figure 7-54 shows the RGB888 format.<br />
1590 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Virtual channel ID<br />
Data ID<br />
. . .<br />
Word count<br />
ECC<br />
0<br />
R<br />
0<br />
1 byte 1 byte 1 byte<br />
7 0 7 0<br />
R G G B<br />
8b<br />
7 0<br />
8b<br />
7 0<br />
8b<br />
Pixel 1<br />
1 byte 2 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte<br />
Data type<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-54. 24 Bits per Pixel RGB Color Format, Long Packet<br />
8b 8b 8b 8b 8b 8b 8b 8b 8b<br />
Pixel 1 Pixel 2 Pixel 3<br />
Packet header Variable size payload (first three pixels in 9 bytes)<br />
1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte<br />
8b 8b 8b 8b 8b 8b 8b 8b 8b<br />
Pixel n –2 Pixel n–1 Pixel n<br />
. . .<br />
Variable size payload (last three pixels packed in 9 bytes)<br />
7<br />
B<br />
7<br />
2 bytes<br />
Checksum<br />
Packet footer<br />
Packed pixel stream 24-bit format is a long packet used to transmit image data formatted as 24-bit pixels<br />
to a video mode display module. The packet consists of the DI byte, a two-byte WC, an ECC byte, a<br />
payload of length WC bytes, and a two-byte checksum. The pixel format is red (8 bits), green (8 bits), and<br />
blue (8 bits), in that order. Each color component occupies one byte in the pixel stream; no components<br />
are split across byte boundaries. Within a color component, the LSB is sent first, the MSB last.<br />
7.2.2.5.2 18 Bits per Pixel (Loosely Packed) - RGB Color Format, Long Packet<br />
Figure 7-55 details the RGB666 format.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-154<br />
1591
Virtual channel ID<br />
1 byte<br />
Data type<br />
Data ID<br />
. . .<br />
2 bytes<br />
Word count<br />
1 byte 1 byte 1 byte<br />
ECC<br />
1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte<br />
6b 6b 6b 6b 6b 6b 6b 6b 6b<br />
Packet header Variable size payload (first three pixels in 9 bytes)<br />
1 byte 1 byte<br />
1 byte 1 byte 1 byte<br />
0 12<br />
7 0 12 7 0 12<br />
R R G G B<br />
0<br />
6b<br />
5 0<br />
6b<br />
5 0<br />
6b<br />
Pixel 1<br />
Pixel 1 Pixel 2 Pixel 3<br />
1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte<br />
6b 6b 6b 6b 6b 6b 6b 6b 6b<br />
Pixel n– 2<br />
Pixel n– 1<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-55. 18 Bits per Pixel (Loosely Packed) RGB Color Format, Long Packet<br />
. . .<br />
Variable size payload (last three pixels packed in 9 bytes)<br />
7<br />
B<br />
5<br />
Pixel n<br />
2 bytes<br />
Checksum<br />
Packet footer<br />
In the 18-bit pixel loosely-packed format, each R, G, or B color component is six bits but is shifted to the<br />
upper bits of the byte, such that the valid pixel bits occupy bits [7:2] of each byte. Bits [1:0] of each<br />
payload byte representing active pixels are ignored. As a result, each pixel requires three bytes as it is<br />
transmitted across the link. This requires more bandwidth than the packed format, but requires less<br />
shifting and multiplexing logic in the packing and unpacking functions on each end of the link. This format<br />
is used to transmit RGB image data formatted as pixels to a video mode display module that displays<br />
18-bit pixels. The packet consists of the DI byte, a two-byte WC, an ECC byte, a payload of length WC<br />
bytes, and a two-byte checksum. The pixel format is red (6 bits), green (6 bits), and blue (6 bits) in that<br />
order. Within a color component, the LSB is sent first, the MSB last.<br />
7.2.2.5.3 18 Bits per Pixel (Packed) - RGB Color Format, Long Packet<br />
Figure 7-56 details the RGB666_PACKED format.<br />
1592 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-155
Virtual channel ID<br />
1 byte<br />
Data type<br />
Data ID<br />
. . .<br />
2 bytes<br />
Word count<br />
1 byte 1 byte 1 byte<br />
ECC<br />
1 byte 1 byte 1 byte 1 byte 1 byte 1 byte<br />
6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b<br />
Packet header Variable size payload (first four pixels packed in 9 bytes)<br />
1 byte 1 byte<br />
0<br />
R<br />
0<br />
1 byte 1 byte<br />
5<br />
R<br />
5<br />
6 7 0<br />
GG<br />
G<br />
0 1 2<br />
Pixel 1 Pixel 2 Pixel 3<br />
Pixel 4<br />
1 byte 1 byte 1 byte 1 byte 1 byte 1 byte 1 byte<br />
6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b<br />
Pixel n– 3<br />
Pixel n– 2<br />
3 4<br />
G B<br />
5 0<br />
6b 6b 6b<br />
Pixel 1<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-56. 18 Bits per Pixel (Packed) RGB Color Format, Long Packet<br />
7 0 1<br />
B B B<br />
3 4 5<br />
1 byte<br />
. . .<br />
Pixel n– 1<br />
Pixel n<br />
Variable size payload (last four pixels packed in 9 bytes)<br />
2 bytes<br />
Checksum<br />
Packet footer<br />
Packed pixel stream 18-bit format (packed) is a long packet. It is used to transmit RGB image data<br />
formatted as pixels to a video mode display module that displays 18-bit pixels The packet consists of the<br />
DI byte, a two-byte WC, an ECC byte, a payload of length WC bytes, and a two-byte checksum. Pixel<br />
format is red (6 bits), green (6 bits), and blue (6 bits), in that order. Within a color component, the LSB is<br />
sent first, the MSB last. With this format, it is strongly recommended that the total line width be a multiple<br />
of four pixels (nine bytes).<br />
7.2.2.5.4 16 Bits per Pixel - RGB Color Format, Long Packet<br />
Figure 7-57 details the RGB565 format.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-156<br />
1593
Virtual channel ID<br />
1 byte 2 bytes 1 byte 1 byte 1 byte 1 byte 1 byte 2 bytes<br />
. . .<br />
Data type<br />
Data ID<br />
0<br />
R<br />
0<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-57. 16 Bits per Pixel RGB Color Format, Long Packet<br />
1 byte 1 byte<br />
4 5 7 0 2 3<br />
R G G G G B<br />
5b<br />
4 0 2 3<br />
6b<br />
5 0<br />
5b<br />
Pixel 1<br />
5b 6b 5b 5b 6b 5b<br />
Word count ECC<br />
. . . Checksum<br />
Pixel 1<br />
Packet header Variable size payload<br />
7<br />
B<br />
4<br />
. . .<br />
Pixel n<br />
Checksum<br />
Packed pixel stream 16-bit format is a long packet used to transmit image data formatted as 16-bit pixels<br />
to a video mode display module. The packet consists of the DI byte, a two-byte WC, an ECC byte, a<br />
payload of length WC bytes, and a two-byte checksum. Pixel format is five bits red, six bits green, five bits<br />
blue, in that order. Note that the green component is split across two bytes. Within a color component, the<br />
LSB is sent first, the MSB last.<br />
7.2.3 TV <strong>Display</strong> Support<br />
The TV display path includes the following modules:<br />
• <strong>Display</strong> controller<br />
• Video encoder<br />
• Video DAC stage comprising two single 10-bit DACs (AVDAC1 and AVDAC2) with video amplifiers<br />
The display controller module receives synchronization signals from the video encoder and synchronously<br />
sends pixel data to the video encoder with these signals. The digital output of the display controller is<br />
always a 24-bit RGB value based on a pixel request from the video encoder.<br />
The video encoder converts RGB video signals to conform to the NTSC/PAL standard analog video. The<br />
video encoder includes an integrated synchronization signal generator and two single channel video<br />
digital-to-analog converters (DACs) with video amplifiers, data manager, luma stage, chroma stage,<br />
modulator, and a control interface.<br />
The video encoder also provides the synchronization signals to the display controller: VSYNC, active<br />
VIDeo (AVID), and field ID (FID).<br />
Figure 7-58 is a block diagram of the TV display interface (S-video mode, DC coupled, High Full Scale<br />
Swing).<br />
1594 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-157
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
Video<br />
encoder<br />
Video<br />
encoder<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Figure 7-58. TV <strong>Display</strong> Interface (S-video mode, DC coupled, High FS Swing)<br />
DAC Stage<br />
DAC1<br />
amplifier<br />
(luma)<br />
DAC2<br />
amplifier<br />
(chroma)<br />
DAC Stage<br />
DAC1<br />
amplifier<br />
+<br />
+<br />
+<br />
+<br />
DAC2<br />
amplifier<br />
(unused)<br />
cvideo1_vfb<br />
cvideo1_out<br />
cvideo2_out<br />
cvideo2_vfb<br />
cvideo1_rset<br />
vssa_dac<br />
Rout1<br />
Rout2<br />
Rset<br />
Analog TV set<br />
Luminance input<br />
Chrominance input<br />
vdda_dac Power IC<br />
cvideo1_vfb<br />
cvideo1_out<br />
cvideo2_out<br />
cvideo2_vfb<br />
cvideo1_rset<br />
vssa_dac<br />
Rout 1<br />
NC<br />
NC<br />
Rset<br />
Composite<br />
connector<br />
camdss_GN3-001<br />
Figure 7-59 is a block diagram of the TV display interface (Composite mode, DC coupled, High Full Scale<br />
Swing).<br />
Figure 7-59. TV <strong>Display</strong> Interface (Composite Mode, DC coupled, High FS Swing)<br />
Composite input<br />
vdda_dac Power IC<br />
Figure 7-60 is a block diagram of the TV display interface (Composite mode, AC coupled, Low Full Scale<br />
Swing).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-191<br />
1595
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
<strong>Display</strong> subsystem<br />
<strong>Display</strong><br />
controller<br />
Video<br />
encoder<br />
Video<br />
encoder<br />
* (Rout1 and Rout2 loads can be integrated in the amplifier,<br />
and thus not needed as external components)<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
Figure 7-60. TV <strong>Display</strong> Interface (Composite Mode, AC coupled, Low FS Swing)<br />
DAC Stage<br />
DAC1<br />
amplifier<br />
+<br />
+<br />
DAC2<br />
amplifier<br />
(unused)<br />
+<br />
DAC2<br />
amplifier<br />
(unused)<br />
Cout<br />
cvideo1_out<br />
cvideo1_vfb<br />
cvideo2_out<br />
cvideo2_vfb<br />
cvideo1_rset<br />
vssa_dac<br />
Rout 1<br />
NC<br />
NC<br />
Rset<br />
Composite input<br />
Composite<br />
connector<br />
vdda_dac Power IC<br />
NOTE: In composite video mode, the video DAC2 chroma output must be disabled by setting the<br />
DSS.VENC_OUTPUT_CONTROL[2] CHROMA_ENABLE bit to 0.<br />
Figure 7-61 is a block diagram of the TV display interface (Bypass mode, Dual Channel).<br />
Figure 7-61. TV <strong>Display</strong> Interface (Bypass Mode, Dual Channel)<br />
DAC Stage<br />
DAC1<br />
amplifier<br />
+<br />
cvideo1_vfb<br />
cvideo1_out<br />
cvideo2_vfb<br />
cvideo2_out<br />
cvideo1_rset<br />
vdda_dac<br />
vssa_dac<br />
(Rout1)*<br />
NC<br />
(Rout2)*<br />
Table 7-17 describes the interface signals to/from the TV set for TV display support.<br />
NC<br />
Rset<br />
Video amplifier<br />
Power IC<br />
1596 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-401<br />
dss-402
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Environment<br />
Pin Name Type (1)<br />
Table 7-17. TV <strong>Display</strong> Interface Pins<br />
Description<br />
cvideo1_out O Analog luma or composite video output. An external resistor Rout1 is<br />
connected between this node and the cvideo1_vfb pin. Note that this is the<br />
output node that drives the load (75 Ω).<br />
cvideo2_out O Analog chroma video output. An external resistor Rout2 is connected<br />
between this node and the cvideo2_vfb pin. This is the output node that<br />
drives the load (75 Ω).<br />
cvideo1_vfb O Amplifier feedback node. An external resistor Rout1 is connected between<br />
this node and cvideo1_out.<br />
cvideo2_vfb O Amplifier feedback node. An external resistor Rout2 is connected between<br />
this node and cvideo2_out.<br />
cvideo1_rset I/O External resistor pin to set the reference current of the AVDAC1. The value<br />
of the resistor (Rset) depends on the mode of operation. Refer to<br />
Table 7-18, Typical values for Rout, Rset and Cout.<br />
vdda_dac Power Analog supply voltage for the video DAC stage<br />
vssa_dac Power Analog ground for the video DAC stage<br />
(1) O = Output, Power = Power pin<br />
Table 7-18 lists the typical values for the Rout1/2 and Rset resistors and the Cout capacitor, for different<br />
modes of the TV display interface.<br />
Table 7-18. Typical values for Rout, Rset and Cout<br />
S-video, DC Composite, DC Composite, AC Bypass, Dual Unit<br />
coupled, High FS coupled, High FS coupled, Low FS channel<br />
Swing Swing Swing<br />
Rout 1 2700 2700 2700 1500 Ohm<br />
Rout 2 2700 N/A N/A 1500 Ohm<br />
Rset 4700 4700 6800 10000 Ohm<br />
Cout N/A N/A 220 N/A µF<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1597
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment www.ti.com<br />
CAUTION<br />
• High full-scale swing is the default mode. Low-swing mode does not comply<br />
with the NTSC and PAL video standards. It must be used only for backward<br />
compatibility to the OMAP35x.<br />
• All resistor values in Table 7-18 must be within ± 1% tolerance range.<br />
• cvideo1_out and cvideo2_out are very high-frequency analog signals and<br />
must be routed with extreme care. As a result, the path of these signals<br />
must be as short as possible, and as isolated as possible from other<br />
interfering signals.<br />
• During board design, the onboard traces and parasites must be matched for<br />
the two channels. cvideo1_vfb and cvideo2_vfb pins are the most sensitive<br />
pins in the TV out system. The onboard parasitic capacitance associated<br />
with these two pins must be less than 0.5 pF. Low onboard resistance is<br />
required for the traces that connect the Rout1/Rout2 to the<br />
cvideo1_vfb/cvideo2_vfb and TV OUT pins (cvideo1_out and cvideo2_out).<br />
The resistance on those trace affects output impedance matching.<br />
Therefore, Rout1 and Rout2 resistors are suggested to be placed as close<br />
as possible to the device pins. The onboard traces lead to the TV OUT pins<br />
must have a characteristic impedance of 75 Ω starting from the closest<br />
possible place to the device pin output.<br />
• If the TV output is not used, the following configurations for the AVDACs<br />
pins must be applied:<br />
– Configuration 1<br />
7.2.3.1 TV Output and Data Format<br />
• cvideo1_out must be grounded.<br />
• cvideo1_vfb must be grounded.<br />
• cvideo2_out must be grounded.<br />
• cvideo2_vfb must be grounded.<br />
• cvideo1_rset must be grounded.<br />
• vdda_dac must be grounded.<br />
• vssa_dac must be grounded.<br />
– Configuration 2<br />
• cvideo1_out must be floating, left unconnected.<br />
• cvideo1_vfb must be floating, left unconnected.<br />
• cvideo2_out must be floating, left unconnected.<br />
• cvideo2_vfb must be floating, left unconnected.<br />
• cvideo1_rset must be floating, left unconnected.<br />
• vdda_dac must be grounded.<br />
• vssa_dac must be grounded.<br />
• To avoid current leakage, the following bits must be set to 0:<br />
– DSS.DSS_CONTROL[5]<br />
DAC_POWERDN_BGZ<br />
– DSS.VENC_OUTPUT_CONTROL[2:0]<br />
– PRCM.CM_FCLKEN_DSS[2] EN_TV<br />
– CONTROL.CONTROL_DEVCONF[18] TVOUTBYPASS<br />
The output data to the TV set are the analog composite data from the video DAC stage. The following<br />
video standards are supported:<br />
• NTSC-J, M<br />
• PAL-B, D, G, H, I<br />
• PAL-M<br />
1598 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
7.2.3.2 Digital-to-Analog Converters<br />
The video DAC stage includes the following main features:<br />
• 1.1-V digital power supply, 1.8-V analog power supply<br />
• 10-bit resolution<br />
• DNL within 1 LSB and INL within 1 LSB (in bypass mode)<br />
• Sample rate of up to 60 mega samples per second (MSPS)<br />
• Support composite/S-video DC or AC coupled output<br />
• Support TVOUT buffer bypass mode (DAC-only mode)<br />
• Full-scale voltage output: minimum 1.2 Vpp with a 75-Ω load<br />
• Internal TV detect feature<br />
• Signal-to-noise ratio (SNR) is 54 dB (taking into account the ac coupling)<br />
• Suitable for low-power consumer video applications<br />
• Power-down mode with less than 12-µA standby current<br />
• Differential gain error and differential phase error: within 3 percent and 1 degree, respectively<br />
NOTE: To enhance the TV color display, it is highly recommended to set the<br />
DSS.DSS_CONTROL[4] DAC_DEMEN bit.<br />
For more information about the video DAC stage architecture and configuration, see<br />
Section 7.4.7.7, Video DAC Stage – Architecture and Control.<br />
7.3 <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
This section describes the integration of the display subsystem and details clocks, resets, hardware<br />
requests, and power modes.<br />
Figure 7-62 shows the integration of the display subsystem in the device.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1599
PRCM<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
DSS_TV_FCLK<br />
L4 interconnect<br />
L3 interconnect<br />
System DMA<br />
controller<br />
(sDMA)<br />
MPU subsystem<br />
interrupt controller<br />
IVA2.2 subsystem<br />
interrupt controller<br />
STANDBY/WAIT<br />
handshake<br />
S_DMA_5<br />
S_DMA_[71:74]<br />
M_IRQ_25<br />
IVA2_IRQ[13]<br />
System<br />
control module<br />
CONTROL_DEVCONF1[11]<br />
CONTROL_DEVCONF1[18]<br />
CONTROL_AVDACx [ 20 : 16]<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
DSS_TV_FCLK<br />
Device<br />
DSI1_PLL_FCLK<br />
DSI2_PLL_FCLK<br />
DSS_LINE_TRIGGER<br />
DSS_DMA_REQ[3:0]<br />
4<br />
DSS_IRQ<br />
<strong>Display</strong><br />
controller<br />
Syncs<br />
DSI<br />
protocol<br />
engine<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
Figure 7-62. <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
<strong>Display</strong> subsystem<br />
Digital<br />
data<br />
24<br />
Data<br />
Controls<br />
Remote<br />
frame buffer<br />
interface<br />
TV out<br />
back-end<br />
Video DAC<br />
Stage<br />
TVACEN<br />
TVOUTBYPASS<br />
COMP_EN<br />
DSI<br />
complex I/O<br />
DSI<br />
PLL<br />
controller<br />
TVINT<br />
Status<br />
PLL<br />
control<br />
GPIO2<br />
DSI PLL<br />
HS divider<br />
camdss-036<br />
1600 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
DSI1_PLL_FCLK<br />
DSI2_PLL_FCLK<br />
DSI PLL<br />
control<br />
<strong>Display</strong><br />
subsystem<br />
dsi_dxi<br />
DSI_PLL_REFCLK<br />
DSS 2_ALWON _FCLK (BYPASS)<br />
PCLKFREE<br />
DSS 1_ALWON _FCLK (BYPASS)<br />
Device<br />
DSI PLL<br />
HS<br />
divider<br />
CLKIN4DDR<br />
PRCM<br />
DSI complex I/O<br />
DSS_L3_ICLK<br />
DSS2_ALW ON_<br />
FCLK<br />
SYS_CLK<br />
DSI_FCLK<br />
dsi_dyi<br />
DSI protocol<br />
engine<br />
DSS_L4_ICLK<br />
DSS_L3_ICLK<br />
TxByteClkHS<br />
DSS1_ALW ON_<br />
FCLK<br />
Sync<br />
DISPC_<br />
FCLK<br />
DPLL 4_ALWON_<br />
FCLKOUTM4X2<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
7.3.1 Clocking, Reset, and Power-Management Scheme<br />
7.3.1.1 Clocks<br />
The power, reset, and clock management (PRCM) module provides six clock signals to the display<br />
subsystem: The L3 interface clock (DSS_L3_ICLK) and the L4 interface clock (DSS_L4_ICLK), with<br />
frequencies equal to the L3 interconnect clock and the L4 interconnect clock, respectively; two<br />
configurable functional clocks (DSS1_ALWON_FCLK and DSS2_ALWON_FCLK); and one other<br />
functional clock (DSS_TV_FCLK).<br />
The DSI PLL provides two functional clock signals to the display subsystem: DSI1_PLL_FCLK and<br />
DSI2_PLL_FCLK.<br />
Figure 7-63 details the clock tree for the display subsystem.<br />
Figure 7-63. <strong>Display</strong> <strong>Subsystem</strong> Clock Tree<br />
Divider<br />
LCD<br />
CMOS pads<br />
RFBI<br />
PCLK FCLK<br />
Divider<br />
PCD <strong>Display</strong><br />
DSS_L3_ICLK<br />
L3_ICLK<br />
controller<br />
DSS _L4_ICLK<br />
DSS_L4_ICLK<br />
x1<br />
L4_ICLK<br />
sys_altclk<br />
DSS_TV_FCLK<br />
Video encoder<br />
x1 x2 x4<br />
Clock generator<br />
DPLL4_ALWON_<br />
FCLKOUTM3X2<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Video<br />
DACs<br />
camdss-158<br />
1601
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
NOTE: A synchronization signal is sent by the display controller (DISPC) to the DSI protocol<br />
engine. This signal, named DISPC_UPDATE_SYNC, is used to inform the DSI protocol<br />
engine that it must be unsynchronized with the display controller.<br />
Table 7-19 describes the different clocks with their possible frequency values.<br />
Table 7-19. <strong>Display</strong> <strong>Subsystem</strong> Clocks<br />
Clock Signal Attribute Module Frequency Comment<br />
DSS_L3_ICLK L3 interface clock DSS (See <strong>Chapter</strong> 3, Power, L3 interface clock from PRCM<br />
Reset, and Clock<br />
Management)<br />
DSS_L4_ICLK L4 interface clock DSS (See <strong>Chapter</strong> 3, Power, L4 interface clock from PRCM<br />
Reset, and Clock<br />
Management)<br />
DSS1_ALWON_FCLK Functional clock DISPC, DSI protocol Up to 173 MHz at nominal From PRCM: DPLL4 (source:<br />
engine voltage (OPP100), and up DPLL4_ALWON_FCLK)<br />
to 100 MHz at low voltage<br />
(OPP50)<br />
DSS2_ALWON_FCLK Functional clock DSI PLL 12/13/16.8/19.2/26/38.4 From PRCM: SYS_CLK<br />
MHz<br />
DSI1_PLL_FCLK Functional clock DISPC Up to 173 MHz at nominal From DSI PLL and HS divider<br />
voltage (OPP100), and up<br />
to 100 MHz at low voltage<br />
(OPP50)<br />
DSI2_PLL_FCLK Functional clock DSI protocol engine Up to 173 MHz at nominal From DSI PLL and HS divider<br />
voltage (OPP100), and up<br />
to 100 MHz at low voltage<br />
(OPP50)<br />
DSS_TV_FCLK Functional clock DSS, video mode 54 MHz or From PRCM: DPLL4 (source:<br />
DAC DPLL4_ALWON_FCLK) or<br />
sys_alt_clk (up to 59 External input clock (See <strong>Chapter</strong> 3,<br />
MHz) Power, Reset, and Clock<br />
Management)<br />
To enable or disable each functional clock, set the following bit (1: Enable, 0: Disable):<br />
• PRCM.CM_FCLKEN_DSS[0] EN_DSS1 bit to enable DSS1_ALWON_FCLK<br />
• PRCM.CM_FCLKEN_DSS[1] EN_DSS2 bit to enable DSS2_ALWON_FCLK<br />
• PRCM.CM_FCLKEN_DSS[2] EN_TV bit to enable DSS_TV_FCLK<br />
To enable or disable the DSS_L3_ICLK and DSS_L4_ICLK interface clocks, write (1: Enable, 0: Disable)<br />
to the PRCM.CM_ICLKEN_DSS[0] EN_DSS bit.<br />
NOTE: Note that it is not possible to gate/stop L3 clock and keep L4 clock running.<br />
• L3 and L4 interface clock<br />
The DSS_L3_ICLK clock is only used by the display controller interface to fetch the pixel data. The<br />
DSS_L4_ICLK is used to access the L4 interconnect for configuring all the display subsystem<br />
registers.<br />
NOTE: A clock generated internally from the L3 interface clock allows the submodules to be<br />
configured and is the functional clock for the RFBI. All the display subsystem registers are<br />
configured through the display subsystem register.<br />
• <strong>Display</strong> controller functional clocks<br />
The display controller can use either the DSS1_ALWON_FCLK or the DSI1_PLL_FCLK functional<br />
clock.<br />
1602 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
To select the DSS1_ALWON_FCLK functional clock (the default clock selected after reset), write 0 in<br />
the DSS.DSS_CONTROL[0] DISPC_CLK_SWITCH bit; to select the DSI1_PLL_FCLK functional clock,<br />
write 1 in the DSS.DSS_CONTROL[0] DISPC_CLK_SWITCH bit.<br />
NOTE: The DSS1_ALWON_FCLK and DSI1_PLL_FCLK functional clocks must be active (the<br />
PRCM.CM_FCLKEN_DSS[0] EN_DSS1 and DSI PLL programmed correctly) to switch from<br />
one functional clock to another. The new functional clock is effective when the next vertical<br />
blanking interval occurs. This is true only if the DSS.DISPC_CONTROL[5] GOLCD bit is set<br />
to 1.<br />
Depending on the DPLL4 input clock frequency, the DSS1_ALWON_FCLK can be adjusted by setting the<br />
PRCM.CM_CLKSEL_DSS[4:0] CLKSEL_DSS1 bit field.<br />
• DSI PLL functional clock (DSI_PLL_REFCLK)<br />
The DSI PLL controller module can use either the DSS2_ALWON_FCLK (from PRCM) or the<br />
PCLKFREE (from DISPC) functional clock. To select the DSS2_ALWON_FCLK functional clock<br />
(default clock selected after reset), write 0 in the DSS.DSI_PLL_CONFIGURATION2[11]<br />
DSI_PLL_CLKSEL bit; to select the PCLKFREE functional clock, write 1 in the<br />
DSS.DSI_PLL_CONFIGURATION2[11] DSI_PLL_CLKSEL bit.<br />
• DSI protocol engine functional clocks (DSI_FCLK)<br />
The DSI protocol engine can use either the DSS1_ALWON_FCLK (from PRCM) or the<br />
DSI2_PLL_FCLK (from DSI PLL) functional clock. To select the DSS1_ALWON_FCLK functional clock<br />
(default clock selected after reset), write 0 in the DSS.DSS_CONTROL[1] DSI_CLK_SWITCH bit; to<br />
select the DSI2_PLL_FCLK functional clock, write 1 in the DSS.DSS_CONTROL[1]<br />
DSI_CLK_SWITCH bit.<br />
NOTE: It is possible to switch between these two clocks, even when both of them are not active.<br />
• There are five clock domains in the DSI module:<br />
– Byte clock domain:<br />
TxByteClkHS is generated from the bit clock and converted into a byte clock. The maximum<br />
frequency is 112.5 MHz at nominal voltage (OPP100), and 100 MHz at low voltage (OPP50). It is<br />
generated by the DSI complex I/O.<br />
– Functional clock domain<br />
The DSI_FCLK is the functional clock for the DSI protocol engine module. The maximum frequency<br />
is 173 MHz (nominal voltage) and 100 MHz (low voltage). It must always be equal to or higher than<br />
the byte (TxByteClkHS), L4 interconnect (DSS_L4_ICLK), and video port (VP_CLK) clocks. The<br />
software must configure the clocks correctly.<br />
– L4 interface clock domain<br />
The DSS_L4_ICLK is used in the L4 interconnect port domain. The maximum frequency is 100<br />
MHz at nominal voltage.<br />
– The video port domain<br />
The pixel clock (PCLK) on the video port is used by the video port domain to capture the pixels<br />
from the display controller. The maximum frequency of VP_CLK used as the functional clock for the<br />
video port domain is 173 MHz at nominal voltage and 96 MHz at low voltage.<br />
– Serial Configuration Port (SCP) and Power Control (PWR) interfaces<br />
The DSS_L4_ICLK is the functional clock.<br />
NOTE:<br />
• There is no clock domain for RxClkEsc because it is used as an enable and not as a<br />
clock by the DSI protocol engine module<br />
• The clock domains are asynchronous (except for L4 interconnect port and SCP/PWR<br />
because both of them use DSS_L4_ICLK). The clocks used for the L4 interconnect port<br />
and SCP/PWR interface must be balanced.<br />
• If video mode is used, the display controller functional clock must be generated using a<br />
clock from the DSI PLL.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1603
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
• Video encoder functional clock<br />
The DSS_TV_FCLK is divided into three balanced clocks, depending on the clock mode selected (see<br />
Table 7-20).<br />
Table 7-20. Possible Digital Clock Division for the Video Encoder<br />
Clock Output Clock Mode<br />
Clock Mode 0 Clock Mode 1<br />
Video encoder clock 4x DSS_TV_FCLK DSS_TV_FCLK or 0 (gated)<br />
Video encoder clock 2x DSS_TV_FCLK/2 DSS_TV_FCLK<br />
Video encoder clock 1x DSS_TV_FCLK/4 DSS_TV_FCLK/2<br />
The clock mode is defined by the DSS_CONTROL[2] VENC_CLOCK_MODE register bit:<br />
• In the case of clock mode 1, the DSS_CONTROL[3] VENC_CLOCK_4X_ENABLE bit is used to control<br />
clock gating.<br />
• In the case of clock mode 0, the VENC_CLOCK_4X_ENABLE bit must be set to 0x1 by software.<br />
NOTE: After reset, clock mode 0 is selected by default, and the DSS_TV_CLK clock is disabled.<br />
The DSS_TV_CLK / 4 in mode 0, or the DSS_TV_CLK / 2 in mode 1, is used in the DISPC<br />
module to send data to the video encoder.<br />
NOTE: Clock mode 1 can be used for power-saving purposes, or if a 27-MHz external clock is<br />
provided to the video encoder.<br />
DSS_TV_FCLK can be adjusted depending on the DPLL4 input clock frequency by setting the<br />
PRCM.CM_CLKSEL_DSS[12:8] CLKSEL_TV bit field. If the DPLL4 is selected, the DSS_TV_FCLK is<br />
provided by the DPLL4_ALWON_FCLKOUTM3X2 clock.<br />
NOTE: If the DSS_TV_FCLK is not provided by DPLL4 but rather by the sys_alt_clk pin, an<br />
external clock generator must be connected to this pin. In this case, a 54-MHz clock is<br />
needed for PAL or NTSC 601, a 49.09-MHz clock is needed for NTSC square pixel, and a<br />
59-MHz clock is needed for PAL square pixel.<br />
• Video DAC stage clocks<br />
The video DAC stage uses one distinct clock: The DSS_TV_FCLK. The video data are latched on the<br />
positive edge of the DSS_TV_FCLK clock.<br />
7.3.1.2 Resets<br />
7.3.1.2.1 Hardware Reset<br />
The display subsystem receives its reset signal DSS_RST (the reset signal of the display subsystem<br />
[DSS] power domain) from the PRCM module.<br />
7.3.1.2.2 Software Reset<br />
The display subsystem can receive a software reset propagated through all of the submodules and used<br />
to initialize the display subsystem. To apply the reset, write to the DSS.DSS_SYSCONFIG[1]<br />
SOFTRESET bit (1: Reset; 0: Normal). The DSS.DSS_SYSSTATUS[0] RESETDONE bit indicates that the<br />
software reset is complete when its value is 1.<br />
1604 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
NOTE: The display controller, the DSI protocol engine, and the RFBI modules also have their own<br />
software reset functionality. To access this reset, access the DSS.DISPC_SYSCONFIG[1]<br />
SOFTRESET bit for the display controller, the DSS.DSI_SYSCONFIG[1] SOFTRESET bit for<br />
the DSI protocol engine, and the DSS.RFBI_SYSCONFIG[1] SOFTRESET bit for the RFBI<br />
module.<br />
7.3.1.3 Power Domain<br />
To properly reset these modules, 0x2 is the only valid value to write to these registers.<br />
CAUTION<br />
All the interface and functional clocks, even for the TV output, must be provided<br />
to the display subsystem to update the RESETDONE status bit correctly.<br />
The display subsystem modules are on the display subsystem (DSS) power domain and on the VDD2<br />
voltage domain, except for the video DAC stage, which are on the analog vdda_dac voltage domain.<br />
7.3.1.4 Power Management<br />
7.3.1.4.1 Clock Activity Mode<br />
The display controller clocks can be configured in one of the following clock activity modes:<br />
• DSS.DISPC_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x0 (reset value): The interface and<br />
functional clocks can be switched off.<br />
• DSS.DISPC_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x1: The functional clocks can be can<br />
be switched off and the interface clocks are maintained during the wake-up period.<br />
• DSS.DISPC_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x2: The interface clocks can be can<br />
be switched off and the functional clocks are maintained during the wake-up period.<br />
• DSS.DISPC_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x3: The interface and functional<br />
clocks are maintained during the wake-up period.<br />
The DSI protocol engine clocks can be configured in one of the following clock activity modes:<br />
• DSS.DSI_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x0 (reset value): The interface and<br />
functional clocks can be switched off.<br />
• DSS.DSI_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x1: The functional clocks can be<br />
switched off and the interface clocks are maintained during the wake-up period.<br />
• DSS.DSI_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x2: The interface clocks can be switched<br />
off and the functional clocks are maintained during the wake-up period.<br />
• DSS.DISPC_SYSCONFIG[9:8] CLOCKACTIVITY bit field set to 0x3: The interface and functional<br />
clocks are maintained during the wake-up period.<br />
The DSS power domain clock activity status is logged in the PRCM.CM_CLKSTST_DSS[0]<br />
CLKACTIVITY_DSS status bit. When set to 0, there is no domain clock activity. When set to 1, the DSS<br />
power domain clock is active.<br />
NOTE: The display subsystem interface clock can be dependent on the DSS power domain state.<br />
This is configured with PRCM.CM_AUTOIDLE_DSS[0] AUTO_DSS bit:<br />
• When the AUTO_DSS bit is set to 0 (reset value): The display subsystem interface clock<br />
is not related to the DSS power domain state transition.<br />
• When the AUTO_DSS bit is set to 1: The display subsystem interface clock is<br />
automatically enabled or disabled along with the DSS power domain state transition.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1605
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
7.3.1.4.2 Autoidle Mode<br />
The RFBI, display controller, DSI protocol engine, and L4 interfaces can internally gate their clocks to<br />
decrease power consumption if no transaction is present on the related bus. The following bits must be set<br />
to enable this functionality:<br />
• DSS.DSS_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the display subsystem<br />
• DSS.RFBI_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the RFBI<br />
• DSS.DISPC_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the display<br />
controller<br />
• DSS.DSI_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the DSI protocol<br />
engine<br />
• DSS.DISPC_CONFIG[9] FUNCGATED bit (1: Functional clocks gated enabled; 0: Functional clocks<br />
gated disabled) for the display controller<br />
7.3.1.4.3 Idle Mode<br />
NOTE: All the bits listed above (except for the FUNCGATED bit) are set to 1 by default. It is highly<br />
recommended to set all the bits to 1 to save power.<br />
The display controller, DSI protocol engine, and RFBI can be configured into one of the following<br />
acknowledgment modes:<br />
• Force-idle mode: The module immediately enters the idle state on receiving a low-power mode request<br />
from the PRCM module. In this mode, the software must ensure that there are no asserted output<br />
interrupts before requesting this mode to go into the idle state. Set the DSS.DISPC_SYSCONFIG[4:3]<br />
SIDLEMODE bit field to 0x0 (reset value) for display controller, set the DSS.DSI_SYSCONFIG[4:3]<br />
SIDLEMODE bit field to 0x0 (reset value) for DSI protocol engine, and, finally, the<br />
DSS.RFBI_SYSCONFIG[4:3] SIDLEMODE bit field to 0x0 (reset value) for RFBI.<br />
• No-idle mode: The module never enters the idle state. Set the DSS.DISPC_SYSCONFIG[4:3]<br />
SIDLEMODE bit field to 0x1 for display controller, set the DSS.DSI_SYSCONFIG[4:3] SIDLEMODE bit<br />
field to 0x1 for DSI protocol engine, and, finally, the DSS.RFBI_SYSCONFIG[4:3] SIDLEMODE bit field<br />
to 0x1 for RFBI.<br />
• Smart-idle mode:<br />
– <strong>Display</strong> controller: After receiving a low-power-mode request from the PRCM module, the display<br />
controller module enters the idle state when all the following conditions are satisfied:<br />
• All asserted output interrupts are acknowledged (no interrupt pending).<br />
• The display controller does not use anymore the L4 interface clock (DSS_L4_ICLK).<br />
– DSI protocol engine: After receiving a low-power-mode request from the PRCM module, the DSI<br />
protocol engine enters the idle state when all the following conditions are satisfied:<br />
• All asserted output interrupts are acknowledged (no interrupt pending).<br />
• The DSI protocol engine does not use the L4 interface clock (DSS_L4_ICLK) anymore.<br />
• The SCP and PWR transactions are complete.<br />
• No data remains in the TX FIFO (data waiting in the FIFO to be sent to the peripheral).<br />
To configure the display subsystem in smart-idle mode, set the DSS.DISPC_SYSCONFIG[4:3]<br />
SIDLEMODE bit field to 0x2 for display controller, set the DSS.DSI_SYSCONFIG[4:3] SIDLEMODE bit<br />
field to 0x2 for DSI protocol engine, and, finally, the DSS.RFBI_SYSCONFIG[4:3] SIDLEMODE bit field<br />
to 0x2 for RFBI.<br />
Once the idle handshake protocol is over:<br />
• The DSS L4 interface clock (DSS_L4_ICLK) can be shutdown at any time.<br />
• Any transaction on the L4 configuration port is ignored.<br />
7.3.1.4.4 Wake-Up Mode<br />
The <strong>Display</strong> Controller (DISPC) supports the wake-up protocol. The mode is selected by programming the<br />
appropriate value in the DSS.DISPC_SYSCONFIG[2] ENWAKEUP bit. The wake-up signal is asserted<br />
when the DISPC is in idle mode and when anyone of the following events occur:<br />
1606 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Graphics pipe is enabled and data fetch is not completed for graphics window, and the number of data<br />
bytes in FIFO is less than the low threshold programmed value.<br />
• Video1 pipe is enabled and data fetch is not completed for video1 window, and the number of data<br />
bytes in FIFO is less than the low threshold programmed value.<br />
• Video2 pipe is enabled and data fetch is not completed for video2 window, and the number of data<br />
bytes in FIFO is less than the low threshold programmed value.<br />
• The current pixel is the last pixel displayed on the LCD panel if it is not the last frame.<br />
• The current pixel is the last pixel displayed on the digital panel if it is not the last frame.<br />
If software users set the DSS.DISPC_CONFIG[17] FIFOFILLING bit, when one of the active pipe<br />
reaches the low threshold and should refill the FIFO for the current frame, the other pipes also refill<br />
their own FIFOs, even if the low threshold has not been reached. This is used to improve the<br />
probability of increasing the time when there is no access to the L3 interconnect (MStandby asserted,<br />
affects power savings).<br />
Once the wake-up signal is asserted, the WAKEUP interrupt request is generated. The wake-up signal<br />
is deasserted when the idle request is no longer activated.<br />
7.3.1.4.5 Standby Mode<br />
As part of the system-wide power-management scheme, the display controller can enter standby mode.<br />
To configure the display controller, write the DSS.DISPC_SYSCONFIG[13:12] MIDLEMODE bit field (00:<br />
Forced standby; 01: No standby; 10: Smart standby) in one of the following standby modes:<br />
• Forced standby mode (default mode): The module enters standby mode when the module is disabled.<br />
• No standby mode: The module never enters standby mode.<br />
• Smart standby mode: The module enters standby state when the DISPC module is disabled or when<br />
all the three following events occur:<br />
– Graphics pipe is disabled or graphics pipe is enabled but data fetch completed for graphics window,<br />
or graphics pipe is enabled and data fetch is not completed and number of data bytes in FIFO is<br />
greater than the high threshold programmed value.<br />
– Video1 pipe is disabled or video1 pipe is enabled but data fetch completed for video1 window, or<br />
video1 pipe is enabled and data fetch is not completed and number of data bytes in FIFO is greater<br />
than the high threshold programmed value.<br />
– Video2 pipe is disabled or video2 pipe is enabled but data fetch completed for video2 window, or<br />
video2 pipe is enabled and data fetch is not completed and number of data bytes in FIFO is greater<br />
than the high threshold programmed value.<br />
When in standby mode, the display controller does not generate transactions on the L3 master port.<br />
Standby is active when the PRCM module confirms this mode.<br />
The display subsystem standby mode activity can be monitored with the PRCM.CM_IDLEST_DSS[0]<br />
ST_DSS status register. When this register is read to 0, the display subsystem is accessible and the<br />
interface clock running; when it is read to 1, the display subsystem is in standby mode.<br />
7.3.1.4.5.1 Conditions to Exit Standby Mode<br />
The following conditions allow the subsystem to exit standby mode:<br />
• Forced standby mode: Standby mode is exited when the display controller is enabled.<br />
• Smart standby mode: Standby mode is exited when any one of the following events occurs:<br />
– Graphics pipe is enabled and data fetch is not completed for graphics window, and number of data<br />
bytes in FIFO is less than the low threshold programmed value.<br />
– Video1 pipe is enabled and data fetch is not completed for video1 window, and number of data<br />
bytes in FIFO is less than the low threshold programmed value.<br />
– Video2 pipe is enabled and data fetch is not completed for video2 window, and number of data<br />
bytes in FIFO is less than the low threshold programmed value.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
16<strong>07</strong>
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
7.3.1.4.5.2 Standby Transition Dependency<br />
The sleep transition of the DSS power domain can be dependent or not with respect to MPU domain. This<br />
is configured by PRCM.CM_SLEEPDEP_DSS[1] EN_MPU bit:<br />
• When the EN_MPU bit is set to 0 (reset value): The DSS power domain sleep dependency with the<br />
MPU power domain is disabled. The DSS power domain will not enter idle unless the MPU power has<br />
previously entered idle.<br />
• When the EN_MPU bit is set to 1: The DSS power domain sleep dependency with the MPU power<br />
domain is enabled. The DSS power domain will enter idle regardless of the power domain state of the<br />
MPU.<br />
The sleep transition of the DSS power domain may, or may not depend on the IVA2.2 domain, depending<br />
on the configuration of the PRCM.CM_SLEEPDEP_DSS[2] EN_IVA2 bit:<br />
• When the EN_IVA2 bit is set to 0 (reset value): The DSS power domain sleep dependency on the<br />
IVA2.2 power domain is disabled.<br />
• When the EN_IVA2 bit is set to 1: The DSS power domain sleep dependency on the IVA2.2 power<br />
domain is enabled.<br />
7.3.1.4.5.3 Standby Procedure Description<br />
When the display subsystem initiates a standby procedure, it also initiates an standby/wait handshake<br />
protocol with the PRCM module that lets the PRCM cut the display subsystem clocks. Depending on the<br />
PRCM setting, two modes are available:<br />
• Manual mode<br />
– DSS1_ALWON_FCLK is shut down when the PRCM.CM_FCLKEN_DSS[0] EN_DSS1 bit is set to 0<br />
and the display subsystem is in standby mode.<br />
– DSS2_ALWON_FCLK is shut down when the PRCM.CM_FCLKEN_DSS[1] EN_DSS2 bit is set to 0<br />
and the display subsystem is in standby mode.<br />
– DSS_L3_ICLK and DSS_L4_ICLK are controlled together. They are shut down when the<br />
PRCM.CM_ICLKEN_DSS[0] EN_DSS bit is set to 0 and the display subsystem is in standby mode.<br />
CAUTION<br />
Do not stop DSS1_ALWON_FCLK, or DSS2_ALWON_FCLK clock (if used) if<br />
the display subsystem is not disabled.<br />
CAUTION<br />
DSS_TV_FCLK does not depend on the display subsystem standby state.<br />
Ensure correct clock management for DSS_TV_FCLK.<br />
The clocks are reactivated when the related bits are set to 1 and the display subsystem exits from<br />
standby. For more information, see <strong>Chapter</strong> 3, Power, Reset, and Clock Management.<br />
• Hardware- or software-supervised mode<br />
The DSS-power state-transition between active and inactive states can be either hardware or software<br />
supervised. This is programmed with the PRCM.CM_CLKSTCTRL_DSS[1:0] CLKTRCTRL_DSS bit<br />
field:<br />
– When the CLKTRCTRL_DSS bit field is set to 0x0 (reset value), the automatic transition is disabled<br />
– When the CLKTRCTRL_DSS bit field is set to 0x1, the software-supervised sleep transition is<br />
started on the DSS power domain.<br />
– When the CLKTRCTRL_DSS bit field is set to 0x2, the software-supervised wake-up transition is<br />
started on the DSS power domain.<br />
– When the CLKTRCTRL_DSS bit field is set to 0x3, the automatic transition is enabled. Any<br />
transition on the DSS power domain is supervised by the hardware.<br />
1608 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
7.3.1.4.5.4 <strong>Display</strong> <strong>Subsystem</strong> Standby Mode, Power-Saving Use Cases<br />
• Setup<br />
– Set the display subsystem in smart standby mode.<br />
– Manually enable DSS_L3_ICLK and DSS_L4_ICLK.<br />
– Manually enable DSS1_ALWON_FCLK or DSS2_ALWON_FCLK.<br />
– Manually enable DSS_TV_FCLK if the video encoder is used.<br />
– Set the PRCM.CM_CLKSTCTRL_DSS[1:0] CLKTRCTRL_DSS bit field to 0x3 (autocontrol mode<br />
supervised by hardware).<br />
• Shut down the display subsystem.<br />
– Disable the display subsystem.<br />
– Manually disable DSS1_ALWON_FCLK, DSS2_ALWON_FCLK, DSS_TV_FCLK, DSS_L3_ICLK,<br />
and DSS_L4_ICLK.<br />
For more details on low-power programming settings, see Section 7.6.2.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1609
DSI protocol engine<br />
RFBI<br />
<strong>Display</strong> controller<br />
<strong>Display</strong> subsystem<br />
DSI_DMA_REQ0<br />
DSI_DMA_REQ1<br />
DSI_DMA_REQ2<br />
DSI_DMA_REQ3<br />
RFBI_DMA_REQ<br />
DSS_LINE_TRIGGER<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
7.3.2 Hardware Requests<br />
7.3.2.1 DMA Requests<br />
The display controller, the DSI protocol engine, and the RFBI generate some DMA requests to the sDMA.<br />
Figure 7-64 details the DMA tree.<br />
Figure 7-64. <strong>Display</strong> <strong>Subsystem</strong> DMA Tree<br />
Table 7-21. DSS DMA Requests Description<br />
DSS_DMA0<br />
DSS_DMA1<br />
DSS_DMA2<br />
DSS_DMA3<br />
DSS_LINE_TRIGGER<br />
DMA Request Name DSS Module Mapping Description<br />
DSS_LINE_TRIGGER DISPC S_DMA_5 See Section 7.3.2.1.1<br />
DSI_DMA_REQ0 DSI protocol engine S_DMA_71 See Section 7.3.2.1.2<br />
DSI_DMA_REQ1 DSI protocol engine S_DMA_72 See Section 7.3.2.1.2<br />
DSI_DMA_REQ2 DSI protocol engine S_DMA_73 See Section 7.3.2.1.2<br />
DSI_DMA_REQ3 DSI protocol engine S_DMA_74 See Section 7.3.2.1.2<br />
RFBI_DMA_REQ RFBI S_DMA_74 See Section 7.3.2.1.3<br />
NOTE: The DMA requests from the RFBI module (RFBI_DMA_REQ) and the DSI protocol engine<br />
(DSI_DMA_REQ3) are merged on line DSS_DMA3. The software must only use DSS_DMA3<br />
on one module at a time (RFBI or DSI protocol engine).<br />
7.3.2.1.1 <strong>Display</strong> Controller DMA Request (Line Trigger)<br />
One DMA synchronization line (DSS_LINE_TRIGGER) is connected to the sDMA by the sDMA controller<br />
(S_DMA_5) input line. This DMA request is not a classical one but a synchronization signal from the<br />
display subsystem to the sDMA informing the sDMA that a programmable number of lines are output to<br />
the LCD, and that the system memory can be updated. This request is related to an interrupt event<br />
described in Section 7.3.2.2, Interrupt Requests. This allows the sDMA channel to be synchronized with<br />
the display subsystem internal DMA controller. In other words, it allows to synchronize a memory to<br />
memory frame buffer update based on the scan line of the frame buffer in system memory (SDRAM or<br />
SRAM) by the display controller. The DSS_LINE_TRIGGER DMA request is generated at a programmable<br />
line number defined in DSS.DISPC_LINE_NUMBER[10:0] LINENUMBER bit field.<br />
1610 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-159
DSI complex I/O<br />
ULPSACTIVENOT_ALL1_IRQ_EN<br />
ULPSACTIVENOT_ALL1_IRQ<br />
ERRSYNCESC1_IRQ_EN<br />
ERRSYNCESC1_IRQ<br />
DSI virtual channel 3<br />
ECC_NO_CORRECTION_IRQ_EN<br />
ECC_NO_CORRECTION_IRQ<br />
CS_IRQ_EN<br />
CS_IRQ<br />
DSI virtual channel 0<br />
ECC_NO_CORRECTION_IRQ_EN<br />
ECC_NO_CORRECTION_IRQ<br />
DSI protocol engine<br />
CS_IRQ_EN<br />
CS_IRQ<br />
.......<br />
.......<br />
.......<br />
31<br />
0<br />
6<br />
0<br />
6<br />
0<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
7.3.2.1.2 DSI Protocol Engine DMA Request<br />
The DSI DMA requests are used to allow automatic transfer by the sDMA or MPU (with less efficiency and<br />
through-put capability) from the DSI RX FIFO to the system memory and from the system memory to the<br />
DSI TX FIFO. Two independent DMA requests for RX FIFO and TX FIFO for the same VC are supported.<br />
7.3.2.1.3 RFBI DMA Request<br />
The RFBI_DMA_REQ is used to receive data into the RFBI FIFO. The DMA request is always generated<br />
when there is enough room in the FIFO to accept the full burst.<br />
7.3.2.2 Interrupt Requests<br />
The DSI protocol engine, the DSI complex I/O (DSI_IRQ), and the display controller (DISPC_IRQ)<br />
generate one interrupt request each. The DSI_IRQ and DISPC_IRQ lines are merged together in a single<br />
interrupt line.<br />
One interrupt line (DSS_IRQ) is connected to two interrupt controllers:<br />
• MPU interrupt controller (M_IRQ_25 input line)<br />
• IVA interrupt handler (IVA2_IRQ[13] input line)<br />
Figure 7-65 shows the interrupt tree for the DSI protocol engine and DSI complex I/O in detail.<br />
Figure 7-65. DSI Interrupt Tree<br />
DSI_COMPLEXIO_IRQSTATUS<br />
DSI_VC3_IRQSTATUS<br />
DSI_VC0_IRQSTATUS<br />
TA_TO_IRQ_EN<br />
TA_TO_IRQ<br />
.......<br />
HS_TX_TO_IRQ_EN<br />
HS_TX_TO_IRQ<br />
COMPLEXIO_ERR_IRQ<br />
PLL_RECAL_IRQ_EN<br />
PLL_RECAL_IRQ<br />
.......<br />
WAKEUP_IRQ_EN<br />
WAKEUP_IRQ<br />
VIRTUAL_CHANNEL3_IRQ<br />
VIRTUAL_CHANNEL0_IRQ<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_IRQSTATUS<br />
DSI_IRQ<br />
dss-160<br />
1611
<strong>Display</strong> controller<br />
<strong>Display</strong> subsystem<br />
WAKEUP_EN<br />
WAKEUP<br />
FRAMEDONE_EN<br />
FRAMEDONE<br />
DSI protocol engine<br />
.......<br />
.......<br />
DISPC_IRQSTATUS<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
Figure 7-66 details the interrupt tree for the DISPC and the display subsystem.<br />
7.3.2.2.1 DISPC Interrupt Request<br />
Figure 7-66. DISPC and DSS Interrupts Tree<br />
DSI_IRQSTATUS<br />
DISPC_IRQ<br />
DSI_IRQ<br />
DSS_IRQSTATUS<br />
DSS_IRQ<br />
The interrupt line indicates when one or more events are detected by the hardware. Each event is<br />
independently maskable by setting the DSS.DISPC_IRQENABLE register.<br />
To check when a particular interrupt event occurs and to reset a particular event, the<br />
DSS.DISPC_IRQSTATUS register must be accessed. This register regroups all the status of the module<br />
internal events that generate an interrupt (read 0: No interrupt occurred; read 1: Interrupt occurred; write 1:<br />
Status bit reset). See Section 7.7, <strong>Display</strong> <strong>Subsystem</strong> Register Manual, for more information on checking<br />
and clearing interrupt events.<br />
Table 7-22 lists the display subsystem interrupt events.<br />
Interrupt Name Description<br />
Table 7-22. <strong>Display</strong> <strong>Subsystem</strong> Interrupts<br />
FRAMEDONE Active frame is complete and LCD output is disabled.<br />
VSYNC VSYNC interrupt occurred at the end of the frame.<br />
EVSYNC_EVEN (1) EVSYNC_EVEN interrupt occurred at the end of the frame. (EVSYNC is received<br />
and the field polarity is even.)<br />
EVSYNC_ODD (1) EVSYNC_ODD interrupt occurred at the end of the frame. (EVSYNC is received<br />
and the field polarity is odd.)<br />
ACBIASCOUNTSTATUS The ac-bias transition counter decremented to 0.<br />
PROGRAMMEDLINENUMBER The LCD reached the user-programmed line number.<br />
GFXFIFOUNDERFLOW The input graphics FIFO goes underflow.<br />
GFXENDWINDOW The screen reached the end of the graphics window. All data for the graphics<br />
window are fetched from memory and displayed on the screen.<br />
PALETTEGAMMALOADING The palette/gamma table is loaded.<br />
OCPERROR L3 interconnect sent SResp = ERR.<br />
VID1FIFOUNDERFLOW The input video1 FIFO goes underflow.<br />
(1) EVYNC interrupts (EVSYNC_EVEN and EVSYNC_ODD) are external interrupts received by the display controller and generated<br />
by the video encoder (VENC) module.<br />
1612<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-161
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
Table 7-22. <strong>Display</strong> <strong>Subsystem</strong> Interrupts (continued)<br />
Interrupt Name Description<br />
VID1ENDWINDOW The screen reached the end of video1 window. All data for the video window are<br />
fetched from the memory and displayed on the screen.<br />
VID2FIFOUNDERFLOW The input video2 FIFO goes underflow.<br />
VID2ENDWINDOW The screen reached the end of video2 window. All data for the video window are<br />
fetched from the memory and displayed on the screen.<br />
SYNCLOST Interrupt occurs when VSYNC width/front or back porches are not wide enough to<br />
load the pipelines with data (LCD output).<br />
SYNCLOSTDIGITAL Interrupt occurs when the display controller is not ready to output data when a<br />
digital request occurs. This interrupt informs that the timings of the NTSC/PAL<br />
video encoder are not set correctly.<br />
WAKEUP Occurs when the wakeup signal is asserted<br />
NOTE: To clear a synchronization lost interrupt, follow this sequence:<br />
1. Clear the DSS.DISPC_CONTROL[0] LCDENABLE (LCD: SYNCLOST interrupt) or<br />
DSS.DISPC_CONTROL[1] DIGITALENABLE (TV: SYNCLOSTDIGITAL interrupt) bits.<br />
Check the interrupts.<br />
LCD: Verify that a FRAMEDONE interrupt occurs.<br />
TV : Verify that EVSYNC_EVEN or EVSYNC_ODD interrupts occur.<br />
2. Set the DSS.DSS_SYSCONFIG[1] SOFTRESET bit to reset the display subsystem.<br />
3. Set the display subsystem registers again.<br />
NOTE: The SYNCLOSTDIGITAL interrupts, which occur before the first VSYNC pulse signal (from<br />
the video encoder), must not be considered.<br />
7.3.2.2.2 DSI Interrupt Request<br />
After the first VSYNC pulse signal, the SYNCLOSTDIGITAL interrupt status bit must be<br />
cleared by writing 1 in the DSS.DISPC_IRQSTATUS[15] SYNCLOSTDIGITAL bit; then the<br />
SYNCLOSTDIGITAL interrupt can be enabled by setting the DSS.DISPC_IRQENABLE[15]<br />
SYNCLOSTDIGITAL bit.<br />
The DSI protocol engine requires a single interrupt line, DSI_IRQ. The DSS.DSI_IRQSTATUS register<br />
indicates the general interrupt events. See Table 7-23. Each VC and complex I/O has a dedicated<br />
interrupt register: DSS.DSI_VCn_IRQSTATUS and DSS.DSI_COMPLEXIO_IRQSTATUS respectively.<br />
See Table 7-24 and Table 7-25.<br />
Table 7-23 indicates the DSI global interrupt events.<br />
Interrupt Name Description<br />
Table 7-23. DSI Global Interrupts<br />
RESYNCHRONIZATION_IRQ Resynchronization in video mode<br />
TA_TO_IRQ Turn-around timer expired<br />
LDO_POWER_GOOD_IRQ Signal LDOPWRGOOD from the DSI_PHY changes its state for the supply<br />
VDDALDODSIPLL from up to down or down to up.<br />
SYNC_LOST_IRQ Synchronization with video mode port is lost (video mode only)<br />
ACK_TRIGGER_IRQ Acknowledge trigger is received<br />
TE_TRIGGER_IRQ Tearing effect trigger is received<br />
WAKEUP_IRQ Occurs when the SWakeUp signal is asserted<br />
HS_TX_TO_IRQ High speed TX Time-out Interrupt<br />
LP_RX_TO_IRQ Low speed RX Time-out Interrupt<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1613<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration www.ti.com<br />
Interrupt Name Description<br />
Table 7-23. DSI Global Interrupts (continued)<br />
COMPLEXIO_ERR_IRQ Error signaling from complex I/O: The interrupt is triggered when any error is<br />
received from the complex I/O (events are defined in<br />
DSI_COMPLEXIO_IRQSTATUS).<br />
PLL_RECAL_IRQ PLL recal event (assertion of DSIRecal signal from the DSI PLL Control module)<br />
PLL_UNLOCK_IRQ PLL unlock event (deassertion of DSILock signal from the DSI PLL Control<br />
module)<br />
PLL_LOCK_IRQ PLL lock event (assertion of DSILock signal from the DSI PLL Control module)<br />
VIRTUAL_CHANNEL3_IRQ Virtual channel #3<br />
Error signaling from DSI Virtual Channel3: The interrupt is triggered when an error<br />
is received from DSI Virtual Channel3 (events are defined in<br />
DSI_VC3_IRQENABLE).<br />
VIRTUAL_CHANNEL2_IRQ Virtual channel #2<br />
Error signaling from DSI Virtual Channel2: The interrupt is triggered when an error<br />
is received from DSI Virtual Channel2 (events are defined in<br />
DSI_VC2_IRQENABLE).<br />
VIRTUAL_CHANNEL1_IRQ Virtual channel #1<br />
Error signaling from DSI Virtual Channel1: The interrupt is triggered when an error<br />
is received from DSI Virtual Channel1 (events are defined in<br />
DSI_VC1_IRQENABLE).<br />
VIRTUAL_CHANNEL0_IRQ Virtual channel #0<br />
Error signaling from DSI Virtual Channel0: The interrupt is triggered when an error<br />
is received from DSI Virtual Channel0 (events are defined in<br />
DSI_VC0_IRQENABLE).<br />
Table 7-24 indicates the DSI complex I/O interrupt events.<br />
Interrupt Name Description<br />
Table 7-24. DSI Complex I/O Interrupts<br />
ULPSActiveNot_ALL0_IRQ All signals ULPSActiveNOT are 0<br />
ULPSActiveNot_ALL1_IRQ All the ULPSActiveNOT signals corresponding to the lanes with TXULPSExit<br />
being high are high<br />
STATEULPS3_IRQ Lane #3 in ultralow-power state<br />
STATEULPS2_IRQ Lane #2 in ultralow-power state<br />
STATEULPS1_IRQ Lane #1 in ultralow-power state<br />
ERRCONTROL3_IRQ Control error for lane #3<br />
ERRCONTROL2_IRQ Control error for lane #2<br />
ERRCONTROL1_IRQ Control error for lane #1<br />
ERRESC3_IRQ Escape entry error for lane #3(edge trigger interrupt)<br />
ERRESC2_IRQ Escape entry error for lane #2 (edge trigger interrupt)<br />
ERRESC1_IRQ Escape entry error for lane #1 (edge trigger interrupt)<br />
ERRCONTENTIONLP1_1_IRQ Contention LP1 error for lane #1<br />
ERRCONTENTIONLP0_1_IRQ Contention LP0 error for lane #1<br />
ERRCONTENTIONLP1_2_IRQ Contention LP1 error for lane #2<br />
ERRCONTENTIONLP0_2_IRQ Contention LP0 error for lane #2<br />
ERRCONTENTIONLP1_3_IRQ Contention LP1 error for lane #3<br />
ERRCONTENTIONLP0_3_IRQ Contention LP0 error for lane #3<br />
ERRSYNCESC3_IRQ Low power Data transmission synchronization error for lane #3<br />
ERRSYNCESC2_IRQ Low power Data transmission synchronization error for lane #2<br />
ERRSYNCESC1_IRQ Low power Data transmission synchronization error for lane #1<br />
NOTE: The error contention signals for DX and DY signals of each lane are ORed together.<br />
Table 7-25 indicates the DSI VCs interrupt events<br />
1614 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Integration<br />
Interrupt Name Description<br />
Table 7-25. DSI Virtual Channel Interrupts<br />
ECC_CORRECTION_IRQ Indicates if a 1-bit error correction occurred using the ECC<br />
PACKET_SENT_IRQ Indicates that a packet has been sent. It is used when BTA manual mode is used<br />
CS_IRQ Virtual channel - Check-Sum of the payload mismatch detection<br />
FIFO_RX_OVF_IRQ RX FIFO overflow. The FIFO used on the L4 interconnect slave port for buffering<br />
the data received on the DSI link has overflowed<br />
FIFO_TX_OVF_IRQ TX FIFO overflow. The FIFO used on the L4 interconnect slave port for buffering<br />
the data received on the L4 interconnect slave port has overflowed<br />
BTA_IRQ Bus turnaround is received from the peripheral (the VC ID used for the last BTA<br />
request transfer to the peripheral is used to determine which VC is used to flag<br />
the interrupt)<br />
ECC_NO_CORRECTION_IRQ ECC error (short and long packets). No correction of the header because of more<br />
than 1-bit error<br />
FIFO_TX_UDF_IRQ TX FIFO underflow. The FIFO used on the slave port for buffering the data<br />
received on the L4 interconnect port has under-flowed in the middle of a packet<br />
transfer<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1615
L3<br />
interconnect<br />
L4<br />
interconnect<br />
<strong>Display</strong><br />
controller<br />
Registers<br />
Configuration<br />
LCD data<br />
L4 interface<br />
Registers<br />
DSI protocol<br />
engine<br />
Configuration,<br />
data<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4 <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
This section describes the functions of the LCD and TV display supports by describing the following<br />
modules: display controller, DSI protocol engine, DSI PLL controller, DSI complex I/O, RFBI and video<br />
encoder.<br />
The functions of the display controller are common to both LCD and TV data paths; the RFBI are<br />
LCD-specific; and the video encoder functions are specific to the TV set.<br />
7.4.1 Block Diagram<br />
Figure 7-67 is a schematic of the display subsystem.<br />
7.4.2 <strong>Display</strong> Controller Functionalities<br />
Figure 7-67. <strong>Display</strong> <strong>Subsystem</strong> Full Schematic<br />
<strong>Display</strong> subsystem<br />
LCD data<br />
Configuration, data<br />
Field_ld<br />
Digital data<br />
24<br />
Configuration<br />
Data<br />
Control<br />
24<br />
TV encoder<br />
Video<br />
encoder<br />
Registers<br />
Remote<br />
frame buffer<br />
interface<br />
Registers<br />
10<br />
10<br />
DAC1<br />
DAC2<br />
DSI complex I/O<br />
DSI PLL<br />
controller<br />
LCD output<br />
Composite or<br />
Luma video<br />
output<br />
Chroma video<br />
output<br />
Status<br />
PLL control<br />
LCD output<br />
DSI PLL<br />
The display controller can read and display the encoded pixel data stored in memory (see Figure 7-68).<br />
1616 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-037
L3<br />
interconnect<br />
L4<br />
interconnect<br />
OCP master port arbitrator<br />
OCP<br />
slave port<br />
L3 clock<br />
domain<br />
DMA engine<br />
GFX<br />
FIFO<br />
@G<br />
Video1<br />
FIFO<br />
@G<br />
Video2<br />
FIFO<br />
@G<br />
DMA<br />
registers<br />
<strong>Display</strong><br />
registers<br />
L4 clock<br />
domain<br />
/24<br />
½/4/8-Bpp<br />
24<br />
24<br />
16<br />
<strong>Display</strong> controller<br />
clock domain<br />
Video2 pixel(V2)<br />
Video1 pixel(V1)<br />
Graphics pixel(G)<br />
0<br />
1<br />
Color space<br />
conversion<br />
/<br />
Extend<br />
/<br />
24<br />
Color space<br />
conversion<br />
16<br />
/<br />
Extend<br />
/<br />
24<br />
12/16-Bpp<br />
Control<br />
24<br />
Palette/gamma<br />
256 x 24 bits<br />
Extend<br />
Graphics path<br />
Video1 path<br />
1<br />
0<br />
1<br />
0<br />
/<br />
Video2 path<br />
/<br />
24<br />
Up/downsampling<br />
Up/downsampling<br />
<strong>Display</strong> controller<br />
1<br />
0<br />
1<br />
0<br />
24<br />
YUV2RGB Re-sampling<br />
@G: Address generator<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-68. <strong>Display</strong> Controller Architecture Overview<br />
1<br />
0<br />
/<br />
(V2)<br />
(V1)<br />
(G)<br />
/<br />
24<br />
(V2)<br />
(V1)<br />
(G)<br />
Overlay<br />
manager<br />
Color key<br />
Background color<br />
0<br />
1<br />
2<br />
3<br />
Background color<br />
0<br />
1<br />
2<br />
3<br />
Color key<br />
Overlay<br />
manager<br />
0<br />
1<br />
Palette<br />
or<br />
gamma<br />
Color<br />
phase<br />
rotation<br />
matrix<br />
TFT color<br />
depth<br />
<strong>Display</strong> controller boundary<br />
12<br />
Spatial/<br />
temp<br />
dither<br />
STN<br />
dither<br />
STN-TFT path<br />
12/16/18-Bpp<br />
Digital path<br />
FIFO<br />
24<br />
Functional clock<br />
1<br />
0<br />
TDM<br />
STN/TFT<br />
output<br />
Timings<br />
generator<br />
LCD pixel data[23:0]<br />
1<br />
0<br />
Line trigger<br />
Digital pixel data[23:0]<br />
Input<br />
control signals<br />
Output<br />
control signals<br />
Several processes can be configured to manage the graphics pipeline (palette, gamma table correction)<br />
and video pipeline (color space conversion, upsampling, downsampling, overlay, and transparency<br />
features).<br />
The internal timing generator logic generates the LCD input signals. The external timing generator<br />
generates the appropriated signals to drive the digital output. The data from the two overlay managers are<br />
sent on the two concurrent 24-bit buses outside the display controller module. The memory accessed by<br />
the display controller is either the SDRAM memory or the SRAM memory.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-038<br />
1617
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P31<br />
P30<br />
P29<br />
P28<br />
P27<br />
P26<br />
P25<br />
P24<br />
P23<br />
P22<br />
P21<br />
P20<br />
P19<br />
P18<br />
P17<br />
P16<br />
P15<br />
P14<br />
P13<br />
P12<br />
P11<br />
P10<br />
P9<br />
P8<br />
P7<br />
P6<br />
P5<br />
P4<br />
P3<br />
P2<br />
P1<br />
P0<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P24<br />
P25<br />
P26<br />
P27<br />
P28<br />
P29<br />
P30<br />
P31<br />
P16<br />
P17<br />
P18<br />
P19<br />
P20<br />
P21<br />
P22<br />
P23<br />
P8<br />
P9<br />
P10<br />
P11<br />
P12<br />
P13<br />
P14<br />
P15<br />
P0<br />
dss-T039<br />
P1<br />
P2<br />
P3<br />
P4<br />
P5<br />
P6<br />
P7<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P7<br />
P6<br />
P5<br />
P4<br />
P3<br />
P2<br />
P1<br />
P0<br />
P15<br />
P14<br />
P13<br />
P12<br />
P11<br />
P10<br />
P9<br />
P8<br />
P23<br />
P22<br />
P21<br />
P20<br />
P19<br />
P18<br />
P17<br />
P16<br />
dss-T040<br />
P31<br />
P30<br />
P29<br />
P28<br />
P27<br />
P26<br />
P25<br />
P24<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P0<br />
P1<br />
P2<br />
P3<br />
P4<br />
P5<br />
P6<br />
P7<br />
P8<br />
P9<br />
P10<br />
P11<br />
P12<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.2.1 <strong>Display</strong> Modes<br />
7.4.2.1.1 LCD Output<br />
The display subsystem supports two types of display technologies (both monochrome and color modes):<br />
• Passive matrix displays<br />
• Active matrix displays<br />
The passive matrix display mode supports 3375 possible colors, allowing 16, 256, or 3375 colors to be<br />
displayed in each frame, depending on the color depth. The monochrome LCD has 15 grayscale levels<br />
available.<br />
In active matrix display mode, the configuration of colors depends on the color depth:<br />
• 24 BPP supports 16,777,216 colors.<br />
• 18 BPP supports 262,144 colors.<br />
• 16 BPP supports 65,536 colors.<br />
• 12 BPP supports 4096 colors.<br />
7.4.2.1.2 Digital Output<br />
The digital output is always a 24-bit RGB value based on an external pixel request.<br />
7.4.2.2 Graphics Pipeline<br />
The graphics pipeline is connected to the graphics FIFO controller for the input port and to the two overlay<br />
managers (LCD and digital). It consists of one 256-entry palette and some programmable replication logic.<br />
The replication logic is used to convert the RGB pixels, excluding the RGB24 format, into RGB24 format<br />
based on user programming (replication of the most-significant bits [MSBs] for the RGB24 LSBs or use of<br />
0s). The first unit connected to the input port of the graphics pipeline is the replication logic used for RGB<br />
pixels, then the second unit is the palette for concerned pixels.<br />
7.4.2.2.1 Graphics Memory Format<br />
The supported formats for the graphics layer are CLUT bitmaps (1-, 2-, 4-, and 8-BPP) and true color<br />
bitmaps in RGB formats (12-, 16-, and 24-BPP [packet and nonpacket RGB24]) and in ARGB or RGBA<br />
formats (ARGB 16-, and 32-BPP, and RGBA 32-BPP) as follows:<br />
• BITMAP 1-BPP data memory organization (CLUT) (little endian)<br />
• BITMAP 1-BPP data memory organization (CLUT) (little endian + nibble mode)<br />
• BITMAP 1-BPP data memory organization (CLUT) (big endian)<br />
• BITMAP 1-BPP data memory organization (CLUT) (big endian + nibble mode)<br />
P13<br />
P14<br />
P15<br />
P16<br />
P17<br />
P18<br />
• BITMAP 2-BPP data memory organization (CLUT) (little endian)<br />
1618 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
P19<br />
P20<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
P21<br />
P22<br />
P23<br />
P24<br />
P25<br />
P26<br />
P27<br />
P28<br />
P29<br />
P30<br />
dss-T060<br />
P31<br />
dss-T061
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P12 P13 P14 P15 P8 P9 P10<br />
P11<br />
P4 P5 P6 P7 P0<br />
P0<br />
P1 P2 P3<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P3 P2 P1 P0<br />
P7 P6 P5 P4<br />
P11 P10 P9 P8<br />
dss-T041<br />
dss-T042<br />
P15 P14 P13 P12<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Pixel 7 Pixel 6 Pixel 5 Pixel 4 Pixel 3 Pixel 2<br />
Pixel 1<br />
Pixel 0<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Pixel 6 Pixel 7<br />
Pixel 4 Pixel 5<br />
Pixel 2 Pixel 3<br />
Pixel 0 Pixel 1<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Pixel 1 Pixel 0<br />
Pixel 3 Pixel 2<br />
Pixel 5 Pixel 4<br />
dss-T043<br />
dss-T044<br />
Pixel 7 Pixel 6<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Pixel 0<br />
Pixel 1 Pixel 2 Pixel 3<br />
Pixel 4 Pixel 5 Pixel 6<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Pixel 3 Pixel 2 Pixel 1<br />
Pixel 0<br />
Pixel 7<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
dss-T045<br />
Pixel 0 Pixel 1 Pixel 2 Pixel 3<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R1 G1 B1 Unused R0 G0 B0<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R0 G0 B0 Unused R1 G1 B1<br />
dss-T046<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R1 G1 B1<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• BITMAP 2-BPP data memory organization (CLUT) (little endian + nibble mode)<br />
• BITMAP 2-BPP data memory organization (CLUT) (big endian)<br />
• BITMAP 2-BPP data memory organization (CLUT) (big endian + nibble mode)<br />
• BITMAP 4-BPP data memory organization (CLUT) (little endian)<br />
• BITMAP 4-BPP data memory organization (CLUT) (little endian + nibble mode)<br />
• BITMAP 4-BPP data memory organization (CLUT) (big endian)<br />
• BITMAP 4-BPP data memory organization (CLUT) (big endian + nibble mode)<br />
• BITMAP 8-BPP data memory organization (CLUT) (little endian)<br />
• BITMAP 8-BPP data memory organization (CLUT) (big endian)<br />
• RGB 12-BPP data memory organization (little endian)<br />
• RGB 12-BPP data memory organization (big endian)<br />
• RGB 16-BPP data memory organization (little endian)<br />
• RGB 16-BPP data memory organization (big endian)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
R0<br />
G0<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
B0<br />
dss-T048<br />
dss-T062<br />
dss-T063<br />
dss-T064<br />
dss-T065<br />
dss-T066<br />
dss-T067<br />
1619
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R0 G0 B0 R1 G1<br />
• ARGB 16-BPP data memory organization (little endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
A1 R1 G1 B1 A0 R0 G0 B0<br />
• ARGB 16-BPP data memory organization (big endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
dss-T049<br />
A0 R0 G0 B0 A1<br />
R1 G1<br />
B1<br />
• RGB 24-BPP data memory organization (little or big endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R G<br />
B<br />
• ARGB 32-BPP data memory organization (little or big endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
A R G<br />
• RGBA 32-BPP data memory organization (little or big endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R G B<br />
• RGB 24-BPP packet data memory organization (little or big endian)<br />
B<br />
A<br />
dss-T050<br />
dss-T051<br />
dss-T052<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
B1 R0 G0 B0<br />
G2 B2 R1 G1<br />
R3 G3 B3 R2<br />
7.4.2.2.2 Color Look-Up Table/Gamma Table<br />
The graphics path supports the palette/gamma table. Figure 7-69 shows the internal architecture of the<br />
color look-up/gamma table.<br />
The palette is split into three memories of 256-bit x 8-bit entries. For bitmap (CLUT) indexes, the same<br />
value (1-, 2-, 4-, or 8-BPP) indexes the three memories. For gamma curve correction, each R, G, and B<br />
component indexes the corresponding memory to combine the three gamma curve values into a 24-bit<br />
value. The table can be reloaded every frame, once or never (at the beginning of the frame before<br />
fetching the pixels for the graphics and/or video windows).<br />
1620 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
+0x0<br />
+0x4<br />
+0x8<br />
dss-T053<br />
B1<br />
dss-T<strong>07</strong>0<br />
dss-T069
24<br />
/<br />
1, 2, 4, and 8 BPP<br />
Palette<br />
or<br />
gamma<br />
<strong>Display</strong> controller palette/gamma boundary<br />
RGB<br />
Index<br />
/ 8<br />
/ 8<br />
/ 8<br />
0<br />
1<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.2.2.2.1 Color Look-Up Table<br />
Figure 7-69. Palette/Gamma Correction Architecture<br />
0<br />
1<br />
Palette/gamma logic<br />
0<br />
1<br />
R CLUT<br />
(256 x 8 bits)<br />
G CLUT<br />
(256 x 8 bits)<br />
B CLUT<br />
(256 x 8 bits)<br />
The palette mode uses the encoded pixel values from the input graphics FIFO as pointers to index the<br />
24-bit-wide palette: 1-BPP pixels address 2 palette entries, 2-BPP pixels address 4 palette entries, 4-BPP<br />
pixels address 16 palette entries, and 8-BPP pixels address 256 palette entries.<br />
When a palette entry is selected by the encoded pixel value, the content of the entry is sent to the<br />
color/grayscale space/time base passive matrix dithering circuit, or to the color time base active matrix<br />
dithering circuit.<br />
In color mode, the value within the palette is made up of three 8-bit fields, one for each color component<br />
(red, green, and blue). For color operation, an individual frame is limited to a selection of 256 colors (the<br />
number of palette entries). The format of one of the palette values in the memory is as follows:<br />
• 24-BPP Data Memory Organization (Little Endian or Nibble)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R G B<br />
In monochrome mode, only one 8-bit value is present.<br />
• 24-BPP Data Memory Organization (Little Endian or Nibble)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused Unused Unused Gray<br />
After passing through the palette, 256 gray scales and 16,777,216 colors are numbers obtained. A<br />
redundancy introduced in the dithering logic step reduces these numbers when displaying. For passive<br />
matrix panels, the colors are limited to 15 gray scales and 3375 colors.<br />
• Passive matrix technology<br />
The palette is bypassed in 12, 16, and 24 BPP. The palette is not used.<br />
• Active matrix technology<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
/ 8<br />
/ 8<br />
/ 8<br />
/ 24<br />
dss-054<br />
1621
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
The palette is bypassed in 12, 16, and 24 BPP, allowing up to 2 24 = 16,777,216 colors to be displayed.<br />
7.4.2.2.2.2 Gamma Table<br />
In the gamma curve mode, the selected encoded pixel values based on the color keys from the video or<br />
graphics paths are sent to the gamma curve table. The mode is available only if the color look-up palette<br />
is not used for graphics. The output of the gamma curve processing is always sent to the LCD output. It is<br />
not available on digital output.<br />
Each component of encoded pixel value is used as a pointer to index 1 out of 256 24-bit gamma curve<br />
entries in the table. Each 8-bit component is replaced with the 8-bit table value corresponding to an R, G,<br />
or B component. The format of one of the gamma curve values in the memory is as follows:<br />
• 24-BPP Data Memory Organization (Little or Big Endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused Gamma-R Gamma-G Gamma-B<br />
7.4.2.2.2.2.1 Replication Logic<br />
The replication logic increases the color depth of the graphics and video encoded pixels (from true color<br />
RGB 12-, and 16-BPP to 24-BPP). The encoded value is shifted to the 24-bit alignment. The MSB bits are<br />
copied to the LSB missing ones. Then the graphics are merged with the video data based on the<br />
transparency color keys. When the replication logic is not selected, the encoded pixel values are shifted to<br />
the MSB boundary of the 24-bit format. The missing bit values are filled up with 0s.<br />
This is an example for RGB16 extension:<br />
• Original 16-BPP data:<br />
• If replication logic is ON:<br />
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R4 R3 R2 R1 R0 G5 G4 G3 G2 G1 G0 B4 B3 B2 B1 B0<br />
dss-T055<br />
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R4 R3 R2 R1 R0 R4 R3 R2 G5 G4 G3 G2 G1 G0 G5 G4 B4 B3 B2 B1 B0 B4 B3 B2<br />
• If replication logic is OFF:<br />
7.4.2.3 Video Pipeline<br />
dss-T056<br />
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R4 R3 R2 R1 R0 0 0 0 G5 G4 G3 G2 G1 G0 0 0 B4 B3 B2 B1 B0 0 0 0<br />
The video pipeline is connected to the video FIFO controller for the input port and to the two overlay<br />
managers (LCD and digital). It consists of the Re-Sampling unit, the Color Space Conversion Unit, and<br />
some programmable replication logic. The replication logic is used to convert the RGB pixels, excluding<br />
the RGB24 format, into RGB24 format based on user programming (replication of the MSBs for the<br />
RGB24 LSBs or use of 0s). The first unit connected to the input port of the video pipeline is the<br />
Re-Sampling Unit, then the replication logic used for RGB pixels, then the Color Space Conversion Unit<br />
for YUV4:2:2 pixels.<br />
7.4.2.3.1 Video Memory Formats<br />
The display subsystem supports the following formats for the video layer: YUV2, UYVY, RGB12, RGB16,<br />
RGB24 (non-packed and packed formats), ARGB16 (video channel 2 only), ARGB32 (video channel 2<br />
only), and RGBA32 (video channel 2 only).<br />
1622 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-T057
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R1 G1 B1 Unused R0 G0 B0<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R0 G0 B0 Unused R1 G1 B1<br />
dss-T046<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R1 G1 B1<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• RGB 12-BPP data memory organization (little endian)<br />
• RGB 12-BPP data memory organization (big endian)<br />
• RGB 16-BPP data memory organization (little endian)<br />
• RGB 16-BPP data memory organization (big endian)<br />
R0<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R0 G0 B0 R1 G1<br />
• ARGB 16-BPP data memory organization (little endian + video 2 channel only)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
A1 R1 G1 B1 A0 R0 G0 B0<br />
• ARGB 16-BPP data memory organization (big endian + video 2 channel only)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
G0<br />
B0<br />
dss-T048<br />
dss-T049<br />
A0 R0 G0 B0 A1<br />
R1 G1<br />
B1<br />
• RGB 24-BPP data memory organization (little or big endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Unused R G<br />
B<br />
• RGB 24-BPP packet data memory organization (little or big endian)<br />
dss-T050<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
B1 R0 G0 B0<br />
G2 B2 R1 G1<br />
R3 G3 B3 R2<br />
• ARGB 32-BPP data memory organization (little or big endian + video 2 channel only)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
A R G<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
R G B<br />
B<br />
A<br />
dss-T051<br />
• RGBA 32-BPP data memory organization (little or big endian + video 2 channel only)<br />
• UYVY 4:2:2 data memory organization (little endian)<br />
dss-T052<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Y1 Cr0 Y0 Cb0<br />
• UYVY 4:2:2 data memory organization (big endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
dss-T058<br />
+0x0<br />
+0x4<br />
+0x8<br />
dss-T053<br />
Cb0 Y0 Cr0 Y1<br />
• YUV2 4:2:2 data memory organization (little endian)<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Cr0 Y1 Cb0 Y0<br />
• YUV2 4:2:2 data memory organization (big endian)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-T059<br />
B1<br />
dss-T067<br />
dss-T<strong>07</strong>0<br />
dss-T069<br />
dss-T<strong>07</strong>1<br />
1623
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Line n<br />
Line n<br />
Y0 Cb0 Y1 Cr0<br />
Image data line (0- and 180- degree rotation)<br />
Last Pixel<br />
Image data line<br />
(90- and 270degree<br />
rotation)<br />
Line n<br />
½ ½ 1<br />
Line n+1<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.2.3.2 Color Space Conversion<br />
The color space conversion module converts the video-encoded pixel values from YCbCr 4:2:2 format into<br />
RGB24. Figure 7-70 and Figure 7-71 detail the YCbCr 4:2:2 conversion to YCbCr 4:4:4 depending on the<br />
rotation parameters.<br />
Figure 7-70. YCbCr 4:2:2 to YCbCr 4:4:4 (0- or 180-Degree Rotation)<br />
Line n+2<br />
Line n+3<br />
YUV4:2:2<br />
YUV4:4:4<br />
Luminance sample (Y)<br />
Chrominance sample (Cb)<br />
Chrominance sample (Cr)<br />
Figure 7-71. YCbCr 4:2:2 to YCbCr 4:4:4 (90- or 270-Degree Rotation)<br />
Luminance sample (Y)<br />
Chrominance sample (Cb)<br />
Chrominance sample (Cr)<br />
The interpolation of the missing chrominance component is given by the equation in Figure 7-72.<br />
Figure 7-72. Interpolation of the Missing Chrominance Component<br />
Cb n ( YCbCr 444)<br />
<br />
Cbn<br />
1(<br />
YCbCr 422)<br />
Cb n 1<br />
( YCbCr 422)<br />
(n odd)<br />
2<br />
Crn<br />
( YCbCr 444)<br />
<br />
Cr n 1<br />
( YCbCr 422)<br />
Cr n 1<br />
( YCbCr 422)<br />
(n odd)<br />
2<br />
First, to convert the YCbCr 4:2:2 encoded pixel values into YCbCr 4:4:4 format, the missing chrominance<br />
samples (Cb and Cr) are interpolated using the average values of the two closest values on the same line<br />
(1/2, 1/2) or are repeated from the second pixel in the same 32-bit container.<br />
• In case of rotation 0-degree, for the last pixel, the chrominance samples are duplicated using the<br />
values from the previous pixel; otherwise, the chrominance samples are averaged using the two<br />
adjacent values.<br />
• In case of 180-degree rotation, for the first pixel the chrominance samples missing are duplicated from<br />
the adjacent pixel; otherwise, the chrominance samples are averaged using the two adjacent values.<br />
• In case of rotation 90- and 270-degree, the missing chrominance components are duplicated from the<br />
adjacent pixel in the same 32-bit container.<br />
1624 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-E062<br />
dss-061<br />
dss-060<br />
dss-T<strong>07</strong>2
R<br />
G<br />
B<br />
=<br />
1<br />
256<br />
*<br />
RY<br />
GY<br />
BY<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
In case of 5-tap configuration for the vertical filtering, the missing chrominance samples are always<br />
duplicated using the second chrominance samples in the same 32-bit value.<br />
Then the pixels are converted from YCbCr color space into the RGB color space, because the output<br />
format of the color space conversion is RGB24 (8-bit value per component: Red, green, and blue). The<br />
following matrices show the 11-bit coefficients registers used to convert from YCbCr 4:4:4 into RGB24.<br />
Users set the coefficients according to the standard used to encode the pixel data in YCbCr color space.<br />
In case of resampling, the YUV4:2:2 format is converted into YUV4:4:4. The YUV4:2:2-to-YUV4:4:4<br />
processing is bypassed in the color space conversion unit.<br />
If the active range for the luminance samples (Y) is [16:235] and [16:240] for the chrominance samples<br />
(Cb and Cr), the values of R, G, and B output components are clipped to the range [0:255]. The equation<br />
shown in Figure 7-73 gives the 11-bit coefficients of the YCbCr to RGB color space conversion.<br />
Figure 7-73. YCbCr to RGB Registers (VIDFULLRANGE = 0)<br />
RCr<br />
GCr<br />
BCr<br />
RCb<br />
GCb<br />
BCb<br />
*<br />
Y<br />
dss-E063<br />
If the active range for the luminance samples (Y) and chrominance samples (Cb and Cr) is [0:255], the<br />
values of R, G, and B output components are clipped to the range [0:255]. The equation shown in<br />
Figure 7-74 gives the 11-bit coefficients of the YCbCr-to-RGB color space conversion.<br />
Figure 7-74. YCbCr to RGB Registers (VIDFULLRANGE = 1)<br />
Cr – 128<br />
Cb – 128<br />
Figure 7-75 describes the computation for the calculation of the R component. The same computation<br />
applies for the G and B components:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-E064<br />
1625
RY<br />
11-bit (signed)<br />
Y<br />
8-bit (unsigned)<br />
i −2<br />
–16 or 0<br />
RCb<br />
11-bit (signed)<br />
Adder<br />
20-bit (signed)<br />
Cb<br />
8-bit (unsigned)<br />
Shifted value (right by 8)<br />
12-bit (signed)<br />
Clipping to [0:255]<br />
8-bit (unsigned)<br />
R component<br />
8-bit (unsigned)<br />
RCr<br />
11-bit (signed)<br />
2<br />
( ) = ∑ ( Φ)<br />
( + ) 7<br />
i<br />
For the horizontal up/downsampling, the equation is R component with five taps):<br />
Rout n ( Ci x Rin n i )<br />
dss-E066<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.2.3.3 Hardware Cursor<br />
Figure 7-75. Color Space Conversion Macro-Architecture<br />
Cr<br />
8-bit (unsigned)<br />
–128 –128<br />
The video layer can be used to display the hardware cursor. The encoded pixel data for the cursor image<br />
are in RGB12, RGB16 or RGB24 formats and the color space conversion block is bypassed. The<br />
transparency color key can be used when a non rectangle shape is used.<br />
The alpha blending can be used to show a partial transparent cursor. When the alpha blender is enabled,<br />
the graphics layer is on top of the video layers. The cursor uses the graphics layer. The pixel alpha<br />
blending or the transparency color key can be used.<br />
7.4.2.3.4 Up-/Down-Sampling<br />
The video layer has a dedicated resizing block to upsample and downsample the video-encoded pixels.<br />
The supported input formats from memory are RGB24, RGB16, and YUV4:2:2<br />
(RGB12 and all the alpha formats like ARGB and RGBA are not supported)<br />
Users must set the right size and position of the original video before resizing for the<br />
upsampled/downsampled video to be inside the display screen boundaries.<br />
The filtering applies on each component independently R, G, and B).<br />
For the vertical up/downsampling, the equation is R component with three taps):<br />
1626 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-065<br />
(7)
1<br />
( ) = ∑ ( Φ)<br />
( ) >> 7<br />
i<br />
n ( Ci Rin n i )<br />
Rout x<br />
i = −1<br />
dss-E067<br />
2<br />
( ) = ∑ ( Φ)<br />
( ) 7<br />
<br />
For the vertical up/downsampling, the equation is R component with five taps):<br />
i<br />
Rout n ( Ci x Rin n i )<br />
i=<br />
−2<br />
Ci( Φ)<br />
dss-E069 : FIR filter coefficients<br />
Video picture<br />
Memory<br />
dss-E068<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Rout: R component output<br />
Rin: R component input (9)<br />
The pixel (n + 1) is older than pixel (n). The line (n + 1) is older than line (n).<br />
NOTE: The coefficients Ci() depend on the phase between input and output pixels.<br />
NOTE: If the 5-tap resizer is used for RGB16 and YUV4:2:2 picture formats, the width of the input<br />
picture must be a multiple of 2 pixels and more than 5 pixels:<br />
DISPC_VIDn_ATTRIBUTES[21] VIDVERTICALTAPS == 1<br />
DISPC_VIDn_PICTURE_SIZE[10:0] VIDORGSIZEX 4 and even<br />
Figure 7-76 shows an example of video upsampling.<br />
Filter Description<br />
Figure 7-76. Video Upsampling<br />
LCD panel<br />
Programmable<br />
background default<br />
color value<br />
Video window<br />
The up/downsampling filter is a poly-phase filter with five taps and eight phases for the horizontal filter and<br />
a programmable number of taps (three or five) and eight phases for vertical filter. The upsampling ratio is<br />
up to x8. The downsampling ratio using 3-tap configuration is/2. The downsampling ratio using 5-tap<br />
configuration is/4. The vertical filter is first applied to the encoded input pixel data; and then the horizontal<br />
filter is applied on the resulting pixel values to generate the output pixel values. Figure 7-77 shows the<br />
computation for the R component in the case of three coefficients (vertical filtering). The same<br />
computation applies to the G and B components.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-<strong>07</strong>0<br />
(8)<br />
1627
Coef(n – 1)<br />
8-bit (signed)<br />
R (n – 1)<br />
8-bit (unsigned)<br />
Coef(n)<br />
8-bit (unsigned)<br />
R (n)<br />
8-bit (unsigned)<br />
Adder<br />
18-bit (signed)<br />
Shifted value (right by 7)<br />
11-bit (signed)<br />
Clipping to [0:255]<br />
8-bit (unsigned)<br />
R component for pixel n<br />
8-bit (unsigned)<br />
DISPC DISPC_SIZE_LCD<br />
_ LCD _ SIZE. PPL<br />
h _ ratio <br />
DISPC _VID _ SIZE. VidSizeX<br />
DISPC _VID _ PICTURE _ SIZE. VidOrgSizeY<br />
v _ ratio <br />
DISPC _VID _ SIZE. VidSizeY<br />
v _ ration<br />
Ratio <br />
2 h _ ratio<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-77. Resampling Macro-Architecture (3-Coefficient Processing)<br />
v _ ration v _ ration 2<br />
Ratio max( , )<br />
2 h _ ratio 2 ( h _ ratio 1)<br />
If<br />
If<br />
Coef(n + 1)<br />
8-bit (signed)<br />
1 v _ ratio 2<br />
12 v _ ratio 4<br />
DISPC _VID _ PICTURE _ SIZE. VidOrgSizeX<br />
Ratio <br />
DISPC _VID _ SIZE. VidSizeX<br />
dss_swpu108-E136<br />
dss_swpu108-E135<br />
R (n + 1)<br />
8-bit (unsigned)<br />
To determine if the minimum functional clock matches the down sampling ratio and the desired Pixel<br />
clock, the following formula must be used in conjunction with Table 7-26 and Table 7-27.<br />
Ratio V when performing a vertical down-sampling only<br />
NOTE: For frequency ratio calculation on the TV output, it is correct to replace DISPC_SIZE_LCD<br />
with DISPC_SIZE_DIG.<br />
When the down-sampling ratio is below 0.5, it is not possible to use a video in full screen.<br />
Ratio H when performing a horizontal down-sampling only<br />
Ratio H+V when performing a horizontal and vertical down-sampling<br />
Ratio = max (horizontal Ratio, vertical Ratio) as previously defined.<br />
1628 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-<strong>07</strong>1
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Table 7-26. Functional Clock Frequency Requirement in RGB16 YUV4:2:2—Active Matrix <strong>Display</strong><br />
Minimum Functional Clock<br />
Horizontal Resampling<br />
(MHz) Off Up 1:1 – 1:2 1:2 – 1:3 1:3 – 1:4<br />
Vertical Off AxPCLK AxPCLK 2xPCLK 3xPCLK 4xPCLK<br />
Resamplin<br />
g<br />
Up AxPCLK AxPCLK 2xPCLK 3xPCLK 4xPCLK<br />
3-tap 1:1 to 1:2 2xPCLK 2xPCLK 4xPCLK 6xPCLK 8xPCLK<br />
5-tap 1:1 to 1:4 RatioxPCLK RatioxPCLK RatioxPCLK RatioxPCLK RatioxPCLK<br />
With A = 1 in case all the data and synchronization signals are asserted and deasserted on the rising<br />
edge of the PCLK; otherwise, A = 2.<br />
Table 7-27. Functional Clock Frequency Requirement in RGB24—Active Matrix <strong>Display</strong><br />
Minimum Functional Clock<br />
Horizontal Resampling<br />
(MHz) Off Up 1:1 – 1:2 1:2 – 1:3 1:3 – 1:4<br />
Vertical Off AxPCLK AxPCLK 2xPCLK 3xPCLK 4xPCLK<br />
Resamplin<br />
g<br />
Up AxPCLK AxPCLK 2xPCLK 3xPCLK 4xPCLK<br />
3-tap 1:1 to 1:2 2xPCLK 2xPCLK 4xPCLK 6xPCLK 8xPCLK<br />
5-tap 1:1 to 1:4 RatioxPCLK RatioxPCLK 2xRatioxPCLK 2xRatioxPCLK 2xRatioxPCLK<br />
With A = 1 in case all the data and synchronization signals are asserted and deasserted on the rising<br />
edge of the PCLK; otherwise, A = 2.<br />
Use case example:<br />
An input picture of 1024*768 is scaled to an output picture of size of 800*600 and displayed onto a LCD of<br />
resolution1280*768 at a PCLK of 74.25 MHz with a DSS functional clock of 133 MHz.<br />
In this example, a H+V down-sampling is done on the input picture. Firstly the Ratio V and H are<br />
determined and the resulting maximum value is taken to calculate the functional clock frequency required.<br />
Ratio V: h_ratio = 1.6 and v_ratio = 1.28 then Ratio = 0.4<br />
Ratio H: Ratio = 1.28<br />
Ratio H+V: Ratio = max (1.28, 0.4) = 1.28<br />
In this use case, the horizontal and vertical down sampling range are 1:1–1:2. The 3-tap or 5-tap<br />
configuration can be taken into consideration. Therefore, from Table 7-26 and Table 7-27, If in<br />
RGB16-YUV4:2:2:<br />
• 3-taps → DSS functional clock = 4 * PCLK = 297 MHz<br />
• 5-taps → DSS functional clock = Ratio * PCLK = 95.36 MHz<br />
If in RGB24,<br />
• 3-taps → DSS functional clock = 4 * PCLK = 297 MHz<br />
• 5-taps → DSS functional clock = 2 * Ratio * PCLK = 190.72 MHz<br />
In this use case, the pixel format supported is RGB16-YUV4:2:2 in a 5-tap configuration.<br />
7.4.2.4 Overlay Support<br />
CAUTION<br />
Enabling overlay optimization (setting the DSS.DISPC_CONTROL [12]<br />
OVERLAYOPTIMIZATION bit) if no overlay region effectively exists (the<br />
DSS.DISPC_VIDn_ATTRIBUTES [0] VIDENABLE bit is cleared, with n = 1, 2)<br />
leads to unpredictable behavior. The overlay optimization feature must be<br />
enabled only when an overlay area exists. Before enabling the overlay<br />
optimization, the DSS.DISPC_GFX_WINDOW_SKIP[31:0] GFXWINDOWSKIP<br />
bit field must be first set according to the video1 and graphics windows overlap.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1629
Video1<br />
Video2<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
The overlay mechanism consists of displaying more than one layer (graphics and video layers) using rules<br />
based on priority and transparency color keys.<br />
When the pixel format is ARGB or RGBA, the color key match logic uses only the RGB value defined by<br />
ARGB or RGBA. The alpha blending factor is ignored.<br />
The overlay managers are based on the same rules for priority and transparency color keys (see<br />
Figure 7-80).<br />
Each data pipeline is assigned a single overlay related to a single display controller output.<br />
The overlay manager is connected to all three outputs of the pipelines (graphics, video1 and video2). The<br />
output of the LCD overlay manger is connected to the Spatial/Temporal Dithering, and Passive Matrix<br />
units and back to the palette unit in the case of Gamma correction.<br />
7.4.2.4.1 Priority Rule<br />
The overlay manager can be configured in two distinct modes:<br />
• Alpha mode (only source color key with the graphics layer)<br />
• Normal mode (no alpha support)<br />
The following rules apply in normal mode:<br />
The video1 layer is always on top of the graphics layer. The video2 layer is always on top of the video1<br />
and graphics. The display controller reads the data for each buffer from the system memory and,<br />
depending on the transparency color key values, displays either the pixels in the video layer, the pixels in<br />
the graphics layer, or the solid background color.<br />
Each layer can have any size up to full-display screen. If there are no graphics or video-encoded pixels at<br />
a specific position, the programmable, solid background color appears (see Figure 7-82).<br />
Figure 7-78. Overlay Manager in Normal Mode<br />
Layer composition by hardware<br />
1630 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Video1<br />
Video2<br />
dss-<strong>07</strong>2
(0,0)<br />
Gfx window height<br />
y<br />
(x,y)<br />
<strong>Display</strong> width<br />
Gfx window width<br />
<strong>Display</strong><br />
Graphics<br />
Video1<br />
Video2<br />
Video1 window width<br />
Video2<br />
window<br />
width<br />
x<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
The following rules apply in alpha mode:<br />
Figure 7-79. <strong>Display</strong> Attributes in Normal Mode<br />
Video1 window<br />
Additional display attributes:<br />
height<br />
•type (STN/TFT, mono/color)<br />
•depth<br />
•background color<br />
•timings<br />
<strong>Display</strong> height<br />
Additional video/graphics attributes:<br />
•format<br />
•base address<br />
•row skip<br />
•pixel skip<br />
•transparency color key<br />
•rotation<br />
Video2<br />
window<br />
height<br />
view<br />
graphics<br />
video2<br />
video1 background layers<br />
The video2 layer is always on top of the video1 layer. The graphics layer is always on top of the video1<br />
and video2. The display controller reads the data for each buffer from the system memory and, depending<br />
on the transparency color key values, displays either the pixels in the video layer, the pixels in the<br />
graphics layer, or the solid background color.<br />
Each layer can have any size up to full-display screen. If there are no graphics or video-encoded pixels at<br />
a specific position, the programmable, solid background color appears (see Figure 7-82).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-<strong>07</strong>3<br />
1631
Gfx window height<br />
(0 ,0 )<br />
y<br />
GFX<br />
Memory<br />
Palette<br />
Video1<br />
Video2<br />
(x ,y )<br />
<strong>Display</strong> width<br />
Gfx window width<br />
Video1<br />
<strong>Display</strong><br />
Graphics<br />
<strong>Display</strong> controller boundary<br />
Layer composition by hardware<br />
Rules: graphics always on top of video2,<br />
video2 always on top of the video1,<br />
video1 always on top of the background<br />
color (when no transparency color key<br />
enabled and match)<br />
Video2<br />
Video1 window width<br />
Video2<br />
window<br />
width<br />
Register<br />
programmable background color<br />
x<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-80. Overlay Manager in Alpha Mode<br />
Video1 layer<br />
Screen<br />
Video1<br />
Video2<br />
Graphics layer<br />
(always on top of<br />
the video)<br />
Figure 7-81. <strong>Display</strong> Attributes in Alpha Mode<br />
Additional display attributes:<br />
• type (STN/TFT, mono/color)<br />
• depth<br />
• background color<br />
• timings<br />
Additional video/graphics attributes<br />
• format<br />
• base address<br />
• row increment<br />
• pixel increment<br />
• transparency color key<br />
• rotation<br />
Figure 7-82 shows the alpha blending processing in detail.<br />
Video1 window height<br />
<strong>Display</strong> height<br />
Video2<br />
window<br />
height<br />
GFX<br />
graphics<br />
video2<br />
video1<br />
view<br />
Programmable<br />
background color<br />
key (default)<br />
Video2 layer<br />
dss-163<br />
background layers<br />
1632 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-164
GFX RGB<br />
GFX<br />
absent<br />
or match<br />
Color<br />
key<br />
GFXGlobalα<br />
register<br />
x<br />
x<br />
GFXα<br />
0<br />
V2 RGB<br />
1-α<br />
DISPC_GFX_ATTRIBUTES[28]<br />
PREMULTIPLYALPHA<br />
+<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-82. Alpha Blending Macro Architecture with Pre-multiplied Alpha Support<br />
V2Globalα<br />
register<br />
x<br />
V2α<br />
x<br />
x<br />
0<br />
1-α<br />
+<br />
V2<br />
absent<br />
DISPC_VID2_ATTRIBUTES[28]<br />
PREMULTIPLYALPHA<br />
NOTE: "1-alpha" operator corresponds to the basic 1's complement operation.<br />
V1 RGB<br />
x<br />
Background<br />
color register<br />
V1<br />
absent<br />
Alpha blender<br />
The pre-multiplied alpha option is accessible through DSS.DISPC_GFX_ATTRIBUTES[28]<br />
PREMULTIPLYALPHA and DSS.DISPC_VIDn_ATTRIBUTES[28] PREMULTIPLYALPHA registers bits.<br />
The following settings are available:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-165<br />
1633
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
• PREMULTIPLYALPHA bit = '0' : Source is not pre-multiplied with alpha. Full blending is done in the<br />
DISPC.<br />
• PREMULTIPLYALPHA bit = '1' : Source is pre-multiplied with alpha. Partial blending is done.<br />
NOTE: The pre-multiplied alpha option is only valid when bit fields<br />
DSS.DISPC_GFX_ATTRIBUTES[4:1] GFXFORMAT and<br />
DSS.DISPC_VIDn_ATTRIBUTES[4:1] VIDFORMAT, respectively, are set to ARGB or RGBA<br />
formats. Otherwise, the PREMULTIPLYALPHA bit fields are ignored by the hardware.<br />
The alpha blending value is defined by the pixel value (ARGB or RGBA formats). A global alpha blending<br />
value can be defined and used in combination with the pixel alpha blending value. If the pixel format<br />
contains no alpha blending value, the pixel alpha value is considered to be 0xFF.<br />
In case of ARGB-444, the alpha blending is defined using a 4-bit value. It is converted into an 8-bit value<br />
by duplicating the 4-bit value. Table 7-28 details the alpha blending 4-bit values and the corresponding<br />
blending percentage.<br />
Table 7-28. Alpha Blending 4-Bit Values<br />
Alpha Blending 4-Bit Value (ARGB-444) Alpha Blending 8-Bit Value % Blending<br />
(Converted Value)<br />
0x0 0x00 100% (transparent)<br />
0x1 0x11 93.33%<br />
0x2 0x22 86.6%<br />
... ... ...<br />
0xE 0xEE 6.6%<br />
0xF 0xFF 0% (opaque)<br />
7.4.2.4.2 Transparency Color Keys<br />
7.4.2.4.2.1 Normal Mode<br />
This section describes the features available in normal mode.<br />
The two transparency color keys are the video source transparency color key and the graphics destination<br />
transparency color key. The encoded pixel color value is compared to the transparency color key. For<br />
CLUT bitmaps, the palette index is compared to the transparency color key and not to the palette value<br />
pointed out by the palette index.<br />
NOTE: The video source transparency color key and graphics destination transparency color key<br />
cannot be active at the same time.<br />
• Video source transparency color key value:<br />
The video source transparency color key value defines the encoded pixel data considered as the<br />
transparent pixel. The encoded pixel values with the source color key value are pixels not visible on<br />
the screen, and the underlayer encoded pixel values or solid background color are visible.<br />
The video source transparency color key can be used only if the color space conversion and the<br />
up/down-scaling modules are disabled. The format of the data is RGB 16. (This feature handles the<br />
hardware cursor displayed by one of the video layers.)<br />
To enable the video source transparency color key, set to 0x1 the DSS.DISPC_CONFIG[11]<br />
TCKLCDSELECTION bit for LCD output or the DSS.DISPC_CONFIG[13] TCKDIGSELECTION bit for<br />
digital output. Program the DSS.DISPC_CONFIG[10] TCKLCDENABLE bit (LCD output) or the<br />
DSS.DISPC_CONFIG[12] TCKDIGENABLE bit (digital output) to enable or disable the transparency<br />
color key.<br />
An example is shown in Figure 7-83: The video source transparency is applied on video1 (VID1) and<br />
video2 (VID2) layers. The pixels with the transparency color key are not displayed; instead, underlying<br />
layers are shown.<br />
1634 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-83. Video Source Transparency Example<br />
GFX VID1 VID2<br />
Transparency color key<br />
• Graphics destination transparency color key value:<br />
The graphics destination transparency color key value defines the encoded pixels in the video layers to<br />
be displayed. The encoded pixel values with the destination color key value are pixels not visible on<br />
the screen and the pixels different from the transparency color key are displayed over the video layers.<br />
The destination transparency color key is applicable only in the graphics region when graphics and<br />
video overlap; otherwise, the destination transparency color key is ignored.<br />
To enable the graphics destination transparency color key, set to 0x0 the DSS.DISPC_CONFIG[11]<br />
TCKLCDSELECTION bit for LCD output or the DSS.DISPC_CONFIG[13] TCKDIGSELECTION bit for<br />
digital output. Program the DSS.DISPC_CONFIG[10] TCKLCDENABLE bit (LCD output) or the<br />
DSS.DISPC_CONFIG[12] TCKDIGENABLE bit (digital output) to enable or disable the transparency<br />
color key.<br />
An example is shown in Figure 7-84: The destination transparency is applied on graphics (GFX) layer<br />
and the pixels without the transparency color key are displayed over the overlying layers.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-<strong>07</strong>4<br />
1635
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.2.4.2.2 Alpha Mode<br />
Figure 7-84. Graphics Destination Transparency Example<br />
GFX VID1 VID2<br />
This section describes the features available in alpha mode.<br />
Transparency color key<br />
Only the graphics source transparency color key is available The encoded graphics pixel color value is<br />
compared to the transparency color key. The encoded pixel values with the source transparency key are<br />
not visible and the under-layer encoded pixel values or solid background color are visible. To enable the<br />
graphics source transparency color key, set to 0x0 the DSS.DISPC_CONFIG[11] TCKLCDSELECTION bit<br />
for LCD output or the DSS.DISPC_CONFIG[13] TCKDIGSELECTION bit for digital output. Program the<br />
DSS.DISPC_CONFIG[10] TCKLCDENABLE bit (LCD output) or the DSS.DISPC_CONFIG[12]<br />
TCKDIGENABLE bit (digital output) to enable or disable the transparency color key. In the case of CLUT<br />
bit maps, the palette index is compared to the transparency color key and not the palette value pointed out<br />
by the palette index.<br />
7.4.2.4.3 Overlay Optimization (Only Available in Normal Mode)<br />
The display controller can be configured to take advantage of the fact that the graphics pixels under video<br />
window 1 are not visible when the transparency color key is not used. The optimization can be selected to<br />
reduce the bandwidth used to fetch the pixels for graphics. The color key must be disabled. The graphics<br />
pixels under the video window 1 are not fetched from system memory. At least the video window 1 and<br />
the graphics window must be enabled. The following graphic formats are supported: RGB (RGB16 and<br />
RGB24 packed and unpacked), YUV4:2:2, and BITMAP 8. The formats BITMAP 1, 2, and 4 are not<br />
supported. The video format can be RGB (RGB16, RGB24 packed and unpacked, and YUV4:2:2 formats).<br />
The DMA engine does not fetch the unnecessary graphics pixels to avoid extra bandwidth use. Only<br />
visible pixels from graphics and video buffers in system memory are fetched and displayed by the display<br />
controller.<br />
7.4.2.5 Active/Passive Matrix <strong>Display</strong> Data Path<br />
For active matrix display data path, the following blocks are serial and each of them can be bypassed:<br />
• Color phase rotation<br />
• Spatial/temporal dithering<br />
• Multiple cycle data format<br />
For passive matrix display data path, the following blocks are serial and each of them can be bypassed:<br />
• Color phase rotation<br />
1636 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-<strong>07</strong>5
RR<br />
10-bit signed<br />
coefficient<br />
Rout<br />
<br />
<br />
Gout<br />
<br />
<br />
<br />
Bout<br />
R<br />
8-bit<br />
unsigned<br />
1<br />
256<br />
RR<br />
<br />
*<br />
<br />
<br />
<br />
GR<br />
<br />
<br />
<br />
BR<br />
RG<br />
10-bit signed<br />
coefficient<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Spatial/temporal dithering<br />
• Passive matrix technology<br />
7.4.2.5.1 Color Phase Rotation<br />
The Color Phase Rotation (CPR) can be used to correct the LCD output colorimetry in case of non pure<br />
white backlight.<br />
The color phase rotation can be selected for passive matrix and active matrix panel. The logic is<br />
integrated after the LCD overlay manager or the palette while using the gamma correction and before the<br />
spatial/temporal dithering. The color phase rotation can be selected to correct the nonpure white backlight<br />
of the LCD module by using a programmable matrix to convert the 24-bit RGB pixel value into a new<br />
24-bit RGB pixel value. The matrix is programmed through a set of nine 10-bit signed coefficients. The<br />
output of the calculation is clipped to [0:255]. The color phase rotation is processed by the equation shown<br />
in Figure 7-85.<br />
Figure 7-85. Color Phase Rotation Matrix<br />
RG<br />
GG<br />
BG<br />
Figure 7-86 shows the color phase rotation macro-architecture.<br />
7.4.2.5.1.1 Spatial/Temporal Dithering<br />
Adder<br />
20-bit (signed)<br />
G<br />
8-bit<br />
unsigned<br />
Shifted value (right by 8)<br />
12-bit (signed)<br />
Clipping to [0:255]<br />
8-bit (unsigned)<br />
R component<br />
8-bit (unsigned)<br />
RB<br />
Rin<br />
<br />
<br />
<br />
GB<br />
<br />
<br />
*<br />
<br />
Gin<br />
<br />
<br />
BB<br />
<br />
<br />
Bin<br />
<br />
dss-E<strong>07</strong>6<br />
Figure 7-86. Color Phase Rotation Macro Architecture<br />
RB<br />
10-bit signed<br />
coefficient<br />
B<br />
8-bit<br />
unsigned<br />
The spatial/temporal dithering logic can be selected for passive matrix and active matrix panel. The<br />
dithering logic is integrated after the color phase rotation and before the TDM and passive matrix units.<br />
The spatial/temporal dithering logic can be selected to enhance the quality of the passive matrix and<br />
active matrix outputs. The dithering logic can process the pixels over a single frame, two frames, or four<br />
frames. In the case of a single frame, only spatial processing is applied. In the case of multiple frames,<br />
spatial and temporal processing is applied to the pixels.<br />
• Passive Matrix Technology: The passive matrix display dithering logic path is used. The<br />
spatial/temporal dithering logic can be selected. When selected, the pixels are preprocessed by the<br />
spatial/temporal dithering logic before the passive matrix display dithering logic. The output format of<br />
the spatial/temporal dithering logic is RGB 12-bit (not configurable).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-<strong>07</strong>7<br />
1637
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
• Active Matrix Technology: The encoded pixel values are used by spatial/temporal dithering logic to<br />
display the data in a lower color depth on the LCD panel. The spatial/temporal dithering algorithm is<br />
based on the (x,y) pixel position, the value of removed bits and the frame number. The picture quality<br />
is improved when enabling the spatial/temporal dithering logic. When spatial/temporal dithering is not<br />
enabled, the three MSBs of the pixel color components are output on the interface data bus if the<br />
interface data bus is smaller than the pixel format size. If the interface data bus is wider than the pixel<br />
format size, by programming the pixel components replication active/inactive, the MSB is replicated to<br />
the LSB of the interface data bus or the LSB is filled with 0s.<br />
7.4.2.5.2 Passive Matrix <strong>Display</strong> Dithering Logic<br />
• Passive matrix technology<br />
After the graphics data are merged with the video data from the video layers depending on the<br />
transparency status, the result is sent to the color/grayscale space-/time-based dither generator. The<br />
monochrome data and each RGB color component are encoded on 4 bits, which are the 4 MSBs of<br />
the pixel-encoded component 8-bit value defined by the merge of the graphics data and the video data.<br />
These 4-bit values are used to select on the 16 intensity levels. The gray/color intensity is controlled by<br />
turning individual pixels on and off at varying period rates, making the average time the pixel is off<br />
longer than the average time the pixel is on, thus producing more intense grays/colors. The dithering<br />
generator also uses the intensity of adjacent pixels in the calculation to give the screen image a<br />
smooth appearance. The proprietary dither algorithm is optimized to provide a range of intensity values<br />
that matches the visual perception of color/gray graduations.<br />
• Active matrix technology<br />
The passive matrix dithering logic is always bypassed in active displays.<br />
NOTE: If the interface data bus is smaller than the pixel format size, dithering logic can be enabled.<br />
If the interface data bus is wider than the pixel format size, the dithering logic cannot be<br />
enabled and replication feature can be used.<br />
7.4.2.5.3 Passive Matrix <strong>Display</strong> Output FIFO<br />
• Passive matrix technology<br />
The display controller contains a 2-entry by 8-bit-wide output FIFO used to store pixel data before it is<br />
driven out to the LCD pins. Each time a modulated pixel value is output from the dither generator, it is<br />
placed into a serial shifter. The shifter can be configured to be 4 or 8 bits wide. Single-panel<br />
monochrome screens use either four or eight data lines; single-panel color screens use eight data<br />
pins.<br />
• Active matrix technology<br />
The output FIFO is bypassed in active matrix mode.<br />
7.4.2.5.4 Multiple Cycle Output Format<br />
The pixels after the active matrix display processing are formatted on one or multiple cycles (from one to<br />
three cycles). The interface width can be 8-, 9-, 12-, or 16-bit. On three cycles, two pixels can concatenate<br />
and send to the panel. When the TDM is disabled, the display controller outputs the pixels using the<br />
conventional formats: Passive matrix display/active matrix display monochrome/color.<br />
The following example shows an output configuration based on the interface width (8-bit) and the pixel<br />
format output (24-bit) (also see Table 7-29):<br />
• The DSS.DISPC_CONTROL[24:23] TDMCYCLEFORMAT bit field is set to 0x2 (three cycles for one<br />
pixel).<br />
• The DSS.DISPC_DATA_CYCLEk (k=0) register is set to 0x00000008 (8 bits from pixel 1 for the first<br />
cycle).<br />
• The DSS.DISPC_DATA_CYCLEk (k=1) register is set to 0x00000008 (8 bits from pixel 1 for the<br />
second cycle).<br />
• The DSS.DISPC_DATA_CYCLEk (k=2) register is set to 0x00000008 (8 bits from pixel 1 for the third<br />
cycle).<br />
1638 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Table 7-29. 8-Bit Interface Configuration/24-Bit Mode<br />
24-Bit Mode<br />
1st Cycle 2nd Cycle 3rd Cycle<br />
Data[7] R0[7] G0[7] B0[7]<br />
Data[6] R0[6] G0[6] B0[6]<br />
Data[5] R0[5] G0[5] B0[5]<br />
Data[4] R0[4] G0[4] B0[4]<br />
Data[3] R0[3] G0[3] B0[3]<br />
Data[2] R0[2] G0[2] B0[2]<br />
Data[1] R0[1] G0[1] B0[1]<br />
Data[0] R0[0] G0[0] B0[0]<br />
7.4.2.6 Video Line Buffer<br />
The line buffer size is 1024 x 24-bit. There are six line buffers (1024 x 24-bit) that can be merged into<br />
three lines (2048 x 24-bit). Table 7-30 lists the maximum width depending on the TAP configuration and<br />
the pixel format.<br />
Table 7-30. Maximum Width Allowed<br />
Vertical Tap Pixel Format Maximum Width (Pixels)<br />
3 RGB16 2048<br />
RGB24<br />
YUV4:2:2<br />
5 RGB16 1024<br />
7.4.2.7 Synchronized Buffer Update<br />
RGB24<br />
YUV4:2:2<br />
A synchronization mismatch between the frame buffer and the display refreshes, named tearing effect,<br />
can lead to images that appear to be stretched on the screen. To avoid this, a synchronization mechanism<br />
is needed between the display controller and the process that updates the buffer. An interrupt is generated<br />
when the display reaches a predefined line number. This PROGRAMMEDLINENUMBER interrupt is a<br />
level signal and stays active during the programmed line of the display.<br />
7.4.2.8 Rotation<br />
In case of SDRAM buffer, the display controller accesses the encoded pixels in burst, always considering<br />
the consecutive data in memory. The rotation engine (VRFB) in the SDRAM scheduler (SDRC) is in<br />
charge of translating the addresses from virtual to physical SDRAM addresses (see <strong>Chapter</strong> 10, Memory<br />
<strong>Subsystem</strong>).<br />
Rotation using the SMS-VRFB rotation engine is supported for BITMAP8, RGB12 (16-bit container),<br />
ARGB16, RGB16, RGB24 (using 32-bit container), ARGB32, RGBA32, and YUV4:2:2 (YUV2 and YUYV).<br />
The BITMAP1, BITMAP2, BITMAP4, and RGB24 (using 24-bit container) formats are not supported.<br />
NOTE: For good performance in the L3 interconnect and for SDRAM efficiency, it is highly<br />
recommended to use the VRFB rotation engine when possible and not the display<br />
subsystem DMA engine to rotate the frame buffer.<br />
A VID DMA optimization is available to optimize the memory traffic (DDR memory) when 90- and<br />
270-degree rotation is required. This optimization consists of reconstructing the RGB16 and YUV line<br />
pixels using the cache capability of the DISPC scaler line buffers.<br />
The pixel formats that can take advantage of the reduction in memory traffic are:<br />
• YUV4:2:2<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1639
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
• RGB16 (no reduction is possible for RGB24 packed and unpacked formats)<br />
The benefits of the video DMA optimization, when the feature is enabled, are:<br />
• The L3 interconnect traffic is reduced by a factor of 2x (only for YUV4:2:2 pixel format)<br />
• The DDR memory traffic is reduced by a factor of 2x (for YUV4:2:2 and RGB16 pixel formats)<br />
For more information about the configuration settings for video DMA optimization, see Section 7.5.3.4.5,<br />
Video DMA Optimization.<br />
NOTE: The DMA optimization feature must be used only for YUV and RGB16 formats when 90- or<br />
270-degree rotation is required. In all other configurations, the<br />
DISPC_VIDn_ATTRIBUTES[20] VIDDMAOPTIMIZATION bit must be kept at reset value<br />
(0x0).<br />
7.4.2.9 Multiple Buffer Support<br />
Users update the base address of the buffer when the update of the working buffer has finished and is<br />
ready to be displayed. The register that contains the base address of the buffer is a shadow register that<br />
is read by the hardware at the next Vertical Front Porch (VFP).<br />
7.4.3 DSI Protocol Engine Functionalities<br />
NOTE: Copyright ©2005-2008 MIPI Alliance, Inc. All rights reserved. MIPI Alliance Member<br />
Confidential.<br />
The DSI protocol engine integrates DSI interface to the display through the DSI DSI_PHY module, L4<br />
interconnect interface and video interface from the display controller. The DSI DSI_PHY or complex I/O<br />
module is detailed in Section 7.4.5. The DSI transmitter (protocol engine + PHY) port can be connected to<br />
multiple displays using a single DSI host port. The DSI protocol engine controls the DSI PLL control<br />
module detailed in Section 7.4.4. The DSI transmitter port can be used in video mode or/and command<br />
mode.<br />
7.4.3.1 DSI Protocol Architecture<br />
The DSI protocol engine receives data from the video port and/or the L4 interconnect slave port,<br />
encapsulates them with the VC ID, generates the ECC and check-sum, and splits the data into byte<br />
stream to the DSI_PHY to be sent using the low-speed (LS) or high-speed (HS) protocol. The DSI protocol<br />
engine receives data and acknowledge from the display using the same DSI link in case of bidirectional<br />
display. Multiple data streams can be interleaved to support multiple panels connected to the same host<br />
DSI port. Figure 7-87 details the DSI protocol engine architecture.<br />
1640 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Video interface<br />
(data [23:0], HS, VS, CLK,<br />
PCLK, DE)<br />
Interface<br />
protocol<br />
STALL<br />
FIFO<br />
Data<br />
handler<br />
Data<br />
handler<br />
DSI protocol engine<br />
Low– level protocol<br />
Registers - control logic<br />
OCP<br />
slave<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-87. DSI Protocol Engine<br />
SINTERRUPT<br />
Lane splitter<br />
DMA_Req[3:0]<br />
CTRL<br />
PPI<br />
Serializer<br />
Serializer<br />
Clock<br />
DSI_PHY<br />
DSI complex I/O<br />
Lane 1<br />
Lane 2<br />
DDR clock<br />
NOTE: The order of the PHY pairs (clock and data lanes) is informative. Each PHY pair can be<br />
Clock or Data. The DSI complex I/O receives the configuration for pin order and the<br />
differential +/- in a pair from the settings in DSS.DSI_COMPLEXIO_CFG1 register.<br />
DSI_PHY<br />
The DSI serial interface is a bidirectional differential serial interface with data/clock for the physical layer<br />
(configured in unidirectional link in case the display module is only unidirectional). The maximum DSI data<br />
transfer capacity is 900 Mbps per channel. The speed of the link can be software configured only when<br />
the DSI_PHY is in stop state or in ULPS.<br />
Figure 7-88 shows the DSI transmitter/receiver high-level data flow.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-166<br />
1641
DSI<br />
protocol<br />
engine<br />
DSI_PHY<br />
Transmitter Receiver<br />
Application<br />
Video mode data stream of 16,18,<br />
Application<br />
Pixel Control or 24 bits<br />
Command mode stream<br />
Pixel Control<br />
Pixel Control<br />
Pixel to byte<br />
Data formats<br />
Pixel<br />
Control<br />
Byte to pixel<br />
packing formats<br />
unpacking formats<br />
Data Control Data Control<br />
8 bits 8 bits<br />
Data Control Data<br />
Low– level protocol<br />
Data Control<br />
8 bits<br />
Lane management<br />
layer<br />
N * 8 bits<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.3.2 Clock Requirements<br />
Figure 7-88. DSI Transmitter/Receiver Data Flow<br />
Packet-based protocol<br />
Arbitrary data support<br />
Lane distribution/lane merging<br />
Low– level protocol<br />
Lane management<br />
layer<br />
Data Control<br />
Generation/detection of packet start<br />
and stop signaling<br />
Data Control<br />
PHY layer<br />
Serializer/deserializer<br />
Clock generation/recovery (DDR)<br />
Electrical layer<br />
PHY layer<br />
High-speed unidirectional clock<br />
Lane 0 – High-speed data (optionally bidirectional in LP mode)<br />
Lane 1 – High-speed unidirectional data<br />
Lane N – High-speed unidirectional data<br />
Data Control<br />
8 bits<br />
N * 8 bits<br />
Control<br />
The serial clock generated by the DSI host and sent to the display can be a continuous clock. The clock<br />
lane supports clock transmission even there is no data to send for displays that require continuous clock.<br />
It is software programmed through the DSS.DSI_CLK_CTRL[13] DDR_CLK_ALWAYS_ON bit: This bit<br />
can be programmed only when the interface is disabled (that is, DSS.DSI_CTRL[0] IF_EN bit set to 0).<br />
The peripheral can use two different kinds of clocks. The first one is the DDR clock provided on the clock<br />
lane. The second clock is some transitions on the data lane 1 even if there is no valid data to send using<br />
low power mode.<br />
The LP clock (TxClkEsc) frequency provided to the DSI complex I/O is in the range of 67% to 150% of the<br />
peripheral Low-Power (LP) clock frequency. It is generated internally by the DSI protocol engine module<br />
using the DSI functional clock. The DSI functional clock is divided by 1, 2, 3, up to 8191 using the value<br />
programmed in the DSS.DSI_CLK_CTRL[12:0] LP_CLK_DIVISOR bit field. The LP clock generated from<br />
DSI functional clock must be in the range of 20 MHz down to 32 KHz. The duty cycle must be 50/50<br />
(tolerance of 45/55 for maximum value). LP clock frequency visible on the pads (DP xor DN) is half the<br />
frequency of TxClkEsc.<br />
The DSS.DSI_CLK_CTRL[20 ] LP_CLK_ENABLE bit is used to enable or disable the clock. When<br />
disabled, the value of DSS.DSI_CLK_CTRL[12:0] LP_CLK_DIVISOR bit field is ignored and does not<br />
have to be programmed by software users.<br />
1642 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-167
CLK REQUEST<br />
CLK READY<br />
DATA REQUEST<br />
DATA READY<br />
CLK LANE<br />
CLK STATE<br />
LP<br />
DATA LANE<br />
DATA STATE<br />
ENTER<br />
HS<br />
ZERO<br />
LP<br />
T LPX TCLK-PREPARE T CLK-ZERO<br />
DDR_CLK_PRE<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.3.2.1 Timing Parameters for an LP to HS Transaction<br />
Figure 7-89 shows the timing requirement when switching the data and clock lane state from LP to HS.<br />
Table 7-31 lists the LP to HS timing parameters.<br />
Figure 7-89. LP to HS Timing<br />
CLK<br />
ON<br />
T CLK-PRE T LPX THS-PREPARE<br />
Table 7-31. LP to HS Timing Parameters<br />
ENTER<br />
HS<br />
ENTER_HS_MODE_LATENCY<br />
ZERO<br />
T HS-ZERO<br />
HS<br />
PACKET<br />
Registers/Associated Bit<br />
Timing Description Register Settings Timing Seen on the Line<br />
Fields<br />
Length of any CEIL (2 *<br />
DSI_PHY_REGISTER1[20:16] CEIL (25 ns /<br />
TLPX low-power state REG_TLPXBY2/4) * 4 *<br />
REG_TLPXBY2 DDR_Clock_Period)<br />
period DDR_Clock_Period<br />
T CLK-PREPARE<br />
T CLK-ZERO<br />
The value set in this bit field is<br />
half of the T LPX<br />
Time to drive the CLK<br />
lane to LP-00 state, to DSI_PHY_REGISTER2[7:0] CEIL (65 ns /<br />
prepare for HS clock<br />
transmission<br />
REG_TCLKPREPARE DDR_Clock_Period)<br />
Time to drive the CLK<br />
lane to HS-0 state, DSI_PHY_REGISTER1[7:0] CEIL (265 ns /<br />
before starting the<br />
clock<br />
REG_TCLKZERO DDR_Clock_Period)<br />
dss-325<br />
REG_TCLKPREPARE *<br />
DDR_Clock_Period + (~–<br />
25 ns – +5 ns)<br />
{CEIL [(REG_TCLKZERO<br />
+ 3)/4] * 4 + CEIL<br />
(REG_TCLKPREPARE/4)<br />
* 4 –<br />
REG_TCLKPREPARE +<br />
2} * DDR_Clock_Period +<br />
(~ 0 ns – +5 ns)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1643
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Table 7-31. LP to HS Timing Parameters (continued)<br />
Registers/Associated Bit<br />
Timing Description Register Settings Timing Seen on the Line<br />
Fields<br />
TCLK-PRE Time that the HS<br />
clock must be driven<br />
before any associated<br />
data lane begins the<br />
transition from LP to<br />
HS mode<br />
N/A N/A<br />
DDR_CLK_PRE - TLPX -<br />
TCLK-PREPARE - TCLK-ZERO T HS-PREPARE<br />
T HS-ZERO + T HS-PREPARE<br />
Time to drive the data<br />
lane to LP-00 state, to DSI_PHY_REGISTER0[31:24] CEIL (70 ns /<br />
prepare for HS packet<br />
transmission<br />
REG_THSPREPARE DDR_Clock_Period) + 2<br />
REG_THSPREPARE *<br />
DDR_Clock_Period +<br />
(–26.5 ns – +4 ns)<br />
THS-ZERO: Time to drive<br />
{CEIL [(N + 3)/4] * 4 +<br />
the data lane to HS-0<br />
DSI_PHY_REGISTER0[23:16] CEIL (175 ns / CEIL (M/4) * 4 + 3} *<br />
state before the<br />
REG_THSPRPR_THSZERO DDR_Clock_Period) + 2 DDR_Clock_Period + (~ –<br />
synchronous<br />
29 ns – 0 ns).<br />
sequence<br />
DDR_CLK_PRE<br />
Time between the<br />
CLK lane request<br />
assertion and the<br />
data request assertion<br />
DSI_CLK_TIMING[15:8]<br />
DDR_CLK_PRE<br />
CEIL [(TLPX + TCLK-PREPARE + TCLK-ZERO + TCLK-PRE) /<br />
TxByteClkHS] (1)(2)<br />
to switch the data<br />
lanes to HS<br />
ENTER_HS_MODE_ Time to enter data<br />
LATENCY (3) lane into HS mode<br />
DSI_VM_TIMING7[31:16] CEIL [(TLPX + THS-PREPARE +<br />
ENTER_HS_MODE_LATENC THS-ZERO) / TxByteClkHS]<br />
(1)<br />
Y<br />
Where<br />
N =<br />
REG_THSPREPARE_TH<br />
SZERO –<br />
REG_THSPREPARE<br />
M = REG_THSPREPARE<br />
(1) The timings seen on the line should be used to determine the register value.<br />
(2) See the MIPI D-PHY specification for the TCLK-PRE value.<br />
(3) ENTER_HS_MODE_LATENCY timing applies only to video mode. It does not need to be programmed in command mode.<br />
In the example in Table 7-32, the DDR clock = 400 MHz; TxByteClkHS = 100 MHz.<br />
Table 7-32. LP to HS Timing Parameters Example for 400-MHz DDR Clock<br />
Default Register Settings<br />
Timing Registers/Associated Bit Fields Timing Seen on the Line<br />
(Programmed at Reset)<br />
DSI_PHY_REGISTER1[20:16]<br />
T LPX 10 50 ns<br />
REG_TLPXBY2<br />
DSI_PHY_REGISTER2[7:0]<br />
T CLK-PREPARE 26 40–70 ns<br />
REG_TCLKPREPARE<br />
DSI_PHY_REGISTER1[7:0]<br />
T CLK-ZERO 106 280–285 ns<br />
REG_TCLKZERO<br />
T CLK-PRE (1)<br />
N/A N/A 80 ns<br />
DSI_PHY_REGISTER0[31:24]<br />
T HS-PREPARE 30 48.5–79 ns<br />
REG_THSPREPARE<br />
DSI_PHY_REGISTER0[23:16]<br />
T HS-ZERO 72 178.5–2<strong>07</strong>.5 ns<br />
REG_THSPRPR_THSZERO<br />
DSI_CLK_TIMING[15:8]<br />
DDR_CLK_PRE 45–49 (2) 450–490 ns<br />
DDR_CLK_PRE<br />
ENTER_HS_MODE_ DSI_VM_TIMING7[31:16]<br />
24 * TxByteClkHS or 112 *<br />
DDR_CLOCK<br />
LATENCY ENTER_HS_MODE_LATENCY 34 * TxByteClkHS or 136 *<br />
DDR_CLOCK (2)<br />
(1) See the MIPI D-PHY specification for the TCLK-PRE value.<br />
(2) The register setting is calculated based on the values in the Timing Seen on the Line column.<br />
277–336.5 ns<br />
1644 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
CLK REQUEST<br />
CLK READY<br />
DATA REQUEST<br />
DATA READY<br />
CLK SIGNAL<br />
CLK LANE<br />
DATA LANE<br />
DATA STATE<br />
HS<br />
PACKET<br />
EoT<br />
T HS-EOT<br />
if enable<br />
TRAIL<br />
EXIT<br />
HS<br />
T HS-TRAIL<br />
CLK<br />
ON<br />
T HS-EXIT<br />
EXIT_HS_MODE_LATENCY<br />
DDR_CLK_POST<br />
T CLK-POST<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.3.2.2 Timing Parameters for an HS to LP Transaction<br />
Figure 7-90 shows the timing requirement when switching the state of the data and clock lanes from HS to<br />
LP. Table 7-33 lists the HS to LP timing parameters.<br />
Figure 7-90. HS to LP Timing<br />
TRAIL<br />
EXIT<br />
HS<br />
LP<br />
T CLK-TRAIL<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
LP<br />
T HS-EXIT<br />
ENTER<br />
HS<br />
dss-326<br />
1645
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Table 7-33. HS to LP Timing Parameters<br />
Registers/Associated Bit<br />
Timing Description Register Settings Timing Seen on the Line<br />
Fields<br />
If EoT is enabled, a<br />
delay is added to<br />
EXIT_HS_MODE_LAT<br />
T HS-EOT ENCY to send the EoT N/A N/A<br />
T HS-TRAIL<br />
T HS-EXIT<br />
packet. The EoT period<br />
depends on the<br />
number of data lanes.<br />
Thus:<br />
DIVROUNDUP (4,<br />
NB_DATA_LANES)<br />
One data lane = Four<br />
DDR clocks<br />
Two data lanes = Two<br />
DDR clocks<br />
Time to drive flipped<br />
{CEIL [(REG_THSTRAIL<br />
differential state after<br />
DSI_PHY_REGISTER0[15:8] CEIL (60 ns / + 3)/4] * 4 – 2.75} *<br />
last payload data bit of<br />
REG_THSTRAIL DDR_Clock_Period) + 5 DDR_Clock_Period + (~ 0<br />
an HS transmission<br />
ns– 5 ns)<br />
burst<br />
[CEIL (REG_THSEXIT/4)<br />
Time to drive data lane<br />
DSI_PHY_REGISTER0[7:0] CEIL (145 ns / * 4] *<br />
to LP-11 state, after HS<br />
REG_THSEXIT DDR_Clock_Period) DDR_Clock_Period – (~ 3<br />
burst<br />
ns– 45 ns)<br />
Time that the<br />
transmitter must<br />
continue sending HS<br />
T CLK-POST clock after the last N/A N/A<br />
T CLK-TRAIL<br />
associated data lane<br />
has transitioned to LP<br />
mode<br />
DDR_CLK_POST –<br />
(1) THS-EOT – THS-TRAIL<br />
Time to drive HS<br />
{CEIL [(REG_TCLKTRAIL<br />
differential state after<br />
DSI_PHY_REGISTER1[15:8] CEIL (60 ns / + 3)/4] * 4 – 1.5} *<br />
last payload clock bit of<br />
REG_TCLKTRAIL DDR_Clock_Period) + 2 DDR_Clock_Period + (~ 0<br />
a HS transmission<br />
ns–5 ns)<br />
burst<br />
DDR_CLK_POST<br />
Time between the data<br />
lane request<br />
deassertion and the<br />
CLK request<br />
deassertion to switch<br />
the data lanes into LP DSI_CLK_TIMING[7:0]<br />
(1)<br />
CEIL [(THS-TRAIL + THS-EOT + TCLK-POST) /<br />
mode. The DDR_CLK_POST<br />
DDR_CLK_POST<br />
value must follow the<br />
rule: DDR_CLK_POST<br />
≥ T HS-TRAIL + T HS-EOT +<br />
T CLK-POST<br />
TxByteClkHS] (2)(3)<br />
CEIL [(THS-TRAIL + THS-EXIT +<br />
EXIT_HS_MODE_ DSI_VM_TIMING7[15:0]<br />
(1)<br />
Time to exit HS mode THS-EOT ) / TxByteClkHS]<br />
LATENCY (4) EXIT_HS_MODE_LATENCY (2)<br />
(1) If T HS-EOT is enabled<br />
(2) The timings seen on the line should be used to determine the register value.<br />
(3) See the MIPI D-PHY specification for the TCLK-POST value.<br />
(4) EXIT_HS_MODE_LATENCY timing applies only to video mode. It does not need to be programmed in command mode.<br />
In the example in Table 7-34, the DDR clock = 400 MHz; TxByteClkHS = 100 MHz; two data lanes.<br />
Table 7-34. HS to LP Timing Parameters Example for 400-MHz DDR Clock and Two Data Lanes<br />
Timing Seen on the<br />
Registers/Associated Bit Default Register Settings Timing Seen on the Line<br />
Timing Line<br />
Fields (Programmed at Reset) (THS-EOT Enabled)<br />
(THS-EOT Disabled)<br />
T HS-EOT N/A N/A 5 ns N/A<br />
1646 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Table 7-34. HS to LP Timing Parameters Example for 400-MHz DDR Clock and Two Data Lanes<br />
(continued)<br />
Timing Seen on the<br />
Registers/Associated Bit Default Register Settings Timing Seen on the Line<br />
Timing Line<br />
Fields (Programmed at Reset) (THS-EOT Enabled)<br />
(THS-EOT Disabled)<br />
DSI_PHY_REGISTER0[15:8]<br />
T HS-TRAIL 29 73.125–78.125 ns 73.125–78.125 ns<br />
REG_THSTRAIL<br />
DSI_PHY_REGISTER0[7:0]<br />
T HS-EXIT 58 105–147 ns 105–147 ns<br />
REG_THSEXIT<br />
T CLK-POST (1) N/A N/A 585 ns 580 ns<br />
DSI_PHY_REGISTER1[15:8]<br />
T CLK-TRAIL 26 76.25–81.25 ns 76.25–81.25 ns<br />
REG_TCLKTRAIL<br />
DDR_CLK_POST<br />
DSI_CLK_TIMING[7:0]<br />
DDR_CLK_POST<br />
66 * TxByteClkHS or 264 *<br />
DDR_CLOCK –<br />
67 * TxByteClkHS or 268 *<br />
DDR_CLOCK<br />
658.125–663.125 ns 653.125–658.125 ns<br />
(2)<br />
EXIT_HS_MODE_ DSI_VM_TIMING7[15:0]<br />
19 * TxByteClkHS or 76 *<br />
DDR_CLOCK –<br />
LATENCY EXIT_HS_MODE_LATENCY 24 * TxByteClkHS or 96 *<br />
DDR_CLOCK (2)<br />
183.125–230.125 ns 178.125–225.125 ns<br />
(1) See the MIPI D-PHY specification.<br />
(2) The register setting is calculated based on the values in the Timing Seen on the Line (THS-EOT Enabled) column.<br />
7.4.3.2.3 Extra LP Transitions<br />
Some DSI receivers require extra clock cycles in LP mode to process the data. The DSI protocol engine<br />
can be programmed to send automatically one NULL long packet. It applies only when no more data are<br />
ready to be sent from the internal FIFO to the peripheral on the last low speed transfer. The same value is<br />
used for all the VCs sending packets in low speed mode.<br />
The size of the payload is defined by the DSS.DSI_CLK_CTRL[17:16] LP_CLK_NULL_PACKET_SIZE bit<br />
field. The header value depends on the VC ID and the size of the payload as detailed in Table 7-35 and<br />
Table 7-36.<br />
Table 7-35. Extra NULL Packet Header<br />
Virtual Payload size Header Header (2nd Byte): WC Header (3rd Byte): WC Header (ECC)<br />
Channel ID (DSI_CLK_CTRL[17:16] (1st Byte) LSB MSB<br />
LP_CLK_NULL_PACKE<br />
T_SIZE)<br />
0 0x0 0x9<br />
0x0 1 0x9 0x1 0x13<br />
2 0x2 0x2F<br />
3 0x3 0x35<br />
0 0x0 0x1F<br />
0x1 1 0x49 0x1 0x05<br />
2 0x2 0x39<br />
3 0x3 0x0 0x23<br />
0 0x0 0x10<br />
0x2 1 0x89 0x1 0x0A<br />
2 0x2 0x36<br />
3 0x3 0x2C<br />
0 0x0 0x06<br />
0x3 1 0xC9 0x1 0x1C<br />
2 0x2 0x20<br />
3 0x3 0x3A<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1647<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Table 7-36. Extra NULL Packet Payload<br />
Payload size Payload (1st Payload (2nd Payload (3rd byte) Payload (CRC) Payload (CRC)<br />
(DSI_CLK_CTRL[17:16] byte) byte) LSB MSB<br />
LP_CLK_NULL_PACKET_<br />
SIZE)<br />
NOTE:<br />
7.4.3.3 DSI Transfer Modes<br />
0 NA NA NA 0xFF 0xFF<br />
1 0 NA NA 0x87 0x0F<br />
2 0 0 NA 0xB8 0xF0<br />
3 0 0 0 0x33 0x39<br />
• In Table 7-35 and Table 7-36, both ECC and checksum are enabled.<br />
• NA means not available.<br />
There are two transfer modes supported by the DSI module:<br />
• Video mode (VM): Pixels are received from the video port, there are some real time constraints (pixels<br />
must be sent at the pixel frequency required by the display module) for sending the data to the display;<br />
• Command mode (CM): Pixels can be received from the video port or from the L4 interconnect, there<br />
are no real time constraints except that TE must be avoided by starting the transfer at the right time<br />
during scan of the display and should be fast enough.<br />
7.4.3.3.1 Video Mode<br />
The video mode refers to the MIPI DPI 1.0 standard. The sync events and pixels must be sent according<br />
to the display mode timings. Data are received from the video port. The display controller is in charge of<br />
fetching the data from the system memory and providing the data to the DSI protocol engine using the<br />
video port. The short packets used for the sync event are using precalculated 32-bit values. The long<br />
packets are constructed using the header defined in DSS.DSI_VCn_LONG_PACKET_HEADER registers.<br />
7.4.3.3.2 Command Mode<br />
The command mode refers to the MIPI DCS standard. The commands, parameters and pixels are sent to<br />
the display module with limited real time constraints (as defined in Section 7.4.3.3.1). The pixels can be<br />
provided on the video port by the display controller or on the L4 interconnect port.<br />
NOTE: In DSI command mode, the display controller must be configured in stall mode by setting<br />
the DSS.DISPC_CONTROL[11] STALLMODE bit to 1.<br />
The DSS.DSI_VCn_LONG_PACKET_HEADER registers are used for the header of long packets, the<br />
DSS.DSI_VCn_SHORT_PACKET_HEADER registers are used for the short packets.<br />
The error correction code (ECC) can be provided while writing the ECC value directly into the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER and DSS.DSI_VCn_SHORT_PACKET_HEADER registers.<br />
The DSS.DSI_VCn_CTRL[8] ECC_TX_EN bit indicates if the ECC value should be calculated or if the<br />
value written in the register should be used instead for command and video modes. In case of<br />
synchronization short packets for video mode, since the hardware generates the short packets without<br />
using DSS.DSI_VCn_SHORT_PACKET_HEADER registers. If the DSS.DSI_VCn_CTRL[8] ECC_TX_EN<br />
bit is set to 1, the ECC is calculated; otherwise, the value zero is used. The feature is used to generate<br />
incorrect ECC for debug purpose and to ease the check for the link and peripheral error detection and<br />
correction.<br />
For the payload, the DSS.DSI_VCn_LONG_PACKET_PAYLOAD registers are used. Each 32-bit<br />
PAYLOAD data is written into the DSS.DSI_VCn_LONG_PACKET_PAYLOAD register from the MPU<br />
subsystem or system DMA. It is buffered to be able to send packets with higher rate than the L4<br />
interconnect frequency can provide. The word count defined in the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER registers is used to determine the number of bytes to be sent<br />
1648 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
using the DSS.DSI_VCn_LONG_PACKET_PAYLOAD registers. The write into the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER registers is required before accessing the<br />
DSS.DSI_VCn_LONG_PACKET_PAYLOAD register. The hardware must be able to extract the length of<br />
the payload and be able to discard extra data sent using the DSS.DSI_VCn_LONG_PACKET_PAYLOAD<br />
register. The hardware takes into account the write into the DSS.DSI_VCn_LONG_PACKET_HEADER<br />
register only if the VC is enabled otherwise the write is ignored by hardware.<br />
In the case of pixels received on the video port, only the DSS.DSI_VCn_LONG_PACKET_HEADER<br />
register is used. The video port pixels are used for the payload. When the pixel data is coming from the<br />
display controller video port, the DSI protocol can add a DCS command byte between the packet header<br />
and pixel data by setting the DSS.DSI_CTRL[24] DCS_CMD_ENABLE bit to 0x1. The value will be either<br />
0x2c (write_memory_start) by setting the DSS.DSI_CTRL[25] DCS_CMD_CODE bit to 0x1, or 0x3c<br />
(write_memory_continue) by setting the DSS.DSI_CTRL[25] DCS_CMD_CODE bit to 0x0.<br />
When transmitting RGB 16-BPP data, the DSS.DSI_CTRL[26] RGB565_ORDER bit must be set to 0x1 to<br />
maintain the pixel byte order as in video mode .<br />
A 2-line ping-pong buffer is implemented to allow the DSI protocol engine to store incoming pixels from the<br />
display controller through the video port while sending the DSI formatted frame to the DSI_PHY. The<br />
ping-pong buffer is supported in command mode, provided the size of the packet defined in the header<br />
register is less than the size of each line buffer (768 *32 bits). If the size of the packet is greater than the<br />
size of the line buffer, the ping-pong mechanism cannot be used (both lines are used as a single line).<br />
The ping-pong buffer status can be checked by the DSI_VCn_CTRL[14] PP_BUSY bit.<br />
• When PP_BUSY equals 1, the ping-pong buffer is active and the line buffers are not ready to receive<br />
data; therefore, the user cannot update a new header.<br />
• When PP_BUSY equals 0, at least one line buffer is empty; therefore, the user can update a new<br />
header. PP-BUSY is then set to 0x1. If both line buffers are empty, the user can write two headers,<br />
one following the other. PP_BUSY remains at 0x0 after the first header is written, and is set to 0x1<br />
after second header is written.<br />
An IRQ is available to allow software to update header on events. The IRQ is enabled by setting the<br />
DSI_VCn_IRQENABLE[8] PP_BUSY_CHANGE_IRQ bit to 0x1, and its status is accessible on the<br />
DSI_VCn_IRQSTATUS[8] PP_BUSY_CHANGE_IRQ bit.<br />
7.4.3.3.3 Video + Command Modes<br />
The two modes can be interlaced to send two DSI streams to two types of panels: Video or command<br />
types. The number of concurrent video stream is limited to a single one. The number of concurrent<br />
command mode streams is limited to 4 when there is no video stream and 3 otherwise. In case there is<br />
one DSI stream using video mode, the command mode pixels must be provided only on the L4<br />
interconnect.<br />
7.4.3.3.4 Burst Modes<br />
• Frequency-burst mode The frequency-burst mode is used to reduce the high-speed (HS) period by<br />
increasing the clock frequency on the DSI link. It allows in some case, the power consumption<br />
reduction of the link. The non-HS period used typically to drive the main panel can be used to send<br />
data to the secondary panel or to allow feedback (acknowledge) from the primary and secondary<br />
panels. The DSI protocol engine needs to buffer a full line before sending the HS packets for the line.<br />
A double buffering mechanism is required to be able to send a line while the following one is being<br />
received on the video port.<br />
• Transparent-burst mode The transparent-burst mode is used by increasing the pixel clock frequency<br />
generated by the display controller with in addition an increase of the horizontal blanking period.<br />
7.4.3.3.5 Interleaving Mode<br />
Video mode can output command mode packets, which are provided to DSI through the L4 interconnect,<br />
during the blanking periods of the video stream sequence on the PPI link. These command mode packets<br />
can be programmed as high-speed packets or low-power packets.<br />
During a video stream sequence on the PPI link, four types of gap exist:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1649
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
• BLLP gap: Blanking period during VSA, VBP, and VFP lines<br />
• HSA gap: Blanking period during VACT lines; always between HS and HE short packet<br />
• HBP gap: Blanking period during VACT lines; always between HS/HE short packet and data pixel long<br />
packet<br />
• HFP gap: Blanking period during VACT lines; always between data pixel long packet and the end of<br />
the current VACT line<br />
To perform interleaving in a particular gap, video mode must be set to go into low-power state during the<br />
blanking gap. Each type of gap has separate configurable register bits that determine whether a blanking<br />
long packet will be sent or the link will go into low-power state during the gap on the PPI link. If low-power<br />
state is set during a gap, the DSI module performs interleaving during that period.<br />
Two set of registers are available for:<br />
• High-speed interleaving (when high-speed command mode packets must be sent during a video<br />
stream on the PPI link)<br />
• Low-power interleaving (when low-power command mode packets must be sent during a video stream<br />
on the PPI link)<br />
7.4.3.3.5.1 HS Command Mode Interleaving Programming Model<br />
Figure 7-91 shows the various HS mode scenarios in interleaving mode during a blanking gap. For each<br />
type of blanking gap, a dedicated bit field determines the number of TxByteClkHS clock cycles used for<br />
interleaving in HS command mode packets.<br />
• The BL_HS_INTERLEAVING[31:16] DSI_VM_TIMING6 bit field defines the number of TxByteClkHS<br />
clock cycles used to interleave HS command mode packets during a BLLP gap.<br />
• The HBP_HS_INTERLEAVING[7:0] DSI_VM_TIMING4 bit field defines the number of TxByteClkHS<br />
clock cycles used to interleave HS command mode packets during an HBP gap.<br />
• The HFP_HS_INTERLEAVING[15:8] DSI_VM_TIMING4 bit field defines the number of TxByteClkHS<br />
clock cycles used to interleave HS command mode packets during an HFP gap.<br />
• The HSA_HS_INTERLEAVING[23:16] DSI_VM_TIMING4 bit field defines the number of TxByteClkHS<br />
clock cycles used to interleave HS command mode packets during an HSA gap.<br />
These programmable values must be programmed to satisfy the timings for the clock and data lane to<br />
enter and exit HS mode latency. According to the scenario, different equations must be considered when<br />
calculating the register values.<br />
1650 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Video<br />
HS<br />
packet<br />
Video<br />
HS<br />
packet<br />
LP state<br />
LP state<br />
Command mode<br />
HS packet<br />
HS_INTERLEAVING<br />
enter<br />
HS<br />
enter<br />
HS<br />
Command mode<br />
HS packet<br />
HS_INTERLEAVING<br />
Command mode<br />
HS packet<br />
HS_INTERLEAVING<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-91. HS Command Mode Interleaving<br />
BLANKING_PERIOD<br />
exit HS<br />
mode<br />
exit HS<br />
mode<br />
Command mode<br />
HS packet<br />
HS_INTERLEAVING<br />
LP state<br />
exit HS<br />
mode<br />
LP state<br />
enter<br />
HS<br />
LP state<br />
enter<br />
HS<br />
exit HS<br />
mode<br />
Video<br />
HS …(1)<br />
packet<br />
…(2)<br />
Video<br />
HS …(3)<br />
packet<br />
LP state…(4)<br />
dss-327<br />
NOTE: For calculations and equations, the following abbreviations are used: EXIT_CLK_HS_MODE<br />
represents the exit HS mode latency for the clock lane. There is no dedicated register for this<br />
value but the programmer must know this value for further calculations.<br />
EXIT_CLK_HS_MODE = T CLK-TRAIL + TH S-EXIT<br />
For the following equations, BLANKING_PERIOD represents the BLLP, HSA, HBP, or HFP blanking<br />
periods. The HS_INTERLEAVING period represents the maximal period HS command mode packets. Its<br />
value is set in the BL_HS_INTERLEAVING, HSA_HS_INTERLEAVING, HBP_HS_INTERLEAVING, or<br />
HFP_HS_INTERLEAVING registers, depending on the blanking type.<br />
In each scenario, two calculations are present, depending on the value of ddr_clk_always_on.<br />
• ddr_clk_always_on = 1: Clock lane is always active.<br />
• ddr_clk_always_on = 0: Clock lane is activated only when there are HS packets to be sent on the PPI<br />
link.<br />
• Scenario 1: The gap for interleaving starts and ends with a regular video stream HS packet.<br />
– ddr_clk_always_on = 1<br />
HS_INTERLEAVING = BLANKING_PERIOD – (EXIT_HS_MODE_LATENCY + max{<br />
ENTER_HS_MODE_LATENCY, 2} + 1)<br />
– ddr_clk_always_on = 0<br />
HS_INTER1 = BLANKING_PERIOD – (EXIT_HS_MODE_LATENCY + max{<br />
ENTER_HS_MODE_LATENCY, 2} + 1)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1651
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
HS_INTER2 = BLANKING_PERIOD – (DDR_CLK_POST + EXIT_CLK_HS_MODE +<br />
DDR_CLK_PRE+ ENTER_HS_MODE_LATENCY + 1)<br />
HS_INTERLEAVING = min{ HS_INTER1, HS_INTER2}<br />
• Scenario 2: The gap for interleaving starts with a regular video stream HS packet and ends in LP state.<br />
– ddr_clk_always_on = 1<br />
HS_INTERLEAVING = BLANKING_PERIOD – (EXIT_HS_MODE_LATENCY + 3)<br />
– ddr_clk_always_on = 0<br />
HS_INTER1 = BLANKING_PERIOD – (EXIT_HS_MODE_LATENCY + 3)<br />
HS_INTER1 = BLANKING_PERIOD – (DDR_CLK_POST + EXIT_CLK_HS_MODE + 3)<br />
HS_INTERLEAVING = min{ HS_INTER1, HS_INTER2}<br />
• Scenario 3: The gap for interleaving starts with the LP state and ends with a regular video stream HS<br />
packet.<br />
– ddr_clk_always_on = 1<br />
HS_INTERLEAVING = BLANKING_PERIOD – (ENTER_HS_MODE_LATENCY +<br />
EXIT_HS_MODE_LATENCY + max{ ENTER_HS_MODE_LATENCY, 2} + 1)<br />
– ddr_clk_always_on = 0<br />
HS_INTER1 = BLANKING_PERIOD – (DDR_CLK_PRE + ENTER_HS_MODE_LATENCY +<br />
EXIT_HS_MODE_LATENCY + max{ ENTER_HS_MODE_LATENCY, 2} + 1)<br />
HS_INTER2 = BLANKING_PERIOD – (DDR_CLK_PRE + ENTER_HS_MODE_LATENCY +<br />
DDR_CLK_POST + EXIT_CLK_HS_MODE + DDR_CLK_PRE+ ENTER_HS_MODE_LATENCY +<br />
1)<br />
HS_INTERLEAVING = min{ HS_INTER1, HS_INTER2})<br />
• Scenario 4: The gap for interleaving starts with the LP state and ends with a regular video stream HS<br />
packet.<br />
– ddr_clk_always_on = 1<br />
HS_INTERLEAVING = BLANKING_PERIOD – (ENTER_HS_MODE_LATENCY +<br />
EXIT_HS_MODE_LATENCY + 3)<br />
– ddr_clk_always_on = 0<br />
HS_INTER1 = BLANKING_PERIOD – (DDR_CLK_PRE+ ENTER_HS_MODE_LATENCY +<br />
EXIT_HS_MODE_LATENCY + 3)<br />
HS_INTER2 = BLANKING_PERIOD – (DDR_CLK_PRE+ ENTER_HS_MODE_LATENCY +<br />
DDR_CLK_POST + EXIT_CLK_HS_MODE + 1)<br />
HS_INTERLEAVING = min{ HS_INTER1, HS_INTER2}<br />
7.4.3.3.5.2 LP Command Mode Interleaving Programming Model<br />
Figure 7-92 shows the various LP mode scenarios in interleaving mode during a blanking gap. For each<br />
type of blanking gap, a dedicated bit field determines the number of TxByteClkHS clock cycles used for<br />
interleaving in LP command mode packets.<br />
• BL_LP_INTERLEAVING bit field DSI_VM_TIMING6[15:0] defines the number of TxByteClkHS clock<br />
cycles used to interleave the HS command mode packets during a BLLP gap.<br />
• HBP_LP_INTERLEAVING bit field DSI_VM_TIMING5[7:0] defines the number of TxByteClkHS clock<br />
cycles used to interleave the HS command mode packets during an HBP gap.<br />
• HFP_LP_INTERLEAVING bit field DSI_VM_TIMING5[15:8] defines the number of TxByteClkHS clock<br />
cycles used to interleave HS command mode packets during an HFP gap.<br />
• HSA_LP_INTERLEAVING bit field DSI_VM_TIMING5[23:16] defines the number of TxByteClkHS clock<br />
cycles used to interleave HS command mode packets during an HSA gap.<br />
These programmable values must be programmed to satisfy the timings for clock and data lane enter and<br />
exit LP mode latency. Clock lane timings do not affect LP command mode interleaving, because the clock<br />
lane can be controlled separately, compared with the data lane high-speed and low-power mutually<br />
exclusive control. Clock lanes can be in high-speed mode while the data lanes are in high-speed data<br />
transfer mode, low-power data transfer mode, or in low-power state.<br />
According to this scenario, different equations must be considered for calculating register values.<br />
1652 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Video<br />
HS<br />
packet<br />
Video<br />
HS<br />
packet<br />
LP state<br />
LP state<br />
exit HS<br />
mode<br />
exit HS<br />
mode<br />
BLANKING_PERIOD<br />
Period for interleaving<br />
LP command mode<br />
packets<br />
LP_INTERLEAVING<br />
Period for interleaving LP<br />
command mode packets<br />
LP_INTERLEAVING<br />
Period for interleaving LP<br />
command mode packets<br />
LP_INTERLEAVING<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-92. LP Command Mode Interleaving<br />
LP state<br />
LP state<br />
Period for interleaving LP command mode packets<br />
LP_INTERLEAVING<br />
enter<br />
HS<br />
LP state<br />
enter<br />
HS<br />
Video<br />
HS<br />
packet<br />
Video<br />
HS<br />
packet<br />
LP state<br />
For the following equations, BLANKING_PERIOD represents the BLLP, HSA, HBP, or HFP blanking<br />
periods. The LP_INTERLEAVING period represents the maximal period in LP command mode packets. Its<br />
value is set in the BL_LP_INTERLEAVING, HSA_LP_INTERLEAVING, HBP_LP_INTERLEAVING, or<br />
HFP_LP_INTERLEAVING registers, depending on the blanking type.<br />
ALLOWED_HSBYTE_CLOCKS_FOR_LP represents the number of TxByteClkHS clock cycles during<br />
which LP interleaving can appear.<br />
To calculate the LP_INTERLEAVING value:<br />
(1)<br />
(2)<br />
(3)<br />
(4)<br />
dss-328<br />
1. Calculate how many TxByteClkHS clock cycles can be reserved for LP interleaving during the<br />
appropriate blanking video mode gap.<br />
2. Calculate the LP_INTERLEAVING value according to the results of Step 1.<br />
Step 1:<br />
• Scenario 1: The gap for interleaving starts and ends with a regular video stream HS packet.<br />
ALLOWED_HSBYTE_CLOCKS_FOR_LP = BLANKING_PERIOD – (EXIT_HS_MODE_LATENCY +<br />
max{ ENTER_HS_MODE_LATENCY, 2} + 1)<br />
• Scenario 2: The gap for interleaving starts with a regular video stream HS packet and ends in LP state.<br />
ALLOWED_HSBYTE_CLOCKS_FOR_LP = BLANKING_PERIOD – (EXIT_HS_MODE_LATENCY + 1)<br />
• Scenario 3: The gap for interleaving starts with the LP state and ends with a regular video stream HS<br />
packet.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1653
The resulting value must be programmed in the appropriate video mode register for LP interleaving.<br />
LP_INTERLEAVING <<br />
Tlp_available 8* Thsbyte_clk Ttxclkesc<br />
16<br />
5* Tdsif_clk 26<br />
<br />
<br />
<br />
<br />
<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
ALLOWED_HSBYTE_CLOCKS_FOR_LP = BLANKING_PERIOD – (max{<br />
ENTER_HS_MODE_LATENCY, 2} + 1)<br />
• Scenario 4: The gap for interleaving starts with the LP state and ends with a regular video stream HS<br />
packet.<br />
ALLOWED_HSBYTE_CLOCKS_FOR_LP = BLANKING_PERIOD – 1<br />
After finishing Step 1, the time period available for LP interleaving is known:<br />
T lp_available = ALLOWED_HSBYTE_CLOCKS_FOR_LP *T TxByteClkHS<br />
Step 2:<br />
TxByteClkHS: Period of HS byte clock of DSI_PHY module<br />
Tdsif_clk: Period of DSI functional clock<br />
Ttxclkesc: Period of LP transmit escape clock<br />
7.4.3.4 Power Management<br />
<br />
<br />
<br />
<br />
<br />
dss-E124<br />
The DSI protocol engine implements an handshake protocol on its L4 interconnect port with the PRCM.<br />
The DSI protocol engine provides a clock gating signal CIO_CLK_ICG to gate the L3 interface clock<br />
(L3_ICLK) provided by the PRCM to the DSI complex I/O. It allows reduction of the power consumption of<br />
the DSI complex I/O while the DSI link is not in used. To gate the L3_ICLK clock at DSI complex I/O level,<br />
set the DSS.DSI_CLK_CTRL[14] CIO_CLK_ICG bit to 1.<br />
7.4.3.5 Serial Configuration Port (SCP) Interface<br />
The SCP interface is used to transfer register values from the DSI protocol engine to the DSI PLL Control<br />
module and to the DSI complex I/O. It spends several cycles to serialize the data to be sent. Software<br />
users must consider the delay in processing the transfer of the data from/to the slave port to/from the<br />
module.<br />
7.4.3.5.1 Shadowing Register<br />
The two first SCP registers for the DSI complex I/O address map must be implemented as shadow<br />
registers. The shadowing mechanism is enabled/disabled using the DSS.DSI_COMPLEXIO_CFG1[31]<br />
SHADOWING bit:<br />
• When setting the DSS.DSI_COMPLEXIO_CFG1[31] SHADOWING bit to 1, the transfer of the values<br />
from the two first L4 interconnect port registers into the two first registers of the DSI complex I/O<br />
(DSS.DSI_PHY_REGISTER0 and DSS.DSI_PHY_REGISTER1) is done only when the<br />
DISPC_UPDATE_SYNC signal from the display controller is active and the<br />
DSS.DSI_COMPLEXIO_CFG1[30] GOBIT is set to 1. If there is no pending update for the two<br />
registers, when the DISPC_UPDATE_SYNC signal is asserted, the DSS.DSI_COMPLEXIO_CFG1[30]<br />
GObit is reset by hardware and there is no SCP transfer.<br />
– If there is only one register to update, only the corresponding new value is transferred. The second<br />
register in the DSI complex I/O is not updated. When the transfer is completed, the<br />
DSS.DSI_COMPLEXIO_CFG1[30] GOBIT is reset by hardware.<br />
– If the two registers need to be updated, the order of the transfer is first the register with lower<br />
address and then the second one. When the transfers are completed, the<br />
DSS.DSI_COMPLEXIO_CFG1[30] GOBIT is reset by hardware.<br />
When there is an on-going transfer (read or write) to any SCP register, the transfer must complete<br />
before starting the update of shadowing registers.<br />
• When unsetting the DSS.DSI_COMPLEXIO_CFG1[31] SHADOWING bit to 0, if the transfer into the<br />
1654 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
two first DSI complex I/O registers has already started, it should be finished.<br />
NOTE: When reading the shadow registers, the local value stored in the DSI protocol engine is<br />
returned if the update is pending; otherwise, the values stored in the DSI complex I/O are<br />
returned.<br />
7.4.3.5.2 Busy Signal<br />
The signal SCPBusy indicates that there is still some activity using the SCPClk provided by the PRCM.<br />
The SCPClk clock is the DSS_L3_ICLK clock.<br />
7.4.3.6 Power Control<br />
The DSI protocol engine can control and send power commands for both DSI complex I/O and DSI PLL<br />
controller modules.<br />
7.4.3.6.1 Complex I/O Power Control Commands<br />
7.4.3.6.1.1 Complex I/O Power Control Commands<br />
The DSI complex I/O can be set into three modes:<br />
• OFF: In this power state, the complete DSI_PHY circuit is powered down. The internal LDO is OFF.<br />
• ON: In this power state, the complete DSI_PHY circuit is powered on and functional.<br />
• ULPS: In this power state, the ULPS exit detection circuit power switch is ON for the lanes which are in<br />
receive ULPS mode. For the lanes which are in transmit ULPS mode, the circuitry for weak pull-down<br />
is ON. The ultralow-power state should only be used when all the three lanes are in ULPS (transmit or<br />
receive).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1655
OFF<br />
RESET<br />
DSI_COMPLEXIO_CFG1[28:27] PWR_CMD = 0x1<br />
DSI_COMPLEXIO_CFG1[28:27] PWR_CMD = 0x0<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.3.6.1.2 Complex I/O Power FSM<br />
Figure 7-93 describes the power control FSM to control the power state of the complex I/O.<br />
Figure 7-93. Complex I/O Power FSM<br />
ON<br />
DSI_COMPLEXIO_CFG1[28:27] PWR_CMD = 0X0<br />
DSI_COMPLEXIO_CFG1[28:27] PWR_CMD = 0x2<br />
DSI_COMPLEXIO_CFG1[28:27] PWR_CMD = 0x1<br />
ULPS<br />
The PwrCmdOff, PwrCmdUlp and PwrCmdOn commands control the state transition of the DSI complex<br />
I/O. Software users must set the DSS.DSI_COMPLEXIO_CFG1[28:27] PWR_CMD bit field to ask for a<br />
state change. The allowed transitions are: OFF - ON and ON - ULP and ULP - OFF. The<br />
DSS.DSI_COMPLEXIO_CFG1[26:25] PWR_STATUS bit field gives a status on the current state of the<br />
DSI complex I/O.<br />
CAUTION<br />
• In automatic mode, software must ensure that the DSI complex I/O in the<br />
ON mode (that is, ON command already sent) before sending requests to<br />
the complex I/O.<br />
• In a command request to change to a state which is the current one<br />
(acknowledge has been received), the command is ignored (nothing is sent<br />
to the DSI complex I/O).<br />
• To change state to ULP state, users must ensure that all the three<br />
ULPSActiveNot signals are low. The ULPSActiveNot_ALL0_IRQ interrupt<br />
can be used by software users to determine the state of the ULPSActiveNot<br />
signals. The change from ULP to ON state is required before starting the<br />
ULP status exit sequence (see Section 7.4.3.7.1 for details).<br />
7.4.3.6.2 DSI PLL Power Control Commands<br />
The DSI PLL controller module can be set into four modes:<br />
• OFF: The DSI PLL and HSDIVIDER are OFF.<br />
• ON ALL: Both DSI PLL and HSDIVIDER are ON. The HS_CLK clock is provided to the DSI complex<br />
I/O and the second clock output is provided to the HSDIVIDER.<br />
• ON HSCLK: The DSI PLL is ON. The HSDIVIDER is OFF. The HS_CLK clock is provided to the DSI<br />
complex I/O but the second clock output is not provided to the HSDIVIDER.<br />
• ON DIV: Both DSI PLL and HSDIVIDER are ON. The HS_CLK clock is not provided to the DSI<br />
complex I/O but the second clock output is provided to the HSDIVIDER.<br />
1656 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-169
1 = DSI_CLK_CTRL[31:30] PLL_PWR_CMD = 0x0 (STATE_OFF)<br />
2 = DSI_CLK_CTRL[31:30] PLL_PWR_CMD = 0x1 (STATE_ON_HSCLK)<br />
3 = DSI_CLK_CTRL[31:30] PLL_PWR_CMD = 0x2 (STATE_ON_ALL)<br />
4 = DSI_CLK_CTRL[31:30] PLL_PWR_CMD = 0x3 (STATE_ON_DIV)<br />
RESET<br />
OFF<br />
4<br />
1<br />
1<br />
3<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.3.6.2.1 DSI-PLL Power FSM<br />
Figure 7-94 shows the DSI PLL power FSM.<br />
Figure 7-94. DSI PLL Power FSM<br />
ON DIV<br />
4<br />
ON ALL<br />
3<br />
2<br />
2<br />
1<br />
4<br />
3<br />
2<br />
ON HSCLK<br />
The commands PLLPwrCmdOff, PLLPwrCmdOnAll, PLLPwrCmdOnDIV and PLLPwrCmdOnHSClk<br />
controls the state transition of the DSI PLL control module. Software users must set the<br />
DSS.DSI_CLK_CTRL[31:30] PLL_PWR_CMD bit field to ask for a state change. The<br />
DSS.DSI_CLK_CTRL[29:28] PLL_PWR_STATUS bit field gives a status on the current state of the DSI<br />
PLL controller.<br />
NOTE: In a command requests to change to a state which is the current one (acknowledge has<br />
been received), the command is ignored (nothing is sent to the DSI PLL Control module).<br />
All the DSI PLL power is controlled by the DSI protocol engine except the LDO power of the PLL and<br />
HSDIVIDER that can be controlled by the DSI PLL controller module. Indeed, the HSDIVIDER and PLL<br />
SYSRESET signals can be forced by the DSI PLL controller module by setting<br />
DSS.DSI_PLL_CONTROL[4] DSI_HSDIV_SYSRESET and DSS.DSI_PLL_CONTROL[3]<br />
DSI_PLL_SYSRESET bits, respectively. By setting these bits to 1, the SYSRESET signal is forced active<br />
(module is forced to reset state). When these bits are set to 0 (reset value), the SYSRESET signals are<br />
controlled by the DSI PLL power FSM.<br />
7.4.3.6.2.1.1 DSI-PLL HS Clock Signals<br />
The DSIStopClk signal is provided to the DSI PLL control module. It indicates when the DSI Protocol<br />
engine does not need to use the high-speed transfer mode (HS mode) and PLL HS output (HS_CLK<br />
clock) can be stopped. The following conditions must also be met when DISPC_UPDATE_SYNC may be<br />
generated by the display controller, as that may also result in the PLL HS output being stopped.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-170<br />
1657
RESET<br />
DSIStopClk<br />
De-Assertion<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
When the interface is disabled (that is, DSS.DSI_CTRL[0] IF_EN bit set to 0), the signal DSIStopClk is<br />
asserted.<br />
The assertion of the DSIStopClk depends on the following conditions:<br />
• Clock lane TxRequestHS is deasserted (the DDR clock on the clock lane is not required anymore).<br />
The get TxRequestHS deassertion, all of the following conditions are required:<br />
– The DSS.DSI_CLK_CTRL[13] DDR_CLK_ALWAYS_ON bit must be reset to 0 and no HS data<br />
transfer should be ongoing or already scheduled.<br />
– No VC active in video mode. No VC using the video mode is enabled; if the VC is enabled, the<br />
mode is command mode only (that is, DSS.DSI_VCn_CTRL[0] VC_EN bit set to 1 and<br />
DSS.DSI_VCn_CTRL[4] MODE bit set to 0).<br />
– No command mode requiring high-speed transfer (one or more VCs using command mode can be<br />
active)<br />
– Or DSS.DSI_CTRL[0] IF_EN bit reset to 0 (if all previous conditions are not required)<br />
The deassertion of the DSIStopClk depends on one of the following conditions (the DSI interface is<br />
enabled by setting the DSS.DSI_CTRL[0] IF_EN bit to 1):<br />
• Clock lane TxRequestHS must be asserted (the DDR clock on the clock lane is required anymore).<br />
• One video mode VC active<br />
• At least one VC in command mode requiring high-speed transfer<br />
• The DSS.DSI_CLK_CTRL[13] DDR_CLK_ALWAYS_ON bit is set to 1 by software users (the<br />
DSS.DSI_CTRL[0] IF_EN bit must be reset to 0 to update the DDR_CLK_ALWAYS_ON bit value)<br />
Automatic assertion/deassertion is enabled by using the DSS.DSI_CLK_CTRL[18]<br />
HS_AUTO_STOP_ENABLE bit.<br />
Manual mode can be used by setting/resetting the DSS.DSI_CLK_CTRL[19] HS_MANUAL_STOP_CTRL<br />
bit to assert/deassert the DSIStopClk signal.<br />
7.4.3.6.2.1.2 DSI-PLL HS Clock FSM<br />
Figure 7-95 shows the DSI PLL HS clock FSM.<br />
Figure 7-95. DSI PLL HS Clock FSM<br />
(All the conditions for assertion are valid and<br />
DSI_CLK_CTRL[18] HS_AUTO_STOP_ENABLE = 0x1)<br />
Or<br />
(DSI_CLK_CTRL[19] HS_MANUAL_STOP_CTRL = 0x1 and<br />
DSI_CLK_CTRL[18] HS_AUTO_STOP_ENABLE = 0x0)<br />
One of the conditions for de-assertion is valid and<br />
DSI_CLK_CTRL[18] HS_AUTO_STOP_ENABLE = 0x1)<br />
Or<br />
(DSI_CLK_CTRL[19] HS_MANUAL_STOP_CTRL = 0x0 and<br />
DSI_CLK_CTRL[18] HS_AUTO_STOP_ENABLE = 0x0)<br />
DSIStopClk<br />
Assertion<br />
When DSIStopClk is used there is a latency through other modules (DSI PLL controller and DSI_PHY)<br />
1658 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-171
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
before TxByteClkHS is stopped. This latency must be accounted for to prevent any issue when<br />
DSIStopClk is deasserted soon after being asserted. This is done using a hardware timer programmed<br />
using the DSS.DSI_STOPCLK_TIMING[7:0] DSI_STOPCLK_LATENCY bit field. This timer is<br />
programmed in number of periods of the DSI Protocol functional clock (DSI_FCLK). At reset value, the<br />
timer is programmed with 0x80 (128) value.<br />
7.4.3.7 Timers<br />
CAUTION<br />
The programmed value in the DSS.DSI_STOPCLK_TIMING[7:0]<br />
DSI_STOPCLK_LATENCY bit field must be greater than ((3 x L3_ICLK period)<br />
+ (5 x CLKIN4DDR period))/(DSI_FCLK period).<br />
NOTE: Among the timers described in this section, only the HS TX, LP RX and turnRequests timers<br />
generates interrupts immediately when the timer value is null. For ForceTxStopMode timer, it<br />
ends counting instantly and ForceTxStopMode is not asserted.<br />
7.4.3.7.1 Twakeup Timer<br />
The T WakeUp timer is not implemented in the DSI protocol engine. The software must use a general-purpose<br />
(GP) timer to handle this. This timer is used for existing ULP status mode for the active lanes (clock and/or<br />
data lanes). The sequence to exit ULP state is:<br />
1. Change the state of TxULPSExit for each lane to ACTIVE.<br />
2. Wait for the interrupt indicating that all lanes with TxULPSExit active have acknowledged by asserting<br />
ULPSActiveNot. This is done by reading the DSS.DSI_COMPLEXIO_IRQSTATUS<br />
ULPSACTIVENOT_ALLi_IRQ bit fields (i = 0, 1).<br />
3. Start the application wake-up timer (GP timer).<br />
4. Wait for the time-out.<br />
5. Change the TxUlpsClk signals to INACTIVE state for the clock lane and/or TxRequestEsc INACTIVE<br />
state for the data lane(s).<br />
NOTE: The minimum time for the wake-up period is 1 ms.<br />
To enter ULPS mode for clock lane, TxUlpsClk state must be changed to active state. To enter ULPS<br />
mode for data lane, TxRequestEsc state must be changed to active state (TxUlpsEsc as well if it is not<br />
already in active state).<br />
7.4.3.7.2 ForceTxStopMode FSM<br />
The signal ForceTxStopMode is used at initialization time (DSI complex I/O). Figure 7-96 describes the<br />
ForceTxStopMode FSM to assert/deassert ForceTxStopMode signal.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1659
RESET<br />
De-assertion<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-96. ForceTxStopMode FSM<br />
DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO = 0x1<br />
DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO = 0x0<br />
Or<br />
Time out<br />
Timer started<br />
The DSI protocol engine asserts ForceTxStopMode by setting the DSS.DSI_TIMING1[15]<br />
FORCE_TX_STOP_MODE_IO bit to 1. Asserting the FORCE_TX_STOP_MODE_IO bit allows to initialize<br />
the lanes. The lanes are in the Stop State when ForceTxStopMode signal is high.<br />
No data can be sent before the ForceTxStopMode signal is deasserted. The deassertion time is defined<br />
by the STOP_STATE_COUNTER_IO, Stop_State_x4_IO, Stop_State_x16_IO field DSI_TIMING1[15:0].<br />
The FORCE_TX_STOP_MODE_IO bit is reset by hardware when the time is reached.<br />
This bit can be reset by software.<br />
The calculation of the number of DSI_FCLK cycles assertion period is defined by:<br />
Total period in DSI_FCLK cycles = DSI_TIMING1[12:0] STOP_STATE_COUNTER_IO x<br />
((DSI_TIMING1[14] STOP_STATE_X16_IO x 15) + 1) x ((DSI_TIMING1[13] STOP_STATE_X4_IO x 3)<br />
+ 1)<br />
7.4.3.7.3 TurnRequest FSM<br />
The signal TurnRequest is used to request turnaround. It is only valid for the data lane #1 since the other<br />
data lanes cannot be used in the reverse direction to receive data from the DSI receiver. Figure 7-97<br />
describes the TurnRequest FSM to assert/deassert TurnRequest signal.<br />
1660 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-172
RESET<br />
IDLE<br />
DSI_TIMING1[31] TA_TO = 0x1<br />
DSI_TIMING1[31] TA_TO = 0x0<br />
by software<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-97. TurnRequest FSM<br />
Timer loaded<br />
PPI TurnRequest signal<br />
asserted by DSI protocol<br />
engine<br />
BTA accepted by peripheral<br />
DSI_TIMING1[31] TA_TO = 0x0 by software<br />
DSI_TIMING1[31] TA_TO = 0x0 by hardware<br />
Timer started<br />
Time-out<br />
TA_TO<br />
interrupt<br />
generation and<br />
ForceTxStopMode<br />
sequence<br />
The DSI protocol engine asserts TurnRequest signal during one TxClkEsc cycle when the turn-around is<br />
enabled through the DSS.DSI_VCn_CTRL[6] BTA_EN bit (for more information, see Section 7.4.3.8, Bus<br />
Turnaround). The DSS.DSI_TIMING1[31] TA_TO bit is set/reset by software to respectively enable/disable<br />
the timer for turnaround procedure failure. It can be reset by software or automatically by hardware when<br />
the time out occurs.<br />
The timer is loaded with the value in number of DSI_FCLK cycles:<br />
DSI_TIMING1[28:16] TA_TO_COUNTER x ((DSI_TIMING1[30] TA_TO_X16 x 15) + 1) x<br />
((DSI_TIMING1[29] TA_TO_X8 x 7) + 1).<br />
When the TA_TO_IRQ interrupt is generated (turn-around timer expired, and procedure failed), the<br />
hardware automatically asserts ForceTXStopMode in order for the DSI_PHY to drive LP-11 stop state.<br />
The ForceTXStopMode timer is used to define the minimum duration of LP-11 state. The Stop State can<br />
be longer if there is no activity.<br />
The hardware resets the ForceTXStopMode bit, followed by an internal logic reset except all register<br />
values and TX FIFO content, then resets the DSS.DSI_CTRL[0] IF_EN bit. The software should take<br />
action to recover by resetting the peripheral, for example, if it is not responding. It should wait for<br />
DSS.DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO and DSS.DSI_CTRL[0] IF_EN bits to be reset to 0<br />
before starting the recovery sequence.<br />
7.4.3.7.4 Peripheral Reset Timer<br />
The peripheral reset timer is not implemented in the DSI protocol engine module. Such as the Twakeup<br />
timer, a general-purpose timer (GPTimer)should be used in case of reset of the peripheral to determine<br />
when the peripheral is ready again for operation.<br />
7.4.3.7.5 HS TX Timer<br />
The HS TX timer is used to detect when the host has been in TX mode for too long. When time-out<br />
occurs, the EOT is forced. The timer is reloaded when a start of high speed transmission occurs. It is<br />
enabled/disabled by software through the DSS.DSI_TIMING2[31] HS_TX_TO bit. The interrupt<br />
HS_TX_TO_IRQ is generated when the timer expires. The DSS.DSI_IRQSTATUS[14] HS_TX_TO_IRQ<br />
bit is set to 1 when the HS TX time-out occurs.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-173<br />
1661
RESET<br />
IDLE<br />
DSI_TIMING2[31] HS_TX_TO = 0x1<br />
DSI_TIMING2[31] HS_TX_TO = 0x0<br />
by software<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
The maximum time to be supported is 20 ms. It can be used to determine that at least once a frame in<br />
video mode, the HS mode is stopped to enter ULPS. Since the refresh rate can be up to 50 frames per<br />
second in video mode, the maximum time in HS is 20 ms.<br />
The timer is loaded with the value in number of TxByteClkHS:<br />
DSI TIMING2[28:16] HS_TX_TO_COUNTER x ((DSI TIMING2[30] HS_TX_TO_X16 x 15) +1) x ((DSI<br />
TIMING2[29] HS_TX_TO_X8 x 7) +1)<br />
Figure 7-98. High-Speed TX Timer FSM<br />
Timer loaded<br />
DSI link is High Speed mode<br />
SOT generated<br />
DSI ends in high speed mode<br />
EOT generated<br />
DSI_TIMING2[31] HS_TX_TO = 0x0 by software<br />
DSI_TIMING2[31] HS_TX_TO = 0x0 by hardware<br />
Timer started<br />
Time-out<br />
HS_TX_TO<br />
interrupt<br />
generation and<br />
EOTsent<br />
When the time-out occurs, the hardware should sent EOT request in order for the DSI complex I/O to<br />
drive LP-11 stop state. This is followed by the generation of the interrupt. The hardware will perform an<br />
internal logic reset including the TX FIFO content, but excluding the register values and then resets the<br />
DSS.DSI_CTRL[0] IF_EN bit.<br />
The software should wait for the DSS.DSI_CTRL[0] IF_EN bit to be reset to 0 before taking any recovery<br />
action by resetting for example the peripheral if it is not responding.<br />
7.4.3.7.6 LP RX Timer<br />
When the host is in Low power Receive mode after a bus turn-around, the LP RX timer is loaded. When<br />
the timer expires, the host requests the DSI complex I/O to drive LP-11. The interrupt LP_RX_TO_IRQ is<br />
generated when the timer expires. The DSS.DSI_IRQSTATUS[15] LP_RX_TO_IRQ bit is set to 1 when<br />
the LP RX time-out occurs.<br />
The DSS.DSI_TIMING2[15] LP_RX_TO bit is set/reset by the software to respectively enable/disable the<br />
timer.<br />
The timer is loaded with the value in number of DSI_FCLK cycles:<br />
DSI_TIMING2[12:0] LP_RX_TO_COUNTER x ((DSI_TIMING2[14] LP_RX_TO_X16 x 15) + 1) x<br />
((DSI_TIMING2[13] LP_RX_TO_X4 x 3) + 1)<br />
1662 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-174
RESET<br />
IDLE<br />
DSI_TIMING2[15] LP_RX_TO = 0x1<br />
DSI_TIMING[15] LP_RX_TO = 0x0<br />
by software<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-99. Low-Power RX Timer FSM<br />
Timer loaded<br />
LP RX timer has completed.<br />
Direction has changed (RX >TX).<br />
DSI_TIMING2[15] LP_RX_TO = 0x0 by software<br />
DSI_TIMING2[15] LP_RX_TO = 0x0 by hardware<br />
Timer started<br />
Time-out<br />
LP_RX_TO<br />
interrupt<br />
generation and<br />
ForceTxStopMode<br />
sequence<br />
When the interrupt is generated, the hardware should automatically reset the DSS.DSI_TIMING2[15]<br />
LP_RX_TO bit and then assert ForceTXStopMode in order for the DSI complex I/O to drive LP-11 stop<br />
state. The ForceTXStopMode timer is used to define the minimum duration of LP-11 state. The Stop State<br />
can be longer if there is no activity.<br />
The hardware resets the ForceTXStopMode bit, followed by an internal logic reset except all register<br />
values and TX FIFO content, then resets the DSS.DSI_CTRL[0] IF_EN bit. The software should take<br />
action to recover by resetting the peripheral, for example, if it is not responding. It should wait for the<br />
DSS.DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO and DSS.DSI_CTRL[0] IF_EN bits to be reset<br />
before starting the recovery sequence. The TX FIFO is not flushed (the FIFO is flushed only when<br />
DSS.DSI_VCn_CTRL[0] VC_EN is set to 1).<br />
7.4.3.8 Bus Turnaround<br />
The bus turn-around (BTA) is not automatically sent by default after each packet sent to the display(s). It<br />
is programmable independently for each VC ID. The VC can be enabled when DSS.DSI_VCn_CTRL[6]<br />
BTA_EN bit is set to 1 by software. The software should ensure that, when the BTA is sent to the<br />
peripheral, there is enough time allocated for the response and the BTA from the peripheral to host. For<br />
more information about possible DSI PHY timing adjustments during the turn-around procedure, see<br />
Section 7.5.6.4.3, Turn-Around Request in Transmit Mode, and Section 7.5.6.4.4,Turn-Around Request in<br />
Receive Mode. When setting the DSS.DSI_VCn_CTRL[6] BTA_EN bit to 1, one BTA is sent manually to<br />
the peripheral. This manual mode can be used for packets in command or video mode.<br />
Acknowledgment from the peripheral for successful BTA is indicated by asserting the BTA_IRQ interrupt, if<br />
it is enabled in the DSS.DSI_VCn_IRQENABLE[5] BTA_IRQ_EN bit. To monitor the BTA interrupt, the<br />
user should read the DSS.DSI_VCn_IRQSTATUS[5] BTA_IRQ status bit.<br />
CAUTION<br />
The BTA should not be sent when the RX FIFO is not empty. Users should take<br />
care of emptying the RX FIFO before sending BTA to the peripheral. It is to<br />
ensure that when receiving new data from peripheral, all the allocated spaces<br />
for all the VCs are empty.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-175<br />
1663
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
In automatic mode, the BTA is sent automatically at the end of short or long packets when respectively the<br />
DSS.DSI_VCn_CTRL[2] BTA_SHORT_EN or the DSS.DSI_VCn_CTRL[3] BTA_LONG_EN bits are set to<br />
1.<br />
NOTE: If the DSS.DSI_VCn_CTRL[2] BTA_SHORT_EN bit is enabled, users can still set the<br />
DSS.DSI_VCn_CTRL[6] BTA_EN bit. Only one BTA is sent to the peripheral and the<br />
DSS.DSI_VCn_CTRL[6] BTA_EN bit is reset by hardware.<br />
If the DSS.DSI_VCn_CTRL[3] BTA_LONG_EN bit is enabled, users can still set the<br />
DSS.DSI_VCn_CTRL[6] BTA_EN bit. Only one BTA is sent to the peripheral and the<br />
DSS.DSI_VCn_CTRL[6] BTA_EN bit is reset by hardware.<br />
If the DSS.DSI_VCn_CTRL[2] BTA_SHORT_EN and DSS.DSI_VCn_CTRL[3]<br />
BTA_LONG_EN bits are both enabled, users can still set the DSS.DSI_VCn_CTRL[6]<br />
BTA_EN bit to send a BTA. Only one BTA is sent and the DSS.DSI_VCn_CTRL[6] BTA_EN<br />
bit is reset by hardware.<br />
As explained previously, two modes can be used for each VC ID:<br />
• Automatic: After each packet, a bus turn-around is sent. To determine the size of the long packet, the<br />
protocol engine on the host side should read the word count defined in the header (in<br />
DSS.DSI_VCn_LONG_PACKET_HEADER register) and use it to determine the last data to be sent on<br />
the DSI link. For short packets, the size is always 4 bytes. Then the bus turn-around is sent to the<br />
peripheral. The word count is also used to determine how many bytes should be transferred from the<br />
32-bit writes access to the payload register (DSS.DSI_VCn_LONG_PACKET_PAYLOAD register).<br />
• Manual: In case of data transfer using the L4 interconnect port, while all data have been provided to<br />
the DSI protocol engine, users can select bus turn-around for the last packet provided to the L4<br />
interconnect port only by setting the bus turn-around enable bit (DSS.DSI_VCn_CTRL[6] BTA_EN) or<br />
for last packets and following ones by setting the automatic mode; in case of data transfer using the<br />
video port, the bus turnaround enable bit (DSS.DSI_VCn_CTRL[6] BTA_EN) can be selected at any<br />
time during the transfer of the packet. In case of video mode packets (data and synchronization<br />
events) users cannot determine when the BTA is sent relatively the video mode packets, so it is highly<br />
recommended to use manual BTA mode only for packets generated in command mode but it is<br />
possible to use BTA when for a VC in video mode. In case of data provided on the video port, an<br />
interrupt for end of packet transfer (PACKET_SENT_IRQ) is provided to indicate users when the<br />
packet has been completely sent by the DSI complex I/O. The PACKET_SENT_IRQ can be monitored<br />
in DSI_VCn_IRQSTATUS[2] PACKET_SENT_IRQ status bit. Users can request BTA even if the space<br />
allocated in the TX FIFO for the corresponding VC is empty. It can be sent later on even if there was<br />
no packet sent before BTA request. The DSS.DSI_VCn_CTRL[6] BTA_EN bit should be reset by<br />
hardware if the BTA request has been sent even if the automatic mode for this specific type of packets<br />
is enabled.<br />
The bus turnaround is supported for video mode packets and for command mode packets. It is not<br />
possible to send BTA during the blanking periods of the video mode when HS blanking packets should be<br />
sent, that is, when one of the following bits is set to 1:<br />
• DSS.DSI_CTRL[20] BLANKING_MODE<br />
• DSS.DSI_CTRL[21] HFP_BLANKING_MODE<br />
• DSS.DSI_CTRL[22] HBP_BLANKING_MODE<br />
• DSS.DSI_CTRL[23] HSA_BLANKING_MODE<br />
Therefore, in video mode, the BTA request is delayed until there is a blanking period without HS blanking<br />
packets.<br />
TA Timer<br />
When TurnRequest signal is asserted (always only for data lane #1), the TA_TO timer is started. If the<br />
direction signal is no changed according to the turn-around request, the TA_TO interrupt is generated.<br />
When the Direction signal is in output mode, any data on the input data bus should be ignored since the<br />
DSI is in transmission mode (data and triggers should be ignored). See Section 7.4.3.7.3 for more details<br />
on the TA_TO timer.<br />
1664 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.3.9 PHY Triggers<br />
The DSI protocol engine uses three triggers, which are supported only for data lane 1:<br />
• Reset from host to display<br />
• Tearing effect (TE) from display to host<br />
• Acknowledge from display to host<br />
7.4.3.9.1 Reset<br />
CAUTION<br />
Each trigger is associated with a dedicated user-configurable receive or<br />
transmit pattern, loaded in DSI_PHY_REGISTER3 or DSI_PHY_REGISTER4<br />
bit fields. The default (reset) values of the bit fields are aligned with the MIPI<br />
D-PHY specification v0.92. If the user needs to change any of these values, the<br />
following must be considered:<br />
• If any of the bit fields are written with a nondefault value, the other bit fields<br />
in the same register must also be configured with different values. This is to<br />
ensure that two different trigger bit fields are not programmed with the same<br />
pattern.<br />
• If two or more bit fields are written with equal values, this may lead to<br />
unpredictable behavior of the DSI PHY module.<br />
The DSI protocol engine can use one of the triggers of the DSI_PHY to send a reset to the display. The<br />
reset trigger pattern is configurable through the DSI_PHY_REGISTER3[31:24] REG_TXTRIGGERESC3<br />
bit field. To send the reset pattern to the peripheral, the DSS.DSI_CTRL[5] TRIGGER_RESET bit must be<br />
set to 1. When the software requires the trigger reset pattern to be sent, the DSI protocol engine resets its<br />
own logic but not the registers. The software can select between two reset modes:<br />
• Immediate reset: All pending requests in TX FIFO not already taken into account for transfer<br />
scheduling, the RX FIFO requests, and the data from video port are ignored. Only the current transfer<br />
on DSI link and already scheduled ones are transmitted. All the other transfers are discarded.<br />
• Synchronized reset: The mode is only valid if there is VC using the video mode and if it is active. The<br />
principle is to wait for the current video frame to be transferred on the link. Any data on VP after the<br />
current frame are ignored.<br />
To select the reset mode, software users must program the DSS.DSI_CTRL[14]<br />
TRIGGER_RESET_MODE.<br />
7.4.3.9.2 Tearing Effect<br />
CAUTION<br />
For both reset modes, the hardware should flush the FIFOs, synchronization<br />
buffers, and line buffers before resetting the DSS.DSI_CTRL[0] IF_EN bit.<br />
The TE on the display is avoided by having synchronization information from the display. It is used only in<br />
command mode. In case of video mode, it is not functional. Users are responsible for selecting the<br />
command mode for the VC using the TE feature.<br />
The software must set and send the appropriate sequence to receive the TE trigger pattern from the<br />
peripheral. The value of the expected TE trigger pattern can be configured through the<br />
DSI_PHY_REGISTER4[23:16] REG_RXTRIGGERESC2 bit field. When the TE trigger pattern is received,<br />
the DSI protocol engine generates the TE_TRIGGER_IRQ interrupt with TE event if the interrupt is<br />
enabled. To enable the interrupt, set to 1 the DSS.DSI_IRQENABLE[16] TE_TRIGGER_IRQ_EN bit. The<br />
DSS.DSI_IRQSTATUS[16] TE_TRIGGER_IRQ status bit indicates if the interrupt event has been<br />
generated.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1665
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
One or multiple VCs can be synchronized using the same TE trigger. The DSS.DSI_VCn_TE[30] TE_EN<br />
bit should be set to indicate that the hardware should use the following TE trigger to start the transfer of<br />
the data from the related VC. This bit is reset when all the data have been sent to the peripheral. The<br />
DSS.DSI_VCn_TE[31] TE_START bit should be used when the automatic mode enabled by setting the<br />
DSS.DSI_VCn_TE[30] TE_EN bit is not used. It allows users to start the transfer manually based on<br />
application events or based on the TE trigger interrupt (TE_TRIGGER_IRQ).<br />
The number of bytes to be transferred is defined by using the DSS.DSI_VCn_TE[15:0] TE_SIZE bit field.<br />
The TE_SIZE bit field is decremented for each payload byte (it does not include Check-sum) sent on the<br />
DSI link. The register content should not be modified by software during a transfer. The<br />
DSS.DSI_VCn_TE[15:0] TE_SIZE bit field should be set first to indicate that the following accesses to<br />
DSS.DSI_VCn_LONG_PACKET_HEADER register should be used for TE transfer.<br />
The data can be provided from two sources (selection by setting the DSS.DSI_VCn_CTRL[1] SOURCE<br />
bit):<br />
• L4 interconnect port using DMA request: The DMA request DSI_DMA_REQi (i=0 to 3) to should be<br />
asserted only when TE trigger is received or when the DSS.DSI_VCn_TE[31] TE_START bit is set by<br />
user and should not be asserted anymore when all the bytes defined in DSS.DSI_VCn_TE[15:0]<br />
TE_SIZE bit field have been sent on the DSI link. The VC is associated with a DMA request (from<br />
DSI_DMA_REQ0 to DSI_DMA_REQ3) by programming the number in the<br />
DSS.DSI_VCn_CTRL[23:21] DMA_TX_REQ_NB bit field. The<br />
DSS.DSI_VCn_LONG_PACKET_PAYLOAD register is used to provide the number of bytes defined by<br />
the DSS.DSI_VCn_TE[15:0] TE_SIZE bit field (the check-sum value is not provided in the<br />
DSS.DSI_VCn_LONG_PACKET_PAYLOAD register). The size of the header is not taken into account<br />
in the number of bytes to transfer. The DSS.DSI_VCn_SHORT_PACKET_HEADER register is not<br />
used.<br />
• Video port: The DMA request is not asserted. The data are captured in the line buffer using the STALL<br />
mechanism. In case there is no line buffer instantiated (that is, DSS.DSI_CTRL[13:12] LINE_BUFFER<br />
bit field set to 0), it is not possible to use the video port to provide data. The line buffer should be filled<br />
up according to the word count defined in the DSS.DSI_VCn_LONG_PACKET_HEADER register<br />
header. The value should be written before the TE trigger event is received or before the<br />
DSS.DSI_VCn_TE[31] TE_START bit is set to 1 by software. In case the total number of bytes defined<br />
by the DSS.DSI_VCn_TE[15:0] TE_SIZE bit field is not a multiple of the word count defined in the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER register, all the packets have the same size defined by the<br />
WC of the header except the last transfer. The size of the last transfer is defined by the remaining<br />
bytes to send. Since the DSS.DSI_VCn_TE[15:0] TE_SIZE bit field is modified after each packet<br />
transfer, the size of the last packet is equal to the value of DSS.DSI_VCn_TE[15:0] TE_SIZE bit field<br />
just before the last transfer (the header and the payload check-sum sizes are not included in<br />
DSS.DSI_VCn_TE[15:0] TE_SIZE bit field).<br />
When the transfer is completed, the value of the DSS.DSI_VCn_TE[15:0] TE_SIZE bit field is equal to 0.<br />
The software must ensure that the pending data in the TX FIFO for the corresponding VC using TE are<br />
related to TE transfer. Any data in the TX FIFO that should be sent before reception of TE trigger should<br />
be sent before TE. This is done by not enabling TE trigger until all data for the corresponding VC have<br />
been sent to the peripheral. The software can check that the space allocated for the VC in the TX FIFO is<br />
empty by reading the DSS.DSI_VCn_CTRL[5] TX_FIFO_NOT_EMPTY status bit.<br />
7.4.3.9.3 Acknowledge<br />
The corresponding Acknowledge interrupt (ACK_TRIGGER_IRQ ) is generated upon reception of the<br />
acknowledge trigger. The value of the expected acknowledge trigger pattern can be configured through<br />
the DSI_PHY_REGISTER4[15:8] REG_RXTRIGGERESC1 bit field. To enable the acknowledge interrupt,<br />
set the DSS.DSI_IRQENABLE[17] ACK_TRIGGER_IRQ_EN bit to 1. When the interrupt is generated, the<br />
DSS.DSI_IRQSTATUS[17] ACK_TRIGGER_IRQ status bit is set to 1.<br />
1666 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
0 0<br />
8<br />
0 0 P [5:0 ]<br />
Parity Generator<br />
ECC<br />
WC [15 :8 ] or DB 1<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.3.10 ECC Generation<br />
The DSI protocol uses a four-byte packet header. Since ECC generation requires a fixed word length of<br />
64-bits, the packet headers should be padded with additional bits to form a full eight-byte value for ECC<br />
generation and checking. The packet header less the ECC byte should occupy bits D[23:0] and the pad<br />
bits should occupy bits D[63:24]. All padding bits should be zero for the purpose of generating the ECC<br />
byte. ECC can be generated using a parallel approach as illustrated in Figure 7-100.<br />
Figure 7-100. 64-Bit ECC Generation on TX Side<br />
WC [7 : 0 ] or DB 0<br />
8 8 8<br />
D63 D24D23 D0<br />
16-bit checksum<br />
CRC LS byte CRC MS byte<br />
16-bit packet footer (PF)<br />
VC<br />
dss-177<br />
DT [5 :0 ]<br />
The ECC generation/check can be enabled and disabled by software. It is defined by a common bit for all<br />
the VCs:<br />
• The DSS.DSI_CTRL[2] ECC_RX_EN bit enables/disables the ECC generation in the receive direction.<br />
• The DSS.DSI_VCn_CTRL[8] ECC_TX_EN bit enables/disables the ECC generation in the transmit<br />
direction<br />
7.4.3.11 Checksum Generation for Long Packet Payloads<br />
Long packets are comprised of a packet header protected by an ECC byte and a payload of 0 to 2 16 - 1<br />
bytes. To detect the errors during the transmission of long packets, a checksum is calculated over the<br />
payload portion of the data packet. Note that, for the special case of a zero-length payload, the 2-byte<br />
checksum is set to 0xFFFF. The checksum can only indicate the presence of one or more errors in the<br />
payload. Unlike ECC, the checksum does not enable error correction. For this reason, checksum<br />
calculation is not useful for some unidirectional DSI implementations since the peripheral has no way for<br />
reporting errors to the host processor. Checksum generation and transmission is mandatory for host<br />
processors sending long packets to peripherals. It is optional for peripherals transmitting long packets to<br />
the host processor. However, the format of long packets is fixed; the peripherals that do not support<br />
checksum generation should transmit two bytes having value 0x0000 in place of the checksum bytes<br />
when sending long packets to the host processor. The host processor should disable checksum checking<br />
for received long packets from peripherals that do not support checksum generation.<br />
The checksum should be realized as a 16-bit CRC with a generator polynomial of x^16+x^12+x^5+x^0.<br />
The LS byte is sent first, followed by the MS byte. Note that within the byte, the LS bit is sent first.<br />
Figure 7-101. Checksum Transmission<br />
The CRC implementation is presented in Figure 7-102. The CRC shift register is initialized to 0xFFFF<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-176<br />
1667
MSB<br />
C15 C14 C13 C12 C11<br />
x^0 x^5<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
before packet data enters. Packet data not including the packet header then enters as a bitwise data<br />
stream from the left, LS bit first. Each bit is fed through the CRC shift register before it is passed to the<br />
output for transmission to the peripheral. After all bytes in the packet payload have passed through the<br />
CRC shift register, the shift register contains the checksum. C15 contains the checksums MSB and C0 the<br />
LSB of the 16-bit checksum. The checksum is then appended to the data stream and sent to the receiver.<br />
Figure 7-102. 16 Bit CRC Generation Using a Shift Register<br />
Polynomial: x^16+x^12+x^5+x^0<br />
LSB<br />
C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0<br />
x^12 x^15<br />
The check-sum generation/check can be enabled and disabled by software. It is defined by a common bit<br />
for all the VCs:<br />
• The DSS.DSI_CTRL[1] CS_RX_EN bit enables/disables the check-sum generation in the receive<br />
direction.<br />
• The DSS.DSI_VCn_CTRL[7] CS_TX_EN bit enables/disables the check-sum generation in the transmit<br />
direction<br />
7.4.3.12 End of Transfer Packet<br />
To allow the DSI protocol (rather than the DSI_PHY) at the display to detect the HS End Of Transfer<br />
(EOT), an EOT packet type is added. It is a fixed short packet (4 bytes) that is added at every HS-to-LP<br />
transition. This function is enabled by the DSI_CTRL[19] EOT_ENABLE bit.<br />
The EOT packet has a fixed format:<br />
• Data Type = DI [5:0] = 0b001000<br />
• Virtual Channel = DI [7:6] = 0b00<br />
• Payload Data [15:0] = 0x0F0F<br />
• ECC [7:0] = 0x01<br />
When more than one data lane is used, the bytes in the EOT packet are distributed across multiple lanes.<br />
EOT packet generation is supported only for the end of HS transmissions. No EOT packet is added at the<br />
end of LP transmissions. For LP reception, any EOT packet received is simply passed through the same<br />
as any other packet, but no internal decode or use is made of the EOT information.<br />
7.4.4 DSI PLL Controller Functionalities<br />
7.4.4.1 DSI PLL Controller Overview<br />
The DSI PLL controller module forms part of the display sub-system. Nevertheless, it uses the SCP (Serial<br />
Configuration Port) and PMP (Power Management Port) ports as the primary interfaces to the DSI<br />
protocol engine. The SCP interface is used to set the configuration of the DPLL and HSDIVIDER modules,<br />
primarily the various counter values. The PMP port is used to control the power state of the DPLL and<br />
HSDIVIDER modules. Figure 7-103 provides an overview of the DSI PLL controller module inside the<br />
display subsystem.<br />
The DSI PLL is also used to generate the 74.25-MHz frequency used for HDTV applications.<br />
1668 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-178
DSS<br />
DISPC<br />
L4/L3<br />
VP<br />
DSI<br />
protocol<br />
PMP<br />
Functional<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-103. DSI PLL Controller Overview<br />
DSI PLL<br />
control<br />
Clocks<br />
Status<br />
Control<br />
DSI data/control<br />
PMP<br />
SCP<br />
ADPLLv2 ADPLLM<br />
HSDIVIDER<br />
2ch<br />
Clock<br />
NOTE: The DSI PLL controller module does not have an interface to L4 interconnect. The<br />
programmable features are managed by registers mapped into the DSI protocol engine.<br />
7.4.4.2 DSI PLL Controller Architecture<br />
DFT<br />
DSI_PHY<br />
The DSI PLL is an ADPLLM module. The pixel clock (PCLK) frequency range is 2 to 68.25 MHz. This may<br />
be divided by 2. This is performed by setting the DSS.DSI_PLL_CONFIGURATION2[12]<br />
DSI_PLL_HIGHFREQ bit to 1.<br />
Figure 7-104 shows the internal DSI PLL reference diagram.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
I/O<br />
dss-179<br />
1669
<strong>Display</strong> subsystem<br />
DSI PLL controller<br />
PCLKFREE PCLK<br />
÷ 2<br />
HIGHFREQ<br />
TIGHTPHASELOCK<br />
LOCK<br />
LOCKSEL[1:0]<br />
CLKSEL<br />
SYS_CLK<br />
0<br />
0<br />
1<br />
1<br />
0<br />
1<br />
2<br />
3<br />
REFEN<br />
Gating<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-104. DSI PLL Reference Diagram<br />
SPARE<br />
CLKINP<br />
TIGHTPHASELOCK<br />
PHASELOCK<br />
FREQLOCK<br />
(TVALID)<br />
CLKIN4DDR<br />
(To DSI_PHY)<br />
DCOCLKLDO<br />
ADPLLM<br />
NOTE: PCLK is inverted as the falling edge is the reference edge and ADPLLM uses positive edge as reference<br />
(F/F should be positive edge clock also).<br />
The DSI PLL clock output corresponds to the CLKIN4DDR clock of the DSI complex I/O module.<br />
The DSI PLL reference clock is the DSI_PLL_REFCLK clock. Depending on the setting in<br />
DSS.DSI_PLL_CONFIGURATION2[11] DSI_PLL_CLKSEL bit, the reference clock can be either the<br />
DSS2_ALWON_FCLK provided by the PRCM or the PCLKFREE provided by the DISPC module.<br />
7.4.4.3 DSI PLL Operations<br />
camdss-180<br />
The signals of the DSI PLL configuration operate according to Table 7-37. The values in the table indicate<br />
the operation when the PLL is not locked.<br />
Table 7-37. DSI PLL Operation Modes When Not Locked<br />
DSI PLL Stop mode Stop mode Idle bypass<br />
Operation Mode Low power (1) Fast Relock (1)<br />
Mode Description Output clocks Output clocks Selects when PLL<br />
stopped stopped and HSDIVIDER<br />
Lowest Fastest bypass clocks<br />
power standby start-up time are used<br />
DSS.DSI_PLL_CONFIGURATION2[0] DSI_PLL_IDLE 0 0 1<br />
DSS.DSI_PLL_CONFIGURATION2[6] 1 0 1<br />
DSI_PLL_LOWCURRSTBY<br />
DSS.DSI_PLL_CONFIGURATION1[0] DSI_PLL_STOPMODE 1 1 X<br />
(1) Recommended<br />
When locked, the PLL output frequency is: [(2xREGM)/(REGN + 1)]x[CLKin(MHz)/(HIGHFREQ + 1)]<br />
where:<br />
• M multiplier is programmed in DSS.DSI_PLL_CONFIGURATION1[18:8] DSI_PLL_REGM bit field.<br />
• N divider is programmed in DSS.DSI_PLL_CONFIGURATION1[7:1] DSI_PLL_REGN bit field.<br />
• HIGHFREQ divider by 2 is enabled by setting the DSS.DSI_PLL_CONFIGURATION2[12]<br />
DSI_PLL_HIGHFREQ bit to 1.<br />
1670 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.4.4 DSI PLL Controller Shadowing Mechanism<br />
The configuration registers are accessed through the DSI protocol engine register space using SCP port.<br />
This includes all the configuration signals and the returning status signals.<br />
CAUTION<br />
All writes must be 32-bit operations as the SCP always transfers 32 bits. Any<br />
16-bit or 8-bit operations may lead to unpredictable errors.<br />
A shadow mechanism is implemented for appropriate register values so that configurations may optionally<br />
be updated in synchronism with the display controller (DISPC) and DSI protocol engine. The front porch<br />
time from the DISPC indicates the time when making the update of the value. All the required updated<br />
values must have been written before this signal is asserted. See Section 7.4.3.5.1 for more details.<br />
7.4.4.5 Error Handling<br />
The PLL lock and recalibration signals may be monitored to detect loss of lock or requirement to<br />
recalibrate (due to large temperature change since the last lock request):<br />
• The DSS.DSI_PLL_STATUS[1] DSI_PLL_LOCK status bit gives the DSI PLL lock state.<br />
• The DSS.DSI_PLL_STATUS[2] DSI_PLL_RECAL status bit informs if the PLL must be uncalibrated<br />
These signals can also generate interrupts at DSI protocol engine level:<br />
• The PLL_LOCK_IRQ interrupt indicates that the DSI PLL control module has sent a lock request to the<br />
DSI PLL. To monitor this event, read the DSS.DSI_IRQSTATUS[7] PLL_LOCK_IRQ bit. Set this bit to<br />
1 to clear the status bit.<br />
• The PLL_UNLOCK_IRQ interrupt indicates that the DSI PLL control module has sent an unlock<br />
request to the DSI PLL. To monitor this event, read the DSS.DSI_IRQSTATUS[8] PLL_UNLOCK_IRQ<br />
bit. Set this bit to 1 to clear the status bit.<br />
• The PLL_RECAL_IRQ interrupt indicates that the DSI PLL control module has sent a recalibration<br />
request to the DSI PLL. To monitor this event, read the DSS.DSI_IRQSTATUS[9] PLL_RECAL_IRQ<br />
bit. Set this bit to 1 to clear the status bit.<br />
7.4.5 DSI Complex I/O Functionalities<br />
7.4.5.1 DSI Complex I/O Overview<br />
DSI_PHY is a complex I/O with 3 unidirectional (HS) Lane Modules. This includes 2 data lane modules<br />
and 1 clock lane module. Each lane module has 2 data pads (DX, DY). These data pads are connected<br />
with a complementary lane module on the DSI receiver device using point to point interconnect.<br />
Lane modules support high-speed burst mode. Forward direction and reverse direction escape modes are<br />
also supported. Escape modes maybe used for Low Power Data Transmission, among other things.<br />
The maximum data rate supported is 900 Mbps per data lane. The lane module function and position is<br />
configurable, that is, any lane module can be chosen as clock lane module, and DX/DY data pad for each<br />
lane module can be configured as either DP or DN pins defined by DSI_PHY spec.<br />
DSI_PHY interacts with the higher layers of the DSI link through the PHY-Protocol Interface (PPI).<br />
DSI_PHY does not include a PLL; a high frequency clock input is expected in HS mode (CLKIN4DDR).<br />
DSI_PHY supports also Serial Configuration Protocol (SCP) to set various configuration and control<br />
registers. The DSI_PHY supports GPIO operation on each of the six data pins.<br />
7.4.6 RFBI Functionalities<br />
The RFBI module can capture the output pixel from the display controller and send the data to the RFB in<br />
the LCD panel. The application configures the RFBI module, sends commands, reads data, and<br />
configures the display controller to send data fetched from the system memory by the display controller<br />
DMA engine. The commands/data are sent using an 8-, 9-, 12-, or 16-bit parallel interface.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1671
<strong>Display</strong> controller<br />
clock domain<br />
Video port<br />
FIFO<br />
RFBI_DATA<br />
Interconnect<br />
FIFO<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
The display controller is configured to send the data in 12-, 16-, 18-, or 24-BPP format. In the video port<br />
FIFO, the encoded pixel values are in an LSB alignment independently of the endianness in system<br />
memory.<br />
Figure 7-105 shows an overview of the RFBI architecture.<br />
7.4.6.1 RFBI FIFO<br />
Figure 7-105. RFBI Architecture Overview<br />
The input video port FIFO receives data from the display controller at the pixel clock. The data in the video<br />
port FIFO are read by the RFBI and are sent to the LCD panel. The video port FIFO is 24 bits wide and<br />
each pixel in 12-, 16-, 18-, and 24-BPP format is stored in the video port FIFO using one 24-bit value<br />
aligned on the 24-bit LSB. Section 7.4.6.4, Output Parallel Modes, shows an example of an output<br />
configuration based on the interface width (16 bits) and the pixel format output (24 bits).<br />
7.4.6.2 RFBI Interconnect FIFO<br />
The interconnect FIFO receives the data from RFBI_DATA write requests to the L4 interconnect slave<br />
port. The data in the interconnect FIFO are read by the RFBI and sent to the LCD panel. The width of the<br />
interconnect FIFO is 32 bits. The size of the interconnect FIFO is 24 words of 32 bits (that is, 24 words of<br />
RFBI_DATA).<br />
7.4.6.3 Input Pixel Formats<br />
The supported pixel formats in the RFBI module are: RGB24-888, RGB18-666, RGB16-565, and<br />
RGB12-444 as output from the display controller and from the L4 (for writing parameters). In both cases,<br />
the pixels are formatted in accordance with the configuration of the output interfaces (multiple cycles).<br />
7.4.6.4 Output Parallel Modes<br />
The RFBI output modes are 8-, 9-, 12-, and 16-bit interfaces. Any mode can be selected regardless of the<br />
pixel format. Set the right configuration in the cycle registers to define a valid configuration for each output<br />
cycle.<br />
1672 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-053
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
The following example is an output configuration based on the 16-bit interface width and the 24-bit pixel<br />
format (i = 0 or 1) (see also Table 7-38):<br />
• The DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT bit field is set to 0x3 (three cycles for two pixels).<br />
• The DSS.RFBI_DATA_CYCLE1_i register is set to 0x00000010 (16 bits from pixel 1 for the first cycle).<br />
• The DSS.RFBI_DATA_CYCLE2_i register is set to 0x00080808 (8 bits from pixel 1 and pixel 2 and<br />
alignment of 8 bits from pixel 2 for the second cycle).<br />
• The DSS.RFBI_DATA_CYCLE3_i register is set to 0x00100000 (16 bits from pixel 2 for the third<br />
cycle).<br />
Table 7-38. 16-Bit Interface Configuration/24-Bit Mode<br />
24-Bit Mode<br />
1st Cycle 2nd Cycle 3rd Cycle<br />
Data[15] R0[7] B0[7] G1[7]<br />
Data[14] R0[6] B0[6] G1[6]<br />
Data[13] R0[5] B0[5] G1[5]<br />
Data[12] R0[4] B0[4] G1[4]<br />
Data[11] R0[3] B0[3] G1[3]<br />
Data[10] R0[2] B0[2] G1[2]<br />
Data[9] R0[1] B0[1] G1[1]<br />
Data[8] R0[0] B0[0] G1[0]<br />
Data[7] G0[7] R1[7] B1[7]<br />
Data[6] G0[6] R1[6] B1[6]<br />
Data[5] G0[5] R1[5] B1[5]<br />
Data[4] G0[4] R1[4] B1[4]<br />
Data[3] G0[3] R1[3] B1[3]<br />
Data[2] G0[2] R1[2] B1[2]<br />
Data[1] G0[1] R1[1] B1[1]<br />
Data[0] G0[0] R1[0] B1[0]<br />
7.4.6.5 Unmodified Bits<br />
In a cycle, if every bit in the interface does not have a pixel value, the status of the unused bits can be<br />
programmed to be 0, 1, or the previous value (I/O power consumption optimization).<br />
7.4.6.6 Bypass Mode<br />
In bypass mode, the RFBI path is bypassed and the display controller data and signals are sent directly to<br />
the output interface of the RFBI.<br />
7.4.6.7 Send Commands<br />
The commands are written through the L4 interconnect and into the DSS.RFBI_CMD register. After a<br />
command is sent, another one can be accepted by the module and set. If the processing of a command is<br />
not complete, the MPU access to change the command stalls.<br />
7.4.6.8 Read/Write<br />
Depending on the status of A0, WE, and RE, the commands and display/parameter data are written to the<br />
panel (handled by the state-machine for the commands/parameter data and stored in memory for the<br />
display data), or the display data/status values are read from the LCD panel (status and display data in<br />
the LCD panel memory). The polarity of A0 (RFBI_A0 signal), WE (RFBI_WR signal), RE (RFBI_RD<br />
signal), and CSx (RFBI_CSx signal, with x = 0, 1) is programmable.<br />
Table 7-39 describes the read/write function.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1673
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Table 7-39. Read/Write Function Description<br />
A0 (RFBI_A0) WE (RFBI_WR) RE (RFBI_RD) Function Description<br />
1 0 1 <strong>Display</strong> data write, parameter data write<br />
1 1 0 <strong>Display</strong> data read<br />
0 1 0 Status read<br />
0 0 1 Command data write<br />
A minimum of RFBI_Cs cycle time, as defined in Table 7-40, is required to keep the RFBI_CSx signal<br />
asserted between write transfers of multiple pixels.<br />
Table 7-40 indicates the minimum cycle time for RFBI_CSx, depending on the source of pixels (display<br />
controller or L4 interconnect slave port) and the cycle format (1pixel/cycle, 1 pixel/2 cycles, 1 pixel/3<br />
cycles, or 2 pixels/3 cycles).<br />
Table 7-40. Minimum Cycle Time for CSx/WE Always Asserted<br />
RFBI Performance RFBI_CONFIGi[10:9] RFBI_CONFIGi[8:7] Minimum Cycle Time (in Number of L4 Cycles)<br />
CYCLEFORMAT L4FORMAT<br />
L4 interconnect 1 pixel/cycle 1 pixel 5<br />
1 pixel/2 cycles 1 pixel 4<br />
1 pixel/3 cycles 1 pixel 4<br />
2 pixels/3 cycles 1 pixel 6<br />
1 pixel/cycle 2 pixels 4<br />
1 pixel/2 cycles 2 pixels 4<br />
1 pixel/3 cycles 2 pixels 4<br />
2 pixels/3 cycles 2 pixels 6<br />
<strong>Display</strong> Controller 1 pixel/cycle N/A 4<br />
7.4.7 Video Encoder Functionalities<br />
1 pixel/2 cycles N/A 3<br />
1 pixel/3 cycles N/A 3<br />
2 pixels/3 cycles N/A 6<br />
The input formats supported by the encoders are 24-bit 4:4:4 RGB. The encoder output is the DAC stage<br />
(for more information, see Section 7.2, <strong>Display</strong> <strong>Subsystem</strong> Environment). In the display subsystem, the<br />
input format from the display controller is always 24-bit RGB. The RGB-to-YCbCr color space converter<br />
converts the 24-bit RGB pixel data to 24-bit YCbCr data.<br />
The remaining Cb and Cr color components enter the 2-to-1 chrominance decimation, which reduces by<br />
half the chrominance bandwidth and the amount of chrominance data. After the data manager, the<br />
encoder processes in 4:2:2 data path up to the 2x interpolation. A luma delay synchronizes luma to<br />
chrominance data.<br />
Figure 7-106 shows an overview of the video encoder architecture.<br />
1674 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
YCbCr[7:0]<br />
Cr/R<br />
[7:0]<br />
Y<br />
Luma stage<br />
Y<br />
Y/G[7:0]<br />
Cb/B[7:0]<br />
HSYNC<br />
VSYNC<br />
FID<br />
AVID<br />
RESETB<br />
CLK1X(13.5MHz)<br />
CLK2X(27MHz)<br />
CLK4X(54MHz)<br />
Video encoder<br />
Color<br />
Space<br />
Converter<br />
EAV SAV<br />
Timing<br />
and<br />
synchronization<br />
CbCr<br />
Chroma stage<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-106. Video Encoder Architecture Overview<br />
Cb<br />
Cr<br />
Y<br />
Modulator<br />
and<br />
hue control<br />
SIN/COS<br />
block<br />
Crosscolor<br />
filter<br />
C<br />
+<br />
CVBS<br />
Data clock<br />
2x<br />
interpolation<br />
LUMA_ENABLE<br />
2x<br />
interpolation<br />
COMPOSITE_ENABLE<br />
TVDET<br />
2x<br />
interpolation<br />
Data clock<br />
Control<br />
registers<br />
Y[9:0]<br />
CVBS[9:0]<br />
NOTE: Output video mode can be either composite video (CVBS output) or separate video<br />
(S-video: Luma and Chroma outputs):<br />
7.4.7.1 Test Pattern Generation<br />
• Composite video: only AVDAC1 is used<br />
C[9:0]<br />
VENC_OUT_SEL<br />
L4 interconnect<br />
Luma/<br />
composite<br />
video DAC1<br />
Chroma video<br />
DAC2<br />
C[9:0]<br />
CHROMA_ENABLE DAC2 enable<br />
• Separate video (Luma/Chroma): Both AVDAC1 (Luma) and AVDAC2 (Chroma) are used<br />
The selection is programmed with DSS.DSS_CONTROL[6] VENC_OUT_SEL<br />
bit. Composite video is the default selection.<br />
1<br />
0<br />
1<br />
0<br />
CVBS_Y[9:0]<br />
DAC1 enable<br />
TV Detection<br />
pulse<br />
camdss_swpu176-public-<strong>07</strong>9<br />
For diagnostic purposes, the data manager can be forced to output 100/100 color bar RGB/YCbCr data by<br />
setting the SVDS field VENC_F_CONTROL[7:6] register to 0x1.<br />
Table 7-41. 100/100 Color Bar Table<br />
COLOR R G B Y Cb Cr<br />
White 255 255 255 235 128 128<br />
Yellow 255 255 0 210 16 146<br />
Cyan 0 255 255 170 166 16<br />
Green 0 255 0 145 54 34<br />
Magenta 255 0 255 106 202 222<br />
Red 255 0 0 81 90 240<br />
Blue 0 0 255 41 240 110<br />
Black 0 0 0 16 128 128<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1675<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
7.4.7.2 Luma Stage<br />
The luma stage includes a luma pipeline delay, luma shaping, 2x interpolation filter, and luma variable<br />
delay. The luma pipeline delay block is used to match luma path length to chroma path length. In the luma<br />
gain shaper, a programmable gain is first applied to the luminance data output. The luminance gain is<br />
defined by the DSS.VENC_GAIN_Y register. Horizontal sync, vertical sync, and setup insertion are then<br />
performed.<br />
Black level and blank level are programmable through the DSS.VENC_BLACK_LEVEL and<br />
DSS.VENC_BLANK_LEVEL registers. All the transition edges of the luminance signal, such as sync<br />
edges and active video edges, are properly shaped and filtered to keep the bandwidth within the<br />
standards.<br />
After all required components of the luminance signal are added, the resulting signal is low-passed and<br />
interpolated to 2x-pixel rate. This 2x interpolation simplifies the external analog reconstruction filter design<br />
and improves the signal-to-noise ratio.<br />
7.4.7.3 Chroma Stage<br />
The chroma stage includes a low-pass filter, first-stage 2x interpolation, chroma gain shaper, and<br />
second-stage 2x interpolation. A pair of programmable gains adjusts the time-multiplexed U/V signal. The<br />
gains for U and V are independently controlled by the DSS.VENC_GAIN_U and DSS.VENC_GAIN_V<br />
register bits.<br />
7.4.7.4 Subcarrier and Burst Generation<br />
The encoder uses a 32-bit subcarrier increment to synthesize the subcarrier. The value of the subcarrier<br />
increments required to generate the desired subcarrier frequency for NTSC and PAL format is found by:<br />
S_CARR = ROUND ([F sc/F clkenc] x 2 32 )<br />
where:<br />
F sc = Frequency of the subcarrier<br />
F clkenc = Frequency of the internal video encoder<br />
The DSS.VENC_S_CARR register controls the subcarrier frequency. The DSS.VENC_C_PHASE register<br />
controls the phase of the subcarrier. The phase of the color subcarrier is reset to DSS.VENC_C_PHASE.<br />
Table 7-42 presents the VENC_S_CARR register values depending the standard and pixel type used.<br />
Table 7-42. VENC_S_CARR Register Recommended Values<br />
Standard Pixel Type<br />
Subcarrier<br />
Frequency (Fsc)<br />
(MHz)<br />
Fclkenc (MHz)<br />
VENC_S_CARR register<br />
value (hexa)<br />
NTSC-M, J ITU-R601 3.579545 27 0x21F<strong>07</strong>C1F<br />
PAL-M ITU-R601 3.5756083125 27 0x21E6EFE3<br />
PAL-B, D, G, H, I ITU-R601 4.43361875 27 0x2A098ACB<br />
NTSC-M, J Square pixel 3.579545 24.5454 0x25555555<br />
PAL-M Square pixel 3.579561149 24.5454 0x1F15C01E<br />
PAL-B, D, G, H, I Square pixel 4.43361875 29.50 0x26798C0C<br />
CAUTION<br />
In square pixel mode, an external clock generator is needed to provide<br />
sampling frequencies (49.09 MHz for NTSC square pixel or 59 MHz for PAL<br />
square pixel).<br />
The color subcarrier reset has four modes:<br />
• No reset<br />
1676 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Reset every two lines<br />
• Reset every two fields<br />
• Reset every eight fields<br />
The DSS.VENC_C_PHASE register can be used to adjust the SCH (subcarrier to horizontal sync phase).<br />
The DSS.VENC_BSTAMP_WSS_DATA[6:0] BSTAP bit field sets the amplitude of the color burst. The<br />
DSS.VENC_M_CONTROL[1] PAL bit enables phase alternation line encoding.<br />
A phase switching subcarrier is generated to encode the chrominance signal when the<br />
DSS.VENC_M_CONTROL[1] PAL bit is set to 1. Otherwise, a normal subcarrier is generated. Phase<br />
alternation line refers to the encoding scheme in which the subcarrier alternates between two phases<br />
every scan line. Two possible alternation sequences are possible, and the DSS.VENC_M_CONTROL[5]<br />
PALPHS bit selects one of these sequences.<br />
7.4.7.5 Closed Caption Encoding<br />
The encoder can be programmed to encode closed-caption data and extended data in the selected line.<br />
The closed-caption data are sent to the encoder through the L4 interconnect. The data stream consists of<br />
7-bit US-ASCII code and 1 odd-parity bit (see Table 7-43).<br />
Table 7-43. Closed-Caption Data Format<br />
MSB LSB<br />
Bit6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Odd parity<br />
The standard service encodes closed caption in both fields; the extended service encodes closed caption<br />
in even fields. When set to 1, the DSS.VENC_L21_WC_CTL L21EN[0] bit enables closed-caption<br />
encoding in odd fields. When set to 1, the DSS.VENC_L21_WC_CTL L21EN[1] bit enables closed-caption<br />
encoding in even fields.<br />
To select the scan line where the CC data are encoded, program the VENC_LN_SEL[4:0] SLINE bit field.<br />
CAUTION<br />
The setting of the value of the SLINE[4:0] bit field depends on the video<br />
standard:<br />
• PAL mode: Because there is a one-line offset, program the desired line<br />
number – 1. To activate the closed caption on line 21 (0x15), program the<br />
value 0x15 – 1 = 0x14. The default value is 0x15 + 1 = 0x16 (line 22).<br />
• NTSC mode: Because there is a four-line offset, program the desired line<br />
number – 4. To activate the closed caption on line 21 (0x15), program the<br />
value 0x15 – 4 = 0x11. The default value is 0x15 + 4 = 0x19 (line 25).<br />
The DSS.VENC_LN_SEL[25:16] LN21_RUNIN bit field should be kept at reset value (0x10B). Four<br />
closed-caption data registers contain the data to be encoded. The DSS.VENC_LINE21[15:8] L21O and<br />
DSS.VENC_LINE21[7:0] L21O bit fields contain the first and the second bytes, respectively, of<br />
closed-caption data to be encoded in the odd field. The DSS.VENC_LINE21[31:24] L21E and<br />
DSS.VENC_LINE21[23:16] L21E bit fields contain the first and the second bytes, respectively, of data to<br />
be encoded in the even field.<br />
Immediately after the closed-caption data is written to the registers, in either the odd field or even field, the<br />
corresponding closed-caption status bit (DSS.VENC_STATUS[4] CCE or DSS.VENC_STATUS[3] CCO) is<br />
reset to 0 to indicate that the closed-caption data is available in the closed-caption data registers and yet<br />
to be encoded.<br />
Immediately after the closed-caption data is encoded, the DSS.VENC_STATUS[4] CCE bit or the<br />
DSS.VENC_STATUS[3] CCO bit is set to 1 to indicate that the closed-caption data has been encoded and<br />
is ready to accept new data. As seen in Figure 7-1<strong>07</strong>, a null character is automatically inserted if the<br />
closed-caption data is not written to the closed-caption data registers in time for encoding.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1677
50 IRE<br />
0<br />
40 IRE<br />
Color Burst<br />
Hsync<br />
B E<br />
0.503/0.5 MHz<br />
Clock Run-in<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
The running clock frequency is controlled by the DSS.VENC_CC_CARR_WSS_CARR[15:0] FCC bit field<br />
which should be kept at reset value (0x2631) to get 5034960.5Hz (32xfline) for NTSC-601. The<br />
closed-caption running clock common frequencies are detailed in Table 7-44.<br />
Table 7-44. Closed-Caption Run Clock Frequency Settings<br />
NTSC Square<br />
NTSC-601 PAL-601 PAL Square Pixel<br />
Pixel<br />
VENC_CC_CARR_WSS_C<br />
ARR[15:0] FCC bit field 0x2631 0x25ED 0x2A03 0x22B6<br />
value<br />
The closed-caption data is encoded in nonreturn-to-zero (NRZ) format. Additionally, the data translates to<br />
the IRE scale as follows: 0 = 0 IRE; 1 = 50 IRE.<br />
Figure 7-1<strong>07</strong> shows the parameters of closed-caption line data implemented in different standards.<br />
NOTE:<br />
Figure 7-1<strong>07</strong>. Closed Captioning Timing<br />
S<br />
T<br />
A<br />
R<br />
T<br />
Start Bit<br />
Byte2<br />
D0-D6<br />
Null character 2<br />
P<br />
A<br />
R<br />
I<br />
T<br />
Y<br />
Byte1<br />
D0-D6<br />
Null character 1<br />
• The interval A is controlled by the DSS.VENC_LN_SEL[25:16] LN21_RUNIN bit field.<br />
• The interval B is controlled by DSS.VENC_CC_CARR_WSS_CARR[15:0] FCC bit field.<br />
Table 7-45. Closed-Caption Standard Timing Values<br />
Intervals Description Timing Values for Encoding Timing Values for Decoding<br />
P<br />
A<br />
R<br />
I<br />
T<br />
Y<br />
dss-080<br />
Minimal Nominal Maximal Lower Bound Nominal Upper Bound<br />
A HSYNC to clock running 10.250 µs 10.500 µs 10.750 µs 10.000 µs 10.500 µs 11.000 µs<br />
B Clock running 12.910 µs 12.910 µs<br />
Clock running to third start<br />
C 3.972 µs 3.972 µs<br />
bit<br />
D Start bit 1.986 µs 1.986 µs<br />
E Data characters 31.778 µs 31.778 µs<br />
NOTE: All timing values listed in Table 7-45 are measured from the mid-point (half amplitude) on all<br />
edges.<br />
For a complete description of copy protection including CGMS-A, please refer to CEA-608-x standard<br />
1678 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
7.4.7.6 Wide-Screen Signaling (WSS) Encoding<br />
The encoder can embed data, encoded in accordance with the IEC61880 and ITU-R 1119 data insertion<br />
standard, within the vertical blanking interval.<br />
The encoder supports WSS data insertion on line 20 of every frame in the NTSC format. WSS data<br />
insertion is enabled by activating the DSS.VENC_L21_WC_CTL[14:13] EVEN_ODD_EN bit and by<br />
programming the VENC_BSTAMP_WSS_DATA[27:8] WSS_DATA bit field.<br />
The running clock frequency is controlled by the DSS.VENC_CC_CARR_WSS_CARR[31:16] FWSS bit<br />
field. The wide-screen signaling running clock common frequencies are detailed in Table 7-46<br />
Table 7-46. Wide-Screen Signaling Run Clock Frequency Settings<br />
NTSC Square<br />
NTSC-601 PAL-601 PAL Square Pixel<br />
Pixel<br />
VENC_CC_CARR_WSS_C<br />
ARR[31:16] FWSS bit field 0x043F 0x2F72 0x04AC 0x2B6D<br />
value<br />
To select the line where the WSS data are encoded, program the DSS.VENC_L21_WC_CTL[12:8] LINE<br />
bit field.<br />
CAUTION<br />
The setting of the LINE[12:8] bit field value depends on the video standard:<br />
• PAL mode: There is an one line offset, so program the wanted line number -<br />
1. The recommended value is line 0x16 + 1 = 0x17 (23rd line). Note that the<br />
default value is 0x14 + 1 = 0x15 (21st line).<br />
• NTSC mode: There is a four line offset, so program the wanted line number<br />
- 4. The recommended value is line 0x10 + 4 = 0x14 (20th line). Note that<br />
the default value is 0x14 + 4 = 0x18 (24th line).<br />
The WSS encoding block assumes that a full 10-bit video range is used to determine the 70 percent of<br />
peak-white amplitude of a logic-1 bit. The encoder also supports WSS data insertion on line 23 in the PAL<br />
format. Both waveforms are shown in Figure 7-108.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1679
70 IRE<br />
40 IRE<br />
500 mV<br />
43 IRE<br />
11.2 S<br />
Color<br />
burst<br />
Start<br />
code<br />
1 0<br />
11 S 27.4 S<br />
Color<br />
burst<br />
Run<br />
IN<br />
Start<br />
code<br />
Data<br />
(D0−D13)<br />
49.1 S<br />
525-line line 20 WSS timing<br />
Start<br />
code<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-108. WSS Timing<br />
625-line line 23 WSS timing<br />
7.4.7.7 Video DAC Stage – Architecture and Control<br />
Data<br />
(D0−D19)<br />
23.1 S<br />
Active<br />
video<br />
Figure 7-109 shows the architecture of the video DAC stage, comprising two 10-bit video DACs (AVDAC1<br />
and AVDAC2) instances.<br />
1680 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-081
Device<br />
Video<br />
encoder<br />
10<br />
10<br />
DAC stage with amplifier<br />
DAC 1<br />
DAC 2<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-109. Video DAC Stage Architecture<br />
TVDET<br />
VREF<br />
TV DETECT<br />
TVOUT<br />
buffer<br />
TVOUT<br />
buffer<br />
TVINT<br />
vdda_dac vssa_dac<br />
GPIO2<br />
cvideo1_vfb<br />
cvideo1_out<br />
cvideo1_rset<br />
cvideo2_vfb<br />
cvideo2_out<br />
The display subsystem provides the necessary control signals to interface the memory frame buffer<br />
directly to external displays (TV sets). Two (one per channel) 10-bit current steering AVDACs are used to<br />
generate the video analog signal:<br />
• AVDAC1: Carries either the CVBS (composite) or S-Video Luma (Y) analog TV outputs; it provides<br />
also the TV detection/disconnection and power-down mode features.<br />
• AVDAC2 : Carries only the S-Video Chroma (C) analog TV output.<br />
The device system control module provides two dedicated AVDAC registers,<br />
CONTROL.CONTROL_AVDAC1 and CONTROL.CONTROL_AVDAC2, to configure the respective<br />
channels through the following bit field:<br />
• CONTROL.CONTROL_AVDACx [20:16] AVDACx_COMP_EN: Allows direct control over the<br />
configuration of the analog TV output. See Table 7-47, Section 7.5.8, Video Encoder Basic<br />
Programming Model, and <strong>Chapter</strong> 13, System Control Module.<br />
Register CONTROL.CONTROL_AVDACx [x=1, 2] Description<br />
Table 7-47. Analog TV Output Control<br />
[19] AVDACx_COMP_EN Single or dual channel operation<br />
0: Single channel (default)<br />
1: Dual channel<br />
[18] AVDACx_COMP_EN Channel role<br />
0: Luma video channel (dual-channel configuration) or Composite video<br />
channel (single-channel configuration) (default)<br />
1:Chroma video channel (dual-channel configuration)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1681<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-082
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Table 7-47. Analog TV Output Control (continued)<br />
Register CONTROL.CONTROL_AVDACx [x=1, 2] Description<br />
[17] AVDACx_COMP_EN Full scale swing selection<br />
0: High full-scale output swing: 1.3 V (default)<br />
1: Low full-scale output swing: 0.88 V<br />
[16] AVDACx_COMP_EN Current reference selection<br />
0: External current reference (set by external resistor connected to<br />
cvideo1_rset pin) (default)<br />
1: Internal current reference<br />
CAUTION<br />
Any change to the control register must be done only when the respective<br />
VDAC is off.<br />
High full-scale swing is the default mode. Low-swing mode does not comply<br />
with the NTSC and PAL video standards. It must be used only for backward<br />
compatibility to the OMAP35x.<br />
7.4.7.8 Video DC/AC Coupled TV Load<br />
The 10-bit video DAC stage supports both DC-coupled and AC-coupled TV loads. The<br />
CONTROL.CONTROL_DEVCONF1[11] TVACEN bit is used to define which output coupling is used (0:<br />
DC coupling; 1: AC coupling). This bit is the first one to be programed according to the TV load on the<br />
PCB board.<br />
NOTE: In high-swing mode, when DC coupling is used, there is a 180-mV DC offset at the TVOUT<br />
output (cvideo1_out for AVDAC1 and cvideo2_out for AVDAC2).<br />
In low-swing mode, when DC coupling is used, the DC offset at the maximum DAC code<br />
(@Max DAC current ~500 µA) is 300 mV.<br />
7.4.7.9 TV Detection/Disconnection Pulse Generation and Usage<br />
7.4.7.9.1 TV Detection/Disconnection Pulse Generation<br />
The TV detect block is an integral part of the video DAC stage.<br />
NOTE:<br />
• The TV detection/disconnection feature is supported only for AVDAC1.<br />
• The TV disconnection feature is recommended to save power. The TV<br />
detection/disconnection is operational only when video out is active. Therefore, to detect<br />
cable connection automatically, it is necessary to periodically activate the video out to<br />
test for cable presence.<br />
This block compares the output of AVDAC1 (cvideo1_out) to a reference, to sense the condition of the<br />
load. To operate, the TV detect requires two digital signals, TVACEN and TVDET. The TVACEN signal<br />
indicates to both TVOUT buffer and the TV detect circuit if the load is AC or DC coupled to adjust<br />
accordingly. To enable the detection of the load, the video encoder generates a negative TVDET pulse<br />
aligned with the TV sync pulses. The operation of the circuit is based on the difference in voltage levels in<br />
the output of the buffer depending on the load status. The TV detect block compares the output against a<br />
couple of references and the result is latched at the start of every sync pulse. The status, given by the<br />
TVINT output bit, is read later with the TVDET pulse rising edge. The TVINT signal of AVDAC1 is<br />
internally connected to channel 1 of the GPIO2 module, mapped as the TV detector interruption.<br />
The following registers are used to set the TV detection/disconnection pulse:<br />
1682 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• The DSS.VENC_TVDETGP_INT_START_STOP_X register defines which pixels are used to start and<br />
stop the pulse inside their respective line.<br />
• The DSS.VENC_TVDETGP_INT_START_STOP_Y register defines which lines are used to start and<br />
stop the pulse.<br />
• The DSS.VENC_GEN_CTRL[0] EN bit enables or disables the TVDET pulse (0: Disable; 1: Enable).<br />
• The DSS.VENC_GEN_CTRL[16] TVDP bit sets the TVDET pulse polarity (0: Active low; 1: Active<br />
high).<br />
7.4.7.9.2 TV Detection Procedure<br />
The TV detection procedure is the following:<br />
1. Initial setup:<br />
• Program the DSS.VENC_TVDETGP_INT_START_STOP_X and<br />
DSS.VENC_TVDETGP_INT_START_STOP_Y registers to define on which pixels and lines,<br />
respectively, the TVDET pulse will start and stop.<br />
• Set the DSS.VENC_GEN_CTRL[16] TVDP bit to 1 (reset value) for a TVDET pulse active high<br />
polarity.<br />
• Set the DSS.VENC_GEN_CTRL[0] EN bit to 1 to enable the TVDET pulse generation.<br />
2. The TVDET signal is set to low by hardware according to the settings in the<br />
DSS.VENC_TVDETGP_INT_START_STOP_X and DSS.VENC_TVDETGP_INT_START_STOP_Y<br />
registers.<br />
3. Set the VENC_OUTPUT_CONTROL[0] LUMA_ENABLE bit (in s-video mode) or the<br />
VENC_OUTPUT_CONTROL[1] COMPOSITE_ENABLE (in composite video mode) to 1 to enable the<br />
video DAC1 output.<br />
4. Power up the vdda_dac voltage for the DAC stage and the TVOUT buffer (repeat every TV field during<br />
the horizontal synchronization). This is software controlled through an I 2 C interface connected to the<br />
power IC.<br />
5. The TVDET pulse is set high by hardware according to the settings in the<br />
DSS.VENC_TVDETGP_INT_START_STOP_X and DSS.VENC_TVDETGP_INT_START_STOP_Y<br />
registers.<br />
6. Check the TVINT output signal: When TVINT is set to 1, the load is connected.<br />
CAUTION<br />
• If AC coupling is selected, two TVDET pulses are required to set high the<br />
TVINT signal. Due to the internal logic of the video DAC1, the TVINT signal<br />
is generated after the next positive edge of the TVDET signal that happens<br />
during the next VSYNC timing.<br />
• If DC coupling is selected, only one TVDET pulse is required to set high the<br />
TVINT signal.<br />
7.4.7.9.3 TV Disconnection Procedure<br />
The TV disconnection procedure is the following:<br />
1. Initial setup:<br />
• Program the DSS.VENC_TVDETGP_INT_START_STOP_X and<br />
DSS.VENC_TVDETGP_INT_START_STOP_Y registers to define on which pixels and lines,<br />
respectively, the TVDET pulse will start and stop.<br />
• Set the DSS.VENC_GEN_CTRL[16] TVDP bit to 1 (reset value) for a TVDET pulse active high<br />
polarity.<br />
• Set the DSS.VENC_GEN_CTRL[0] EN bit to 1 to enable the TVDET pulse generation.<br />
2. The TVDET signal is set to low by hardware according to the settings in the<br />
DSS.VENC_TVDETGP_INT_START_STOP_X and DSS.VENC_TVDETGP_INT_START_STOP_Y<br />
registers.<br />
3. The TVDET pulse is set high by hardware according to the settings in the<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1683
cvideo1_out<br />
(vertical sync pulse)<br />
TVDET<br />
TVINT<br />
TV disconnected TV connected TV disconnected<br />
Start of<br />
sync pulse<br />
Load<br />
detection<br />
End of<br />
sync pulse<br />
Tdm<br />
Status of the load is latched<br />
to the output on the 1st rising<br />
edge of TVDET<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
DSS.VENC_TVDETGP_INT_START_STOP_X and DSS.VENC_TVDETGP_INT_START_STOP_Y<br />
registers.<br />
4. Check the TVINT output signal: When TVINT is reset to 0, the load is disconnected.<br />
5. Reset the VENC_OUTPUT_CONTROL[0] LUMA_ENABLE bit (in s-video mode) or the<br />
VENC_OUTPUT_CONTROL[1] COMPOSITE_ENABLE (in composite video mode) to 0 to disable the<br />
video DAC1 output.<br />
6. Power-down the vdda_dac voltage for the DAC stage and the TVOUT buffer (repeat every TV field<br />
during the horizontal synchronization). This is software controlled through an I 2 C interface connected to<br />
the power IC.<br />
CAUTION<br />
• If DC coupling is selected, two TVDET pulses are required to set low the<br />
TVINT signal. Due to the internal logic of the video DAC1, the TVINT signal<br />
is generated after the next positive edge of the TVDET signal that happens<br />
during the next VSYNC timing.<br />
• If AC coupling is selected, only one TVDET pulse is required to set low the<br />
TVINT signal.<br />
7.4.7.9.4 Recommended TV Detection/Disconnection Pulse Waveform<br />
To enable the detection/disconnection of the load, the circuit requires that the TVDET pulse resembles the<br />
following waveform. As explained in Section 7.4.7.9.2, TV Detection Procedure, and in Section 7.4.7.9.3,<br />
TV Disconnection Procedure by using the video encoder registers, the TVDET pulse polarity, start and<br />
stop is programmable. The only critical parameter is Tdm, which should be longer than the delay through<br />
the AVDAC and TVOUT buffer, which is at least 750 ns.<br />
If DC-coupling is selected, the TVINT output signal for TV detection is latched at the rising edge of the first<br />
TVDET signal but the TVINT output signal for TV disconnection is latched after the next rising edge of the<br />
TVDET signal that happens during the next VSYNC timing. Figure 7-110 shows the waveforms for the<br />
DC-coupling TV detect pulse (TVDET) when load is connected and disconnected.<br />
Figure 7-110. DC-Coupling TV Detect Waveforms for TV Connected and Disconnected<br />
Start of<br />
sync pulse<br />
Load<br />
detection<br />
End of<br />
sync pulse<br />
Start of<br />
sync pulse<br />
End of<br />
sync pulse<br />
Status of the load is latched<br />
to the output on the 2nd rising<br />
edge of TVDET<br />
If AC-coupling is selected, the TVINT output signal for TV detection is latched after the next rising edge of<br />
the TVDET signal that happens during the next VSYNC timing but the TVINT output signal for TV<br />
disconnection is latched at the rising edge of the first TVDET signal. Figure 7-111 shows the waveforms<br />
for the AC-coupling TV detect pulse (TVDET) when load is connected and disconnected.<br />
1684 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-083
cvideo1_out<br />
(vertical sync pulse)<br />
TV disconnected TV connected TV disconnected<br />
TVDET<br />
TVINT<br />
Start of<br />
sync pulse<br />
Load<br />
detection<br />
End of<br />
sync pulse<br />
Tdm Tdm<br />
Status of the load is latched<br />
to the output on the 2nd rising<br />
edge of TVDET<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Figure 7-111. AC-Coupling TV Detect Waveforms for TV Connected and Disconnected<br />
NOTE:<br />
Start of<br />
sync pulse<br />
Load<br />
detection<br />
End of<br />
sync pulse<br />
Status of the load is latched<br />
to the output on the 1st rising<br />
edge of TVDET<br />
• When setting the DSS.VENC_TVDETGP_INT_START_STOP_X register, software<br />
users must ensure that the TVDET signal is in the active area. To avoid any problem,<br />
the TVDET signal must not be longer than one line.<br />
• The activation of the TVDET signal will not have a visual impact on the cvideo1_out<br />
output signal.<br />
7.4.7.9.5 TV Detection/Disconnection Usage<br />
The TV-detection/TV-disconnection is based on the difference in voltage levels in the output of the TV<br />
buffer depending on the load status. The operation is slightly different for ac and for dc operation. For DC<br />
operation, the cvideo1_out voltage is compared against a voltage reference that makes the comparator<br />
trigger in each sync pulse while the load is connected. For AC operation, the cvideo1_out voltage is<br />
compared against a voltage reference that makes the comparator trigger in each sync pulse while the load<br />
is disconnected. In both cases, the TVINT output signal produces a logic 1 when a load is connected and<br />
a logic 0 when a load is disconnected.<br />
For DC-coupling mode, see Figure 7-112 and for AC-coupling mode, see Figure 7-113.<br />
NOTE: Because the video DAC stage and the video encoder must be awake for connection<br />
detection, consider that the video DAC stage can take up to 10 µs to wake up.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-084<br />
1685
TVDET<br />
cvideo1_out<br />
TV threshold<br />
GPIO_33<br />
GPIO2_MPU_IRQ<br />
or<br />
GPIO2_IVA2_IRQ<br />
TVDET<br />
cvideo1_out<br />
GPIO_33<br />
GPIO2_MPU_IRQ<br />
or<br />
GPIO2_IVA2_IRQ<br />
TV threshold<br />
TV disconnected<br />
TV disconnected<br />
TV connected<br />
TV connected<br />
TV disconnected<br />
TV disconnected<br />
TV connected TV disconnected<br />
TV disconnected TV connected<br />
TV disconnected<br />
TV disconnected<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-112. GPIO Signal Waveform Proposal for TV Detection/Disconnection in DC-Coupling Mode<br />
Figure 7-113. GPIO Signal Waveform Proposal for TV Detection/Disconnection in AC-Coupling Mode<br />
7.4.7.10 Video DAC Stage Bypass Mode<br />
TV connected<br />
TV disconnected<br />
TV connected TV disconnected<br />
The 10-bit video DAC stage has a TVOUT buffer bypass mode that turns off the TVOUT buffers and<br />
redirects directly the outputs of the DACs to the VFB pins (cvideo1_vfb for AVDAC1 and cvideo2_vfb for<br />
AVDAC2).<br />
This bypass mode is activated by setting the CONTROL.CONTROL_DEVCONF1[18] TVOUTBYPASS bit<br />
to 1. The reset value of the CONTROL.CONTROL_DEVCONF1[18] TVOUTBYPASS bit is 0 (that is, the<br />
TVOUT buffer is not bypassed).<br />
NOTE: In bypass mode:<br />
• The cvideo1_rset pin requires a Rset resistor connected to the ground. The typical value<br />
of the Rset resistor is 10K.<br />
• Both cvideo1_vfb and cvideo2_vfb pins require a Rout resistors connected to the ground.<br />
The typical values of Rout1 and Rout2 resistors are 1,5K.<br />
1686 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-085<br />
dss-086
RGB[23:0]<br />
Video Encoder Module<br />
DAC TEST register:<br />
VENC_OUTPUT_TEST[9:0]<br />
COMPOSITE_TEST (DAC1)<br />
RGB[9:0]<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
CAUTION<br />
• The TV detect feature is not available in bypass mode.<br />
• In bypass mode, an external amplifier is needed on the cvideo1_vfb and<br />
cvideo2_vfb pins.<br />
7.4.7.11 Video DAC Stage Test Mode<br />
The DAC stage can be tested for debug using either 10-bit external data or 10-bit internal register values<br />
directly connected to the DACs. See Figure 7-114 for video DAC test in composite video mode, and see<br />
Figure 7-115 for video DAC test in separate video mode.<br />
Figure 7-114. DAC Test Mode in Composite Video Mode<br />
0<br />
1<br />
CVBS[9:0]<br />
(DAC1)<br />
VENC_OUTPUT_CONTROL[4]<br />
TEST_MODE<br />
VENC_OUTPUT_CONTROL[6] COMPOSITE_SOURCE for DAC1<br />
0<br />
1<br />
DAC[9:0]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-087<br />
1687
RGB[23:0]<br />
Video Encoder Module<br />
DAC TEST registers:<br />
VENC_OUTPUT_CONTROL[25:16]<br />
LUMA_TEST (DAC1) or<br />
VENC_OUTPUT_TEST[25:16]<br />
CHROMA_TEST (DAC2)<br />
RGB[9:0]<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description www.ti.com<br />
Figure 7-115. DAC Test Mode in Separate video Mode<br />
0<br />
1<br />
Y[9:0]<br />
(DAC1)<br />
C[9:0]<br />
(DAC2)<br />
VENC_OUTPUT_CONTROL[4]<br />
TEST_MODE<br />
VENC_OUTPUT_CONTROL[5] LUMA_SOURCE for DAC1<br />
or<br />
VENC_OUTPUT_CONTROL[7] CHROMA_SOURCE for DAC2<br />
0<br />
1<br />
DAC[9:0]<br />
• Use the DSS.VENC_OUTPUT_CONTROL[4] TEST_MODE bit to select between DAC normal mode<br />
(0x0) and DAC test mode (0x1).<br />
• Use the DSS.VENC_OUTPUT_CONTROL[7] CHROMA_SOURCE bit for AVDAC2 and either the<br />
DSS.VENC_OUTPUT_CONTROL[6] COMPOSITE_SOURCE bit (in composite video mode) or the<br />
DSS.VENC_OUTPUT_CONTROL[5] LUMA_SOURCE bit (in s-video mode) for AVDAC1 to select the<br />
test mode:<br />
– 0x0: From the internal register DSS.VENC_OUTPUT_TEST[25:16] CHROMA_TEST bit field for<br />
AVDAC2 and either DSS.VENC_OUTPUT_TEST[9:0] COMPOSITE_TEST bit field (composite<br />
video) or DSS.VENC_OUTPUT_CONTROL[25:16] LUMA_TEST (s-video mode) for AVDAC1<br />
– 0x1: From the video port G[1:0], B[7:0]<br />
NOTE: In the external data test mode (bypass mode), the display controller must provide the data<br />
(G[1:0], B[7:0]) externally. To do this, configure the video encoder to generate correct timing<br />
signals, without which the display controller cannot operate (even if the encoder core is<br />
bypassed from the data path perspective).<br />
7.4.7.12 Video DAC Stage Power Management<br />
After device reset, the DSS_CONTROL[5] DAC_POWERDN_BGZ register bit is set to 0, and the video<br />
DAC stage is powered down.<br />
Table 7-48 shows possible power management configurations and the corresponding register settings.<br />
1688 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-088
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
Table 7-48. Video DAC Stage Power Management<br />
AVDAC2 AVDAC1<br />
Power Management Controls<br />
DSS_CONTRO VENC_OUTPUT_ VENC_OUTPUT_C VENC_OUTPUT<br />
CONTROL_DEV CONTROL_D<br />
L[5] CONTROL[2] ONTROL[1] _CONTROL[0]<br />
CONF1[18] EVCONF1[11] Description<br />
DAC_POWERD CHROMA_ENAB COMPOSITE_ENA LUMA_ENABL<br />
TVOUTBYPASS TVACEN<br />
N_BGZ LE BLE E<br />
Total power down.<br />
0 x x x x x Bandgaps powered<br />
down.<br />
Standby (analog in<br />
1 0 0 0 x x power down except<br />
bandgaps/LDOs)<br />
1 1 1 1 0 0<br />
1 1 1 1 0 1<br />
Full power up in DC<br />
mode<br />
Full power up in AC<br />
mode<br />
Full power up in<br />
1 1 1 1 1 x TVOUT bypass mode<br />
(DAC-only mode)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1689
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5 <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
This section describes how to configure the display subsystem for the desired functionalities and also<br />
describes the programming models of the display controller, the RFBI and the video encoder.<br />
The main configuration scenarios are:<br />
• LCD panel support (bypass or RFBI mode)<br />
Configure the RFBI module (only if in RFBI mode; otherwise, the default values must remain), and then<br />
configure the display controller to the desired functionalities before the activities start.<br />
• TV set support<br />
Configure the video encoder and then the display controller.<br />
• Both LCD panel support (bypass or RFBI mode) and TV set support<br />
Configure the RFBI module (only if in RFBI mode; otherwise, leave the default values), configure the<br />
video encoder, and then configure the display controller.<br />
7.5.1 <strong>Display</strong> <strong>Subsystem</strong> Reset<br />
The display subsystem can receive a software reset that is propagated through all of the submodules to<br />
initialize the subsystem. The following procedure describes a possible sequence:<br />
1. If the LCD is on, stop the LCD by setting the DSS.DISPC_CONTROL[0] LCDENABLE bit to 0.<br />
(a) Reset the frame done status bit by writing 1 in the DSS.DISPC_IRQSTATUS[0] FRAMEDONE bit.<br />
(b) Wait until the DSS.DISPC_IRQSTATUS[0] FRAMEDONE bit is set to 1. This shows that the end of<br />
frame has taken place and the LCD stop is complete.<br />
2. To take the display subsystem out of reset, all clocks related to the display subsystem must be<br />
enabled and the DPLL4 must be enabled. The following clocks must be enabled to take the display<br />
subsystem out of reset:<br />
• PRCM.CM_FCLKEN_DSS[0] EN_DSS1 bit set to 1<br />
• PRCM.CM_FCLKEN_DSS[1] EN_DSS2 bit set to 1<br />
• PRCM.CM_FCLKEN_DSS[2] EN_TV bit set to 1<br />
• PRCM.CM_ICLKEN_DSS[0] EN_DSS bit set to 1<br />
Once the clocks are enabled as shown, the display subsystem can be taken out of reset.<br />
3. Write 1 in the DSS.DSS_SYSCONFIG[1] SOFTRESET bit to apply the soft reset to the subsystem.<br />
4. Read the DSS.DSS_SYSSTATUS[0] RESETDONE bit. If this bit is 1, the reset sequence is complete;<br />
otherwise, read this bit again (the reset sequence is not completed).<br />
7.5.2 <strong>Display</strong> <strong>Subsystem</strong> Configuration Phase<br />
The display subsystem configuration phase is important to configure the data flow for using the LCD panel<br />
or the TV set. Use the following flow:<br />
1. To configure the top level of the functional clock of the display controller clock, set the<br />
DSS.DSS_CONTROL[0] DSS_CLK_SWITCH bit.<br />
2. To configure the top level of the video encoder, set the DSS.DSS_CONTROL[2]<br />
VENC_CLOCK_MODE bit and the DSS.DSS_CONTROL[3] VENC_CLOCK_X4 bit for TV set support.<br />
3. To configure the top level of the DAC stage, set the DSS.DSS_CONTROL[4] DAC_DEMEN bit for TV<br />
set support (if required).<br />
4. Configure the RFBI module and/or the video encoder as needed.<br />
5. Configure the display controller.<br />
7.5.3 <strong>Display</strong> Controller Basic Programming Model<br />
Some display controller registers are termed shadow registers, which are associated with the digital output<br />
and/or the LCD output. A shadow register change has no direct effect on the configuration of the display<br />
controller unless the DSS.DISPC_CONTROL[5] GOLCD bit is set for the LCD output and/or the<br />
DSS.DISPC_CONTROL[6] GODIGITAL bit is set for the digital output.<br />
1690 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
In the case of the digital output, after programming the shadow registers, the DSS.DISPC_CONTROL[6]<br />
GODIGITAL bit must be set to 1. If this bit is not set, the configuration of the display controller will have no<br />
effect. This setting indicates that all display controller shadow registers are programmed and that<br />
hardware can update the internal registers at the external EVSYNC.<br />
In the case of the LCD output, after programming the shadow registers, the DSS.DISPC_CONTROL[5]<br />
GOLCD bit must be set to 1. If this bit is not set, the configuration of the display controller will have no<br />
effect. This setting indicates that all display controller shadow registers are programmed and that<br />
hardware can update the internal registers at the VFP start period.<br />
Before setting either the DSS.DISPC_CONTROL[5] GOLCD or DSS.DISPC_CONTROL[6] GODIGITAL<br />
bit, ensure that the bit is cleared.<br />
Table 7-49 lists the shadow registers.<br />
Table 7-49. Shadow Registers<br />
Shadow Register Name Updated on VFP Start Period Updated on External VSYNC<br />
(LCD output) (Digital output)<br />
DSS.DISPC_CONTROL X (1)<br />
DSS.DISPC_CONFIG X X<br />
DSS.DISPC_DEFAULT_COLOR_m (m = 0) X<br />
DSS.DISPC_DEFAULT_COLOR_m (m = 1) X<br />
DSS.DISPC_TRANS_COLOR_m (m = 0) X<br />
DSS.DISPC_TRANS_COLOR_m (m = 1) X<br />
DSS.DISPC_LINE_NUMBER X<br />
DSS.DISPC_TIMING_H X<br />
DSS.DISPC_TIMING_V X<br />
DSS.DISPC_POL_FREQ X<br />
DSS.DISPC_DIVISOR X<br />
DSS.DISPC_SIZE_DIG X<br />
DSS.DISPC_SIZE_LCD X<br />
DSS.DISPC_GFX_BAj (j = 0,1) X X<br />
DSS.DISPC_GFX_POSITION X X<br />
DSS.DISPC_GFX_SIZE X X<br />
DSS.DISPC_GFX_ATTRIBUTES X X<br />
DSS.DISPC_GFX_FIFO_THRESHOLD X X<br />
DSS.DISPC_GFX_ROW_INC X X<br />
DSS.DISPC_GFX_PIXEL_INC X X<br />
DSS.DISPC_GFX_WINDOW_SKIP X X<br />
DSS.DISPC_GFX_TABLE_BA X X<br />
DSS.DISPC_GFX_PRELOAD X X<br />
DSS.DISPC_CPR_COEF_R X<br />
DSS.DISPC_CPR_COEF_G X<br />
DSS.DISPC_CPR_COEF_B X<br />
DSS.DISPC_VIDn_BAj (j= 0,1) X X<br />
DSS.DISPC_VIDn_POSITION X X<br />
DSS.DISPC_VIDn_SIZE X X<br />
DSS.DISPC_VIDn_ATTRIBUTES X X<br />
DSS.DISPC_VIDn_FIFO_THRESHOLD X X<br />
DSS.DISPC_VIDn_ROW_INC X X<br />
DSS.DISPC_VIDn_PIXEL_INC X X<br />
DSS.DISPC_VIDn_FIR X X<br />
DSS.DISPC_VIDn_PICTURE_SIZE X X<br />
(1) Some of the register bit fields are shadow bits. For more information, see Section 7.7, <strong>Display</strong> <strong>Subsystem</strong> Register Manual.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1691<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
X (1)
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Table 7-49. Shadow Registers (continued)<br />
Shadow Register Name Updated on VFP Start Period Updated on External VSYNC<br />
(LCD output) (Digital output)<br />
DSS.DISPC_VIDn_ACCUl (l = 0,1) X X<br />
DSS.DISPC_VIDn_FIR_COEF_Hi (i = 0 to 7) X X<br />
DSS.DISPC_VIDn_FIR_COEF_HVi (i = 0 to 7) X X<br />
DSS.DISPC_VIDn_FIR_COEF_Vi (i = 0 to 7) X X<br />
DSS.DISPC_VIDn_CONV_COEFi (i = 0 to 4) X X<br />
DSS.DISPC_VIDn_PRELOAD X X<br />
DSS.DISPC_DATA_CYCLEk (k = 0 to 3) X<br />
7.5.3.1 <strong>Display</strong> Controller Configuration<br />
The following registers define the display controller configuration:<br />
• DSS.DISPC_SYSCONFIG<br />
• DSS.DISPC_SYSSTATUS<br />
• DSS.DISPC_IRQSTATUS<br />
• DSS.DISPC_IRQENABLE<br />
7.5.3.2 Graphics Layer Configuration<br />
The graphics layer configuration is common to the LCD and the TV set.<br />
7.5.3.2.1 Graphics DMA Registers<br />
The following registers define the graphics DMA engine configuration:<br />
• DSS.DISPC_CONTROL<br />
• DSS.DISPC_GFX_BAj<br />
• DSS.DISPC_GFX_ATTRIBUTES<br />
• DSS.DISPC_GFX_ROW_INC<br />
• DSS.DISPC_GFX_PIXEL_INC<br />
• DSS.DISPC_GFX_FIFO_THRESHOLD<br />
• DSS.DISPC_GFX_TABLE_BA<br />
The following fields define the attributes of the graphics DMA engine:<br />
• Graphics layer enable (DSS.DISPC_GFX_ATTRIBUTES[0] GFXENABLE bit): The default value of this<br />
bit at reset time is 0x0 (Disabled). The graphics DMA engine fetches encoded pixels from the system<br />
memory only when the graphics layer is enabled (a valid configuration is programmed for the graphics<br />
layer). The graphics window is present and the graphics pipeline is active.<br />
• Burst size (DSS.DISPC_GFX_ATTRIBUTES[7:6] GFXBURSTSIZE field): The default burst size at<br />
reset time is 4 x 32 bytes. The possible values are 4 x 32, 8 x 32, and 16 x 32 bytes. The burst size is<br />
initialized at boot time by the software and never changes as long as the display controller is enabled.<br />
This field indicates the maximum burst size for the specific pipeline. In case of misalignment, the DMA<br />
engine may issue single and/or smaller burst requests because the burst size must be aligned to the<br />
burst boundary.<br />
• Preload configuration (DSS.DISPC_GFX_ATTRIBUTES[11] GFXFIFOPRELOAD bit): The default<br />
preload configuration uses the DSS.DISPC_GFX_PRELOAD register value (the reset value is 256<br />
bytes) to define the number of bytes to be fetched from system memory into the display controller<br />
graphics FIFO. By programming the DSS.DISPC_GFX_ATTRIBUTES[11] GFXFIFOPRELOAD bit,<br />
software users select between preload register (with 256 bytes as the reset value) and the high<br />
threshold value for preload of the encoded pixels. For best performance, the configuration of<br />
thresholds is defined using the FIFO size (in bytes) minus 1 for the high threshold, and the FIFO size<br />
(in bytes) minus the burst size (in bytes) for the low threshold, which provides 960, 992, and 1008,<br />
respectively, for burst sizes 16x32, 8x32, and 4x32. Note also that the preload value is defined based<br />
on the following display types:<br />
1692 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
– Active matrix (TFT) display: DSS.DISPC_GFX_PRELOAD[11:0] PRELOAD = 0x60 (value is 96)<br />
– Color passive matrix (STN) display: DSS.DISPC_GFX_PRELOAD[11:0] PRELOAD = 0x72 (value is<br />
114)<br />
– Monochrome passive matrix (STN) display: DSS.DISPC_GFX_PRELOAD[11:0] PRELOAD = 0xE0<br />
(value is 224)<br />
• Base address of the graphics buffer in system memory (DSS.DISPC_GFX_BAj registers): The default<br />
value of these two registers at reset time is 0x0. The horizontal resolution is one pixel because the<br />
base address is aligned on a pixel size boundary. In case of 4 BPP, the resolution is two pixels; for 2<br />
BPP, resolution is four pixels; for 1 BPP, resolution is eight pixels; and for RGB24 packed format, the<br />
resolution is four pixels. The vertical resolution is one line. The register DSS.DISPC_GFX_BA0 defines<br />
the base address of the even field; and DSS.DISPC_GFX_BA1 defines the base of the odd field in the<br />
case of an external synchronization and based on the value of the input signal DISPC_FID and the<br />
polarity. To improve system throughput, the base address should be aligned on the burst size<br />
boundary.<br />
• Graphics FIFO threshold (DSS.DISPC_GFX_FIFO_THRESHOLD register): The low threshold<br />
(DSS.DISPC_GFX_FIFO_THRESHOLD[11:0] GFXFIFOLOWTHRESHOLD) and the high threshold<br />
(DSS.DISPC_GFX_FIFO_THRESHOLD[27:16] GFXFIFOHIGHTHRESHOLD) values define the FIFO<br />
DMA behavior. When the low level is reached, one or more requests are issued to the L3-based<br />
interconnect to fill up the FIFO to reach the high threshold. A request is issued as long as the FIFO<br />
has enough space available to accept a burst. The DMA engine then waits until the low level is<br />
reached to restart the requests. By setting the DSS.DISPC_CONFIG[14] FIFOMERGE bit to 1, users<br />
merge the three FIFOs (GFX, VID1, and VID2). In this case, the low threshold (the<br />
DSS.DISPC_GFX_FIFO_THRESHOLD[11:0] GFXFIFOLOWTHRESHOLD bit field) and the high<br />
threshold (DSS.DISPC_GFX_FIFO_THRESHOLD[27:16] GFXFIFOHIGHTHRESHOLD bit field) values<br />
must be programmed with a multiplier factor of three (3 x value). By default, the FIFOs are not merged<br />
(the DSS.DISPC_CONFIG[14] FIFOMERGE bit reset value is 0).<br />
• Palette/gamma table used (DSS.DISPC_CONFIG[3] PALETTEGAMMATABLE bit): The bit indicates if<br />
the palette must be loaded before the graphics data for the following frame. The bit is set by software<br />
and reset by hardware.<br />
• Base address of the palette/gamma table buffer in system memory (DSS.DISPC_GFX_TABLE_BA<br />
register): The default value of this register at reset time is 0x0. The base address is aligned on a 32-bit<br />
address. Depending on the pixel size of graphics data (1, 2, 4, or 8 BPP), 16 (1, 2, or 4 BPP), or 256<br />
(8 BPP) x 32-bit values are loaded from system memory into the internal table memory. To load the<br />
table when using the memory as a gamma table, the graphics pipeline is enabled and then disabled by<br />
the software when the palette loaded interrupt is generated. The overlay manager ignores the graphics<br />
pipe when the table is used as a gamma table.<br />
NOTE: In case of RGB16 format and optimization enabled, the base address is aligned on a 32-bit<br />
boundary and the number of bytes to skip is a multiple of 4 bytes.<br />
• Graphics Priority (DSS.DISPC_GFX_ATTRIBUTES[14] GFXARBITRATION): The default value at reset<br />
time is 0x0. It is used to change between normal priority (value of 0) to high priority (value of 1) to<br />
change priority for the graphics channel vs. video channels. It can be used to give higher priority to the<br />
pipelines with real time constraint vs. non real time pipelines. For that is, pipelines associated to the<br />
LCD output in RFBI mode should have lower priority than pipelines associated to TV output.<br />
• Graphics Self-Refresh (DSS.DISPC_GFX_ATTRIBUTES[15] GFXSELFREFRESH): The default value<br />
at reset time is 0x0. It is used to use the DMA FIFO without accessing the interconnect for multiple<br />
frames. Once, the data have been loaded to the DMA FIFO for displaying the frame, they are used for<br />
the following frames.<br />
The sequence to activate the self-refresh is the following:<br />
– Frame t: The bit field should be set at anytime during frame<br />
– Frame t+1: Fetch of the data in the DMA FIFO and display of the frame<br />
– Frame t+2: No access to the L3 interconnect, DMA FIFO uses to provide the pixels<br />
The sequence to deactivate the self-refresh is the following:<br />
– Frame t: No access to the L3 interconnect, DMA FIFO uses to provide the pixels, bit field can be<br />
changed at any time during the frame<br />
– Frame t+1: Fetch of the data from system memory using the L3 interconnect<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1693
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.3.2.2 Graphics Layer Configuration Registers<br />
The following registers define the graphics layer configuration:<br />
• DSS.DISPC_CONFIG<br />
• DSS.DISPC_GFX_POSITION<br />
• DSS.DISPC_GFX_SIZE<br />
• DSS.DISPC_GFX_ATTRIBUTES<br />
The graphics layer is enabled/disabled by setting/resetting the DSS.DISPC_GFX_ATTRIBUTES[0]<br />
GFXENABLE bit. When the graphics layer is disabled, the graphics window does not exist on the screen<br />
and the graphics pipeline and DMA are inactive.<br />
Set a valid configuration before enabling the graphics layer. After a register change, either the<br />
DSS.DISPC_CONTROL[6] GODIGITAL or DSS.DISPC_CONTROL[5] GOLCD bit must be set. The<br />
software must wait for the hardware to reset the bit before setting it. The software reset is not<br />
recommended because the application cannot ensure that the bit is reset before the hardware reset.<br />
7.5.3.2.3 Graphics Window Attributes<br />
The following fields define the attributes of the graphics window:<br />
• Graphics format (DSS.DISPC_GFX_ATTRIBUTES[4:1] GFXFORMAT bit field): The default value of<br />
this bit field at reset time is 0x0 (BITMAP 1-BPP). The graphics format can be either: BITMAP1,<br />
BITMAP2, BITMAP4, or BITMAP8 (CLUT) or RGB12, RGB16, or RGB24 (true-color formats).<br />
• Graphics window X-position (DSS.DISPC_GFX_POSITION[10:0] GFXPOSX bit field): The default<br />
value at reset time is 0x0. The window X-position is from 0 to 2047 columns. All integer values in the<br />
range [0:2047] are allowed.<br />
• Graphics window Y-position (DSS.DISPC_GFX_POSITION[26:16] GFXPOSY bit field): The default<br />
value of this bit field at reset time is 0x0.The window Y-position is from 0 to 2047 rows. All integer<br />
values in the range [0:2047] are allowed.<br />
• Graphics window width (DSS.DISPC_GFX_SIZE[10:0] GFXSIZEX bit field): The default value at reset<br />
time is 0x0 (1 pixel). The window width is from 1 to 2048 pixels. All integer values in the range [1:2048]<br />
are allowed for the following formats: 8 BPP, RGB12, RGB16, and RGB24. The width must be a<br />
multiple of eight pixels for 1 BPP, four pixels for 2 BPP, and two pixels for 4 BPP. The maximum<br />
bandwidth efficiency for accessing the pixels in system memory is reached when the width of the<br />
graphics window (in bytes) is a multiple of the graphics burst size defined in the<br />
DSS.DISPC_GFX_ATTRIBUTES[7:6] GFXBURSTSIZE bit field (in bytes).<br />
NOTE: When the RGB24 packed format is selected, the width must be a multiple of 12 bytes when<br />
the DSS.DISPC_GFX_ROW_INC register is not 1. When DSS.DISPC_GFX_ROW_INC<br />
register is 1, the width can be any size from 1 to 2048 pixels.<br />
The entire pixels of the graphics window must be inside the LCD screen. Depending on the<br />
width of the buffer to be displayed in the graphics layer and the position, the width should be<br />
adjusted by software to limit the right edge of the window inside the screen.<br />
• Graphics window height (DSS.DISPC_GFX_SIZE[26:16] GFXSIZEY bit field): The default value at<br />
reset time is 0x0 (1 pixel). The window height is from 1 to 2048 pixels. All integer values in the range<br />
[1:2048] are allowed. The entire pixels of the graphics window must be inside the LCD screen.<br />
Depending on the height of the buffer to be displayed in the graphics layer and the position, the height<br />
should be adjusted by software to limit the bottom edge of the window inside the screen<br />
• Graphics data endianness (DSS.DISPC_GFX_ATTRIBUTES[10] GFXENDIANNESS bit): This bit<br />
indicates the endianness (little or big) of the graphics pixels. The default value at reset time is 0x0 (little<br />
endian).<br />
• Graphics data nible mode (DSS.DISPC_GFX_ATTRIBUTES[9] GFXNIBBLEMODE bit): This bit<br />
indicates the nibble mode of the graphics pixels. The default value at reset time is 0x0 (Disable).<br />
• Graphics replication logic enable (DSS.DISPC_GFX_ATTRIBUTES[5] GFXREPLICATIONENABLE<br />
bit): The default value at reset time is 0x0 (Disable). The encoded pixel data in RGB format (RGB16)<br />
can be extended to 24-bit format with or without replication of the MSB part to fill up the LSB due to the<br />
24-bit left alignment. If the replication logic is turned off, the LSB part is filled up with 0s.<br />
1694 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
GFX<br />
GFX<br />
GFX<br />
X = DISPC_GFX_SIZE[10:0] GFXSIZEX + 1<br />
VID1<br />
VID1<br />
VID1<br />
Y<br />
Y<br />
Y = DISPC_VID1_POSITION[26:16] VIDPOSY + DISPC_VID1_SIZE[26:16] VIDSIZEY<br />
– DISPC_GFX_POSITION[26:16] GFXPOSY + 1<br />
X = DISPC_GFX_SIZE[10:0] GFXSIZEX + 1<br />
X = DISPC_GFX_SIZE[10:0] GFXSIZEX + 1<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Graphics window skip enable (DSS.DISPC_CONTROL[12] OVERLAYOPTIMIZATION bit): By<br />
setting/resetting the bit, the overlay optimization is enabled or disabled. Before enabling the overlay<br />
optimization, the DSS.DISPC_GFX_WINDOW_SKIP[31:0] GFXWINDOWSKIP bit field must be set<br />
according to the video1 and graphics windows overlap. The default value at reset time is 0x0 (Disable).<br />
When video1 is not present, the DSS.DISPC_GFX_WINDOW_SKIP[31:0] GFXWINDOWSKIP bit field<br />
should be reset. When the color key is used, the DSS.DISPC_GFX_WINDOW_SKIP[31:0]<br />
GFXWINDOWSKIP bit field should be reset.<br />
• Graphics window skip (DSS.DISPC_GFX_WINDOW_SKIP[31:0] GFXWINDOWSKIP bit field): The bit<br />
field represents the number of bytes to skip while fetching the graphics-encoded pixels when reaching<br />
the beginning of the video window. The optimization allows fetching only the visible graphics pixels.<br />
The color key cannot be selected because the graphics pixels under the video window are not present.<br />
The default value at reset time is 0x0 (0 byte).<br />
Figure 7-116 through Figure 7-119 give examples of how to program the GFXWINDOWSKIP field for<br />
overlay optimization:<br />
Figure 7-116. Overlay Optimization: Case 1<br />
Y = DISPC_VID1_SIZE[26:16] VIDSIZEY + 1<br />
Y = DISPC_GFX_POSITION[26:16] GFXPOSY + DISPC_GFX_SIZE[26:16] GFXSIZEY<br />
- DISPC_VID1_POSITION[26:16] VIDPOSY + 1<br />
DISPC_GFX_WINDOW_SKIP[31:0]<br />
= Y * [X* (DISPC_GFX_PIXEL_INC[15:0]<br />
GFCPIXELINC + BPP) +<br />
DISPC_GFX_ROW_INC[31:0] GFXROWINC – 1 + BPP]<br />
BPP defines the number of bytes per pixel for graphics buffer.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-090<br />
1695
VID1<br />
OR<br />
OR<br />
OR<br />
GFX GFX<br />
GFX<br />
VID1 GFX<br />
VID1<br />
X<br />
X<br />
X<br />
X<br />
X = DISPC_VID1_POSITION[10:0] VIDPOSX + DISPC_VID1_SIZE[10:0] VIDSIZEX<br />
– DISPC_GFX_POSITION[10:0]GFXPOSX + 1<br />
GFX<br />
VID1<br />
OR<br />
VID1<br />
GFX<br />
VID1<br />
OR<br />
VID1<br />
GFX<br />
X<br />
X<br />
X = DISPC_GFX_POSITION[10:0] GFXPOSX + DISPC_GFX_SIZE[10:0] GFXSIZEX<br />
-DISPC_VID1_POSITION[10:0] VIDPOSX + 1<br />
X<br />
X<br />
VID1<br />
GFX<br />
OR<br />
VID1<br />
GFX<br />
X = DISPC_VID1_SIZE[10:0]VIDSIZEX + 1<br />
GFX<br />
X<br />
VID1<br />
OR<br />
GFX<br />
X<br />
VID1<br />
X<br />
OR<br />
OR<br />
GFX<br />
X = DISPC_VID1_SIZE[10:0] VIDSIZEX + 1<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-117. Overlay Optimization: Case 2<br />
X<br />
GFX<br />
VID1<br />
X<br />
VID1<br />
Figure 7-118. Overlay Optimization: Case 3<br />
DISPC_GFX_WINDOW_SKIP[31:0]<br />
=X* (DISPC_GFX_PIXEL_INC[15:0]<br />
GFCPIXELINC – 1 + BPP)<br />
BPP defines the number of bytes per pixel<br />
for graphics buffer.<br />
DISPC_GFX_WINDOW_SKIP[31:0]<br />
= X* (DISPC_GFX_PIXEL_INC[15:0]<br />
GFCPIXELINC – 1 + BPP) + 1<br />
dss-091<br />
BPP defines the number of bytes per pixel for<br />
graphics buffer.<br />
1696 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-092
X X<br />
GFX<br />
VID1 VID1<br />
VID1 => GFX<br />
GFX<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
7.5.3.3 Video Layer Configuration<br />
Figure 7-119. Overlay Optimization: Case 4<br />
The video layer configuration is common to the LCD and the TV set.<br />
7.5.3.3.1 Video DMA Registers<br />
The following registers define the video DMA engine configuration:<br />
• DSS.DISPC_CONTROL<br />
• DSS.DISPC_VIDn_BAj<br />
• DSS.DISPC_VIDn_ATTRIBUTES<br />
• DSS.DISPC_VIDn_ROW_INC<br />
• DSS.DISPC_VIDn_PIXEL_INC<br />
• DSS.DISPC_VIDn_FIFO_THRESHOLD<br />
• DSS.DISPC_VIDn_PICTURE_SIZE<br />
The following fields define the attributes of the graphics DMA engine:<br />
Y<br />
When the VID1 window overlaps the<br />
GFX window equally or more, the<br />
DISPC_GFX_ATTRIBUTES[0] GFX<br />
ENABLE bit should be clear.<br />
camdss-093<br />
• Video layer enable (DSS.DISPC_VIDn_ATTRIBUTES[0] VIDENABLE bit): The default value of this bit<br />
at reset time is 0x0 (Disabled). The video DMA engine fetches encoded pixels from the system<br />
memory only when the video layer is enabled (a valid configuration is programmed for the video layer).<br />
The video window is present and the video pipeline is active.<br />
• Burst size (DSS.DISPC_VIDn_ATTRIBUTES[15:14] VIDBURSTSIZE bit field): The default burst size at<br />
reset time is 4 x 32 bytes. The possible values are 4 x 32, 8 x 32, and 16 x 32 bytes. The burst size is<br />
initialized at boot time by the software and never changes as long as the display controller is enabled.<br />
This bit field indicates the maximum burst size for the specific pipeline. In case of misalignment, the<br />
DMA engine may issue single and/or smaller burst requests, because the burst size must be aligned to<br />
the burst boundary.<br />
• Preload configuration (DSS.DISPC_VIDn_ATTRIBUTES[19] VIDFIFOPRELOAD bit): The default<br />
preload configuration uses the DSS.DISPC_VIDn_PRELOAD register value (the reset value is 256<br />
bytes) to define the number of bytes to be fetched from system memory into the display controller<br />
graphics FIFO. By programming the DSS.DISPC_VIDn_ATTRIBUTES[19] VIDFIFOPRELOAD bit,<br />
software users select between preload register (with 256 bytes as the reset value) and the high<br />
threshold value for preload of the encoded pixels. For best performance, the configuration of<br />
thresholds is defined using the FIFO size (in bytes) minus 1 for the high threshold, and the FIFO size<br />
(in bytes) minus the burst size (in bytes) for the low threshold, which provides 960, 992, and 1008,<br />
respectively, for burst sizes 16x32, 8x32, and 4x32. Note also that the preload value is defined based<br />
on the following display types:<br />
– Active matrix (TFT) display: DSS.DISPC_VIDn_PRELOAD[11:0] PRELOAD = 0xB0 (value is 176)<br />
– Color passive matrix (STN) display: DSS.DISPC_VIDn_PRELOAD[11:0] PRELOAD = 0x110 (value<br />
is 272)<br />
– Monochrome passive matrix (STN) display: DSS.DISPC_VIDn_PRELOAD[11:0] PRELOAD =<br />
0x1B0 (value is 432)<br />
• Base address of the video buffer in system memory (DSS.DISPC_VIDn_BAj registers): The default<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1697
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
value at reset time is 0x0. The horizontal resolution is one pixel because the base address is aligned<br />
on pixel size boundary. In case of YCbCr 4:2:2 formats, the resolution is 2 pixels. In case of RGB24<br />
packed format, the resolution is 4 pixels. The vertical resolution is one line. The register<br />
DSS.DISPC_VIDn_BA0 defines the base address of the even field, and DSS.DISPC_VIDn_BA1<br />
defines the base of the odd field in the case of an external synchronization and based on the value of<br />
the input signal DISPC_FID and the polarity. To improve system throughput, the base address should<br />
be aligned on the burst size boundary.<br />
• Video FIFO threshold (DSS.DISPC_VIDn_FIFO_THRESHOLD register): The low threshold<br />
(DSS.DISPC_VIDn_FIFO_THRESHOLD[11:0] VIDFIFOLOWTHRESHOLD) and the high threshold<br />
(DSS.DISPC_VIDn_FIFO_THRESHOLD[27:16] VIDFIFOHIGHTHRESHOLD) values define the FIFO<br />
DMA behavior. When the low level is reached, one or more requests are issued to the L3-based<br />
interconnect to fill up the FIFO to reach the high threshold. A request is issued as long as the FIFO<br />
has enough space available to accept a burst. The DMA engine then waits until the low level is<br />
reached to restart the requests. By setting the DSS.DISPC_CONFIG[14] FIFOMERGE bit to 1, users<br />
merge the three FIFOs (GFX, VID1, and VID2). In this case, the low threshold (the<br />
DSS.DISPC_VIDn_FIFO_THRESHOLD[11:0] VIDFIFOLOWTHRESHOLD bit field with n<br />
corresponding to the active video channel 1 or 2) and the high threshold<br />
(DSS.DISPC_VIDn_FIFO_THRESHOLD[27:16] VIDFIFOHIGHTHRESHOLD bit field with n<br />
corresponding to the active video channel 1 or 2) values must be programmed with a multiplier factor<br />
of three (3 x value). By default, the FIFOs are not merged (the DSS.DISPC_CONFIG[14] FIFOMERGE<br />
bit reset value is 0).<br />
• Video buffer width (DSS.DISPC_VIDn_PICTURE_SIZE[10:0] VIDORGSIZEX): The default value at<br />
reset time is 0x0 (1 pixel). The buffer width in system memory is from 1 up to 2048 pixels. All the<br />
integer values in the range [1:2048] are allowed. Software users must program this bit field to the value<br />
minus 1.<br />
• Video buffer height (DSS.DISPC_VIDn_PICTURE_SIZE[26:16] VIDORGSIZEY): The default value at<br />
reset time is 0x0 (1 pixel). The buffer height in system memory is from 1 up to 2048 pixels. All the<br />
integer values in the range [1:2048] are allowed. Software users must program this field to the value<br />
minus 1.<br />
• Video data endianness (DSS.DISPC_VIDn_ATTRIBUTES[17] VIDENDIANNESS bit, with n=1 or 2):<br />
This bit indicates the endianness (little or big) of the video pixels. The default value at reset time is 0x0<br />
(little endian).<br />
7.5.3.3.2 Video Configuration Register<br />
The following shadow registers define video layer n (with n = 1 or 2) configuration:<br />
• DSS.DISPC_CONFIG<br />
• DSS.DISPC_VIDn_POSITION<br />
• DSS.DISPC_VIDn_SIZE<br />
• DSS.DISPC_VIDn_ATTRIBUTES<br />
• DSS.DISPC_VIDn_FIR<br />
• DSS.DISPC_VIDn_PICTURE_SIZE<br />
• DSS.DISPC_VIDn_FIR_COEF_Hi (with i = 0 to 7)<br />
• DSS.DISPC_VIDn_FIR_COEF_HVi (with i = 0 to 7)<br />
• DSS.DISPC_VIDn_CONV_COEFi (with i = 0 to 4)<br />
• The video layer n (with n = 1 or 2) is enabled/disabled by setting/resetting the<br />
DSS.DISPC_VIDn_ATTRIBUTES[0] VIDENABLE field. If the video layer is disabled, the video window<br />
does not exist on the screen and the whole video pipeline and DMA are inactive. Before enabling the<br />
video layer, a valid configuration must be set. After a register change, either the<br />
DSS.DISPC_CONTROL[6] GODIGITAL or DSS.DISPC_CONTROL[5] GOLCD bit must be set. The<br />
software must wait for the hardware to reset the bit before setting this bit. The software reset is not<br />
recommended because the application cannot ensure that the bit is reset before the hardware reset.<br />
7.5.3.3.3 Video Window Attributes<br />
The following fields define the attributes of video window n:<br />
1698 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video format (DSS.DISPC_VIDn_ATTRIBUTES[4:1] VIDFORMAT bit field, with n = 1 or 2): The default<br />
value at reset time is 0x0 (BITMAP 1 BPP, nonsupported format by the video pipeline).The video<br />
format can be RGB16, RGB24, YUV2 4:2:2 co-DSS sited, and UYVY 4:2:2 co-sited.<br />
• Video window X-position (DSS.DISPC_VIDn_POSITION[10:0] VIDPOSX bit field, with n = 1 or 2): The<br />
default value at reset time is 0x0 (first column starting on the left edge of the screen). The window<br />
X-position is from 0 to 2047 columns. All integer values in the range [0:2047] are allowed.<br />
• Video window Y-position (DSS.DISPC_VIDn_POSITION[26:16] VIDPOSY bit field, with n = 1 or 2):<br />
The default value at reset time is 0x0 (first row starting at the top of the screen). The window Y-position<br />
is from 0 to 2047 rows. All integer values in the range [0:2047] are allowed.<br />
• Video window width (DSS.DISPC_VIDn_SIZE[10:0] VIDSIZEX bit field, with n = 1 or 2): The default<br />
value at reset time is 0x0 (1 pixel). The window width is from 1 to 2048 pixels. All integer values in the<br />
range [1:2048] are allowed. The maximum bandwidth efficiency for accessing the pixels in system<br />
memory is reached when the width (in bytes) of the video window is a multiple of the video burst size<br />
defined in the DSS.DISPC_VIDn_ATTRIBUTES[15:14] VIDBURSTSIZE bit field (in bytes).<br />
NOTE: When the RGB24 packed format is selected, the width must be a multiple of 12 bytes when<br />
the DSS.DISPC_VIDn_ROW_INC register is not 1. When the DSS.DISPC_VIDn_ROW_INC<br />
register is 1, the width can be any size from 1 to 2048 pixels.<br />
The entire pixels of the video window must be inside the LCD screen. Depending on the<br />
width of the buffer to be displayed in the video layer and the position, the width should be<br />
adjusted by software to limit the right edge of the window inside the screen.<br />
• Video window height (DSS.DISPC_VIDn_SIZE[26:16] VIDSIZEY bit field, with n = 1 or 2): The default<br />
value at reset time is 0x0 (1 pixel). The window height is from 1 to 2048 pixels. All integer values in the<br />
range [1:2048] are allowed. The entire pixels of the video window must be inside the LCD screen.<br />
Depending on the height of the buffer to be displayed in the video layer and the position, the height<br />
should be adjusted by software to limit the bottom edge of the window inside the screen.<br />
• Video picture width in system memory (DSS.DISPC_VIDn_PICTURE_SIZE[10:0] VIDORGSIZEX bit<br />
field, with n = 1 or 2): The default value at reset time is 0x0 (1 pixel). The window width is from 1 to<br />
2048 pixels. All integer values in the range [1:2048] are allowed with RGB16 and RGB24 video data.<br />
For YUV2 4:2:2 and UYVY 4:2:2 formats, the width must be a multiple of two pixels. The maximum<br />
bandwidth efficiency for accessing the pixels in system memory is reached when the width (in bytes) of<br />
the video picture is a multiple of the video burst size defined in the<br />
DSS.DISPC_VIDn_ATTRIBUTES[15:14] VIDBURSTSIZE bit field (in bytes).<br />
• Video picture height in system memory (the DSS.DISPC_VIDn_PICTURE_SIZE[26:16] VIDORGSIZEY<br />
bit field, with n = 1 or 2): The default value at reset time is 0x0 (1 pixel). The window width is from 1 to<br />
2048 pixels. All integer values in the range [1:2048] are allowed.<br />
• Video Priority (DSS.DISPC_VIDn_ATTRIBUTES[23] VIDARBITRATION): The default value at reset<br />
time is 0x0. It is used to change between normal priority (value of 0) to high priority (value of 1) to<br />
change priority for the video channel vs. other channels. It can be used to give higher priority to the<br />
pipelines with real time constraint vs. non real time pipelines. For that is, pipelines associated to the<br />
LCD output in RFBI mode should have lower priority than pipelines associated to TV output.<br />
• Video Self-Refresh (DSS.DISPC_VIDn_ATTRIBUTES[24] VIDSELFREFRESH): The default value at<br />
reset time is 0x0. It is used to use the DMA FIFO without accessing the interconnect for multiple<br />
frames. Once, the data have been loaded to the DMA FIFO for displaying the frame, they are used for<br />
the following frames.<br />
The sequence to activate the self-refresh is the following:<br />
– Frame t: The bit field should be set at anytime during frame<br />
– Frame t+1: Fetch of the data in the DMA FIFO and display of the frame<br />
– Frame t+2: No access to the L3 interconnect, DMA FIFO uses to provide the pixels<br />
The sequence to deactivate the self-refresh is the following:<br />
– Frame t: No access to the L3 interconnect, DMA FIFO uses to provide the pixels, bit field can be<br />
changed at any time during the frame<br />
– Frame t+1: Fetch of the data from system memory using the L3 interconnect<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1699
VIDFIRVINC[12:0] 1024 x<br />
VIDORGSIZEY[10:0]<br />
VIDSIZEY[10:0]<br />
<br />
<br />
<br />
<br />
<br />
dss-E093<br />
VIDORGSIZEX[10:0]<br />
VIDFIRHINC[12:0] 1024 x <br />
VIDSIZEX[10:0]<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.3.3.4 Video Up-/Down-Sampling Configuration<br />
The video horizontal up/downsampling block for video pipeline n (with n = 1 or 2) is enabled/disabled by<br />
setting/resetting the DSS.DISPC_VIDn_ATTRIBUTES[5] VIDRESIZEENABLE bit.<br />
The video vertical up/downsampling block for video pipeline n is enabled/disabled by setting/resetting the<br />
DSS.DISPC_VIDn_ATTRIBUTES[6] VIDRESIZEENABLE bit.<br />
Set a valid configuration before enabling the video up/downsampling block.<br />
NOTE: Vertical and horizontal downsampling are limited to a 1/4 resize factor.<br />
After a register change, either the DSS.DISPC_CONTROL[6] GODIGITAL or DSS.DISPC_CONTROL[5]<br />
GOLCD bit must be set. The software must wait until the hardware resets this bit before setting it. The<br />
software reset is not recommended because the application cannot ensure that the bit is reset before the<br />
hardware reset.<br />
The following fields define the configuration of the video up/downsampling block for video pipeline n:<br />
• Vertical up/downsampling increment value (DSS.DISPC_VIDn_FIR[27:16] VIDFIRVINC bit field, with n<br />
= 1 or 2): The unsigned integer value range is [1:4096]. The software calculates the value using the<br />
following equation:<br />
NOTE:<br />
• If the VIDFIRVINC[11:0] bit field value is greater than 4096, it is clipped to 4096. If<br />
VIDSIZEY[10:0] equals 0x1, VIDSIZEY[10:0] is replaced by 0x2 in the previous<br />
equation.<br />
• The VIDORGSIZEY[10:0] and VIDSIZEY[10:0] bit field values must be programmed with<br />
the value desired minus 1.<br />
• Horizontal up/downsampling increment value (DSS.DISPC_VIDn_FIR[11:0] VIDFIRHINC bit field, with<br />
n = 1 or 2): The unsigned integer value range is [1:4096]. The software calculates the value using the<br />
following equation:<br />
NOTE:<br />
<br />
<br />
<br />
dss-E094<br />
• If the VIDFIRHINC[11:0] bit field value is greater than 4096, it is clipped to 4096. If<br />
VIDSIZEX[10:0] equals 1, VIDSIZEX[10:0] is replaced by 2 in the previous equation.<br />
• The VIDORGSIZEX[10:0] and VIDSIZEX[10:0] bit field values must be programmed with<br />
the value desired minus 1.<br />
• Vertical up/downsampling accumulator value (DSS.DISPC_VIDn_ACCUl[25:16] VIDVERTICALACCU<br />
bit field): The unsigned integer value range is [0:1023]. The accumulator value indicates in which<br />
phase the vertical filtering starts. The value 0 indicates that 0 is the first phase used by the hardware to<br />
generate the first data (see Table 7-50).<br />
• Vertical up/downsampling line buffer configuration (DSS.DISPC_VIDn_ATTRIBUTES[22]<br />
VIDLINEBUFFERSPLIT bit): The default value at reset time is 0x0 (line buffers are not split). The<br />
backward compatibility is maintained versus OMAP2420 and OMAP2430 devices. When the bit field is<br />
set, each line buffer is split into two line buffers to be able to use six line buffers instead of three.<br />
• Vertical up/downsampling line buffer configuration (DSS.DISPC_VIDn_ATTRIBUTES[21]<br />
VIDVERTICALTAPS bit): The default value at reset time is 0x0 (3-tap configuration is used). If the bit<br />
field is reset, the 3-tap configuration is used. The backward compatibility is maintained versus<br />
OMAP2420 and OMAP2430 devices. When the bit field is set, the 5-tap configuration is used and the<br />
DSS.DISPC_VIDn_ATTRIBUTES[22] VIDLINEBUFFERSPLIT bit must be set to 1.<br />
1700 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
(10)<br />
(11)
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Vertical up/downsampling line buffer configuration (DSS.DISPC_VIDn_ATTRIBUTES[20]<br />
VIDDMAOPTIMIZATION bit): The default value at reset time is 0x0 (no optimization). If the bit is set,<br />
the DMA engine fetches two pixels for each 32-bit OCP request (RGB16 and YUV4:2:2) while doing<br />
90- and 270-degree rotation. If the bit is clear, the DMA engine fetches one pixel for each 32-bit OCP<br />
request (RGB16 and YUV4:2:2) while doing 90- and 270-degree rotation. The width and height of<br />
picture should be even to use the optimization. Even width is required for the input picture when the<br />
5-tap configuration is used.<br />
NOTE: If the 5-tap resizer is used for RGB16 and YUV4:2:2 picture formats, the width of the input<br />
picture must be a multiple of 2 pixels and more than 5 pixels. This leads to the following<br />
register configuration:<br />
DISPC_VIDn_ATTRIBUTES[21] VIDVERTICALTAPS == 1<br />
DISPC_VIDn_PICTURE_SIZE[10:0] VIDORGSIZEX 4 and even<br />
For more information about the configuration of video DMA optimization, see Section 7.5.3.4.5, Video<br />
DMA Optimization.<br />
• Horizontal up/downsampling accumulator value (DSS.DISPC_VIDn_ACCUl[9:0]<br />
VIDHORIZONTALACCU bit field): The unsigned integer value range is [0:1023]. The accumulator<br />
value indicates in which phase the horizontal filtering starts. The value 0 indicates that 0 is the first<br />
phase used by the hardware to generate the first data (see Table 7-50).<br />
Table 7-50. Vertical/Horizontal Accumulator Phase<br />
Accumulator Value Phases f<br />
0 0<br />
128 1<br />
256 2<br />
384 3<br />
512 4<br />
640 5<br />
768 6<br />
896 7<br />
• Vertical up/downsampling coefficients (DSS.DISPC_VIDn_FIR_COEF_HVi registers, with n = 1 or 2,<br />
i = 0 to 7): The 3-tap vertical up/downsampling coefficients are defined in these registers. There are<br />
eight registers for the eight phases with three coefficients for each, or a total of 24 programmable<br />
coefficients for the vertical up/downsampling block. Each register contains two 8-bit signed coefficients<br />
and one 8-bit unsigned coefficient (the central one).<br />
In addition, there are 2-tap vertical up/downsampling coefficients defined in<br />
DSS.DISPC_VIDn_FIR_COEF_Vi registers. There are 8 registers for the 8 phases with 2 coefficients<br />
for each of them so a total of 16 programmable coefficients for the vertical up/downsampling block<br />
used in addition of the 3-tap registers defined above. Each register contains two 8-bit signed<br />
coefficients. In case of 5-tap configuration, both sets of registers DSS.DISPC_VIDn_FIR_COEF_HVi<br />
and DSS.DISPC_VIDn_FIR_COEF_Vi are used. In case of 3-tap configuration, only one set of<br />
registers DSS.DISPC_VIDn_FIR_COEF_HVi is used.<br />
• Horizontal up/downsampling coefficients (DSS.DISPC_VIDn_FIR_COEF_Hi and<br />
DISPC_VIDn_FIR_COEF_HVi registers, with n = 1 or 2, i = 0 to 7): The<br />
DSS.DISPC_VIDn_FIR_COEF_Hi register and the DSS.DISPC_VIDn_FIR_COEF_HVi register define<br />
the 5-tap horizontal up/downsampling coefficients. There are eight registers for the eight phases with<br />
five coefficients for each register, or a total of 40 programmable coefficients for the horizontal<br />
up/downsampling block.<br />
Each DSS.DISPC_VIDn_FIR_COEF_Hi register contains three 8-bit signed coefficients and one 8-bit<br />
unsigned coefficient (the central one). Each DSS.DISPC_VIDn_FIR_COEF_HVi register contains one<br />
8-bit signed coefficient.<br />
The programmable coefficient for the FIR up/downsampling method must be adjusted based on<br />
application needs. For more details on scaling programming settings, see Section 7.6.1.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1701
R<br />
G<br />
B<br />
=<br />
1<br />
256 *<br />
RY<br />
GY<br />
BY<br />
RCr<br />
GCr<br />
BCr<br />
RCb<br />
GCb<br />
BCb<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.3.3.5 Video Color Space Conversion Configuration<br />
The DSS.DISPC_VIDn_CONV_COEFi registers (with i = 0 to 4) has nine 11-bit coefficients defined for the<br />
programmable color space conversion block for video pipeline n (with n = 1 or 2).<br />
The standard register coefficients are:<br />
YCbCr-to-RGB Registers (VidFullRange=0)<br />
YCbCr to RGB Registers (VidFullRange=1)<br />
*<br />
Y<br />
dssE095<br />
Cr - 128<br />
Cb - 128<br />
Table 7-51 lists the color space conversion register values.<br />
dss-E096<br />
Table 7-51. Color Space Conversion Register Values<br />
Coefficients BT.601-5 BT.601-5 BT.709 BT.709 Range<br />
Range [0:255] [0:255]<br />
RY 298 256 298 256<br />
RCr 409 351 459 394<br />
RCb 0 0 0 0<br />
GY 298 256 298 256<br />
GCr –208 –179 –137 –118<br />
GCb –100 –86 –55 –47<br />
BY 298 256 298 256<br />
BCr 0 0 0 0<br />
BCb 517 443 541 465<br />
VidFullRange 0 1 0 1<br />
7.5.3.4 Rotation/Mirroring <strong>Display</strong> <strong>Subsystem</strong> Settings<br />
This section describes rotation/mirroring settings. The device provides flexible mechanisms for an efficient<br />
implementation of rotation using the display-subsystem, its DMA engine, and the rotation engine of the<br />
SMS module. Depending on whether the image data is located in on-chip SRAM or external SDRAM,<br />
either a DMA rotation or a VRFB rotation is used. When configuring the rotation, the image data format<br />
(RGB or YUV) must also be taken into account. The video pipelines also perform the interpolation of YUV<br />
image data and the color conversion from YUV into RGB format for displaying the images on an LCD<br />
screen.<br />
7.5.3.4.1 Image Data Formats<br />
To understand the programming of the rotation mechanisms described underneath, the supported<br />
representations of the image data in memory must also be considered. Differences exist between the<br />
supported formats on the graphics and video pipelines. The graphics pipeline supports RGB and RGB<br />
with a color look-up table (CLUT), whereas the video pipelines support two versions of YUV 4:2:2 and<br />
RGB16. In the case of YUV, the interpolation and color conversion hardware in the video pipelines<br />
converts the image data to the RGB format suitable for the LCD screen.<br />
1702 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
(12)<br />
(13)
Row Increment<br />
= (iw * (ih - 1) * ps) + 1<br />
2<br />
Pixel Increment<br />
= -iw * ps - (ps -1)<br />
Buffer Base<br />
Address (ba)<br />
3<br />
Memory<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
The graphics pipeline supports:<br />
• 1-, 2- ,4-, and 8-bits-per-pixel color look-up table<br />
• 12-, 16-, and 24-bits-per-pixel RGB<br />
The video pipelines support the following data formats (always 2 bytes/pixel):<br />
• RGB16<br />
• YUV2<br />
• UYVY<br />
For more information on the graphics data formats, please refer to Section 7.4.2.2, Graphics Pipeline.<br />
For more information on the video data formats, please refer to Section 7.4.2.3, Video Pipeline.<br />
In the video pipeline, the YUV 4:2:2 format is converted into a full YUV 4:4:4 format by interpolation of the<br />
chrominance values from neighboring pixels. After this interpolation is completed, the conversion to the<br />
RGB format (suitable for displaying the image on the LCD screen) is performed.<br />
For more information on YUV 4:2:2 to RGB conversion, please refer to Section 7.4.2.3.2, Color Space<br />
Conversion.<br />
7.5.3.4.2 Image Data from On-Chip SRAM<br />
For image data located in the on-chip SRAM, the DSS DMA is used to perform 90-degree, 180-degree,<br />
and 270-degree rotation. This is done by using the double-indexed addressing mode of the DMA. This<br />
addressing mode allows a pixel and a row increment to be specified. These address increments are used<br />
after each pixel or each row (line), respectively. Figure 7-120 illustrates the principle steps for a 90-degree<br />
rotation.<br />
Figure 7-120. 90° DMA Rotation Example<br />
1<br />
iw<br />
Readout Start Address for 90° Rotation<br />
= ba + (iw * (ih -1) * ps)<br />
ih<br />
Pixel output Direction<br />
LCD Screen<br />
Table 7-52. 90-degree DMA Rotation Example Description<br />
Parameter Description Additional parameters for formulas<br />
ba Buffer Base Address in Memory<br />
IW Image Width in pixels iw = IW-1<br />
IH Image Height in pixels ih = IH-1<br />
ps Pixel Size (in bytes)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
ih<br />
iw<br />
dss-097<br />
1703
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-120 shows how the image is stored in memory and how it is read out to achieve a 90-degree<br />
rotated orientation. The first pixel for the 0-degree orientation is located at the buffer base address (ba). If<br />
the image is to be shown on an LCD screen with a 90-degree rotation, the readout starts at the 90-degree<br />
base address (1). To proceed from one pixel to the next in the same line in the rotated orientation, the<br />
pixel increment (2) must be applied. At the end of each line of the rotated view, the row increment (3) is<br />
the offset to advance to the beginning of the next line in the memory buffer.<br />
Hence, by setting the three DMA parameters (base address, pixel increment, and row increment), a<br />
90-degree rotation can be achieved, as can 180-degree and 270-degree rotation. Each of the parameters<br />
can also be combined with an optional mirroring on the vertical axis.<br />
Following there is a description the setup required to perform the rotation via the DSS DMA. This rotation<br />
mechanism is used when the image data is stored in internal SRAM.<br />
7.5.3.4.2.1 Rotation/Mirroring Registers<br />
To set up the rotation and/or mirroring, the following registers must be programmed:<br />
• Graphics pipeline (GFX):<br />
– DSS.DISPC_GFX_BAj<br />
– DSS.DISPC_GFX_PIXEL_INC<br />
– DSS.DISPC_GFX_ROW_INC<br />
– DSS.DISPC_GFX_ATTRIBUTES<br />
– DSS.DISPC_GFX_POSITION<br />
– DSS.DISPC_GFX_SIZE<br />
– DSS.DISPC_GFX_FIFO_THRESHOLD<br />
• Video pipelines (VID) 1 and 2:<br />
– DSS.DISPC_VIDn_BAj<br />
– DSS.DISPC_VIDn_PIXEL_INC<br />
– DSS.DISPC_VIDn_ROW_INC<br />
– DSS.DISPC_VIDn_ATTRIBUTES<br />
– DSS.DISPC_VIDn_POSITION<br />
– DSS.DISPC_VIDn_SIZE<br />
– DSS.DISPC_VIDn_CONV_COEF0 to DSS.DISPC_VIDn_CONV_COEF4<br />
– DSS.DISPC_VIDn_FIFO_THRESHOLD<br />
• DSS.DISPC_xxx_BAj: These registers contain the base address of the image data at which the DSS<br />
DMA transfer of the image starts. The register values depend on the rotation chosen (see Table 7-53<br />
for the formulas). When using the LCD interface, the registers DISPC_xxx_BA0 are used. The<br />
registers DISPC_xxx_BA1 are only used for the TV output.<br />
• DSS.DISPC_xxx_PIXEL_INC[15:0]: This bit field contains the DMA addressing increment after each<br />
pixel. This bit field is used to perform the DSS DMA rotation (see Table 7-53 for the formula).<br />
NOTE: When the RGB24 packet format is selected, the only valid value is 1.<br />
• DSS.DISPC_xxx_ROW_INC[31:0]: This bit field contains the DMA addressing increment after each<br />
row (line) of pixels. This bit field is used to perform the DSS DMA rotation (see Table 7-53 for the<br />
formula).<br />
NOTE: When the RGB24 packet format is selected, the valid values are 1 and any value multiples<br />
of 12 bytes (4x32 bit). When the value is a multiple of 12 bytes, the width must be a multiple<br />
of 12 bytes. When the value is 1, the width can be any size from 1 to 2048 pixels.<br />
• DSS.DISPC_xxx_ATTRIBUTES: These registers contain the main settings for the pipeline, such as the<br />
image data format, the rotation value, and the enable bit for the pipeline. The bit fields of these<br />
registers play a role in the rotation and in the image data format setup.<br />
– The following bit fields are used by the graphics pipeline to set up the image format:<br />
• GFXENABLE: Set this field to activate the hardware path in use.<br />
1704 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• GFXFORMAT: Use this field to specify the format of the graphic frame.<br />
• GFXROTATION: Set this field to the value corresponding to the rotation angle desired only if the<br />
frame contains RGB24 pixel data; otherwise, set it to 0x0 regardless of the degree of rotation.<br />
• GFXREPLICATIONENABLE: Use this bit to determine whether the encoded pixel data in RGB<br />
formats (RGB12 and RGB16) is extended to 24-bit format with or without replication of the MSB<br />
to fill the LSBs of each color component. If the replication logic is turned off, the LSB parts are<br />
filled with 0s. It is recommended to always enable this feature.<br />
• GFXCHANNELOUT: Set this field based on whether the frame is to be rendered on the LCD or<br />
on the TV set.<br />
– The following bit fields for the two video pipelines:<br />
• VIDENABLE: Set this field to activate the hardware path in use.<br />
• VIDFORMAT: Use this field to specify the format of the video frame (RGB16 or YUV4:2:2).<br />
• VIDCOLORCONVENABLE: If the video is in YUV4:2:2 format, set this field to enabled.<br />
• VIDROTATION: Set this field to the value corresponding to the rotation angle desired only if the<br />
frame contains non-RGB pixel data; otherwise, set it to 0x0 regardless of the degree of rotation.<br />
See Section 7.5.3.4.4 for more information.<br />
• VIDROWREPEATENABLE: Set this field to enabled only if the frame contains YUV pixel data<br />
and the rotation is 90-degree or 270-degree so that the row pixel data are fetched twice to<br />
extract both Y components. See Section 7.5.3.4.4 for more information.<br />
• VIDCHANNELOUT: Set this field based on whether the frame is to be rendered on the LCD or<br />
on the TV set.<br />
• DSS.DISPC_xxx_POSITION: Use this register to configure the position of the window.<br />
• DSS.DISPC_xxx_SIZE: Use this register to configure the size of the window.<br />
• DSS.DISPC_VIDn_CONV_COEF0, DSS.DISPC_VIDn_CONV_COEF1,<br />
DSS.DISPC_VIDn_CONV_COEF2, DSS.DISPC_VIDn_CONV_COEF3, and<br />
DSS.DISPC_VIDn_CONV_COEF4: These registers contain the conversion coefficients required for<br />
YUV-to-RGB color conversion.<br />
• DSS.DISPC_xxx_FIFO_THRESHOLD: Set the low threshold<br />
(DSS.DISPC_GFX_FIFO_THRESHOLD[11:0] GFXFIFOLOWTHRESHOLD) and the high threshold<br />
(DSS.DISPC_GFX_FIFO_THRESHOLD[27:16] GFXFIFOHIGHTHRESHOLD) values to define the<br />
FIFO DMA behavior. When the low level is reached, one or more requests are issued to the L3-based<br />
interconnect to fill up the FIFO to reach the high threshold. The DMA engine then waits until the low<br />
level is reached to restart the requests.<br />
7.5.3.4.2.2 DMA Register Settings<br />
To configure the display controller for rotation and/or mirroring, use the following settings:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1705
Start<br />
Set the window size and position:<br />
DISPC_xxx_SIZE<br />
DISPC_xxx_POSITION<br />
If YUV<br />
Video ?<br />
No<br />
Set the new base address value:<br />
DISPC_xxx_BAi<br />
Set the row increment value:<br />
DISPC_xxx_ROW_INC<br />
Set the pixel increment value:<br />
DISPC_xxx_PIXEL_INC<br />
End<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-121. Rotation/Mirroring Settings<br />
Set the FIFO threshold:<br />
DISPC_xxx_FIFO_THRESHOLD<br />
Set DISPC_xxx_ATTRIBUTES bitfields<br />
Yes<br />
Set YUV-to-RGB conversion coefficients:<br />
DISPC_VIDn_COEFi<br />
NOTE: These registers are shadow registers. To take into account the new values, software users<br />
must set the DSS.DISPC_CONTROL[5] GOLCD bit to 1.<br />
Table 7-53 details the base address, the row and pixel increment values to access the buffer in memory<br />
(contiguous pixels) except for the RGB24 packet format. Table 7-54 lists the rotation register settings for<br />
RGB24 packet format (only for the two video pipelines).<br />
Table 7-53. DMA Rotation Register Settings<br />
Rotation Registers GFX/VIDx (1)<br />
0 degree DSS.DISPC_xxx_BAj ba<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC 1<br />
90 degrees DSS.DISPC_xxx_BAj ba + (iw x (ih-1) x ps)<br />
dss-098<br />
DSS.DISPC_xxx_PIXEL_INC -(iw x ps) - 1<br />
DSS.DISPC_xxx_ROW_INC (iw x (ih-1)) x ps + 1<br />
180 degrees DSS.DISPC_xxx_BAj ba + (iw x ih-1) x ps<br />
(1)<br />
DSS.DISPC_xxx_PIXEL_INC -2 x ps<br />
DSS.DISPC_xxx_ROW_INC -2 x ps<br />
• ba = start address of image buffer in memory<br />
• iw = image width in pixels per row - 1 (for YUV: pixels per row divided by 2)<br />
• ih = image height - 1 (number of rows)<br />
• ps = pixel size in bytes (RGB: 2 bytes per pixel, YUV: 4 bytes per pixel)<br />
See Table 7-52 for more information of these parameters.<br />
1706<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Memory<br />
90° rotation<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Table 7-53. DMA Rotation Register Settings (continued)<br />
Rotation Registers GFX/VIDx (1)<br />
270 degrees DSS.DISPC_xxx_BAj ba + (iw -1) x ps<br />
DSS.DISPC_xxx_PIXEL_INC (iw -1) x ps + 1<br />
DSS.DISPC_xxx_ROW_INC -(iw x (ih-1)) x ps - ps + 1<br />
NOTE: In case of RGB16 format and optimization enabled, the base address is aligned on a 32-bit<br />
boundary and the number of bytes to skip is a multiple of 4 bytes.<br />
Table 7-54. Video Rotation Register Settings (With RGB24 Packet Format)<br />
Rotation Registers SDRAM Direct Access (1)<br />
(with n = 1 or 2)<br />
0 degree DSS.DISPC_VIDn_BAj ba<br />
DSS.DISPC_VIDn_PIXEL_INC 1<br />
DSS.DISPC_VIDn_ROW_INC 1<br />
180 degrees DSS.DISPC_VIDn_BAj ba+(iw*ih*3)-4<br />
(1)<br />
DSS.DISPC_VIDn_PIXEL_INC -7<br />
DSS.DISPC_VIDn_ROW_INC -7<br />
• ba = physical base address of the buffer in the system memory (top-left corner of the picture)<br />
• iw = number of pixels per row - 1 (original picture in system memory) for BITMAP and RGB formats and number of pixels<br />
per row divided by 2 for YUB422 formats<br />
• h = number of lines - 1 (original picture in system memory)<br />
• ps = pixel size in bytes (BITMAP8: 1 byte; RGB16: 2 bytes; YUV4:2:2: 4 bytes)<br />
See Table 7-52 for more information of these parameters.<br />
The DMA rotation described above can be also combined with an optional mirroring on the vertical axis<br />
(see Figure 7-122). The only settings that must be changed to achieve this mirroring are the registers<br />
described above: DISPC_xxx_BAj, DISPC_xxx_PIXEL_INC, and DISPC_xxx_ROW_INC. Table 7-55<br />
provides the DMA setup formulas for rotation with mirroring to access the buffer in memory (contiguous<br />
pixels) except for the RGB24 packet format.<br />
Figure 7-122. 90° Rotation With Mirroring<br />
Mirroring<br />
Screen<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-100<br />
17<strong>07</strong>
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Table 7-55. Register Settings for DMA Rotation With Mirroring<br />
Rotation Registers GFX/VIDx (1)<br />
0 degree DSS.DISPC_xxx_BAj ba + (iw-1) x ps<br />
DSS.DISPC_xxx_PIXEL_INC -2 x ps + 1<br />
DSS.DISPC_xxx_ROW_INC 2 x (iw-1) x ps + 1<br />
90 degrees DSS.DISPC_xxx_BAj ba<br />
DSS.DISPC_xxx_PIXEL_INC (iw-1) x ps<br />
DSS.DISPC_xxx_ROW_INC (-iw x (ih-1)) x ps<br />
180 degrees DSS.DISPC_xxx_BAj ba + iw x (ih-1) x ps<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC -2 x iw x ps<br />
270 degrees DSS.DISPC_xxx_BAj ba + (iw x ih - 1) x ps<br />
(1)<br />
DSS.DISPC_xxx_PIXEL_INC (iw -1) x ps + 1<br />
DSS.DISPC_xxx_ROW_INC - (iw x (ih-1)) x ps - ps + 1<br />
• ba = start address of image buffer in memory<br />
• iw = image width in pixels per row - 1 (for YUV: pixels per row divided by 2)<br />
• ih = image height - 1 (number of rows)<br />
• ps = pixel size in bytes (RGB: 2 bytes per pixel, YUV: 4 bytes per pixel)<br />
See Table 7-52 for more information of these parameters.<br />
7.5.3.4.3 Image Data From External SRAM<br />
The device offers a rotation engine in the SMS called the VRFB. This rotation method must be used for<br />
maximum efficiency when the image data is located in SDRAM. To use the VRFB rotation, both the SMS<br />
module and the DSS DMA must be configured.<br />
In the DSS, the same registers must be set up as described for DMA rotation (see Section 7.5.3.4.2,<br />
Image Data from On-Chip SRAM). The differences are in the setup of the following registers:<br />
• DISPC_xxx_ROW_INC: This field contains the DMA addressing increment after each row (line) of<br />
pixels. This field is used to add the remaining delta at the end of each line, to reach the 2048-pixel line<br />
size of the VRFB (see Table 7-56 for the formula).<br />
• DISPC_xxx_PIXEL_INC: This field contains the DMA addressing increment after each pixel. For VRFB<br />
rotation, this value is set always to 1 (see Table 7-56).<br />
Table 7-56. VRFB Rotation - DMA Settings<br />
Rotation Registers GFX/VIDx (1)<br />
0 degree DSS.DISPC_xxx_BAj VBA0<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC (2048 - iw) x ps + 1<br />
90 degrees DSS.DISPC_xxx_BAj VBA90 + offset<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC (2048 - ih) x ps + 1<br />
180 degrees DSS.DISPC_xxx_BAj VBA180 + offset<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC (2048 - iw) x ps + 1<br />
270 degrees DSS.DISPC_xxx_BAj VBA270 + offset<br />
(1)<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC (2048 - ih) x ps + 1<br />
• VBAx = virtual address of the chosen VRFB context and orientation<br />
• iw = image width (width in pixels for RGB, width in pixels divided by 2 for YUV)<br />
• ih = image height<br />
• ps = pixel size in bytes (2 bytes per pixel for RGB, 4 bytes per pixel for YUV)<br />
• Offset = see below<br />
1708<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
VBA 0°<br />
VBA 180°<br />
Offset<br />
= 2048*Δih+Δiw Pixels<br />
= (2048*Δih+Δiw)*ps Bytes<br />
Δiw<br />
0° Rotation 90° Rotation<br />
2048 Pixels<br />
2048 Pixels<br />
Δiw<br />
Δih<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-123 provides the offset values that must be added to the virtual base addresses for 90-degree,<br />
180-degree, and 270-degree rotation. This offset is applicable only when the defined image size in the<br />
VRFB module is greater than the actual image size, because it must be a multiple of the page width and<br />
height. In the example discussed above, the image height was set to 256 lines, instead of 240, because<br />
the page height was 32 lines. This offset must be added to the virtual base addresses, because the VRFB<br />
module is not aware of the actual image size. Figure 7-123 illustrates why this occurs and how the offset<br />
is calculated.<br />
Figure 7-123. Offset for VRFB Rotation<br />
VBA 90°<br />
Offset<br />
= Δih Pixels<br />
= Δih*ps Bytes<br />
180° Rotation 270° Rotation<br />
2048 Pixels 2048 Pixels<br />
Δih<br />
VBA 270°<br />
Offset<br />
= 2048*Δiw Pixels<br />
= 2048*Δiw*ps Bytes<br />
Δiw = Image width delta between the actual image width and the programmed image width because of the<br />
page width<br />
Δih = Image height delta between the actual image height and the programmed image height because of<br />
the page height:<br />
• Offset 90-degree: Δih pixels = Δih x ps bytes<br />
• Offset 180-degree: 2048 x Δih+ Δiw pixels = 2048 x Δih x ps+ Δiw x ps bytes<br />
• Offset 270-degree: 2048 x Δiw pixels = 2048 x Δiw x ps bytes<br />
In the example given above, the delta in the image height is 256 – 240 = 16 lines (Δih = 16), whereas the<br />
exact value of the width can be programmed (Δiw = 0). In that case, the resulting offset values are:<br />
• YUV:<br />
– Offset 90-degree: 16 x 4 bytes<br />
– Offset 180-degree: 2048 x 16 x 4 bytes<br />
– Offset 270-degree: 0 bytes<br />
• RGB:<br />
– Offset 90-degree: 16 x 2 bytes<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Δih<br />
Δih<br />
Δiw<br />
Δiw<br />
dss-099<br />
1709
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
– Offset 180-degree: 2048 x 16 x 2 bytes<br />
– Offset 270-degree: 0 bytes<br />
As with DMA rotation, mirroring along the vertical axis can be added on top of the rotation when using the<br />
VRFB. This mirroring is achieved by combining an appropriate VRFB rotation with a readout of the VRFB<br />
by the DSS DMA, going backwards from the last line to the first line of the rotated image. Table 7-57<br />
provides the DMA settings for VRFB rotation with mirroring.<br />
Table 7-57. VRFB Rotation With Mirroring - DMA Settings<br />
Rotation Registers GFX/VIDx (1)<br />
0 degree DSS.DISPC_xxx_BAj VBA180 + 2048 x (ih - 1) x ps + offset<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC -(2048 + iw) x ps + 1<br />
90 degrees DSS.DISPC_xxx_BAj VBA270 + 2048 x (iw - 1) x ps + offset<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC -(2048 + ih) x ps + 1<br />
180 degrees DSS.DISPC_xxx_BAj VBA0 + 2048 x (ih - 1) x ps<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC -(2048 + iw) x ps + 1<br />
270 degrees DSS.DISPC_xxx_BAj VBA90 + 2048 x (iw - 1) x ps + offset<br />
(1)<br />
DSS.DISPC_xxx_PIXEL_INC 1<br />
DSS.DISPC_xxx_ROW_INC -(2048 + ih) x ps + 1<br />
• VBAx = virtual address of the chosen VRFB context and orientation<br />
• iw = image width (width in pixels for RGB, width in pixels divided by 2 for YUV)<br />
• ih = image height<br />
• ps = pixel size in bytes (2 bytes per pixel for RGB, 4 bytes per pixel for YUV)<br />
• Offset = see below<br />
Some offsets are required if there is a delta between the programmed image size in the VRFB and the<br />
actual image size. As shown in Figure 7-124, this applies to 0-degree rotation with mirroring (using VBA<br />
180-degree), 90-degree rotation with mirroring (VBA 270-degree), and 270-degree rotation with mirroring<br />
(VBA 90-degree). The offsets are calculated in this manner:<br />
• Offset 0-degree (mirroring): 2048 x Δih + Δiw pixels = 2048 x Δih x ps + Δiw x ps bytes<br />
• Offset 90-degree (mirroring): 2048 x Δiw pixels = 2048 x Δiw x ps bytes<br />
• Offset 270-degree (mirroring): Δih pixels = Δih x ps bytes<br />
1710 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
VBA 180°<br />
VBA 0°<br />
Δiw<br />
Offset<br />
= 2048*Δih+Δiw Pixels<br />
= (2048*Δih+Δiw)*ps Bytes<br />
0° Rotation 90° Rotation<br />
2048 Pixels<br />
2048 Pixels<br />
180° Rotation 270° Rotation<br />
2048 Pixels 2048 Pixels<br />
Δiw<br />
Δih<br />
Δih<br />
screen<br />
screen<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-124. Offset for VRFB Rotation With Mirroring<br />
VBA 270°<br />
Offset<br />
= 2048*Δiw Pixels<br />
= 2048*Δiw*ps Bytes<br />
VBA 90°<br />
7.5.3.4.4 Additional Configuration When Using YUV Format<br />
Δih<br />
Offset<br />
= Δih Pixels<br />
= Δih*ps Bytes<br />
Δih<br />
Δiw<br />
Δiw<br />
screen<br />
screen<br />
The rotation flag (DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION bit , with n = 1 or 2) and the<br />
repeat flag (DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE) indicate the rotation to<br />
apply to the video-encoded pixels from the SDRAM and SRAM. The 2D addressing mode is used, but<br />
even when accessing the SDRAM buffer, some post-processing must be performed on the YUV 4:2:2<br />
data depending on the rotation. These bits are set only when the video format is not RGB; otherwise, the<br />
bit field is reset to 0. Table 7-58 and Table 7-59 describe the configuration of these registers.<br />
Table 7-58. Video Rotation Register Settings (YUV Only)<br />
Rotation Registers (with n = 1 or 2) SDRAM + Rotation<br />
engine<br />
0 degree DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x0<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x0<br />
90 degrees DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x1<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x1<br />
180 degrees DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x2<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x0<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1711<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-101
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Table 7-58. Video Rotation Register Settings (YUV Only) (continued)<br />
Rotation Registers (with n = 1 or 2) SDRAM + Rotation<br />
engine<br />
270 degree DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x3<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x1<br />
Table 7-59. Video Rotation With Mirroring Register Settings (YUV only)<br />
Rotation Registers (with n = 1 or 2) SDRAM + Rotation<br />
engine<br />
0 degree DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x2<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x0<br />
90 degrees DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x1<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x1<br />
180 degrees DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x0<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x0<br />
270 degree DSS.DISPC_VIDn_ATTRIBUTES[13] VIDROTATION 0x3<br />
DSS.DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE 0x1<br />
NOTE: For YUV4:2:2 video-encoded pixels, the hardware must always fetch a 32-bit value from the<br />
system memory to generate a YUV4:4:4 value before YUV-to-RGB conversion.<br />
• For 90- and 270-degree rotation, the missing chrominance samples for the odd pixels are generated by<br />
duplicating the chrominance samples of the previous even pixels.<br />
• For 0- and 180-degree rotation, the missing chrominance samples for the odd pixels are generated by<br />
averaging the contiguous chrominance samples.<br />
7.5.3.4.5 Video DMA Optimization<br />
When a rotation of 90 or 270 degrees is required, the memory traffic can be reduced as described in<br />
Section 7.4.2.8, Rotation.<br />
1. Enable DMA optimization for the video pipelines VID1 and VID2 by applying the following settings to<br />
the DISPC:<br />
(a) Enable DISPC DMA optimization by setting:<br />
• DISPC_VIDn_ATTRIBUTES[20] VIDDMAOPTIMIZATION = 1<br />
• DISPC_VIDn_ATTRIBUTES[18] VIDROWREPEATENABLE = 0<br />
• DISPC_VIDn_ATTRIBUTES[13:12] VIDROTATION = 0x1 or 0x3<br />
(b) Configure DISPC for the following format:<br />
• DISPC_VIDn_ATTRIBUTES[4:1] VIDFORMAT = 0x6, 0xA, or 0xB<br />
• DISPC_VIDn_ATTRIBUTES[9] VIDCOLORCONVENABLE = 0x1 (only for YUV format)<br />
(c) Configure DISPC scaler in 5-tap mode by setting:<br />
• DISPC_VIDn_ATTRIBUTES[21] VIDVERTICALTAPS = 0x1<br />
• DISPC_VIDn_ATTRIBUTES[6:5] VIDRESIZEENABLE = 0x2 (vertical resize only, minimum<br />
setting) or 0x3 (vertical + horizontal resize)<br />
• DISPC_VIDn_ATTRIBUTES[22] VIDLINEBUFFERSPLIT = 0x1<br />
2. Configure the rotation engine (VRFB) inside the SDRAM memory scheduler (SMS) as follows:<br />
(a) Set the SMS-VRFB context pixel size to 32 bits by setting:<br />
• For RGB16 pixel format:<br />
– Writing context: SMS.SMS_ROT_CONTROLn[1:0] PS = 1<br />
– Reading context: SMS.SMS_ROT_CONTROLn[1:0] PS = 2<br />
• For YUV pixel format:<br />
– Writing and reading context: SMS.SMS_ROT_CONTROLn[1:0] PS = 2<br />
(b) Set the SMS-VRFB context width to one half of the original width:<br />
1712 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• SMS.SMS_ROT_SIZEn[10:0] IMAGEWIDTH = Picture width in pixels /2 (because 2 pixels are<br />
present in each 32-bit container)<br />
For more information about the VRFB module, see Section 10.2.4.1.5, Rotation Engine, in Section 10.2,<br />
SDRAM Controller (SDRC) <strong>Subsystem</strong>.<br />
NOTE: When 5-tap mode is used, the scaling coefficients must be set even, if 1:1 scaling is<br />
required.<br />
Matrix color space coefficients must be set for YUV format inside<br />
DISPC_VIDn_CONV_COEF0 through the DISPC_VIDn_CONV_COEF4 registers.<br />
The width of the input original picture must be even (for YUV4:2:2 and RGB16 formats).<br />
The DMA optimization feature must be used only for YUV and RGB16 formats when 90- or<br />
270-degree rotation is required. In all other configurations, the<br />
DISPC_VIDn_ATTRIBUTES[20] VIDDMAOPTIMIZATION bit must be kept at reset value<br />
(0x0).<br />
7.5.3.5 LCD-Specific Control Registers<br />
The following registers define the LCD output configuration:<br />
• DSS.DISPC_CONTROL<br />
• DSS.DISPC_CONFIG<br />
• DSS.DISPC_DEFAULT_COLOR_m (m=0)<br />
• DSS.DISPC_TRANS_COLOR_m (m=0)<br />
• DSS.DISPC_TIMING_H<br />
• DSS.DISPC_TIMING_V<br />
• DSS.DISPC_POL_FREQ<br />
• DSS.DISPC_DIVISOR<br />
• DSS.DISPC_SIZE_LCD<br />
• DSS.DISPC_DATA_CYCLEk<br />
• DSS.DISPC_CPR_COEF_R, DSS.DISPC_CPR_COEF_G, DSS.DISPC_CPR_COEF_B<br />
Setting/resetting the DSS.DISPC_CONTROL[0] LCDENABLE bit enables/disables the LCD output. A valid<br />
configuration must be set before enabling the LCD output.<br />
7.5.3.5.1 LCD Attributes<br />
The following fields define the attributes of the panel connected to the display controller:<br />
• Monochrome or color panel (the DSS.DISPC_CONTROL[2]MONOCOLOR bit)<br />
• Passive Matrix or active Matrix panel (the DSS.DISPC_CONTROL[3] STNTFT bit)<br />
• Color depth (the DSS.DISPC_CONTROL[9:8] TFTDATALINES bit field)<br />
• Number of lines per panel (the DSS.DISPC_SIZE_LCD[26:16] LPP bit field)<br />
• Number of pixels per line (the DSS.DISPC_SIZE_LCD[10:0] PPL bit field)<br />
• 4- or 8-bit interface for Passive Matrix monochrome panel (the DSS.DISPC_CONTROL[4] M8B bit)<br />
7.5.3.5.2 LCD Timings<br />
The following bit fields define the timing generation of HSYNC/VSYNC:<br />
• Horizontal front porch (the DSS.DISPC_TIMING_H[19:8] HFP bit field)<br />
• Horizontal back porch (the DSS.DISPC_TIMING_H[31:20] HBP bit field)<br />
• Horizontal synchronization pulse width (the DSS.DISPC_TIMING_H[7:0] HSW bit field)<br />
• Vertical front porch (the DSS.DISPC_TIMING_V[19:8] VFP bit field)<br />
• Vertical back porch (the DSS.DISPC_TIMING_V[31:20] VBP bit field)<br />
• Vertical synchronization pulse width (the DSS.DISPC_TIMING_V[7:0] VSW bit field)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1713
VSW[7:0] (IVS=0)<br />
(line clock cycle unit)<br />
VS<br />
HS<br />
LCD panel<br />
(0,0) x<br />
y<br />
HBP[11:0]<br />
(line clock cycle unit)<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
• On/Off control of HSYNC/VSYNC pixel clock (the DSS.DISPC_POL_FREQ[17] ONOFF bit)<br />
• Program HSYNC/VSYNC rise or fall (the DSS.DISPC_POL_FREQ[16] RF bit)<br />
• Invert HSYNC (the DSS.DISPC_POL_FREQ[13] IHS bit)<br />
• Invert VSYNC (the DSS.DISPC_POL_FREQ[12] IVS bit)<br />
• HSYNC gated (the DSS.DISPC_CONFIG[6] HSYNCGATED bit)<br />
• VSYNC gated (the DSS.DISPC_CONFIG[7] VSYNCGATED bit)<br />
Table 7-60 describes the programming rules for LCD timing.<br />
Table 7-60. Programming Rules<br />
No Downsampling Downsampling<br />
Downsampling H or V H + V<br />
(HBP + HSW + HFP) * PCD 8 10 20<br />
Figure 7-125 shows the timing values description in the case of an active matrix display.<br />
Figure 7-125. Timing Values Description (Active Matrix <strong>Display</strong>)<br />
Active region<br />
PPL[10:0]<br />
(pixel unit)<br />
HFP[11:0]<br />
(pixel clock cycle unit)<br />
HSW[7:0] (IHS=0)<br />
(pixel clock cycle unit)<br />
LPP[10:0]<br />
(line unit)<br />
VBP[11:0]<br />
(line clock cycle unit)<br />
VFP[11:0]<br />
(line clock cycle unit)<br />
The following bit fields define the timing generation of ac-bias (output enable in active matrix mode):<br />
• Invert output enable (DSS.DISPC_POL_FREQ[15] IEO bit)<br />
• ac-bias pin frequency (DSS.DISPC_POL_FREQ[7:0] ACB bit field)<br />
• ac-bias pin transitions per interrupt (DSS.DISPC_POL_FREQ[11:8] ACBI bit field)<br />
• ac-bias gated (DSS.DISPC_CONFIG[8] ACBIASGATED)<br />
The following bit fields define the timing generation of the pixel clock:<br />
• Pixel clock divisor (DSS.DISPC_DIVISOR[7:0] PCD bit field)<br />
• Invert pixel clock (DSS.DISPC_POL_FREQ[14] IPC bit)<br />
• Pixel clock gated (DSS.DISPC_CONFIG[5] PIXELCLOCKGATED bit)<br />
The 8-bit pixel clock divider (the DSS.DISPC_DIVISOR[7:0] PCD bit field) selects the pixel clock<br />
frequency. This bit field generates a range of pixel clock frequencies from LC/1 to LC/255, where LC is the<br />
logic clock from the divided functional clock of the display controller by the DSS.DISPC_DIVISOR[23:16]<br />
LCD bit field.<br />
The pixel clock is defined by the following equation:<br />
1714 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-102
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Pixel Clock = (FunctionalClock/LCD[7:0])/PCD[7:0]<br />
Table 7-61 through Table 7-64 show the pixel clock frequency limitations depending the panel type (active<br />
or passive matrix) and the mode (color or monochrome).<br />
Table 7-61. Pixel Clock Frequency Limitations - RGB16 and YUV4:2:2 Active Matrix <strong>Display</strong><br />
Min PCD Values Horizontal Resampling<br />
Vertical Off 2 (1) (1)<br />
Resampling<br />
Up 2 (1)<br />
Off Up 1:1 - 1:2 1:2 - 1:3 1:3 - 1:4<br />
2 (1)<br />
2 (1) (1)<br />
2 3 4<br />
2 3 4<br />
1:1 - 1:2 3-tap 2 2 4 6 8<br />
5-tap PCDmin PCDmin PCDmin PCDmin PCDmin<br />
1:2 - 1:4 PCDmin PCDmin PCDmin PCDmin PCDmin<br />
(1) The PCD value can be 1 in case all the data and synchronization signals are asserted and deasserted on the rising edge of the<br />
pixel clock.<br />
Table 7-62. Pixel Clock Frequency Limitations - RGB16 and YUV4:2:2 Passive Matrix <strong>Display</strong> -<br />
Mono4<br />
Min PCD Values Horizontal Resampling<br />
Off Up 1:1 - 1:2 1:2 - 1:3 1:3 - 1:4<br />
Vertical Off 4 4 8 12 16<br />
Resampling<br />
Up 4 4 8 12 16<br />
1:1 - 1:2 3-tap 8 8 16 24 32<br />
5-tap 4xPCDmin 4xPCDmin 4xPCDmin 4xPCDmin 4xPCDmin<br />
1:2 - 1:4 4xPCDmin 4xPCDmin 4xPCDmin 4xPCDmin 4xPCDmin<br />
Table 7-63. Pixel Clock Frequency Limitations - RGB16 and YUV4:2:2 Passive Matrix <strong>Display</strong> -<br />
Mono8<br />
Min PCD Values Horizontal Resampling<br />
Off Up 1:1 - 1:2 1:2 - 1:3 1:3 - 1:4<br />
Vertical Off 8 8 16 24 32<br />
Resampling<br />
Up 8 8 16 24 32<br />
1:1 - 1:2 3-tap 16 16 32 48 64<br />
5-tap 8xPCDmin 8xPCDmin 4xPCDmin 8xPCDmin 8xPCDmin<br />
1:2 - 1:4 8xPCDmin 8xPCDmin 4xPCDmin 8xPCDmin 8xPCDmin<br />
Table 7-64. Pixel Clock Frequency Limitations - RGB16 and YUV4:2:2 Passive Matrix <strong>Display</strong> -<br />
Color<br />
Min PCD Values Horizontal Resampling<br />
Off Up 1:1 - 1:2 1:2 - 1:3 1:3 - 1:4<br />
Vertical Off 3 3 6 9 12<br />
Resampling<br />
Up 3 3 6 9 12<br />
1:1 - 1:2 3-tap 6 6 12 18 24<br />
5-tap 3xPCDmin 3xPCDmin 3xPCDmin 3xPCDmin 3xPCDmin<br />
1:2 - 1:4 3xPCDmin 3xPCDmin 3xPCDmin 3xPCDmin 3xPCDmin<br />
NOTE: In case of RGB24 format, Figure 7-126 is still valid, except the PCDmin values which must<br />
be multiplied by two.<br />
The PCDmin for vertical downsampling only is defined by the following equations:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1715
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-126. PCDmin Formulas (V Down-Sampling Only)<br />
DISPC_<br />
SIZE _ LCD[<br />
10 : 0]<br />
PLL<br />
h _ ratio <br />
DISPC _VIDn<br />
_ SIZE[<br />
10 : 0]<br />
VIDZSIZEX<br />
DISPC _VIDn<br />
_ PICTURE _ SIZE[<br />
10 : 0]<br />
VIDORGSIZEY<br />
v _ ratio <br />
DISPC _VIDn<br />
_ SIZE[<br />
10 : 0]<br />
VIDSIZEY<br />
v _ ratio<br />
PCD min 1 v _ ratio 2<br />
2<br />
h _ ratio<br />
v _ ratio v _ ratio 2<br />
PCD min max( ,<br />
) 2 v _ ratio 4<br />
2<br />
h _ ratio 2<br />
( h _ ratio 1)<br />
dss-E103<br />
The PCDmin for horizontal downsampling only is defined by the following formula:<br />
While downsampling by n, PCDmin = n<br />
For H+V downsampling, the formula is the following:<br />
PCDmin = max(PCDmin H only, PCDmin V only) as defined above<br />
The refresh rate depends on the following parameters:<br />
• Horizontal front porch (the DSS.DISPC_TIMING_H[19:8] HFP bit field)<br />
• Horizontal back porch (the DSS.DISPC_TIMING_H[31:20] HBP bit field)<br />
• Horizontal synchronization pulse width (the DSS.DISPC_TIMING_H[7:0] HSW bit field)<br />
• Vertical front porch (the DSS.DISPC_TIMING_V[19:8] VFP bit field)<br />
• Vertical back porch (the DSS.DISPC_TIMING_V[31:20] VBP bit field)<br />
• Vertical synchronization pulse width (the DSS.DISPC_TIMING_V[7:0] VSW bit field)<br />
• Number of lines per panel (the DSS.DISPC_SIZE_LCD[26:16] LPP bit field)<br />
• Number of pixels per line (the DSS.DISPC_SIZE_LCD[10:0] PPL bit field)<br />
• 4- or 8-bit interface for the passive matrix monochrome panel (the DSS.DISPC_CONTROL[4] M8B bit)<br />
The following bit fields define the behavior of the internal blocks:<br />
• Spatial/temporal dithering logic enabled (DSS.DISPC_CONTROL[7]<br />
SPATIALTEMPORALDITHERENABLE bit)<br />
• Spatial/temporal dithering logic number of frames (DSS.DISPC_CONTROL[31:30]<br />
SPATIALTEMPORALDITHERFRAMES bit field). The default value of this bit field at reset time is 0x0,<br />
which is 1 frame only (spatial processing without temporal dithering). The possible values are 0x0 (one<br />
frame), 0x1 (two frames), and 0x2 (four frames). The number of frames is initialized before enabling<br />
the spatial/temporal dithering unit. The software must not change this bit field value while the<br />
spatial/temporal unit is enabled.<br />
The following bit field defines the clock gating strategy:<br />
• In active matrix mode, the pixel clock is always gated or only when valid data are present (the<br />
DSS.DISPC_CONFIG[0] PIXELGATED bit).<br />
7.5.3.5.3 LCD Overlay<br />
The following bit fields define the overlay attributes of the LCD output:<br />
• Transparency color key (the DSS.DISPC_TRANS_COLOR0i register (i = 0))<br />
• Transparency color key enable (the DSS.DISPC_CONFIG[10] TCKLCDENABLE bit)<br />
• Transparency color key selection between the destination graphics transparency color key and the<br />
source video transparency color key (the DSS.DISPC_CONFIG[11] TCKLCDSELECTION bit)<br />
• The default solid background color is defined in the DSS.DISPC_DEFAULT_COLOR_m[23:0]<br />
DEFAULTCOLOR bit field (i=0).<br />
• Alpha blender Enable (DSS.DISPC_CONFIG[18] LCDALPHABLENDERENABLE)<br />
• Global alpha blending values (DSS.DISPC_GLOBAL_ALPHA[23:16] VID2GLOBALALPHA and<br />
DSS.DISPC_GLOBAL_ALPHA[7:0] GFXGLOBALALPHA). The value 0xFF corresponds to 100%<br />
opaque and 0 to 100% transparent<br />
1716 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
NOTE: The destination graphics transparency color key is available only to the overlay with which<br />
the graphics pipeline is connected. The software must set the correct configuration of the<br />
LCD and digital overlays.<br />
NOTE: When the alpha blender is enabled, the destination transparency color key is not available<br />
and the source transparency color key applies to the graphics pixels and not the video pixels.<br />
When all of these fields are set to the appropriate values, set the DSS.DISPC_CONTROL[5] GOLCD bit to<br />
indicate that all shadow registers of the pipelines connected to the LCD output are latched by the<br />
hardware (only if the DSS.DISPC_CONTROL[0] LCDENABLE bit is already set to 1). If the LCD output is<br />
disabled, the new values will be updated when the DSS.DISPC_CONTROL[0] LCDENABLE bit will be set<br />
to 1.<br />
7.5.3.5.4 LCD TDM<br />
The following fields define the multiple cycle output configuration:<br />
• First cycle (the DSS.DISPC_DATA_CYCLEk (k=0) register)<br />
• Second cycle (the DSS.DISPC_DATA_CYCLEk (k=1) register)<br />
• Third cycle (the DSS.DISPC_DATA_CYCLEk (k=2) register)<br />
• Enable (the DSS.DISPC_CONTROL[20] TDMENABLE bit)<br />
• Parallel mode (the DSS.DISPC_CONTROL[22:21] TDMPARALLEMODE field)<br />
• Cycle format (the DSS.DISPC_CONTROL[24:23] TDMCYCLEFORMAT field)<br />
• Unused bits (the DSS.DISPC_CONTROL[26:25] TDMUNUSEDBITS field)<br />
When all of these bit fields are set to the appropriate values, set the DSS.DISPC_CONTROL[5] GOLCD<br />
bit to indicate that all shadow registers of the pipelines connected to the LCD output are latched by the<br />
hardware (only if the DSS.DISPC_CONTROL[0] LCDENABLE bit is already set to 1). If the LCD output is<br />
disabled, the new values will be updated when the DSS.DISPC_CONTROL[0] LCDENABLE bit will be set<br />
to 1.<br />
7.5.3.5.5 LCD Spatial/Temporal Dithering<br />
The following bit fields define the LCD spatial/temporal dithering configuration:<br />
• Number of frames (the DSS.DISPC_CONTROL[31:30] SPATIALTEMPORALDITHERINGFRAMES bit<br />
field) with:<br />
– 0x0 Spatial only (default value)<br />
– 0x1 Spatial + Temporal over two frames<br />
– 0x2 Spatial + Temporal over four frames<br />
– 0x3 Reserved<br />
• Enable (the DSS.DISPC_CONTROL[7] SPATIALTEMPORALDITHERENABLE bit)<br />
– 0x0 Disabled (default value)<br />
– 0x1 Enabled<br />
When all of these bit fields are set to the appropriate values, set the DSS.DISPC_CONTROL[5] GOLCD<br />
bit to indicate that all shadow registers of the pipelines connected to the LCD output are latched by the<br />
hardware (only if the DSS.DISPC_CONTROL[0] LCDENABLE bit is already set to 1). If the LCD output is<br />
disabled, the new values will be updated when the DSS.DISPC_CONTROL[0] LCDENABLE bit will be set<br />
to 1.<br />
7.5.3.5.6 LCD Color Phase Rotation<br />
The following bit fields define the color phase rotation configuration:<br />
• Enable (the DSS.DISPC_CONFIG[15] CPR bit)<br />
– 0x0 Disabled (default value)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1717
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
– 0x1 Enabled<br />
• Red 10-bit signed coefficients used by the color phase rotation matrix (the DSS.DISPC_CPR_COEF_R<br />
register)<br />
• Green 10-bit signed coefficients used by the color phase rotation matrix (the<br />
DSS.DISPC_CPR_COEF_G register)<br />
• Blue 10-bit signed coefficients used by the color phase rotation matrix (the<br />
DSS.DISPC_CPR_COEF_B register)<br />
The programmable color phase rotation block for the LCD output has nine 10-bit coefficients defined in the<br />
DSS.DISPC_CPR_COEF_R, DSS.DISPC_CPR_COEF_G, and DSS.DISPC_CPR_COEF_B, as<br />
described in Figure 7-127 through Figure 7-130.<br />
Figure 7-127. Color Phase Rotation Matrix<br />
Rout<br />
RR<br />
1 <br />
<br />
<br />
<br />
Gout<br />
<br />
* <br />
<br />
GR<br />
256<br />
<br />
<br />
Bout<br />
<br />
<br />
BR<br />
RG<br />
GG<br />
BG<br />
RB<br />
Rin<br />
<br />
<br />
<br />
GB<br />
<br />
<br />
*<br />
<br />
Gin<br />
<br />
<br />
BB<br />
<br />
<br />
Bin<br />
<br />
dss-E105<br />
Figure 7-128. Color Phase Rotation Matrix (R Component Only)<br />
1<br />
Riout * ( RR*<br />
Rin RG * Gin RB*<br />
Bin)<br />
256<br />
dss-E106<br />
Figure 7-129. Color Phase Rotation Matrix (G Component Only)<br />
1<br />
Gout * ( GR * Rin GG * Gin GB * Bin)<br />
256<br />
dss-E1<strong>07</strong><br />
Figure 7-130. Color Phase Rotation Matrix (B Component Only)<br />
1<br />
Bout * ( BR*<br />
Rin BG * Gin BB*<br />
Bin)<br />
256<br />
When all of these bit fields are set to the appropriate values, set the DSS.DISPC_CONTROL[5] GOLCD<br />
bit to indicate that all shadow registers of the pipelines connected to the LCD output are latched by the<br />
hardware (only if the DSS.DISPC_CONTROL[0] LCDENABLE bit is already set to 1). If the LCD output is<br />
disabled, the new values will be updated when the DSS.DISPC_CONTROL[0] LCDENABLE bit will be set<br />
to 1.<br />
7.5.3.5.6.1 Color Phase Rotation - Diagonal Matrix<br />
The Color Phase Rotation feature is useful when using an LCD backlight that is not white. By using a<br />
correct configuration of the R, G and B coefficients of CPR, the color bias of the screen can be corrected.<br />
The following paragraphs give an example of configuration of the CPR feature.<br />
The easiest example of CPR configuration is a diagonal matrix. This way, the output colors depends on<br />
one input color only. Figure 7-131 gives the example of a diagonal matrix and the corresponding equation<br />
of the output components.<br />
1718 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
dss-E104<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Rout<br />
RR<br />
1 <br />
<br />
<br />
<br />
Gout<br />
<br />
* <br />
<br />
0<br />
256<br />
<br />
<br />
Bout<br />
<br />
<br />
0<br />
Rout =<br />
Gout =<br />
Bout =<br />
Rout<br />
256<br />
1 <br />
<br />
<br />
<br />
Gout<br />
<br />
* <br />
<br />
0<br />
256<br />
<br />
<br />
Bout<br />
<br />
<br />
0<br />
Rout =<br />
Gout =<br />
Bout =<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-131. Diagonal Matrix Configuration<br />
0<br />
GG<br />
0<br />
1<br />
*<br />
RR * Rin<br />
256<br />
1<br />
*<br />
GG * Gin<br />
256<br />
1<br />
*<br />
BB * Bin<br />
256<br />
0<br />
256<br />
0<br />
1<br />
*<br />
256 * Rin<br />
256<br />
1<br />
*<br />
256 * Gin<br />
256<br />
1<br />
*<br />
128 * Bin<br />
256<br />
0 Rin<br />
<br />
<br />
<br />
0<br />
<br />
<br />
*<br />
<br />
Gin<br />
<br />
<br />
BB<br />
<br />
<br />
Bin<br />
<br />
According to these 3 new equations, each output component only depends on the corresponding input<br />
color. The coefficients can easily be used to reduce the impact of a non-white backlight.<br />
Let's take the example of a "blue" backlight. In this case, users have the feeling that a blue film has been<br />
added on the screen, and then each color seems to be "too much blue". The goal is then to reduce the<br />
"Blue" component and to keep the "Red" and "Green" ones unchanged. The following matrix can be used<br />
for a reduction by a half of the blue component. Figure 7-132 gives the corresponding matrix and<br />
equations for each component.<br />
0 Rin<br />
<br />
<br />
<br />
0<br />
<br />
<br />
*<br />
<br />
Gin<br />
<br />
<br />
128<br />
<br />
<br />
Bin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
dss-200<br />
Figure 7-132. Example - Diagonal Matrix Configuration<br />
=> Rout = Rin<br />
=> Gout = Gin<br />
=> Bout = 0.5 * Bin<br />
Figure 7-133 shows the result of an image on a "blue" backlight screen with and without CPR.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
dss-201<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1719
Initial Figure on LCD (No CPR)<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-133. Image With and Without CPR (Diagonal Matrix)<br />
Initial Figure<br />
Initial Figure on LCD (With CPR)<br />
dss-202<br />
A drawback of this diagonal matric is that the color reduction is linear. The contrast is then different from<br />
the initial image. It is then necessary to use the 6 other coefficients of the CPR matrix to better correct a<br />
non-white backlight. The goal is to find the correct coefficients that remove the color offset added by the<br />
non-white backlight.<br />
7.5.3.5.6.2 Color Phase Rotation - Standard Matrix<br />
In the following example, the LCD backlight adds an offset of 128 (B_offset) to the Blue component.<br />
Figure 7-134 shows an example of matrix that reduces the offset of the screen, the corresponding<br />
equations and the resulting output colors.<br />
1720 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Rout<br />
256<br />
0 0 Rin<br />
<br />
1 <br />
<br />
<br />
<br />
<br />
Gout<br />
<br />
* <br />
<br />
0 256 0<br />
<br />
*<br />
<br />
Gin<br />
<br />
<br />
256<br />
<br />
<br />
<br />
Bout<br />
<br />
<br />
-129 -129 370 <br />
<br />
Bin<br />
<br />
Rout =<br />
Gout =<br />
Bout =<br />
1<br />
*<br />
<br />
256 * Rin<br />
256 <br />
1<br />
*<br />
256<br />
1<br />
*<br />
256<br />
Resulting pixel on LCD (no CPR correction)<br />
256 * Gin<br />
Rout 255 0 0 255 0 128<br />
Gout 0 255 0 255 0 128<br />
Bout 128 128 255 255 128 255<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-134. Example - Image With and Without CPR (Standard Matrix)<br />
<br />
<br />
<br />
-129 * Rin + -129 * Gin + 370 * Bin + B_offset<br />
Initial pixel to send to LCD<br />
Rin 255 0 0 255 0 128<br />
Gin 0 255 0 255 0 128<br />
Bin 0 0 255 255 0 128<br />
<br />
<br />
Resulting pixel on LCD (after CPR correction)<br />
Rout 255 0 0 255 0 128<br />
Gout 0 255 0 255 0 128<br />
Bout 0 0 255 255 128 184<br />
This CPR matrix gives inputs and outputs very close. However, black cannot be corrected because of it's<br />
zero-components. No matter which coefficients are used in the matrix, the result will always be equal to<br />
the offset added by the LCD backlight.<br />
7.5.3.6 TV Set-Specific Control Registers<br />
The following registers define the digital output configuration:<br />
• DSS.DISPC_CONTROL<br />
• DSS.DISPC_CONFIG<br />
• DSS.DISPC_DEFAULT_COLOR_m (m=1)<br />
• DSS.DISPC_TRANS_COLOR_m (m=1)<br />
• DSS.DISPC_SIZE_DIG<br />
The digital output is enabled/disabled by setting/resetting the DSS.DISPC_CONTROL[1] DIGITALENABLE<br />
bit. A valid configuration must be set before the digital output can be enabled.<br />
Perform the initialization sequence as follows:<br />
1. Initialize the video encoder and the display controller configuration registers.<br />
2. Set the DSS.DISPC_CONTROL[6] GODIGITAL bit and the DSS.DISPC_CONTROL[1]<br />
DIGITALENABLE bit to 1.<br />
3. Wait for the first VSYNC pulse signal.<br />
4. Clear the SYNCLOSTDIGITAL interrupt by setting the DSS.DISPC_IRQSTATUS[15]<br />
SYNCLOSTDIGITAL bit to 1.<br />
5. Enable the SYNCLOSTDIGITAL interrupt by setting the DSS.DISPC_IRQENABLE[15]<br />
SYNCLOSTDIGITAL bit to 1.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-203<br />
1721
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.3.6.1 Digital Timings<br />
The following bit fields define the timing information:<br />
• Data hold time (the DSS.DISPC_CONTROL[19:17] HT bit field)<br />
• Logic clock divisor (the DSS.DISPC_DIVISOR[23:16] LCD bit field)<br />
The 8-bit pixel clock divider (DSS.DISPC_DIVISOR[23:16]) bit field is used to select the logic clock<br />
frequency. The LCD generates a range of pixel clock frequencies from FCK/1 to FCK/255, where FCK is<br />
the input functional clock of the display controller.<br />
7.5.3.6.2 Digital Frame/Field Size<br />
The following bit fields define the field size (frame if progressive mode):<br />
• Number of lines per panel (the DSS.DISPC_SIZE_DIG[26:16] LPP bit field)<br />
• Number of pixels per line (the DSS.DISPC_SIZE_DIG[10:0] PPL bit field)<br />
7.5.3.6.3 Digital Overlay<br />
The following bit fields define the overlay attributes of the digital output:<br />
• Transparency color key (the DSS.DISPC_TRANS_COLOR_m register (m=1))<br />
• Transparency color key enable (the DSS.DISPC_CONFIG[12] TCKDIGENABLE bit)<br />
• Transparency color key selection between the destination graphics transparency color key and the<br />
source video transparency color key (the DSS.DISPC_CONFIG[13] TCKDIGSELECTION bit)<br />
• The default solid background color is defined in the DSS.DISPC_DEFAULT_COLOR_m[23:0]<br />
DEFAULTCOLOR bit field (i=1).<br />
• Alpha blender Enable (DSS.DISPC_CONFIG[19] TVALPHABLENDERENABLE)<br />
• Global alpha blending values (DSS.DISPC_GLOBAL_ALPHA[23:16] VID2GLOBALALPHA and<br />
DSS.DISPC_GLOBAL_ALPHA[7:0] GFXGLOBALALPHA). The value 0xFF corresponds to 100%<br />
opaque and 0 to 100% transparent<br />
NOTE: The destination graphics transparency color key is available only to the overlay with which<br />
the graphics pipeline is connected. The software must set the correct configuration of the<br />
LCD and digital overlays.<br />
NOTE: When the alpha blender is enabled, the destination transparency color key is not available<br />
and the source transparency color key applies to the graphics pixels and not the video pixels.<br />
When this bit field is set to the appropriate values, set the DSS.DISPC_CONTROL[6] GODIGITAL bit to<br />
indicate that all shadow registers of the pipelines connected to the digital output are latched by the<br />
hardware (only if the DSS.DISPC_CONTROL[1] DIGITALENABLE bit is already set to 1). If the digital<br />
output is disabled, the new values will be updated when the DSS.DISPC_CONTROL[1] DIGITALENABLE<br />
bit will be set to 1.<br />
7.5.4 DSI Protocol Engine Basic Programming Model<br />
This section describes the programming model of the DSI protocol engine.<br />
7.5.4.1 Software Reset<br />
The DSI protocol engine can be reset by software. This reset can be done for debug purposes or after a<br />
protocol error and has the same effect as the hardware reset. The DSI protocol engine can be reset by<br />
setting the DSS.DSI_SYSCONFIG[1] SOFT_RESET bit to 1. The software can monitor the<br />
DSS.DSI_SYSSTATUS[0] RESET_DONE status bit to wait for the completion of the reset procedure. If<br />
after 5 reads, the DSS.DSI_SYSSTATUS[0] RESET_DONE status bit still returns 0, it can be assumed<br />
that an error occurred during the reset stage.<br />
1722 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
NOTE: This software reset is optional as an hardware reset is always performed on the DSI<br />
protocol engine at device reset.<br />
7.5.4.2 Power Management<br />
The power management behavior of the DSI protocol engine is controlled by the DSS.DSI_SYSCONFIG<br />
register. This register completely controls the way the module interferes with the PRCM module. The<br />
DSS.DSI_SYSCONFIG[0] AUTO_IDLE bit should be set to 1 (default value) to enable automatic clock<br />
gating in the module.<br />
7.5.4.3 Interrupts<br />
There is a single interrupt request: DSI_IRQ. This interrupt line is merged with another interrupt line from<br />
the DISPC_IRQ in a single interrupt request DSS_IRQ. The DSI_IRQ events are generated only for the<br />
enabled VC(s). Two registers are used to enable and monitor the DSI interrupt events:<br />
• DSS.DSI_IRQENABLE register: This register indicates the enabled/disabled event for the VCs. Each<br />
event for the VC is configured in the DSS.DSI_VCn_IRQENABLE register dedicated to the VC number.<br />
In addition, it includes one bit for the enable of error reporting for the complex I/O: Error signaling from<br />
the complex I/O: The interrupt is triggered when any error is received from the complex I/O<br />
(ErrSyncEsc[4:0], ErrEsc[4:0] (edge trigger interrupt), ErrControl[4:0] and ErrContentionLP0[4:0],<br />
ErrContentionLP1[4:0] from the complex I/O).<br />
• DSS.DSI_IRQSTATUS register : The register DSI_IRQSTATUS flags which VC(s) is/have generated<br />
an interrupt. Based on the VC number, the register DSI_VCn_IRQSTATUS indicates the event<br />
generating the interrupt. In addition, it includes one bit for the status of error reporting for the complex<br />
I/O.<br />
7.5.4.4 Global Register Controls<br />
Prior to receive data from the DSI complex I/O, the DSI_PHY_SCP registers in the DSI complex I/O must<br />
be configured. Refer to Section 7.5.6 for more details. Table 7-65 details the register access width<br />
limitations for all the DSI modules.<br />
Table 7-65. Register Access Width Limitations<br />
Register Name Register Access Width<br />
All DSI complex I/O register 32-bit only<br />
(DSI_PHY_SCP)<br />
All DSI PLL control module registers 32-bit only<br />
DSI_VCn_LONG_PACKET_HEADER 32-bit only<br />
DSI_VCn_SHORT_PACKET_HEADER 32-bit only<br />
DSI_VCn_LONG_PACKET_PAYLOAD 16-bit, 32-bit<br />
All others DSI protocol engine registers 8-bit, 16-bit and 32-bit<br />
CAUTION<br />
In case of different access width detailed in Table 7-65, an OCP error is<br />
generated in response to the write using SResp=ERR.<br />
The DSI protocol engine is globally controlled by the DSS.DSI_CTRL register. The interface to the<br />
complex I/O is enabled by setting the DSS.DSI_CTRL[0] IF_EN bit. When the interface is disabled, it is<br />
possible to provide data to the TX FIFO and read pending data in the RX FIFO. When the<br />
DSS.DSI_CTRL[0] IF_EN bit is set to 1, the pending packets should be sent to the DSI complex I/O, the<br />
data transfer from the video port should be ignored only when received the next Vertical Sync Event which<br />
is received but not send to the DSI complex I/O.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1723
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
When the DSS.DSI_CTRL[0] IF_EN bit is reset by software, the hardware should finish the transfer of the<br />
pending data in the TX FIFO and wait for response if BTA has been sent (Protocol engine is receive<br />
mode), then the hardware resets the DSS.DSI_CTRL[0] IF_EN bit. When using the video mode, the VC<br />
associated with the video port should be enabled prior to enable the interface according to the following<br />
sequence:<br />
• DSS.DSI_CTRL[0] IF_EN bit is equal to 0<br />
• Enable the VC associated with video mode by setting the DSS.DSI_VCn_CTRL[0] VC_EN<br />
• Set the DSS.DSI_CTRL[0] IF_EN bit to 1<br />
7.5.4.5 Virtual Channels<br />
There is one set of registers for each VC. The attributes of the VC define the following characteristics:<br />
• Transfer mode (DSS.DSI_VCn_CTRL[4] MODE bit):<br />
– Video mode<br />
– Command mode<br />
• Data type<br />
• Source (DSS.DSI_VCn_CTRL[1] SOURCE bit)<br />
– Video port<br />
– L4 interconnect port<br />
• HS or LP forward transmission<br />
• Automatic bus turn-around generation<br />
– Short packets (DSS.DSI_VCn_CTRL[2] BTA_SHORT_EN bit)<br />
– Long packets (DSS.DSI_VCn_CTRL[3] BTA_LONG_EN bit)<br />
• DMA request configurations for RX and TX<br />
– DMA request number (DSS.DSI_VCn_CTRL[29:27] DMA_RX_REQ_NB bit field for RX FIFO and<br />
DSS.DSI_VCn_CTRL[23:21] DMA_TX_REQ_NB bit field for TX FIFO)<br />
– DMA threshold (DSS.DSI_VCn_CTRL[26:24] DMA_RX_THRESHOLD bit field for RX FIFO and<br />
DSS.DSI_VCn_CTRL[19:17] DMA_TX_THRESHOLD bit field for TX FIFO)<br />
• Mode speed (DSS.DSI_VCn_CTRL[9] MODE_SPEED bit)<br />
• ECC transmission (DSS.DSI_VCn_CTRL[8] ECC_TX_EN bit)<br />
• CS transmission (DSS.DSI_VCn_CTRL[7] CS_TX_EN bit)<br />
The VC ID not calculated by the DSI module but provided while writing into the registers<br />
DSI_VCn_SHORT_PACKET_HEADER and DSI_VCn_LONG_PACKET_HEADER.<br />
7.5.4.6 Packets<br />
The DSS.DSI_VCn_SHORT_PACKET_HEADER register is used to send only short packets (ECC can be<br />
calculated by hardware or by software user for debug purpose). The register is not used for video mode<br />
data since the short packets are generated by the hardware using the following information:<br />
• synchronization events received on the video port (assertion/deassertion of the HSYNC and VSYNC<br />
input signals)<br />
• DSS.DSI_CTRL[18] VP_HSYNC_END<br />
• DSS.DSI_CTRL[17] VP_HSYNC_START<br />
• DSS.DSI_CTRL[16] VP_VSYNC_END<br />
• DSS.DSI_CTRL[15] VP_VSYNC_START<br />
• DSS.DSI_CTRL[10] VP_HSYNC_POL<br />
• DSS.DSI_CTRL[11] VP_VSYNC_POL<br />
• DSS.DSI_VCn_CTRL[1] SOURCE<br />
The DSS.DSI_VCn_LONG_PACKET_HEADER register is used to provide header for long packets (ECC<br />
is always calculated by hardware). The register is used for video mode and command mode. If the video<br />
mode is enabled for the VC, it is not possible to transfer concurrently (interleaved in a frame) data using<br />
1724 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
long packets received on the video port and on the L4 interconnect port since the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER register is used by the video mode. The register can be<br />
unprogrammed by users to send long packets received on the L4 interconnect port only when software<br />
users know that there is no expected data on the video port. The software should correctly program the<br />
register to send sequentially long packets in video and command modes.<br />
The DSS.DSI_VCn_LONG_PACKET_PAYLOAD register is used to provide payload data for long packets<br />
(Check-sum is calculated by hardware when DSS.DSI_VCn_CTRL[7] CS_TX_EN is set to 1 otherwise the<br />
value 0x00 is used). The register is not used in video mode since payload data are provided by the video<br />
port. The software should ensure that the following sequence for write accesses to the header and<br />
payload registers (DSS.DSI_VCn_LONG_PACKET_HEADER and<br />
DSS.DSI_VCn_LONG_PACKET_PAYLOAD, respectively) is followed:<br />
• A long packet header value with WC=0 written in DSS.DSI_VCn_LONG_PACKET_HEADER register<br />
can be followed by any access.<br />
• A long packet header value with WC0 written in DSS.DSI_VCn_LONG_PACKET_HEADER register<br />
should be followed by one or more writes to the DSS.DSI_VCn_LONG_PACKET_PAYLOAD register<br />
defined by the WC value before writing again to the same DSS.DSI_VCn_LONG_PACKET_HEADER<br />
register.<br />
7.5.4.7 DSI Complex I/O<br />
CAUTION<br />
If this sequence is not followed, no error is generated. The access to other DSI<br />
registers during this sequence is allowed.<br />
Prior to send/receive any data from the complex I/O, the DSI complex I/O timings should be set according<br />
to the display module timings. The DSI complex I/O pads must also be configured first. See Section 7.5.6,<br />
DSI Complex I/O Basic Programming Model.<br />
7.5.4.8 Video Mode<br />
The DSS.DSI_VM_TIMING1, DSS.DSI_VM_TIMING2, DSS.DSI_VM_TIMING3, DSS.DSI_VM_TIMING4,<br />
DSS.DSI_VM_TIMING5, DSS.DSI_VM_TIMING6, and DSS.DSI_VM_TIMING7 registers define the<br />
timings of the video mode.<br />
The DSS.DSI_CTRL[20] BLANKING_MODE bit defines if the long blanking packets or LPS state are used<br />
during the blanking periods (except HFP, HBP, HSA defined by other bits) when there is no pending data<br />
in TX FIFO ready to be sent. The software should ensure that there is no data in the TX FIFO, no BTA, no<br />
RESET trigger sent, and the DSS.DSI_VCn_CTRL[9] MODE_SPEED bit is set to 1 (High-Speed mode) to<br />
keep the video mode transfer is HS mode during blanking periods (except for the last blanking period<br />
since it is required to go LPS at least once per frame).<br />
The DSS.DSI_CTRL[21] HFP_BLANKING_MODE, DSS.DSI_CTRL[22] HBP_BLANKING_MODE and<br />
DSS.DSI_CTRL[23] HSA_BLANKING_MODE define if these blanking can send packets from the TX FIFO<br />
or should be kept in HS mode using only long blanking packets.<br />
To ensure that the writes to the register DSS.DSI_VCn_LONG_PACKET_HEADER are correctly handled<br />
as header information for video mode long packets, the following registers should be programmed:<br />
• DSS.DSI_VCn_CTRL[0] VC_EN bit set to 1<br />
• DSS.DSI_VCn_CTRL[4] MODE bit set to 1<br />
• DSS.DSI_VCn_LONG_PACKET_HEADER register access<br />
• DSS.DSI_VCn_CTRL[0] VC_EN bit set to 1<br />
NOTE: The DSS.DSI_VCn_CTRL[1] SOURCE and DSS.DSI_VCn_CTRL[9] MODE_SPEED bits<br />
are ignored by hardware when the video mode is selected (DSS.DSI_VCn_CTRL[4] MODE<br />
bit set to 1)<br />
The interrupt events SYNC_LOST_IRQ and RESYNCHRONIZATION_IRQ indicates if the DSI protocol<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1725
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
engine has not been able to resynchronize the video port timing to its own timing base or if it has been<br />
done. The RESYNCHRONIZATION_IRQ indicates software users that the video port works but the<br />
configuration of the timings for the display controller (DISPC) and for DSI Protocol engine may need to<br />
be modified to avoid the resynchronization to occur. The SYNC_LOST_IRQ and<br />
RESYNCHRONIZATION_IRQ events can be respectively monitored in DSS.DSI_IRQSTATUS[18]<br />
SYNC_LOST_IRQ and DSS.DSI_IRQSTATUS[5] RESYNCHRONIZATION_IRQ status bits.<br />
The DSS.DSI_VM_TIMING2[27:24] WINDOW_SYNC bit field defines the synchronization period. The<br />
recommended value is 0x4 based on the implementation of the resynchronization scheme.<br />
7.5.4.9 Video Port Data Bus<br />
The DSS.DSI_CTRL[7:6] VP_DATA_BUS_WIDTH bit field is used to determine the width of the data bus<br />
on the video port. The supported formats are 16-bit, 18-bit and 24-bits.<br />
7.5.4.10 Command Mode<br />
7.5.4.10.1 Command Mode TX FIFO<br />
The single TX FIFO is used on the L4 interconnect port to receive the data to be sent to the peripheral.<br />
The configuration of the FIFO for a specific VC should be done only when the VC is disabled.<br />
Users should not enable the VC if there is still some pending data in the TX FIFO for the corresponding<br />
space allocated for the VC from previous active period. When the VC space in the TX FIFO is empty, the<br />
VC can be enabled.<br />
For each VC, two dedicated DSS.DSI_VCn_LONG_PACKET_HEADER and<br />
DSS.DSI_VCn_LONG_PACKET_PAYLOAD registers are used to provide data for long packets. The<br />
register DSS.DSI_VCn_SHORT_PACKET_HEADER is used to provide data for short packets (32-bit<br />
long).<br />
For each long packet, the DSS.DSI_VCn_LONG_PACKET_HEADER register should be written first and<br />
then the DSS.DSI_VCn_LONG_PACKET_PAYLOAD register. The only exception is when the word count<br />
defined in the header is equal to 0. In that case, it is not required to write into the payload register. For<br />
consecutive long packets, the header should be written into the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER register even if the value remains the same.<br />
The TX FIFO stores all the pending bytes to be sent to the peripheral(s). Multiple receivers can be<br />
addressed using the VC capability.<br />
The 32-bit write requests only for each VC to the TX FIFO should be kept in order while sending the data<br />
to the DSI_PHY inside the VC requests. The only exception is in the case of last 32-bit write for the last<br />
bytes of the payload data since it could be 1, 2, 3, or 4 bytes.<br />
Also in case the last transfer is a 32-bit write but the number of valid bytes is 1, 2, or 3 only (calculated<br />
using the header word count and the number of bytes are received for the payload), the hardware should<br />
store the 32-bit value into the TX FIFO but the invalid bytes are not sent, and are discarded.<br />
When the word count defined in DSS.DSI_VCn_LONG_PACKET_HEADER register is not a multiple of<br />
the request threshold value defined in DSS.DSI_VCn_CTRL[19:17] DMA_TX_THRESHOLD bit field,<br />
32-bit requests and/or bytes should be discarded by the hardware to store in FIFO only the exact number<br />
of valid bytes.<br />
The DSI protocol module should be able to determine if the bytes in the TX FIFO correspond to a short or<br />
long packet without decoder the DT field. When the bytes are written into the<br />
DSS.DSI_VCn_SHORT_PACKET_HEADER, DSS.DSI_VCn_LONG_PACKET_HEADER, and<br />
DSS.DSI_VCn_LONG_PACKET_PAYLOAD registers, the hardware should store the information<br />
concerning long or short packet. A 1-bit flag should be used for each entry of the TX FIFO.<br />
When the VC is disabled, the remaining bytes in the FIFO should be sent to the DSI link. The start event<br />
to send data to the DSI link one of the following events:<br />
• All bytes have been received in the FIFO (header + payload).<br />
• The space of the FIFO allocated for the VC is full.<br />
• The space of the FIFO allocated for the VC is not enough to request more data using DMA request<br />
1726 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
(threshold value bigger than space left in the TX FIFO for the VC).<br />
NOTE: In case the video mode is active, the blanking period should be large enough to allow the<br />
transfer of the packet(s).<br />
Sequential arbitration must be set (TX_FIFO_ARBITRATION[3] DSI_CTRL bit = 0x1) if only<br />
one VC is used to send multiple packets during the same blanking period.<br />
When consecutive packets should be sent in HS mode, to ensure that there is no LP transition between<br />
them at least one of the following condition should be valid:<br />
• Packets from the same VC<br />
• Short packets or long packets with a payload size multiple of 4 bytes<br />
To flush the FIFO (discard of the data) for some pending bytes, the software should change the allocated<br />
size of the chuck FIFO by:<br />
• First disabling the VC resetting DSS.DSI_VCn_CTRL[0] VC_EN bit to 0<br />
• Second change the size of the space of FIFO to 0 by writing the DSS.DSI_TX_FIFO_VC_SIZE<br />
VCn_FIFO_SIZE (n is the VC value between 0 and 3)<br />
If there is an on-going packet transfer from the TX FIFO to DSI_PHY, the flush of the FIFO should stop<br />
immediately the transfer. Because the FIFO is accessible to users, it must ensure that there are no bytes<br />
left in the FIFO before starting the flush operation. But it can be required in dead-lock situation to flush the<br />
FIFO even if there are still bytes in the FIFO, in that case, the software should also take care of having a<br />
known state of the whole DSI protocol engine module (software reset may be required) To start of new<br />
transfer through the TX FIFO.<br />
Users can check that there is no pending request before changing the size of the allocated FIFO for the<br />
VC by reading the relevant DSS.DSI_VCn_CTRL[15] VC_BUSY bit or by using the interrupt<br />
PACKET_SENT_IRQ: All the packets have been sent by counting the transferred requests to the L4<br />
interconnect port and the number of requests sent to the DSI complex I/O. This interrupt can be<br />
monitoring by reading the DSS.DSI_VCn_IRQSTATUS[2] PACKET_SENT_IRQ status bit.<br />
The DSS.DSI_CTRL[3] TX_FIFO_ARBITRATION bit defines if the arbitration scheme is:<br />
• Round-robin between enabled VCs with pending ready requests (pending ready request means that all<br />
bytes for the packets are in the FIFO or the space of the FIFO for the VC is full) starting from the VC<br />
which has the least VC ID number.<br />
• Sequential: All the pending ready requests for one VC are sent before moving to another VC. The<br />
condition of "space of the FIFO is full" should be evaluated after the end of each packet.<br />
If users want to use sequential arbitration for all requests for all channels, a single VC should be used.<br />
(the VC ID defined in the header provided to the hardware using either the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER or DSS.DSI_VCn_SHORT_PACKET_HEADER register is not<br />
used and not modified by the DSI protocol engine).<br />
The register DSS.DSI_TX_FIFO_VC_SIZE defines the allocated number of 33-bit values for each VC in<br />
the TX FIFO and the start address for each VC. The size of the space allocated in the TX FIFO defined by<br />
DSS.DSI_TX_FIFO_VC_SIZE VCn_FIFO_SIZE (n corresponds to the VC number n) bit fields should be a<br />
multiple of the threshold defined in DSS.DSI_VCn_CTRL[19:17] DMA_TX_THRESHOLD bit field. Only the<br />
enabled VCs should be taken into account. To change the size of the space of the memory allocated for a<br />
specific VC, the VC should be disabled by setting the DSS.DSI_VCn_CTRL[0] VC_EN bit to 0. The whole<br />
FIFO may not be used by all the VCs at a given time since a VC can be disabled to change one or<br />
multiple parameters. Software users are responsible for correctly configuring the start address and the<br />
size for each VC.<br />
Table 7-66 indicates the corresponding values for the size of the space allocated in the FIFO.<br />
Table 7-66. Virtual Channel TX FIFO Size Values<br />
DSI_TX_FIFO_VC_SIZE.VCn_FIFO_SIZE[n = 0, 3] Space Size (up to the size of the FIFO)<br />
0 0 x 33 bits<br />
1 32 x 33 bits<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1727<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Table 7-66. Virtual Channel TX FIFO Size Values (continued)<br />
DSI_TX_FIFO_VC_SIZE.VCn_FIFO_SIZE[n = 0, 3] Space Size (up to the size of the FIFO)<br />
2 64 x 33 bits<br />
3 96 x 33 bits<br />
4 128 x 33 bits<br />
The total size of TX FIFO is 128*33 bits. Therefore, the sum of all virtual channel FIFO allocation cannot<br />
exceed 128*33 bits.<br />
Table 7-67 indicates the start address of the space in the FIFO.<br />
Table 7-67. Virtual Channel TX FIFO Start Address<br />
DSI_TX_FIFO_VC_SIZE.VCx_FIFO_ADD[x = 0, 2] Start Address<br />
0 0<br />
1 32<br />
2 64<br />
3 96<br />
4 128<br />
CAUTION<br />
There must be no overlap of different VCs spaces.<br />
When the TX FIFO is full:<br />
• the overflow interrupt (FIFO_TX_OVF_IRQ) is generated. To monitor this interrupt request, users can<br />
read the DSS.DSI_VCn_IRQSTATUS[3] FIFO_TX_OVF_IRQ status bit.<br />
• there is no L4 interconnect error generated<br />
• the commands are accepted but the data are not written into the FIFO<br />
To ensure that all writes are correctly stored in the TX FIFO, the FIFO should not be full. The software<br />
must read the room in the space allocated for the VC in the TX FIFO by reading the<br />
DSS.DSI_TX_FIFO_VC_EMPTINESS register. In case there is no space allocated in the TX FIFO for the<br />
VC, the DSS.DSI_TX_FIFO_VC_EMPTINESS register indicates a value of 0 for the VC space emptiness.<br />
When waiting to receive the first VSYNC event on the video port to start the video mode on DSI link no<br />
command data from TX FIFO should be sent on the interface. It is required to ensure that when receiving<br />
the VSYNC event, there is no on-going command mode transfer that could delay the start of video mode<br />
on the DSI link.<br />
7.5.4.10.2 Command Mode RX FIFO<br />
The RX FIFO is used to store the data received from the DSI complex I/O. The data are always packed in<br />
the RX FIFO (single or multiple packets receiving during a single or multiple BTA periods).<br />
The read requests access to corresponding VC locations to transfer data for a specific VC. The logic<br />
managing the FIFO must be able to extract 32-bit values in-order for a specific VC upon read requests.<br />
The byte enable of the read access is ignored. Each read returns one 32-bit value from the RX FIFO. If<br />
the application accesses the RX FIFO should extract always 32-bit values. Only in the case of 1, 2, or 3<br />
bytes are remaining in the RX FIFO.<br />
The read requests (single or burst) can be less, equal or greater than the packet size. If the packet size is<br />
smaller than the read request, the following packet(s) is also transferred. If the packet size is longer than<br />
the read request, only part of the packet is transfer. In that case, the logic should keep the VC information<br />
to provide the rest of the data during the next read request(s).<br />
1728 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
The register DSS.DSI_RX_FIFO_VC_SIZE defines the allocated number of 33-bit values for each VC in<br />
the RX FIFO and the start address for each VC. Only the enabled VCs should be taken into account. to<br />
change the size of the space of the memory allocated for a specific VC, the VC should be disabled by<br />
resetting the DSS.DSI_VCn_CTRL[0] VC_EN bit to 0. The whole FIFO may not be used by the entire VC<br />
at a given time since a VC can be disabled to change one or multiple parameters. Software users are<br />
responsible for correctly configuring the start address and the size for each VC.<br />
Table 7-68 indicates the corresponding values for the size of the space allocated in the FIFO:<br />
Table 7-68. Virtual Channel RX FIFO Size Values<br />
DSI_RX_FIFO_VC_SIZE.VCx_FIFO_SIZE[x = 0, 3] Space Size (up to the size of the FIFO)<br />
0 0 x 33 bits<br />
1 32 x 33 bits<br />
2 64 x 33 bits<br />
3 96 x 33 bits<br />
4 128 x 33 bits<br />
The total size of RX FIFO is 128*33 bits. Therefore, the sum of all virtual channel FIFO allocation cannot<br />
exceed 128*33 bits.<br />
Table 7-69 indicates the start address of the space in the FIFO.<br />
Table 7-69. Virtual Channel RX FIFO Start Address<br />
DSI_RX_FIFO_VC_SIZE.VCx_FIFO_ADD[x = 0, 2] Start Address<br />
0 0<br />
1 32<br />
2 64<br />
3 96<br />
4 128<br />
CAUTION<br />
There must be no overlap of different VCs spaces.<br />
While reading the received bytes in the RX FIFO, only the DSS.DSI_VCn_SHORT_PACKET_HEADER<br />
register is used since the hardware does not keep track of the header position for long packets and<br />
start/end of each packet. The software must extract the information from the bytes read from the RX FIFO.<br />
There is no specific hardware to track the received bytes in the RX FIFO. The<br />
DSS.DSI_VCn_LONG_PACKET_HEADER and DSS.DSI_VCn_LONG_PACKET_PAYLOAD registers are<br />
not used.<br />
The ECC is only used by the first header when receiving multiple packets during the same LP RX transfer<br />
from the peripheral since the DSI Protocol engine does not parse the header to identify the length of the<br />
packets. In case of multiple packets, the Check-sum does not be enabled since the hardware checks the<br />
check-sum considering a single packet. The ECC in the first header is used to correct and check the<br />
header. For the following headers in the same LP RX transfer, the hardware does not detect any header<br />
and cannot check or/and detect errors in the headers of the packets except for the first packet.<br />
When the RX FIFO is empty:<br />
• there is no OCP error generated<br />
• the commands are accepted and the data for the responses are 0s<br />
7.5.4.10.3 Command Mode DMA Requests<br />
The DMA requests (DSI_DMA_REQ) are used to allow automatic transfer by the system DMA or MPU<br />
(with less efficiency and through-put capability) from the DSI RX FIFO to the system memory and from the<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1729
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
system memory to the DSI TX FIFO. Two independent DMA requests for RX FIFO and TX FIFO for the<br />
same VC are supported. The read and write accesses can use burst structure. The DSI protocol engine<br />
should access each write request in a burst without any IDLE between. For read OCP request in a burst to<br />
RX FIFO, the acceptance is sent immediately and the response is delayed by at least four L4 interface<br />
clock (DSS_L4_ICLK) cycles. In case of register reads, the response is returned in the first clock cycle.<br />
The thresholds used for requests for the TX FIFO and RX FIFO are programmable by software. Users<br />
program the DSS.DSI_VCn_CTRL[19:17] DMA_TX_THRESHOLD and DSS.DSI_VCn_CTRL[26:24]<br />
DMA_RX_THRESHOLD bit fields for TX FIFO and RX FIFO, respectively. Hardware asserts the DMA<br />
request based on the threshold value. The size of the space allocated in TX FIFO for each VC must be a<br />
multiple of the DSS.DSI_VCn_CTRL[19:17] DMA_TX_THRESHOLD bit field value.<br />
The only exception is in the case of the RX FIFO when the LP data transfer finishes and the threshold<br />
value is not reached. In that case the DMA request must be asserted. Therefore, the drain of the FIFO is<br />
supported in that configuration to empty the FIFO even if the number of data received is not a multiple of<br />
the threshold value.<br />
In case of TX FIFO, if all the bytes defined by the word count field in the<br />
DSS.DSI_VCn_LONG_PACKET_HEADER header register have been received, the DMA request is no<br />
longer asserted even during the last transfer less than DMA_TX_THRESHOLD number of bytes have<br />
been received because of the word count being not a multiple of the DMA_TX_THRESHOLD value.<br />
In case of RX FIFO, while the DMA request is used to transfer the data from the RX FIFO to the system<br />
memory, the system DMA must be programmed to read the number of received bytes in the FIFO. If users<br />
do not know the size of the received bytes, the direct access of the RX FIFO through the<br />
DSS.DSI_VCn_SHORT_PACKET_HEADER register is performed until the DSS.DSI_VCn_CTRL[20]<br />
RX_FIFO_NOT_EMPTY bit goes to 0.<br />
The use of each DMA request is programmable by software. The DSS.DSI_VCn_CTRL[23:21]<br />
DMA_TX_REQ_NB is dedicated to DMA request numbering for the TX FIFO. The<br />
DSS.DSI_VCn_CTRL[29:27] DMA_RX_REQ_NB is dedicated to DMA request numbering for the RX<br />
FIFO.<br />
When the DMA request is used to indicate the number of 32-bit values ready in the RX FIFO or BTA has<br />
been received from peripheral indicating end of the transfer from peripheral to host for a transfer to the<br />
system memory, the DMA request corresponding to the VC ID is generated.<br />
The system DMA transfers the number of 32-bit values defined in the threshold register or the exact<br />
number of bytes received from the peripheral (user should know the number of expected received bytes to<br />
program correctly the system DMA). When the system DMA transfers a multiple number of threshold<br />
value, the DSI protocol engine should send 0s for the data when there is no more received data in the RX<br />
FIFO for the VC. Software users must parse the data and determine the valid bytes.<br />
Software users can decide to determine the number of data received in the RX FIFO to read the<br />
information in the DSS.DSI_RX_FIFO_VC_FULLNESS register. Then the system DMA can be<br />
programmed to read the number of bytes from the RX FIFO. The BTA interrupt (BTA_IRQ) must be used<br />
to know when to read the number of received bytes. To monitor the BTA interrupt, the user must read the<br />
DSS.DSI_VCn_IRQSTATUS[5] BTA_IRQ status bit. The DMA request must not be selected until the<br />
system DMA is programmed with the correct number of data to read from RX FIFO.<br />
If the RX FIFO space for the VC is expected to be overflow because the number of data to be received is<br />
greater than the space allocated for the VC, the previous programming model must be used. In place, the<br />
DMA request must be asserted as soon as the threshold is reached or when BTA is received.<br />
When the DMA request is used to indicate the number of 33-bit entries empty in the TX FIFO for a<br />
transfer from the system memory, the DMA request corresponding to the VC ID is generated.<br />
NOTE: To obtain best efficiency of the transfer the size of the request (read or write, single or burst)<br />
must be aligned with the threshold value.<br />
Concurrent access using interlaced requests (read/write) to the TX and RX FIFO is supported for the<br />
same VC ID or different VC IDs.<br />
1730 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
7.5.4.11 Ultra-Low Power State<br />
This section describes how to enter/exit to/from ultralow-power state (ULPS).<br />
NOTE: The DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIGy bits (x range is 1 to 3<br />
corresponding to lane #1 to lane #3, and y range is 1 to 2) must be read back after writing to<br />
verify that the write operations are effective before proceeding to the next step. This is to<br />
take latency at low TxClkEsc frequencies into account.<br />
7.5.4.11.1 Entering ULPS<br />
To enter into ULPS for a clock lane, the following sequence is required:<br />
1. Wait for DSS.DSI_COMPLEXIO_CFG2[16] HS_BUSY and DSS.DSI_COMPLEXIO_CFG2[17]<br />
LP_BUSY bits to be reset to 0 and ensure that the DSS.DSI_CLK_CTRL[13] DDR_CLK_ALWAYS_ON<br />
bit is 0.<br />
2. TxUlpsClk state changes from inactive to active by setting the DSS.DSI_COMPLEXIO_CFG2<br />
LANEx_ULPS_SIG2 (x range is 1 to 3 corresponding to lane #1 to lane #3) bit to 1.<br />
To enter into ULPS for a data lane, the following sequence is required:<br />
1. Wait for all TX_FIFOs for all VCs working in HS are empty, for video mode is not active, and for<br />
DSS.DSI_COMPLEXIO_CFG2[16] HS_BUSY bit is reset to 0 (in addition for data lane #1,<br />
DSS.DSI_COMPLEXIO_CFG2[17] LP_BUSY bit is reset to 0)<br />
2. TxRequestEsc state changes from inactive to active by setting the DSS.DSI_COMPLEXIO_CFG2.<br />
LANEx_ULPS_SIG2 (x range is 1 to 3 corresponding to lane #1 to lane #3) bit to 1.<br />
NOTE: When the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 and<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 bits are both being written to 0, they can<br />
be combined into one write. Both bits must be read back to confirm they are effective before<br />
proceeding.<br />
7.5.4.11.2 Exiting ULPS<br />
To exit from ULPS for a clock lane, the following sequence is required:<br />
1. Change the state of TxUlpsExit for each lane to ACTIVE by setting the DSS.DSI_COMPLEXIO_CFG2<br />
LANEx_ULPS_SIG1 (x range is 1 to 3 corresponding to lane #1 to lane #3) bit to 1.<br />
2. Wait for the ULPSACTIVENOT_ALL1_IRQ interrupt indicating that all lanes with TxUlpsExit active<br />
have acknowledged by asserting UlpsActiveNot. This is performed by monitoring the<br />
DSS.DSI_COMPLEXIO_IRQSTATUS[31] ULPSACTIVENOT_ALL1_IRQ status bit.<br />
3. Start the wake-up timer (GPTimer).<br />
4. Wait for the time-out.<br />
5. Change TxUlpsClk signals to INACTIVE state for the clock lane by resetting the<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 (x range is 1 to 3 corresponding to lane #1 to lane<br />
#3) bit to 0.<br />
6. Reset the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 (x range is 1 to 3 corresponding to lane<br />
#1 to lane #3) bit to 0.<br />
NOTE: When the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 and<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 bits are both being written to 0, they can<br />
be combined into one write. Both bits must be read back to confirm they are effective before<br />
proceeding.<br />
To exit from ULPS for a clock lane, in case ComplexIO is in OFF state (the DSI protocol engine sends<br />
ComplexIO to OFF state by setting DSS.DSI_COMPLEXIO_CFG1[28:27] PWROFF = 0x0), the sequence<br />
is:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1731
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
1. Change TxUlpsClk signals to INACTIVE state for the clock lane by resetting the<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 (x range is 1 to 3 corresponding to lane #1 to lane<br />
#3) bit to 0.<br />
2. Change the state of TxUlpsExit for clock lane to INACTIVE state by resetting the<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 (x range is 1 to 3 corresponding to lane #1 to lane<br />
#3) bit to 0. This step is necessary only in case a PWROFF command (the command for power control<br />
of the complex I/O) is issued while the sequence for exiting is in progress (TxUlpsExit signal is already<br />
in ACTIVE state).<br />
NOTE: When the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 and<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 bits are both being written to 0, they can<br />
be combined into one write. Both bits must be read back to confirm they are effective before<br />
proceeding.<br />
To exit from ULPS for a data lane, the following sequence is required:<br />
1. Change the state of TxUlpsExit for each lane to ACTIVE by setting the DSS.DSI_COMPLEXIO_CFG2<br />
LANEx_ULPS_SIG1 (x range is 1 to 3 corresponding to lane #1 to lane #3) bit to 1.<br />
2. Wait for the ULPSACTIVENOT_ALL1_IRQ interrupt indicating that all lanes with TxUlpsExit active<br />
have acknowledged by asserting UlpsActiveNot. This is performed by monitoring the<br />
DSS.DSI_COMPLEXIO_IRQSTATUS[31] ULPSACTIVENOT_ALL1_IRQ status bit.<br />
3. Start the application wake-up timer (GPtimer).<br />
4. Wait for the time-out.<br />
5. Change TxRequestEsc signals to INACTIVE state for the data lane by resetting the<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 (x range is 1 to 3 corresponding to lane #1 to lane<br />
#3) bit to 0.<br />
6. Reset the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 (x range is 1 to 3 corresponding to lane<br />
#1 to lane #3) bit to 0.<br />
NOTE: When the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 and<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 bits are both being written to 0, they can<br />
be combined into one write. Both bits must be read back to confirm they are effective before<br />
proceeding.<br />
To exit from ULPS for a data lane, in case ComplexIO is in OFF state (the DSI protocol engine sends<br />
ComplexIO into OFF state by setting DSS.DSI_COMPLEXIO_CFG1[28:27] PWROFF = 0x0), the<br />
sequence is:<br />
1. Change TxRequestEsc signals to INACTIVE state by resetting the DSS.DSI_COMPLEXIO_CFG2<br />
LANEx_ULPS_SIG2 (x range is 1 to 3 corresponding to lane #1 to lane #3) bit to 0.<br />
2. Change the state of TxUlpsExit to INACTIVE state by resetting the DSS.DSI_COMPLEXIO_CFG2<br />
LANEx_ULPS_SIG1 (x range is 1 to 3 corresponding to lane #1 to lane #3) bit to 0. This step is<br />
necessary only in case a PWROFF command is issued while the sequence for exiting is in progress<br />
(TxUlpsExit signal is already in ACTIVE state).<br />
NOTE: When the DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG2 and<br />
DSS.DSI_COMPLEXIO_CFG2 LANEx_ULPS_SIG1 bits are both being written to 0, they can<br />
be combined into one write. Both bits must be read back to confirm they are effective before<br />
proceeding.<br />
When the sequence for entering/exiting into/from ULP state is started for specific lanes, users must wait<br />
for the sequence to complete before changing the state of the same or other lanes.<br />
7.5.4.12 DSI Programming Sequence Example<br />
This section describes distinct configurations of the DSI protocol engine to support different type of traffics.<br />
1732 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
NOTE: When the VC is used to send video mode data from the video port, the<br />
DSS.DSI_VCn_CTRL[9] MODE_SPEED and the DSS.DSI_VCn_CTRL[1] SOURCE bits are<br />
ignored.<br />
7.5.4.12.1 Video Mode Transfer<br />
Description: One channel, video mode, no DMA requests, no bus turn-around.<br />
1. Configure the display controller with the timing parameters.<br />
2. Configure the DSS.DSI_VCn_CTRL register as follows:<br />
• SOURCE bit is ignored by hardware<br />
• BTA_LONG_EN bit is set to 0: No BTA on long packet<br />
• BTA_SHORT_EN bit is set to 0: No BTA on short packet<br />
• MODE bit set to 1: The video mode is selected<br />
• MODE_SPEED bit is ignored by hardware<br />
3. Configure the DSS.DSI_VM_TIMING1 to DSS.DSI_VM_TIMING7 registers.<br />
4. Set the ForceTxStopMode bit to 1 in the DSS.DSI_TIMING1 register.<br />
5. Enable the channel by setting the DSS.DSI_VCn_CTRL[0] VC_EN bit to 1<br />
6. Enable the module by setting the DSS.DSI_CTRL[0] IF_EN bit to 1.<br />
7. Poll the ForceTxStopMode bit to 0 in the DSS.DSI_TIMING1 register.<br />
8. Enable the LCD video output by setting the DSS.DISPC_CONTROL[0] LCDENABLE bit to 1<br />
CAUTION<br />
The restriction for stopping the video mode is that no frame must be sent by the<br />
display controller (DISPC) after disabling video mode in DSI.<br />
7.5.4.12.2 Command Mode Transfer Example 1<br />
CAUTION<br />
In DSI command mode, the display controller must be configured in stall mode<br />
by setting the DSS.DISPC_CONTROL[11] STALLMODE bit to 1.<br />
Description: One channel, command mode, no DMA requests, manual bus turn-around<br />
1. Configure the DSS.DSI_VCn_CTRL register as follows:<br />
• SOURCE bit set to 0: The source is the L4 interconnect port<br />
• BTA_LONG_EN bit is set to 0: No automatic BTA on long packet<br />
• BTA_SHORT_EN bit is set to 0: No automatic BTA on short packet<br />
• MODE bit set to 0: The command mode is selected<br />
2. Enable the packet sent interrupt by setting the DSS.DSI_VCn_IRQENABLE[2]<br />
PACKET_SENT_IRQ_EN bit to 1<br />
3. Set the ForceTxStopMode bit to 1 in the DSS.DSI_TIMING1 register.<br />
4. Enable the channel by setting the DSS.DSI_VCn_CTRL[0] VC_EN bit to 1<br />
5. Enable the module by setting the DSS.DSI_CTRL[0] IF_EN bit to 1<br />
6. Poll the ForceTxStopMode bit to 0 in the DSS.DSI_TIMING1 register.<br />
For long packet:<br />
• Write the header value into the DSS.DSI_VCn_LONG_PACKET_HEADER register<br />
• Write the data into the DSS.DSI_VCn_LONG_PACKET_PAYLOAD register for the full payload.<br />
Repeat step until WC is reached (see DSI_VCn_LONG_PACKET_HEADER)<br />
For short packet:<br />
• Send short packets through the L4 interconnect: Write the header value into the<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1733
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
DSS.DSI_VCn_SHORT_PACKET_HEADER register. Repeat step for each short packet.<br />
7. Send one or more packets through L4 interconnect:<br />
• Write the header value into DSS.DSI_VCn_LONG_PACKET_HEADER register<br />
• Write the data into DSS.DSI_VCn_LONG_PACKET_PAYLOAD register for the full payload.<br />
• Repeat step 5 for all the long packets<br />
8. Send short packets through L4 interconnect:<br />
• Write the header value into DSS.DSI_VCn_SHORT_PACKET_HEADER register<br />
• Repeat step 6 for all the short packets<br />
9. Interrupt routine: Wait for PACKET_SENT_IRQ interrupt generation by polling the<br />
DSS.DSI_VCn_IRQSTATUS[2] PACKET_SENT_IRQ status bit and notify the application software<br />
when received.<br />
10. The applicative software forces the bus turn-around:<br />
• Wait until the PACKET_SENT_IRQ has happened as many times as the number of sent packets<br />
• Set the DSS.DSI_VCn_CTRL[6] BTA_EN bit to 1 to send manually a BTA<br />
• Wait until the DSS.DSI_VCn_CTRL[6] BTA_EN bit is reset to 0 by hardware<br />
11. Receive the packets from the peripheral<br />
• Start polling the DSS.DSI_VCn_CTRL[20] RX_FIFO_NOT_EMPTY status bit<br />
• Whenever the RX_FIFO_NOT_EMPTY bit equals to 1, read one word in the RX FIFO<br />
7.5.4.12.3 Command Mode Transfer Example 2<br />
CAUTION<br />
In DSI command mode, the display controller must be configured in stall mode<br />
by setting the DSS.DISPC_CONTROL[11] STALLMODE bit to 1.<br />
Description: One channel, command mode, DMA request, automatic bus turn-around<br />
1. Configure the DSS.DSI_VCn_CTRL register as follows:<br />
• SOURCE bit set to 0: The source is the L4 interconnect port<br />
• BTA_LONG_EN bit is set to 1: Automatic BTA on long packet<br />
• BTA_SHORT_EN bit is set to 1: Automatic BTA on short packet<br />
• MODE bit set to 0: The command mode is selected<br />
2. Enable the packet sent interrupt by setting the DSS.DSI_VCn_IRQENABLE[2]<br />
PACKET_SENT_IRQ_EN bit to 1<br />
3. Set the ForceTxStopMode bit to 1 in DSS.DSI_TIMING1 register.<br />
4. Enable the channel by setting the DSS.DSI_VCn_CTRL[0] VC_EN bit to 1<br />
5. Configure the TX FIFO threshold and DMA requests parameters:<br />
• Program the DSS.DSI_VCn_CTRL[19:17] DMA_TX_THRESHOLD bit field<br />
• Program the DSS.DSI_VCn_CTRL[23:21] DMA_TX_REQ_NB bit field<br />
6. Program the system DMA to be ready to send data to the L4 interconnect port<br />
7. Enable the module by setting the DSS.DSI_CTRL[0] IF_EN bit to 1<br />
8. Poll the ForceTxStopMode bit to 0 in DSS.DSI_TIMING1 register.<br />
9. Write the header value into DSS.DSI_VCn_LONG_PACKET_HEADER register<br />
10. Interrupt routine: Wait for PACKET_SENT_IRQ interrupt generation by polling the<br />
DSS.DSI_VCn_IRQSTATUS[2] PACKET_SENT_IRQ status bit and notify the application software<br />
when received.<br />
11. Receive the packets from the peripheral<br />
• Start polling the DSS.DSI_VCn_CTRL[20] RX_FIFO_NOT_EMPTY status bit<br />
• Whenever the RX_FIFO_NOT_EMPTY bit equals to 1, read one 32-bit word in the RX FIFO<br />
12. Repeat the steps 7 for all long packets.<br />
1734 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
PCLK<br />
SYSCLK<br />
PMP<br />
SCP<br />
SCPBusy<br />
UPDATE<br />
SYNC<br />
Registers<br />
Go bit<br />
PLL<br />
Reference<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
7.5.5 DSI PLL Controller Basic Programming Model<br />
7.5.5.1 Software Reset<br />
The DSI PLL control module does not have its own software reset. It is reset by the DSI protocol engine.<br />
Nevertheless, software users can monitor the reset status of the DSI PLL control module by reading the<br />
DSS.DSI_PLL_STATUS[0] DSI_PLLCTRL_RESET_DONE status bit.<br />
7.5.5.2 DSI PLL Programming Blocks<br />
Figure 7-135 shows the DSI PLL programming blocks.<br />
Figure 7-135. DSI PLL Programming Blocks<br />
Shadow registers<br />
DSI_PLLCTRL<br />
PMP<br />
FSM<br />
GO<br />
FSM<br />
CLKINP<br />
SYSRESETs<br />
Configuration<br />
values<br />
TINITZ<br />
etc.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-181<br />
1735
Manual Mode<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.5.3 DSI PLL Go Sequence<br />
In Manual Mode (DSS.DSI_PLL_CONTROL[0] DSI_PLL_AUTOMODE bit set to 0), the DPLL requires a<br />
sequence on TINITZ, TENABLE and TENABLEDIV to update the configuration values and start the<br />
locking sequence.<br />
Once all the configuration values have been programmed into the registers, the GO bit must be set. The<br />
appropriate sequence should then be sent on the TINITZ, TENABLE, and TENABLEDIV pins, respecting<br />
the timing requirements of the ADPLLM. The DSS.DSI_PLL_GO[0] DSI_PLL_GO bit are cleared to 0 at<br />
the end of the sequence.<br />
Because the TENABLEDIV signal is shared with the HSDIVIDER module, it is programmed at the same<br />
time. In this mode, software must deassert CLKINEN by unsetting the<br />
DSS.DSI_PLL_CONFIGURATION2[14] DSI_PHY_CLKINEN to 0 and assert HSDIVBYPASS correctly by<br />
setting the DSS.DSI_PLL_CONFIGURATION2[20] DSI_HSDIVBYPASS bit to 1 to prevent uncontrolled<br />
frequencies affecting the DSI_PHY and display subsystem during PLL locking. In manual mode the<br />
shadow register must be updated anyway so that valid values are present when later selecting automatic<br />
mode.<br />
Figure 7-136 shows the DSI PLL Go flow chart in manual mode (DSS.DSI_PLL_CONTROL[0]<br />
DSI_PLL_AUTOMODE bit set to 0).<br />
Figure 7-136. DSI PLL Go Sequence (Manual Mode)<br />
DSI_PLL_GO[0].DSI_PLL_GO bit set to 1 by software<br />
Generate TINITZ, etc. Sequence PLL reprogrammed<br />
Clear DSI_PLL_GO[0] DSI_PLL_GO bit to 0<br />
Completed<br />
NOTE: All thick-outlined blocks show operations performed by software. Other blocks show operations performed<br />
by hardware.<br />
In automatic mode (DSS.DSI_PLL_CONTROL[0] DSI_PLL_AUTOMODE bit set to 1),the TINITZ,<br />
TENABLE and TENABLEDIV sequence and the update of the PLL configuration from the<br />
DSI_PLL_CONFIGURATION2 register are deferred until the time of the front porch time signal sent by the<br />
DISPC module. This is intended to simplify the software to implement a configuration change (such as a<br />
frequency change to support a different link bandwidth). In this mode CLKINEN, HSDIVBYPASS and<br />
REFEN are controlled automatically and the register value is overridden.<br />
Figure 7-137 shows the DSI PLL Go flow chart in automatic mode (DSS.DSI_PLL_CONTROL[0]<br />
DSI_PLL_AUTOMODE bit set to 1).<br />
1736 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-182
Automatic mode<br />
DSI_PLL_CONFIGURATION[13].DSI_PLL_REFEN bit set to 1<br />
DSI_PLL_GO[0].DSI_PLL_GO bit set to 1 by software<br />
No<br />
No<br />
No<br />
Yes<br />
DISPC_UPDATE_SYNC signal<br />
asserted?<br />
Yes<br />
Update shadow register<br />
Generate TINITZ, etc. sequence<br />
Lock asserted ?<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-137. DSI PLL Go Sequence (Automatic Mode)<br />
Clear CLKINEN to 0<br />
Set HSDIVBYPASS to 1<br />
BYPASSACKZ = 0?<br />
Yes<br />
Yes<br />
Set CLKINEN to 1<br />
Clear HSDIVBYPASS to 0<br />
Clear DSI_PLL_GO[0] DSI_PLL_GO bit to 0<br />
Synchronize to<br />
DISPC vertical<br />
blanking<br />
CLKIN4DDR clock stops<br />
HSDIVIDER bypassed<br />
PLL and HDIVIDER<br />
in bypass<br />
Configuration signals<br />
updated<br />
PLL reprogrammed<br />
Wait for PLL to relock<br />
CLKIN4DDR clock runs<br />
HSDIVIDER running<br />
Completed<br />
NOTE: All thick-outlined blocks show operations performed by software. Other blocks show operations performed<br />
by hardware.<br />
7.5.5.4 DSI PLL Clock Gating Sequence<br />
Clock gating can be used to reduce system power consumption when the DSI protocol engine indicates<br />
that it does not need the clock. If the HSDIVIDER is not used, the PLL can also be stopped (at the cost of<br />
additional unstarting latency).<br />
The DSI protocol engine can verify when the PLL has unstarted by inspecting the LOCK signal<br />
(DSS.DSI_PLL_STATUS[1] DSI_PLL_LOCK status bit). Because TxByteClkHS is stopped when the<br />
CLKIN4DDR is stopped, this should obviate the need for any explicit feedback that the clock has been<br />
unstarted in the other case. This flow chart should run even if the DSS.DSI_PLL_GO[0] DSI_PLL_GO bit<br />
has not been set.<br />
Figure 7-138 shows the DSI PLL gated mode sequence.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-183<br />
1737
Yes<br />
DIS_PLL_GO(0)DSI_PLL_GO<br />
bit set to 1 by software?<br />
DSIStopClk signal<br />
asserted?<br />
No<br />
Set CLKINEN bit to 1<br />
No<br />
Yes<br />
No<br />
Yes<br />
No<br />
No<br />
Yes<br />
CLKIN4DDR runs<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-138. Gated Mode Sequence<br />
Gated mode<br />
DSIStopClk signal<br />
asserted?<br />
Yes<br />
Clear CLKINEN = 0<br />
HSDIVIDER used?<br />
(*1)<br />
DSI_PLL_CONTROL[2]<br />
DSI_PLL_HALTMODE<br />
bit = 1? (*1)<br />
Yes<br />
DSIStopClk signal<br />
asserted?<br />
No<br />
Yes<br />
No<br />
Clear REFEN bit to 0<br />
Set REFEN to 1<br />
Lock asserted?<br />
NOTE: All thick-outlined blocks show operations performed by software.<br />
7.5.5.5 DSI PLL Lock Sequence<br />
DSI protocol engine<br />
idle<br />
CLKIN4DDR stops<br />
HSDIVIDER is used if<br />
DSS_CONTROL[0] DISPC_CLK_SWITCH = 1<br />
or<br />
DSS_CONTROL[1] DSI_CLK_SWITCH = 1<br />
PLL input stopped<br />
DSI protocol engine<br />
idle<br />
PLL input started<br />
Wait for PLL to relock<br />
The DSI PLL (ADPLLM) generates the CLKIN4DDR clock. The HSDIVIDER generates two clocks:<br />
DSI1_PLL_FCLK connected to the display controller (DISPC) and the DSI2_PLL_FCLK connected to the<br />
DSI protocol engine. If these two clocks are not used, the HSDIVIDER functions are not required.<br />
The CLKIN4DDR is twice the data rate, and is four times the DSI output clock frequency. The DSI PLL<br />
factors need to be calculated based on the required input and output frequencies, keeping the PLL internal<br />
reference frequency in the appropriate range:<br />
1738 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-184
Set<br />
DSI_PLL_CONFIGURATION2[12]<br />
DSI_PLL_HIGHFREQ bit to 0<br />
Set REGM3 factor such that<br />
CLKIN4DDR DSI _ PHY ( MHz)<br />
DSI1_ PLL _ FCLK( MHz)<br />
<br />
REGM 3 1<br />
START<br />
Select the pixel clock frequency<br />
according to panel size<br />
Select the DSI PLL clock source (CLKin)<br />
(either SYS_CLK or PCLKFREE) by setting<br />
the DSI_PLL_CONFIGURATION2[11]<br />
DSI_PLL_CLKSEL bit<br />
Yes No<br />
Clock frequency
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
NOTE:<br />
• The REGM3 and REGM4 factors must according with the following conditions:<br />
– The DSI1_PLL_FCLK and DSI2_PLL_FCLK frequencies must be a multiple of the<br />
PCLK frequency (for proper settings of PCD and LCD factors in the DISPC).<br />
– The DSI1_PLL_FCLK and DSI2_PLL_FCLK frequencies must be lower than 173<br />
MHz at nominal voltage (OPP100), and lower than 100 MHz at low voltage<br />
(OPP50).<br />
• Most of the other DSI PLL programming values are available for software flexibility but it<br />
is not recommended to update the values in normal use. See Section 7.5.5.7 for details<br />
on DSI PLL recommended values.<br />
DSI PLL programming examples:<br />
• WVGA <strong>Display</strong> on one data pair: Pixel clock (PCLK) = 30 MHz with 18-BPP pixel format<br />
The data rate is 30 × 18 = 540 Mbps on one data lane. Therefore, the frequency on the data lane is twice<br />
the data rate: 1080 MHz.<br />
The frequency on the clock lane is 270 MHz (1080 divided by 4).<br />
The SYS_CLK at 26 MHz is selected as the clock reference by setting the<br />
DSS.DSI_PLL_CONFIGURATION2[11] DSI_PLL_CLKSEL to 0b0.<br />
Set the DSS.DSI_PLL_CONFIGURATION2[12] DSI_PLL_HIGHFREQ to 0b0 as PCLK is lower than 32<br />
MHz.<br />
Set Fint to 2 MHz as PLL internal reference frequency: Set REGN to 12 (divide by 13) by setting the<br />
DSS.DSI_PLL_CONFIGURATION1[7:1] DSI_PLL_REGN bit field to 0xC.<br />
To get the CLKIN4DDR to 1080 MHz, set the REGM factor to 270 by setting the<br />
DSS.DSI_PLL_CONFIGURATION1[18:8] DSI_PLL_REGM to 0x10E.<br />
DSI_PHY = 2 x 270/13 x 26/1 = 1080 MHz<br />
Because DSI1_PLL_FCLK and DSI2_PLL_FCLK (REGM3 and REGM4 factors) must be multiples of<br />
PCLK and also lower than 173 MHz at nominal voltage (OPP100), and lower than 100 MHz at low voltage<br />
(OPP50), program these frequencies to 90 MHz by setting the REGM3 and REGM4 factors to 11 (divide<br />
by 12). This is done by setting the DSS.DSI_PLL_CONFIGURATION1[22:19] DSS_CLOCK_DIV bit field<br />
and DSS.DSI_PLL_CONFIGURATION1[26:23] DSIPROTO_CLOCK_DIV to 0xB:<br />
DSI1_PLL_FCLK = DSI2_PLL_FCLK = 1080/12 = 90 MHz<br />
• XGA <strong>Display</strong> on two data pairs: Pixel clock (PCLK) = 60 MHz with 16-BPP pixel format<br />
The data rate is (60 × 16)/2 = 480 Mbps on each data lane. Therefore, the frequency on the data lane<br />
is twice the data rate: 960 MHz.<br />
The frequency on the clock lane is 240 MHz (960 divided by 4).<br />
The SYS_CLK at 26 MHz is selected as the clock reference by setting the<br />
DSS.DSI_PLL_CONFIGURATION2[11] DSI_PLL_CLKSEL bit to 0b0.<br />
Set the DSS.DSI_PLL_CONFIGURATION2[12] DSI_PLL_HIGHFREQ bit to 0b0 as the source clock<br />
frequency (SYS_CLK in this example) is lower than 32 MHz.<br />
Set Fint to 2 MHz as PLL internal reference frequency: Set REGN to 12 (divide by 13) by setting the<br />
DSS.DSI_PLL_CONFIGURATION1[7:1] DSI_PLL_REGN bit field to 0xC.<br />
To get the CLKIN4DDR to 960 MHz, set the REGM factor to 240 by setting the<br />
DSS.DSI_PLL_CONFIGURATION1[18:8] DSI_PLL_REGM to 0x0F0.<br />
DSI_PHY = 2 × 240/13 × 26/1 = 960 MHz<br />
Because DSI1_PLL_FCLK and DSI2_PLL_FCLK (REGM3 and REGM4 factors) must be multiples of<br />
PCLK and also lower than 173 MHz at nominal voltage (OPP100), program these frequencies to 120<br />
MHz by setting the REGM3 and REGM4 factors to 7 (divide by 8). This is done by setting the<br />
DSS.DSI_PLL_CONFIGURATION1[22:19] DSS_CLOCK_DIV bit field and<br />
DSS.DSI_PLL_CONFIGURATION1[26:23] DSIPROTO_CLOCK_DIV to 0x7:<br />
DSI1_PLL_FCLK = DSI2_PLL_FCLK = 960/8 = 120 MHz<br />
1740 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
7.5.5.6 DSI PLL Error Handling<br />
The PLL lock and recalibration signals may be monitored to detect loss of lock or requirement to<br />
recalibrate (due to large temperature change since the last lock request):<br />
• The DSS.DSI_PLL_STATUS[1] DSI_PLL_LOCK status bit gives the DSI PLL lock state.<br />
• The DSS.DSI_PLL_STATUS[2] DSI_PLL_RECAL status bit informs if the PLL must be uncalibrated<br />
These signals can also generate interrupts at DSI protocol engine level:<br />
• DSS.DSI_IRQSTATUS[9], PLL_RECAL_IRQ bit<br />
• DSS.DSI_IRQSTATUS[8] PLL_UNLOCK_IRQ<br />
• DSS.DSI_IRQSTATUS[7] PLL_LOCK_IRQ<br />
The PLL_LOCK_IRQ interrupt indicates that the DSI PLL is locked. To monitor this event, read the<br />
DSS.DSI_IRQSTATUS[7] PLL_LOCK_IRQ bit. Set this bit to 1 to clear the status bit.<br />
The PLL_UNLOCK_IRQ interrupt indicates that the DSI PLL is unlocked. To monitor this event, read the<br />
DSS.DSI_IRQSTATUS[8] PLL_UNLOCK_IRQ bit. Set this bit to 1 to clear the status bit.<br />
The PLL_RECAL_IRQ interrupt indicates that the DSI PLL must be recalibrated. To monitor this event,<br />
read the DSS.DSI_IRQSTATUS[9] PLL_RECAL_IRQ bit. Set this bit to 1 to clear the status bit.<br />
The PLL reference loss and limp status signals can also be monitored:<br />
• The DSS.DSI_PLL_STATUS[3] DSI_PLL_LOSSREF status bit informs if the DSI PLL has lost the<br />
reference.<br />
• The DSS.DSI_PLL_STATUS[4] DSI_PLL_LIMP status bit informs about the DSI PLL limp status.<br />
7.5.5.7 DSI PLL Recommended Values<br />
Table 7-70 shows the DSI PLL recommended values.<br />
Table 7-70. Recommended Programming Values<br />
Field Name Value Description<br />
DSI_HSDIV_SYSRESET 0 Allow power FSM to control<br />
DSI_PLL_SYSRESET 0 Allow power FSM to control<br />
DSI_PLL_HALTMODE - See Section 7.5.5.4 for details<br />
DSI_PLL_GATEMODE - See Section 7.5.5.4 for details<br />
DSI_PLL_AUTOMODE - See Section 7.5.5.4 for details<br />
DSI_PLL_GO 1-0 Write a 1 when PLL is to be (re-)locked<br />
with new parameters. This bit is cleared<br />
by hardware when the PLL request has<br />
completed<br />
DSIPROTO_CLOCK_DIV See (1) DSI protocol engine clock divider<br />
DSS_CLOCK_DIV See (1) DSS clock divider<br />
DSI_PLL_REGM See (1) Feedback clock divider<br />
DSI_PLL_REGN See (1) Reference clock divider<br />
DSI_PLL_STOPMODE 1 Required to use GATEMODE bit<br />
DSI_HSDIVBYPASS 0 PLL is controlling HSDIVIDER bypass<br />
DSI_PROTO_CLOCK_PWDN 0 If PLL/HSDIVIDER is used as the DSI<br />
protocol clock source<br />
DSI_PROTO_CLOCK_EN 1 If PLL/HSDIVIDER is used as the DSI<br />
protocol clock source<br />
DSS_CLOCK_PWDN 0 If PLL/HSDIVIDER is used as the DSS<br />
clock source<br />
DSS_CLOCK_EN 1 If PLL/HSDIVIDER is used as the DSS<br />
clock source<br />
(1) The bit field value must be set according to the desired clock frequency.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1741<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Table 7-70. Recommended Programming Values (continued)<br />
Field Name Value Description<br />
DSI_BYPASSEN 0 To use PLL as the clock source. For<br />
small displays it may be possible to use<br />
the DSS functional clock, in which case<br />
this bit must be set to 1<br />
DSI_PHY_CLKINEN 1 Enable CLKIN4DDR<br />
DSI_PLL_REFEN 1 Enable PLL reference<br />
DSI_PLL_HIGHFREQ 0/1 Set to 1 if the clock reference is higher<br />
than 32 MHz (21 MHz if<br />
DSS.DSI_PLL_CONFIGURATION1[7:1]<br />
DSI_PLL_REGN = 0)<br />
DSI_PLL_CLKSEL 0/1 Set to 0 to use DSS2_ALWON_FCLK as<br />
the PLL reference or set to 1 to use<br />
PCLKFREE as the PLL reference, in this<br />
case the DISPC must be using<br />
DSS1_ALWON_FCLK.<br />
DSI_PLL_LOCKSEL 0x0 Phase lock criteria to lock the PLL<br />
DSI_PLL_DRIFTGUARDEN 0x0 The RECAL status/interrupt must be<br />
used to decide when to perform a PLL<br />
uncalibration No automatic uncalibration<br />
is performed<br />
DSI_PLL_TIGHTPHASELOCK 0 Normal criteria<br />
DSI_LOWCURRSTDBY 0/1 Set to 0 for fast PLL unlock, but higher<br />
standby current Set to 1 for leakage<br />
level standby current, but longer unlock<br />
time<br />
DSI_PLL_PLLLPMODE 0 Normal operation For smaller display<br />
sizes may be possible to set to 1<br />
DSI_PLL_IDLE 0 PLL active<br />
7.5.6 DSI Complex I/O Basic Programming Model<br />
7.5.6.1 Software Reset<br />
The clock domain using the TxByteClkHS from the DSI complex I/O has a dedicated reset done<br />
information in the DSS.DSI_COMPLEXIO_CFG1[29] RESET_DONE bit. The DSS.DSI_SYSCONFIG[1]<br />
SOFT_RESET bit is used to reset the TxByteClkHS power domain. A dummy read using the SCP<br />
interface to any DSI_PHY register is required after DSI_PHY reset to complete the reset of the DSI<br />
complex I/O.<br />
7.5.6.2 Reset-Done Bits<br />
The DSI complex I/O has several clock domains. The reset status for each clock domain is provided in<br />
DSS.DSI_PHY_REGISTER5 register:<br />
• DSS.DSI_PHY_REGISTER5 [31] RESETDONETXBYTECLK bit : Reset done for the TXBYTECLK<br />
domain.<br />
• DSS.DSI_PHY_REGISTER5 [26:24] RESETDONETXCLKESCi bits: Reset done for the TXCLKESC<br />
domain for lane i (i between 0 and 2).<br />
• DSS.DSI_PHY_REGISTER5 [30] RESETDONESCPCLK bit: Reset done for the SCP clock domain.<br />
Software users must perform a dummy read on this bit to initiate the reset sequence of the SCP finite<br />
state machine. When the reset sequence is complete, the RESETDONESCPCLK signal goes high and<br />
software users can read again the DSS.DSI_PHY_REGISTER5 [30] RESETDONESCPCLK bit to<br />
ensure that the value is now 1.<br />
NOTE: Software must not write in the DSI_PHY_SCP registers before the<br />
DSS.DSI_PHY_REGISTER5 [30] RESETDONESCPCLK bit is set to 1.<br />
1742 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
TXBYTECLKHS<br />
(O)<br />
TXREQUESTHS<br />
(I)<br />
DP/DN<br />
TXREADYHS<br />
(O)<br />
STOPSTATE<br />
(O)<br />
T LPX<br />
T CLK-PREPARE<br />
T CLK-ZERO<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• DSS.DSI_PHY_REGISTER5 [29] RESETDONEPWRCLK bit: Reset done for the PWR clock domain.<br />
The reset sequence of the PWR finite state-machine is complete when the RESETDONEPWRCLK<br />
signal goes high.<br />
7.5.6.3 Pad Configuration<br />
The number of lanes is configurable through the DSS.DSI_COMPLEXIO_CFG1 register.<br />
It is not allowed to change on the fly the position (by modifying the DATAi_POSITION with i = 1 or 2 and<br />
CLOCK_POSITION bit fields), P/N order (Positive/Negative order of the differential pair by modifying the<br />
DATAi_POL with i = 1 or 2 and CLOCK_POL) or number of active data lanes (by modifying the<br />
DSS.DSI_COMPLEXIO_CFG1[10:8] DATA2_POSITION bit). To add or remove the lane #2, it is required<br />
to be in OFF mode for the DSI complex I/O.<br />
The minimum requirement for the number of lanes is one clock lane and one data lane. Note that by<br />
default, the data lane 2 is not connected (the DSS.DSI_COMPLEXIO_CFG1[10:8] DATA2_POSITION bit<br />
reset value is 0).<br />
7.5.6.4 <strong>Display</strong> Timing Configuration<br />
NOTE: Copyright © 2005-2008 MIPI Alliance, Inc. All rights reserved. MIPI Alliance Member<br />
Confidential.<br />
Depending on the CLKIN4DDR frequency settings programmed with the DSI PLL control module, software<br />
users must program accordingly the timing parameters in the DSI complex I/O registers.<br />
7.5.6.4.1 High-Speed Clock Transmission<br />
Figure 7-140 shows an example of high-speed Clock Transmission.<br />
Figure 7-140. High-Speed Clock Transmission<br />
HS CLK transmission<br />
TXByteClkHS is an output clock which is derived by dividing CLKIN4DDR by 16.<br />
T CLK-TRAIL<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
T HS-EXIT<br />
dss-185<br />
1743
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
To begin transmission, the protocol drives TXREQUESTHS high on a rising edge of TXByteClkHS. The<br />
PHY detects this signal on the next rising edge, following which it initiates the LP Start of Transmission<br />
(SoT) procedure.<br />
During a high-speed Clock Transmission, these parameters are defined in multiples of CLKIN4DDR and<br />
programmed by the following register bit fields:<br />
• TLPX timing is programmed by the DSS.DSI_PHY_REGISTER1[20:16] REG_TLPXBY2 bit field.<br />
• THS-PREPARE timing is programmed by the DSS.DSI_PHY_REGISTER0[31:24]<br />
REG_THSPREPARE bit field.<br />
• TCLK-ZERO timing is programmed by the DSS.DSI_PHY_REGISTER1[7:0] REG_TCLKZERO bit field.<br />
TCLK-ZERO is extended, if required, so that the entire LP SoT procedure lasts an integer number of<br />
TXByteClkHS cycles.<br />
At the end of the SoT procedure, HS clock transmission begins. At the same time, TXREADYHS is made<br />
high.<br />
To stop clock transmission, the protocol drives TXREQUESTHS low on a rising edge of TXByteClkHS.<br />
The DSI_PHY detects this change in TXREQUESTHS on the next edge and stops clock transmission.<br />
TXREADYHS is made low.<br />
The DSI_PHY then goes through the LP End of Transmission (EoT) procedure. TCLK-TRAIL and<br />
THS-EXIT parameters are also multiples of CLKIN4DDR and programmed by the following register fields:<br />
• TCLK-TRAIL timing is programmed by the DSS.DSI_PHY_REGISTER1[15:8] REG_TCLKTRAIL bit<br />
field.<br />
• THS-EXIT timing is programmed by the DSS.DSI_PHY_REGISTER0[7:0] REG_THSEXIT bit field.<br />
The DSI_PHY completes the SoT and EoT procedures, once begun, irrespective of any change in PPI<br />
signals. If TXREQUESTHS goes low during the SoT procedure, the PHY start the EoT procedure<br />
immediately after finishing the SoT procedure and no clock is transmitted.<br />
STOPSTATE is high whenever the line is in LP-11 state, as determined by the outputs of the Low Power<br />
Receivers. This signal is not synchronized with TXByteClkHS.<br />
It is requires that the high speed clock be present for some time before (TCLK-PRE) and some time after<br />
(TCLK-POST) high speed data transmission. The protocol must ensure that these timings are met by<br />
asserting and deasserting TXREQUESTHS appropriately.<br />
The PHY ensures that the clock signal has a quadrature-phase with respect to a toggling bit sequence on<br />
any Data Lane, and a rising edge in the center of the first transmitted bit of every Data byte. These<br />
relations are not described in the timing diagram.<br />
CLKIN4DDR can be shut off 300ns after the clock lane goes to STOPSTATE. Alternatively, CLKIN4DDR<br />
can be shut down after TCLK-Trail + THS-Exit + 2 Txbyteclk periods after TxRequestHS falling edge is<br />
received by DSI_PHY.<br />
The DSI protocol engine must ensure that TXREQUESTESC, TXULPSCLK, and TURNREQUEST are low<br />
whenever TXREQUESTHS is asserted.<br />
7.5.6.4.2 High-Speed Data Transmission<br />
Figure 7-141 shows an example of high-speed Data Transmission.<br />
1744 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
TXBYTECLKHS<br />
(O)<br />
TXREQUESTHS<br />
(I)<br />
DP/DN<br />
TXREADYHS<br />
(O)<br />
TXDATAHSB7–B0<br />
(I)<br />
STOPSTATE<br />
(O)<br />
T LPX<br />
T HS-PREPARE<br />
T HS-ZERO<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-141. High-Speed Data Transmission<br />
T HS_SYNC<br />
HS DATA transmission<br />
(BYTE1, BYTE2...)<br />
VALID DATA<br />
(BYTE2, BYTE3...)<br />
SAMPLED BY DSI_PHY ON +VE<br />
EDGES OF TXBYTECLKHS<br />
T HS-TRAIL<br />
T HS-EXIT<br />
BYTE1 DATA HERE IS IGNORED<br />
TXByteClkHS is an output clock which is derived by dividing CLKIN4DDR by 16.<br />
To begin transmission, the protocol drives TXDATAHS with the first byte of data on a rising edge of<br />
TXByteClkHS. It also makes TXREQUESTHS high the same rising edge. The PHY detects<br />
TXREQUESTHS going high on the next rising edge of TXByteClkHS, following which it initiates the LP<br />
Start of Transmission (SoT) procedure.<br />
During a high-speed Data Transmission, these timings are multiple of CLKIN4DDR and programmed by<br />
the following register bit fields:<br />
• TLPX timing is programmed by the DSS.DSI_PHY_REGISTER1[20:16] REG_TLPXBY2 bit field.<br />
• THS-PREPARE + THS-ZERO timing is programmed by the DSS.DSI_PHY_REGISTER0[23:16]<br />
REG_THSPRPR_THSZERO bit field.<br />
THS-ZERO will be extended, if required, so that the entire LP SoT procedure lasts an integer number of<br />
TXByteClkHS cycles. THS-SYNC corresponds to the length of the sync pattern which is 8 high-speed bits,<br />
and can be configured through the DSI_PHY_REGISTER2[31:24] HSSYNCPATTERN bit field.<br />
Towards the end of the SoT procedure, the PHY makes TXREADYHS high on a positive edge of<br />
TXByteClkHS and then start accepting data from TXDATAHS from the next positive edge onwards. The<br />
protocol is expected to provide (new) valid data on TXDATAHS on every positive edge of TXByteClkHS if<br />
TXREADYHS is high.<br />
At the end of the SoT procedure, HS data transmission begins. HS Data Transmission happens LSB first.<br />
To stop data transmission, the protocol drives TXREQUESTHS low on a rising edge of TXByteClkHS. The<br />
PHY detects this change in TXREQUESTHS on the next edge and stops data transmission. TXREADYHS<br />
is made low and data on TXDATAHS, from that point, is ignored.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-186<br />
1745
TXCLKESC<br />
TURNREQUEST<br />
DP/DN<br />
DIRECTION<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
The PHY then goes through the LP End of Transmission (EoT) procedure. THS-TRAIL and THS-EXIT are<br />
also multiples of CLKIN4DDR and programmed by the following register bit fields:<br />
• THS-TRAIL timing is programmed by the DSS.DSI_PHY_REGISTER0[15:8] REG_THSTRAIL bit field.<br />
• THS-EXIT timing is programmed by the DSS.DSI_PHY_REGISTER0[7:0] REG_THSEXIT bit field.<br />
The PHY completes the SoT and EoT procedures, once begun, irrespective of any change in PPI signals.<br />
If TXREQUESTHS goes low during the SoT procedure, the PHY start the EoT procedure immediately<br />
after finishing the SoT procedure and no data is transmitted.<br />
STOPSTATE is high whenever the line is in LP-11 state, as determined by the outputs of the low power<br />
receivers. This signal is not synchronized with TXByteClkHS.<br />
The protocol must ensure that TXREQUESTESC, TXULPSCLK, and TURNREQUEST are low whenever<br />
TXREQUESTHS is asserted.<br />
7.5.6.4.3 Turn-Around Request in Transmit Mode<br />
When the DSI PHY is in transmit mode, the DSI protocol engine can request a turnaround by making the<br />
TurnRequest signal high for at least one clock cycle of TxClkEsc (see Section 7.4.3.7.3, TurnRequest<br />
FSM).<br />
The DSI PHY transmits the turn-around request pattern (LP 11-10-00-10-00-00-00-00) (see Figure 7-142).<br />
The number of 00 states in the end of the pattern is defined by T TA-GO timing parameter and is<br />
programmable through the DSS.DSI_PHY_REGISTER1[31:29] REG_TTAGO bit field, in number of<br />
TxClkEsc clocks. Following the transmission of the pattern, the DSI PHY disables its LP transmitters and<br />
waits for an acknowledgment from the remote device. The remote device detects the turn-around request<br />
and acknowledges it by driving LP-10, followed by the STOP state. When this acknowledgment is<br />
received, DSI PHY switches to receive mode and indicates the completion of the turn-around procedure<br />
by changing the direction (BTA_IRQ is asserted, as described in Section 7.4.3.8, Bus Turnaround).<br />
Figure 7-142. Turn-Around Request in Transmit Mode<br />
LP-11 LP-10 LP-00 LP-10 LP-00 LP-00 LP-00 LP-00 LP-00<br />
LP state driven by remote LPTX<br />
LP state driven by DSI PHY LPTX<br />
The DSI protocol engine must not stop TxClkEsc after the turn-around process completes (the<br />
DSS.DSI_CLK_CTRL[20] LP_CLK_ENABLE bit must be kept at 1), because TxClkEsc is also used in<br />
handling a turn-around request transmitted by a remote slave device (see Section 7.5.6.4.4, Turn-Around<br />
Request in Receive Mode).<br />
7.5.6.4.4 Turn-Around Request in Receive Mode<br />
When the DSI PHY is in receive mode, an LP pattern of 11-10-00-10-00 on DP/DN lines indicates a<br />
turn-around request from the remote device (see Figure 7-143).<br />
1746 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
LP-10<br />
LP-11<br />
dss-401
DP/DN<br />
TXCLKESC<br />
DIRECTION<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-143. Turn-Around Request in Receive Mode<br />
DSI PHY LPRX detects turnaround request pattern<br />
(11 - 10 - 00 - 10 - 00)<br />
2*T LPX
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
• DSS.DSI_COMPLEXIO_IRQSTATUS ERRCONTENTIONLP0_i_IRQ: ERRCONTENTION0LPDX<br />
and ERRCONTENTION0LPDY are asserted when the Lane module detects a contention situation<br />
on lines DX and DY respectively while trying to drive the lines low. Contention is detected only if it<br />
lasts at least 50ns<br />
• DSS.DSI_COMPLEXIO_IRQSTATUS ERRCONTENTIONLP1_i_IRQ: ERRCONTENTION1LPDX<br />
and ERRCONTENTION1LPDY are asserted when the Lane module detects a contention situation<br />
on lines DX and DY respectively while trying to drive the lines high. Contention is detected only if it<br />
lasts at least 50ns<br />
The ULPSACTIVENOT signal goes low which indicates to the protocol that the PHY has entered ULP<br />
state. When all the ULPSActiveNot signals are low, the DSS.DSI_COMPLEXIO_IRQSTATUS[30]<br />
ULPSACTIVENOT_ALL0_IRQ event is generated. When all the ULPSActiveNot signals are high, the<br />
DSS.DSI_COMPLEXIO_IRQSTATUS[31] ULPSACTIVENOT_ALL1_IRQ event is generated.<br />
When any of the events defined in DSS.DSI_COMPLEXIO_IRQSTATUS register happened, the<br />
DSS.DSI_IRQSTATUS[10] COMPLEXIO_ERR_IRQ bit is set to 1 at DSI protocol engine level.<br />
The software must take appropriate action when receiving the interrupt indicating the error from the<br />
complex I/O. The action can be:<br />
• Reset of the DSI protocol engine module<br />
• Reset of the peripheral though reset trigger or directly driving the hardware reset pin of the display<br />
module<br />
• Ignore the error<br />
7.5.7 RFBI Basic Programming Model<br />
The RFBI programming model must be used for LCD display support only.<br />
7.5.7.1 DISPC Control Registers<br />
The following DISPC registers are used in RFBI mode:<br />
• The STALL mode is selected by setting the DSS.DISPC_CONTROL[11] STALLMODE bit. The<br />
DSS.DISPC_CONTROL[5] GOLCD bit must not be set to 1, but the display controller configuration<br />
(DMA engine, pipelines associated to the LCD output,..) must be set before enabling the LCD output<br />
by setting the DSS.DISPC_CONTROL[0] LCDENABLE bit to 1.<br />
• To enable the hardware handcheck to avoid underflow, the DSS.DISPC_CONTROL[16]<br />
FIFOHANDCHECK must be set to 1. The reset value of this bit is 0. The handcheck applies to the<br />
pipelines connected to the LCD output. It must be disabled before resetting the<br />
DSS.DISPC_CONTROL[11] STALLMODE bit to 0. The new setting for the FIFO handcheck is used for<br />
the following frames.<br />
NOTE: The LCD output is disabled at the end of the transfer of the frame. The software must<br />
reenable the LCD output to generate a new frame by setting the DSS.DISPC_CONTROL[0]<br />
LCDENABLE to 1. See Figure 7-144.<br />
7.5.7.2 RFBI Control Registers<br />
The following registers define the RFBI control registers:<br />
• DSS.RFBI_CONTROL<br />
• DSS.RFBI_PIXEL_CNT<br />
• DSS.RFBI_LINE_NUMBER<br />
7.5.7.2.1 High Threshold<br />
The DSS.RFBI_CONTROL[6:5] HIGHTHRESHOLD bit field is used to define the threshold to be used for<br />
the generation of the DMA request to receive data into the interconnect FIFO (24 x 32 FIFO depth)<br />
through the address of the register RFBI_DATA. It must be the size of the burst. The supported values are<br />
1748 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
4x32, 8x32 and 16x32. The system DMA receives the DMA request and is in charge of providing the<br />
correct number of bytes. If the DSS.RFBI_CONTROL[7] DISABLE_DMA_REQ bit is reset, the DMA<br />
request is generated when there is enough room in the interconnect FIFO to accept the full burst. In case<br />
the RFBI receives writes L4 requests to the RFBI_DATA location when the interconnect FIFO is full, the<br />
request is not accepted. The RFBI waits for a free entry in the interconnect FIFO to accept the L4 request.<br />
If the DSS.RFBI_CONTROL[7] DISABLE_DMA_REQ bit is set, the DMA request is not generated. The<br />
threshold value is ignored.<br />
NOTE: Software users can access the RFBI_DATA location without using the DMA request and<br />
without programming the high threshold value (backward mode).<br />
7.5.7.2.2 Bypass Mode<br />
Setting the DSS.RFBI_CONTROL[1] BYPASSMODE bit directly outputs the LCD controller output to the<br />
LCD panel. Resetting this bit directs the MPU module to send commands/parameters and data from the<br />
input video port FIFO.<br />
7.5.7.2.3 Enable<br />
Setting/resetting the DSS.RFBI_CONTROL[0] ENABLE bit enables/disables the RFBI module. The<br />
hardware resets the enable bit after all of the pixels are sent to the panel. The<br />
DSS.RFBI_PIXEL_CNT[31:0] PIXELCNT bit field value defines the number of pixels to send to the LCD<br />
panel. When the transfer is finished, the configuration used can be modified.<br />
Table 7-71. RFBI Behavior<br />
RFBI_CONTROL[1] BYPASSMODE RFBI_CONTROL[0] ENABLE bit value RFBI Behavior<br />
bit value<br />
0 0 L4 interconnect can write<br />
command/param/data and read<br />
data/status from the Remote Frame<br />
Buffer (RFB). L4 interconnect access can<br />
only be done to the CSx actually active<br />
0 1 The DISPC sends pixels to the RFB.<br />
The stall signal is asserted when the module is disabled. Through the L4 port, pixels can be sent to the<br />
LCD panel only when the pixel count has reach the value 0x0<br />
NOTE: The LCD output is disabled at the end of the transfer of the frame. The software must<br />
reenable the LCD output to generate a new frame by setting the DSS.DISPC_CONTROL[0]<br />
LCDENABLE to 1. See Figure 7-144.<br />
7.5.7.2.4 Configuration Selection<br />
Setting the DSS.RFBI_CONTROL[3:2] CONFIGSELECT bit field selects the configuration number (1 or 0<br />
if bits are set or reset). The registers associated with the configuration output the data to the LCD panel.<br />
If both chip-selects are selected, the configuration for the first chip-select is used (except for the polarity of<br />
the RFBI_CS1 signal defined by the second configuration) and both devices connected to the CS signals<br />
are driven in parallel. In read mode, if both chip-selects are set, only RFBI_CS0 is asserted to read data<br />
from the device connected on RFBI_CS0. In write mode with two chip-selects selected, the RFBI can write<br />
to the two devices simultaneously.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1749
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.7.2.5 ITE Bit<br />
Set the DSS.RFBI_CONTROL[4] ITE bit to start capturing the data from the display controller. This bit has<br />
no effect if the trigger mode is set to external. The display controller must be configured in the STALL<br />
mode to account for the RFBI_DISPC_STALL signal. Setting the trigger mode to external<br />
(DSS.RFBI_CONFIGi[3:2] TRIGGERMODE bit field set to 0x1 or 0x2) causes the<br />
DSS.RFBI_CONTROL[4] ITE bit to be ignored. The corresponding chip-select must be selected when this<br />
bit is set by users.<br />
The RFBI_DISPC_STALL signal is asserted when at least one of the following cases occur:<br />
• Default status when no data to capture from the display controller<br />
• High FIFO threshold reached<br />
• End of the transfer (number of data to output)<br />
• Reset of the RFBI module<br />
• DSS.RFBI_CONTROL[0] ENABLE bit reset to 0x0<br />
The RFBI_DISPC_STALL signal is deasserted when the DSS.RFBI_CONTROL[0] ENABLE bit is set to<br />
0x1 and at least one of the following cases occur:<br />
• Low FIFO threshold reached<br />
• External TE occurs and the DSS.RFBI_CONFIGi[3:2] TRIGGERMODE bit field is set to 0x1 or 0x2 for<br />
automatic external trigger (start of the transfer, the FIFO pointers are reset, the FIFO is empty).<br />
• DSS.RFBI_CONTROL[4] ITE bit set to 0x1 by users (start of the transfer, the FIFO pointers are reset,<br />
the FIFO is empty).<br />
7.5.7.2.6 Number of Pixels to Transfer<br />
Setting the DSS.RFBI_PIXEL_CNT[31:0] PIXELCNT bit field value directs the application to indicate the<br />
number of pixels to be transferred to the LCD panel. The value can be changed only when the<br />
DSS.RFBI_CONTROL[0] ENABLE is reset.<br />
During the transfer, the hardware decrements the register when a pixel is sent to the remote frame buffer.<br />
When the DSS.RFBI_CONTROL[0] ENABLE bit is set and a new value is written in the<br />
DSS.RFBI_PIXEL_CNT register when the current value in the register is a non-zero (the remaining<br />
number of pixels to transfer), the ongoing transfer is aborted.<br />
From the L4 interconnect side, if the DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT bit field is equal to 0x3<br />
and the DSS.RFBI_CONFIGi[8:7] L4FORMAT bit field is equal to 0x0, an even number of write accesses<br />
to the data register must be performed before accessing any other register<br />
(CMD/PARAM/STATUS/READ).<br />
When the DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT bit field is 0x3 (2 pixels are sent over 3 cycles), the<br />
number of pixels to be programmed in the DSS.RFBI_PIXEL_CNT[31:0] PIXELCNT bit field must be a<br />
multiple of 2. If another CYCLEFORMAT is used, the value for PIXELCNT can be odd or even. This<br />
constraint is valid for data provided on the L4 interconnect port and from the display controller.<br />
If the DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT bit field is equal to 0x3, the DSS.RFBI_CONFIGi[8:7]<br />
L4FORMAT bit field is equal to 0, and back-to-back register write is processed. The following registers<br />
should be written after the first data: RFBI_CMD, RFBI_PARAM, RFBI_READ, and RFBI_STATUS. The<br />
whole data transfer must first be performed before being able to write to any other registers (RFBI_CMD,<br />
RFBI_PARAM, RFBI_READ, and RFBI_STATUS).<br />
7.5.7.2.7 Programmable Line Number<br />
When the trigger mode is set to external trigger mode with HSYNC and VSYNC or the TE, hardware<br />
resets the line counter when the VSYNC occurs and, after a programmable number of lines (the HSYNC<br />
pulse occurs for every line), the transfer to the LCD panel begins. When the programmable line number is<br />
0, only the VSYNC pulse indicates the beginning of the transfer in both modes: HSYNC/VSYNC and TE<br />
(logical OR operation between HSYNC and VSYNC).<br />
7.5.7.3 RFBI Configuration<br />
The following registers define the RFBI configuration:<br />
1750 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• DSS.RFBI_SYSCONFIG<br />
• DSS.RFBI_SYSSTATUS<br />
• DSS.RFBI_CONFIG0 (configuration 0) and DSS.RFBI_CONFIG1 (configuration 1)<br />
• DSS.RFBI_VSYNC_WIDTH<br />
• DSS.RFBI_HSYNC_WIDTH<br />
The configuration register for one configuration can be accessed only when the configuration is not in use<br />
(based on the value of the RFBI_CONTROL[3:2] CONFIGSELECT bit field).<br />
7.5.7.3.1 Parallel Mode<br />
The DSS.RFBI_CONFIGi[1:0]PARALLELMODE bit field (where i = 0, 1) defines the width of the interface<br />
(8-, 9-, 12-, or 16-bit parallel).<br />
7.5.7.3.2 Trigger Mode<br />
Setting the DSS.RFBI_CONFIG[3:2]TRIGGERMODE bit field configures the trigger on the external TE<br />
signal (RFBI_TE_VSYNC), or external with VSYNC/HSYNC with the programmable number of HSYNCs to<br />
begin the transfer in both cases or the internal programmable DSS.RFBI_CONTROL[4] ITE bit.<br />
7.5.7.3.3 VSYNC Pulse Width (Minimum Value)<br />
The DSS.RFBI_VSYNC_WIDTH[15:0] MINVSYNCPULSEWIDTH bit field defines the minimum number of<br />
L4 clock cycles of the VSYNC pulse for detection on VSYNC. It allows differentiation between VSYNC and<br />
HSYNC, which are ORed on the same signal and is also used in the VSYNC/HSYNC mode on the two<br />
separate input lines.<br />
• The VSYNC pulse width must be at least equal to two L4 cycles when HSYNC is not present.<br />
• The VSYNC pulse width must be at least equal to four L4 cycles when HSYNC is present.<br />
7.5.7.3.4 HSYNC Pulse Width (Minimum Value)<br />
The DSS.RFBI_HSYNC_WIDTH[15:0] MINHSYNCPULSEWIDTH bit field defines the minimum number of<br />
L4 clock cycles of the HSYNC pulse for detection on HSYNC. It allows differentiation between VSYNC<br />
and HSYNC, which are ORed on the same signal, and is also used in the VSYNC/HSYNC mode on the<br />
separate two input lines. The HSYNC pulse width must always be at least equal to two L4 cycles to be<br />
detected.<br />
7.5.7.3.5 Cycle Format<br />
Setting the DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT bit field (with i = 0, 1) defines which registers are<br />
used to format the data in the interconnect FIFO with the appropriate number of bits (starting from the<br />
LSB) and with the alignment on the interface as follows:<br />
• DSS.RFBI_DATA_CYCLE_i (if DSS.RFBI_CONFIG[10:9] CYCLEFORMAT bit field = 00) only<br />
or<br />
• DSS.RFBI_DATA_CYCLE1_i and DSS.RFBI_DATA_CYCLE2_i (if DSS.RFBI_CONFIG[10:9]<br />
CYCLEFORMAT bit field = 01)<br />
or<br />
• DSS.RFBI_DATA_CYCLE1_i, DSS.RFBI_DATA_CYCLE2_i, and DSS.RFBI_DATA_CYCLE3_i (if<br />
DSS.RFBI_CONFIG[10:9] CYCLEFORMAT bit field = 10)<br />
The data from the display controller and from the L4 interconnect are formatted based on the configuration<br />
of the DSS.RFBI_DATA_CYCLE_i registers.<br />
7.5.7.3.6 Unused Bits<br />
Based on the configuration, the undefined bits for each cycle are defined with the previous values of the<br />
bits at the same position in the previous cycle, 0s, or 1s (the unused bits can be at any position). The<br />
DSS.RFBI_CONFIGi[12:11] UNUSEDBITS bit field (with i = 0, 1) is used.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1751
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
7.5.7.3.7 RFBI Timings<br />
The timing registers for one configuration can be accessed only when the configuration is not in use<br />
(based on the value of the DSS.RFBI_CONTROL[3:2] CONFIGSELECT bit field). Granularity is defined<br />
using the DSS.RFBI_CONFIGi[4] TIMEGRANULARITY bit. This feature allows the extension of<br />
programmable ranges of timing parameters for the RFBI interface. Refer to Table 7-72 for the bits<br />
configuration values.<br />
• Chip-select assertion/deassertion time<br />
RFBI_A0 setup time to chip-select assertion is assured by the programmable chip-select assertion time<br />
from the start access time:<br />
DSS.RFBI_ONOFF_TIMEi[3:0] CSONTIME bit field (with i = 0, 1).<br />
The chip-select deassertion time from the start access time is programmable:<br />
DSS.RFBI_ONOFF_TIMEi[9:4] CSOFFTIME bit field (with i = 0, 1)<br />
CAUTION<br />
Configuring DSS.RFBI_ONOFF_TIMEi[3:0] CSONTIME =<br />
DSS.RFBI_ONOFF_TIMEi[9:4] CSOFFTIME = 0 (with i = 0, 1) is not supported<br />
and must be avoided. This configuration creates contention on the bus and<br />
progressively damages the LCD panel.<br />
• Chip-select pulse width<br />
The total chip-select pulse width is the time when write cycle time or read cycle time has completed<br />
and is programmable:<br />
DSS.RFBI_CYCLE_TIMEi[17:12] CSPULSEWIDTH bit field (with i = 0, 1)<br />
It applies on the read-to-write, write-to-read, read-to-read, and write-to-write access based on:<br />
– The DSS.RFBI_CYCLE_TIMEi [19] RRENABLE bit: Read-to-read access<br />
– The DSS.RFBI_CYCLE_TIMEi [20] WWENABLE bit: Write-to-write access<br />
– The DSS.RFBI_CYCLE_TIMEi [18] RWENABLE bit: Read-to-write access<br />
– The DSS.RFBI_CYCLE_TIMEi [21] WRENABLE bit: Write-to-read access<br />
By default, it applies to any access (read-to-read, read-to-write, write-to-read, write-to-write) when<br />
the chip-select changes.<br />
• Access time<br />
The total access time is the time from when A0 becomes valid until data are sampled before<br />
deasserting the RE signal; access time is programmable:<br />
DSS.RFBI_CYCLE_TIMEi[27:22] ACCESSTIME bit field (with i = 0, 1)<br />
When reading the data on the bus, the data are sampled at the end of the access time, which<br />
occurs before the end of the read off time (DSS.RFBI_ONOFF_TIMEi[29:24] REOFFTIME, with i =<br />
0, 1).<br />
• Write enable cycle time<br />
The total write enable cycle time is the time from when A0 becomes valid until write cycle completion;<br />
the write enable cycle time is programmable:<br />
The DSS.RFBI_CYCLE_TIMEi[5:0] WECYCLETIME bit field (with i = 0, 1)<br />
• Write enable assertion/deassertion time<br />
The WE assertion delay time from start access time is programmable:<br />
DSS.RFBI_ONOFF_TIMEi[13:10] WEONTIME bit field (with i = 0, 1)<br />
The WE deassertion delay time from the start access time is programmable:<br />
DSS.RFBI_ONOFF_TIMEi[19:14] WEOFFTIME bit field (with i = 0, 1)<br />
• Read enable cycle<br />
The total read enable cycle time is the time when A0 becomes valid until read cycle completion; the<br />
read enable cycle time is programmable:<br />
The DSS.RFBI_CYCLE_TIMEi[11:6] RECYCLETIME bit field (with i = 0, 1)<br />
• Read enable assertion/deassertion time<br />
The RE assertion delay time from the start access time is programmable:<br />
1752 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
DSS.RFBI_ONOFF_TIMEi[23:20] REONTIME bit field (with i = 0, 1)<br />
The RE deassertion delay time from the start access time is programmable:<br />
DSS.RFBI_ONOFF_TIMEi[29:24] REOFFTIME bit field (with i = 0, 1)<br />
At cycle time completion (read access or write access) all control signals (RFBI_CSi, RFBI_WR, and<br />
RFBI_RD, with i = 0, 1) are deasserted regardless of their deassertion time parameter values, if they are<br />
not deasserted already.<br />
However, an exception to this forced deassertion exists when a pipelined request to the same chip-select<br />
or to a different chip-select is pending. Also, a control signal with deassertion time parameters equal to the<br />
cycle time parameter is not necessarily deasserted when a pipelined request to the same chip-select or<br />
different chip-select is pending. This prevents any unnecessary glitch transitions.<br />
If no inactive cycles are required between successive accesses to the same chip-select (the<br />
DSS.RFBI_CYCLE_TIMEi[17:12] CSPULSEWIDTH bit field = 0, with i = 0, 1), and if assertion time<br />
parameters associated with the following access equal 0, the asserted control signals (RFBI_CSi,<br />
RFBI_WR, and RFBI_RD, with i = 0, 1) stay asserted. This is applicable to any read/write-to-read/write<br />
access combination.<br />
Table 7-72 summarizes the configurations values for each timing bit.<br />
Table 7-72. RFBI Timings Configuration<br />
Configuration bits (1) Granularity (2)<br />
one two<br />
DSS.RFBI_ONOFF_TIMEi[3:0] CSONTIME 0 to 15 0 to 30<br />
DSS.RFBI_ONOFF_TIMEi[9:4] CSOFFTIME 0 to 63 0 to 126<br />
DSS.RFBI_CYCLE_TIMEi[17:12] CSPULSEWIDTH 0 to 63 0 to 126<br />
DSS.RFBI_CYCLE_TIMEi[27:22] ACCESSTIME 0 to 63 0 to 126<br />
DSS.RFBI_CYCLE_TIMEi[5:0] WECYCLETIME 0 to 63 0 to 126<br />
DSS.RFBI_ONOFF_TIMEi[13:10] WEONTIME 0 to 15 0 to 30<br />
DSS.RFBI_ONOFF_TIMEi[19:14] WEOFFTIME 0 to 63 0 to 126<br />
DSS.RFBI_CYCLE_TIMEi[11:6] RECYCLETIME 0 to 63 0 to 126<br />
DSS.RFBI_ONOFF_TIMEi[23:20] REONTIME 0 to 15 0 to 30<br />
DSS.RFBI_ONOFF_TIMEi[29:24] REOFFTIME 0 to 63 0 to 126<br />
(1) Where i = 0 or 1.<br />
(2) Number of L4Clk cycles. The granularity can be configured using the DSS.RFBI_CONFIGi[4] TIMEGRANULARITY bit.<br />
7.5.7.3.8 RFBI State-Machine<br />
Referring to Table 7-39, the signals RFBI_A0, RFBI_RD, and RFBI_WR are asserted/deasserted based<br />
on the register accessed (DSS.RFBI_CMD, DSS.RFBI_PARAM, DSS.RFBI_DATA, DSS.RFBI_READ,<br />
and DSS.RFBI_STATUS). When the DSS.RFBI_SYSSTATUS[8] BUSY bit is set by hardware, any access<br />
to the registers is stalled, except for the RFBI_DATA register.<br />
The DSS.RFBI_SYSSTATUS[9] BUSYRFBIDATA bit indicates whether there are still pending data in the<br />
interconnect FIFO associated with the register RFBI_DATA only.<br />
• Command register<br />
Write a command at a time by writing in the DSS.RFBI_CMD register. If the previous command is not<br />
processed, the DSS.RFBI_SYSSTATUS[8] BUSY bit is set by hardware and the access to writing a<br />
new command is stalled.<br />
• Parameter register<br />
Write a parameter at a time by writing in the DSS.RFBI_PARAM register.<br />
If the previous parameter is not processed, the DSS.RFBI_SYSSTATUS[8] BUSY bit is set by<br />
hardware and the access to writing a new parameter is stalled.<br />
• Data register<br />
Write one or two pixels at a time by writing in the RFBI_DATA register (when<br />
DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT = 0x3 with i = 0, 1, two pixels must be written<br />
contiguously, no other access to RFBI registers except DSS.RFBI_DATA is allowed).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1753
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
The pixels are formatted based on the specified cycle format. If two pixels are written into the 32-data<br />
register, the DSS.RFBI_CONFIGi[8:7] L4FORMAT bit field indicates the number of pixels for each L4<br />
access to the register and the order of the pixels<br />
If the previous data are not processed, the DSS.RFBI_SYSSTATUS[8] BUSY bit is set by hardware<br />
and any access for writing new data is stalled. When the DSS.RFBI_SYSSTATUS[8] BUSY bit is reset<br />
by hardware, the access is not stalled.<br />
• Read/status register<br />
Send through the command and parameter registers the correct information to receive data in the data<br />
or status register. The read data from the LCD panel is initiated by writing into the DSS.RFBI_READ or<br />
DSS.RFBI_STATUS registers. In this case, the DSS.RFBI_SYSSTATUS[8] BUSY bit is set until the<br />
data are available in the register.<br />
When the DSS.RFBI_SYSSTATUS[8] BUSY bit is set by hardware, the read or write access is stalled<br />
until the register is updated with a new value from the LCD panel. To avoid the stall, the software can<br />
poll the DSS.RFBI_SYSSTATUS[8] BUSY bit until it is reset by hardware. To receive the data, send<br />
the appropriate command/parameters.<br />
7.5.7.3.9 RFBI Configuration Flow Charts<br />
The RFBI configuration depends on the trigger mode used by the application. The available trigger modes<br />
are:<br />
• Internal trigger mode when setting the DSS.RFBI_CONFIGi[3:2] TRIGGERMODE bit field to 0x0<br />
• External trigger mode:<br />
– TE external trigger mode when setting the DSS.RFBI_CONFIGi[3:2] TRIGGERMODE bit field to<br />
0x1<br />
– HSYNC/VSYNC external trigger mode when setting the DSS.RFBI_CONFIGi[3:2] TRIGGERMODE<br />
bit field to 0x2<br />
Figure 7-144 gives an example of how to program and use the RFBI module:<br />
1754 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Start<br />
Program the RFBI initial configuration<br />
Enable RFBI output<br />
Wait FRAMEDONE interrupt<br />
Internal trigger mode<br />
used?<br />
Yes<br />
No<br />
Configure the number of pixels to transfer:<br />
Set DSS.RFBI_PIXEL_CNT[31:0] PIXELCNT bit field<br />
Enable the display controller module output:<br />
Set DSS.DISPC_CONTROL[0] LCDENABLE bit to 1<br />
Enable the RFBI module output to update the remote frame buffer:<br />
Set DSS.RFBI_CONTROL[0] ENABLE bit to 1<br />
Internal trigger mode<br />
used?<br />
Yes<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-144. How to Use RFBI<br />
Program the number of lines where to start transfer:<br />
Set the DSS.RFBI_LINE_NUMBER register<br />
No<br />
Enable internal software trigger<br />
Set DSS.RFBI_CONTROL[4] ITE bit to 1<br />
Figure 7-145 details how to configure the RFBI registers:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-192<br />
1755
Start<br />
RFBI initial configuration<br />
Program the display controller to configure the graphics<br />
(GFX) or video (VIDn) pipeline<br />
Program the display controller in RFBI mode:<br />
Set DSS.DISPC_CONTROL[11] RFBIMODE bit to 1<br />
Select the RFBI data path:<br />
Set DSS.DISPC_CONTROL[16:15] GPOUT field to 0x1<br />
Disable the time division multiplexing (TDM):<br />
Set DSS.DISPC_CONTROL[20] TDMENABLE bit to 0<br />
Enable RFBI path:<br />
Set DSS.RFBI_CONTROL[1] BYPASSMODE bit to 0<br />
Disable the CS and configuration:<br />
Set DSS.RFBI_CONTROL[3:2] CONFIGSEI.ECT field to 0x0<br />
Program timings:<br />
Set DSS RFBI_ONOFF_TIMEi[] bits<br />
Set DSS RFBI_CYCLE_TIMEi[] bits<br />
Program signals polarity<br />
Set DSS.RFBI_CONFIGi[] polarity bits<br />
Internal trigger mode<br />
used?<br />
Yes<br />
Program parallel data widths:<br />
Output data width: Set DSS.RFBI_CONFIGi[1:0] PARALLELMODE<br />
Input data width:Set DSS.RFBI_CONFIGi[6:5] DATATYPE<br />
Number of cycles: Set DSS.RFBI_CONFIGi[10:9] CYCLEFORMAT<br />
No<br />
Program data format per cycle:<br />
Set DSS.RFBI_DATA_CYCLE1_i[ ] bits<br />
Set DSS.RFBI_DATA_CYCLE2_i[ ] bits (if needed)<br />
Set DSS.RFBI_DATA_CYCLE3_i[ ] bits (if needed)<br />
Selet the CS and configuration:<br />
Set DSS.RFBI_CONTROL[3:2] CONFIGSELECT bit<br />
End<br />
RFBI initial configuration<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Figure 7-145. RFBI Initial Configuration<br />
TE External trigger mode<br />
used?<br />
This enables modifying<br />
the configuration registers<br />
Yes<br />
No<br />
Program TE polarity<br />
Set DSS.RFBI_CONFIGi[20] TE_VSYNC_POLARITY<br />
Program minimum pulse width:<br />
Set DSS.RFBI_VSYNC_WIDTH[15:0] MINVSYNCPULSEWIDTH<br />
Set DSS.RFBI_HSYNC_WIDTH[15:0] MINHSYNCPULSEWIDTH<br />
Figure 7-146 describes how to enable the RFBI module.<br />
Program HSYNC and VSYNC polarity<br />
VSYNC: Set DSS.RFBI_CONFIGi[20] TE_VSYNC_POLARITY<br />
HSYNC: Set DSS.RFBI_CONFIGi[21] HSYNCPOLARITY<br />
Select previously programmed<br />
CS configuration<br />
1756 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-193
Start<br />
RFBI out enable<br />
Enable the graphics or video pipeline:<br />
Set DSS.DISPC_XXX_ATTRIBUTES[0] ENABLE bit to 1 (XXX=GFX or VIDn)<br />
Enable the display controller output:<br />
Set DSS.DISPC_CONTROL[0] LCDENABLE bit to1<br />
Internal trigger mode<br />
used?<br />
Yes<br />
No<br />
Disable internal software trigger<br />
Set DSS.RFBI_CONTROL[4] ITE bit to 0<br />
Configure the number of pixels to tranfer:<br />
Set DSS.RFBI_PIXEL_CNT[31:0] PIXELCNT bit field<br />
Enable the RFBI module output to update the remote frame buffer:<br />
Set DSS.RFBI_CONTROL[0] ENABLE bit to 1<br />
Internal trigger mode<br />
used?<br />
Yes<br />
Program the nuber of lines where to start transfer:<br />
Set the DSS.RFBI_LINE_NUMBER register<br />
No<br />
Enable internal software trigger<br />
Set DSS.RFBI _CONTROL[4] ITE bit to 1<br />
End<br />
RFBI output enable<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
Figure 7-146. RFBI Output Enable<br />
7.5.8 Video Encoder Basic Programming Model<br />
7.5.8.1 Video Encoder Software Reset<br />
By setting the DSS.VENC_F_CONTROL[8] RESET bit to 1, the video encoder is reset. This bit is<br />
automatically cleared by hardware when the reset is done.<br />
NOTE: Before changing the standard (NTSC or PAL) and all the related registers, a software reset<br />
is required to properly initialize the VENC module.<br />
7.5.8.2 Video DAC Stage Settings<br />
The video output format can be either:<br />
• one composite video (CVBS) output signal with video DAC1 or<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-324<br />
1757
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
• two separated luma/chroma output signals with both video DAC1(luma analog signal) and DAC2<br />
(chroma analog signal)<br />
Selection is performed with DSS.DSS_CONTROL[6] VENC_OUT_SEL bit:<br />
• When VENC_OUT_SEL bit is set to 0 (reset value), video DAC1 is selected for composite video<br />
(CVBS) signal<br />
• When VENC_OUT_SEL bit is set to 1, video DAC1 is selected for luma signal<br />
One of the first VENC settings is to enable the outputs of the video DACs. This setting depends on the<br />
video output format:<br />
• CVBS video output format: Enable video DAC1 composite output by setting the<br />
DSS.VENC_OUTPUT_CONTROL[1] COMPOSITE_ENABLE bit to 1<br />
• Separated luma/chroma output format: Enable video DAC1 luma output by setting the<br />
DSS.VENC_OUTPUT_CONTROL[0] LUMA_ENABLE bit to 1 and enable video DAC2 chroma<br />
output by setting the DSS.VENC_OUTPUT_CONTROL[2] CHROMA_ENABLE bit to 1<br />
Table 7-73 shows different configurations for the analog TV output, along with the respective values to<br />
be set in the dedicated registers inside the device system control module.<br />
Table 7-73. Analog TV Output Modes<br />
Analog TV output modes<br />
Control Register Composite Composite S-Video DC-coupled Bypass mode, dual channels<br />
DC-coupled mode, AC-coupled mode, mode, high full scale<br />
high full scale low full scale<br />
CONTROL.CONTROL_ 0: Buffer Mode 0: Buffer mode 0: Buffer mode 1: Bypass mode<br />
DEVCONF1[18]<br />
TVOUTBYPASS<br />
CONTROL.CONTROL_ 0: DC-coupling 1: AC-coupling 0: DC-coupling 0: DC-coupling<br />
DEVCONF1[11]<br />
TVACEN<br />
AVDAC1<br />
CONTROL.CONTROL_ 0: Don't care 0: Don't care 0: Don't care 0: Don't care<br />
AVDAC1 [20]<br />
AVDAC1_COMP_EN<br />
CONTROL.CONTROL_ 0: Single channel 0: Single channel 1: Dual channel 1: Dual channel<br />
AVDAC1 [19]<br />
AVDAC1_COMP_EN<br />
CONTROL.CONTROL_ 0: Composite 0: Composite 0: Luma 0: Luma<br />
AVDAC1 [18]<br />
AVDAC1_COMP_EN<br />
CONTROL.CONTROL_ 0: Full scale (1.3V) 1: Full scale (0.88V) 0: Full scale (1.3V) 0: Full scale (1.3V)<br />
AVDAC1 [17]<br />
AVDAC1_COMP_EN<br />
CONTROL.CONTROL_ 0: External current 0: External current 0: External current 0: External current reference<br />
AVDAC1 [16] reference reference reference<br />
AVDAC1_COMP_EN<br />
AVDAC2<br />
CONTROL.CONTROL_ 0: Don't care 0: Don't care 0: Don't care 0: Don't care<br />
AVDAC2 [20]<br />
AVDAC2_COMP_EN<br />
CONTROL.CONTROL_ 0: Single channel 0: Single channel 1: Dual channel 1: Dual channel<br />
AVDAC2 [19]<br />
AVDAC2_COMP_EN<br />
CONTROL.CONTROL_ 1: Chroma 1: Chroma 1: Chroma 1: Chroma<br />
AVDAC2 [18]<br />
AVDAC2_COMP_EN<br />
CONTROL.CONTROL_ 0: Full scale (1.3V) 0: Full scale (1.3V) 0: Full scale (1.3V) 0: Full scale (1.3V)<br />
AVDAC2 [17]<br />
AVDAC2_COMP_EN<br />
CONTROL.CONTROL_ 0: External current 0: External current 0: External current 0: External current reference<br />
AVDAC2 [16] reference reference reference<br />
AVDAC2_COMP_EN<br />
1758 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
7.5.8.3 Video Encoder Programming Sequence<br />
1. Set the DSS.VENC_F_CONTROL[8] RESET bit to 1 to perform a software reset of the VENC module.<br />
2. Before any configuration change, save the DSS.DISPC_IRQENABLE register value (DSS interrupts<br />
context), and then disable the display subsystem interrupts by setting the DSS.DISPC_IRQENABLE<br />
register to 0x0000.<br />
3. Configure the video encoder registers as described in Table 7-74, depending on the video standard<br />
used (PAL or NTSC). The DSS.VENC_F_CONTROL and DSS.VENC_SYNC_CTRL registers must be<br />
the last ones to be changed by software.<br />
4. Set the DSS.DISPC_CONTROL[6] GODIGITAL bit and the DSS.DISPC_CONTROL[1]<br />
DIGITALENABLE bit to 1.<br />
5. Wait for the first VSYNC pulse signal.<br />
6. Clear the SYNCLOSTDIGITAL interrupt by setting the DSS.DISPC_IRQSTATUS[15]<br />
SYNCLOSTDIGITAL bit to 1.<br />
7. Set the DSS.DISPC_IRQENABLE register to the value saved in step 2 (restore the DSS interrupts<br />
context).<br />
7.5.8.4 Video Encoder Register Settings<br />
For video encoder programming, see Table 7-74. This table lists the register values to use in standard<br />
applications. These values are validated programming values only for the TV display support (NTSC 601<br />
and PAL 601 standards).<br />
Table 7-74. Video Encoder Register Programming Values<br />
Register Name NTSC 601 PAL 601<br />
VENC_F_CONTROL 0x00000000 0x00000000<br />
VENC_VIDOUT_CTRL 0x00000001 0x00000001<br />
VENC_SYNC_CTRL 0x00008040 0x00000040<br />
VENC_LLEN 0x00000359 0x0000035F<br />
VENC_FLENS 0x0000020C 0x00000270<br />
VENC_HFLTR_CTRL 0x00000000 0x00000000<br />
VENC_CC_CARR_WSS_CARR 0x043F2631 0x2F7225ED<br />
VENC_C_PHASE 0x00000000 0x00000000<br />
VENC_GAIN_U 0x00000102 0x00000111<br />
VENC_GAIN_V 0x0000016C 0x00000181<br />
VENC_GAIN_Y 0x0000012F 0x00000140<br />
VENC_BLACK_LEVEL 0x00000043 0x0000003B<br />
VENC_BLANK_LEVEL 0x00000038 0x0000003B<br />
VENC_X_COLOR 0x000000<strong>07</strong> 0x000000<strong>07</strong><br />
VENC_M_CONTROL 0x00000001 0x00000002<br />
VENC_BSTAMP_WSS_DATA 0x00000038 0x0000003F<br />
VENC_S_CARR 0x21F<strong>07</strong>C1F 0x2A098ACB<br />
VENC_LINE21 0x00000000 0x00000000<br />
VENC_LN_SEL 0x01310011 0x01290015<br />
VENC_L21_WC_CTL 0x0000F003 0x0000F603<br />
VENC_HTRIGGER_VTRIGGER 0x00000000 0x00000000<br />
VENC_SAVID_EAVID 0x069300F4 0x06A70108<br />
VENC_FLEN_FAL 0x0016020C 0x00180270<br />
VENC_LAL_PHASE_RESET 0x000601<strong>07</strong> 0x00040135<br />
VENC_HS_INT_START_STOP_X 0x008E0350 0x00880358<br />
VENC_HS_EXT_START_STOP_X 0x000F0359 0x000F035F<br />
VENC_VS_INT_START_X 0x01A00000 0x01A70000<br />
VENC_VS_INT_STOP_X_VS_INT_START_Y 0x02<strong>07</strong>01A0 0x000001A7<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1759
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model www.ti.com<br />
Table 7-74. Video Encoder Register Programming Values (continued)<br />
Register Name NTSC 601 PAL 601<br />
VENC_VS_INT_STOP_Y_VS_EXT_START_X 0x01AC0024 0x01AF0000<br />
VENC_VS_EXT_STOP_X_VS_EXT_START_Y 0x020D01AC 0x000101AF<br />
VENC_VS_EXT_STOP_Y 0x00000006 0x00000025<br />
VENC_AVID_START_STOP_X 0x03480<strong>07</strong>8 0x03530083<br />
VENC_AVID_START_STOP_Y 0x02060024 0x026C002E<br />
VENC_FID_INT_START_X_FID_INT_START_Y 0x0001008A 0x0001008A<br />
VENC_FID_INT_OFFSET_Y_FID_EXT_START_ 0x01AC0106 0x002E0138<br />
X<br />
VENC_FID_EXT_START_Y_FID_EXT_OFFSET_ 0x01060006 0x01380001<br />
Y<br />
VENC_TVDETGP_INT_START_STOP_X 0x00140001 0x00140001<br />
VENC_TVDETGP_INT_START_STOP_Y 0x00010001 0x00010001<br />
VENC_GEN_CTRL 0x00F90000 0x00FF0000<br />
VENC_OUTPUT_CONTROL 0x0000000A (composite video CVBS) 0x0000000A (composite video CVBS)<br />
0x0000000D (split video S-video) 0x0000000D (split video S-video)<br />
VENC_OUTPUT_TEST 0x00000000 0x00000000<br />
NOTE: The following display controller registers must be programmed to the NTSC 601 video<br />
standard:<br />
DSS.DISPC_SIZE_DIG[10:0] PPL = 720 - 1 = 719 = 0x2CF<br />
DSS.DISPC_SIZE_DIG[26:16] LPP = (482/2) - 1 = 240 = 0xF0<br />
DSS.DISPC_GFX_BA0 or DSS.DISPC_VIDn_BA0 = Base address of even bit field data<br />
DSS.DISPC_GFX_BA1 or DSS.DISPC_VIDn_BA1 = Base address of odd bit field data<br />
1760 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
-1<br />
Z Line Buffer<br />
-1<br />
Z Line Buffer<br />
-1<br />
Z Line Buffer<br />
Pin(n-1)<br />
Pin(n)<br />
Pin(n+1)<br />
1<br />
( ) = ∑ ( Φ)<br />
( ) >> 7<br />
<br />
For the 3-tap vertical up/downsampling the equation is (with the example of R component):<br />
i<br />
Rout n ( Ci x Rin n i )<br />
i = −1<br />
dss-E067<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
7.6 <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
This section gives some generic use cases and tips for setting the modules of the display subsystem.<br />
7.6.1 How to Configure the Scaling Unit in the DISPC Module<br />
This section describes the scaling capability of the display controller (DISPC). The scaling unit is a part of<br />
the video pipeline is used when transferring pixels from the system memory (SDRAM or on-chip SRAM) to<br />
the LCD panel or the TV set. The scaling unit consists of two scaling blocks: The vertical scaling block<br />
followed by the horizontal scaling block. The input pixel format is RGB24. In case the pixel format in<br />
system memory is not RGB, the color space conversion unit in front of the scaling unit converts the YUV<br />
pixels into RGB pixels. The two scaling units are independent: Neither of them, only one, or both can be<br />
used simultaneously<br />
7.6.1.1 Filtering<br />
The scaling is used to down-scale, up-scale, or process the image while keeping the same size. It is<br />
applied independently horizontally and vertically. The same filtering applies for each color component (R,<br />
G, or B).<br />
7.6.1.1.1 Vertical Filtering<br />
The vertical filtering unit is based on a poly-phase rotation architecture with eight phases and three taps.<br />
That means that 24 coefficients are programmable<br />
The vertical 3-tap filtering macro architecture is shown in Figure 7-147.<br />
Figure 7-147. Vertical Filtering Macro Architecture (Three Taps)<br />
C -1<br />
C 0<br />
C 1<br />
Pout(n')<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-112<br />
(14)<br />
1761
Pin(n-2) Pin(n-1) Pin(n) Pin(n+1) Pin(n+2)<br />
Z -1<br />
Z -1<br />
C 22 C -1 C 0 C 1 C 00<br />
i −2<br />
Pout(n')<br />
2<br />
( ) = ∑ ( Φ)<br />
( + ) 7<br />
i<br />
For the 5-tap vertical up/downsampling the equation is (with the example of R component):<br />
Rout n ( Ci x Rin n i )<br />
dss-E066<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Legend:<br />
Rout: R component output<br />
Ci():Vertical FIR coefficients<br />
Rin: R component input<br />
The line (n+1) is older than line (n).<br />
NOTE: If the 5-tap resizer is used for RGB16 and YUV4:2:2 picture formats, the width of the input<br />
picture must be a multiple of 2 pixels and more than 5 pixels. This leads to the following<br />
register configuration:<br />
DISPC_VIDn_ATTRIBUTES[21] VIDVERTICALTAPS == 1<br />
DISPC_VIDn_PICTURE_SIZE[10:0] VIDORGSIZEX 4 and even<br />
The programmable three coefficients of the poly-phase filters are signed 8-bit values (except for the<br />
central coefficient C 0(), which is unsigned).<br />
The vertical filtering unit can be configured to support five taps.<br />
The vertical 5-tap filtering macro architecture is shown in Figure 7-148.<br />
Legend:<br />
Figure 7-148. Vertical Filtering Macro Architecture (Five Taps)<br />
Rout: R component output<br />
Ci():Vertical FIR coefficients with C +2()=C 00() and C -2()=C 22()<br />
Rin: R component input<br />
The line (n+1) is older than line (n).<br />
The programmable five coefficients of the poly-phase filters are signed 8-bit values (except for the central<br />
coefficient C0(), which is unsigned).<br />
In case of three taps, the memory lines are merged into three lines instead of six lines (one line is used as<br />
a cache line).<br />
The first line is duplicated to fill up the two first lines (3-tap configuration) and the three first lines (5-tap<br />
configuration).<br />
1762 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Z -1<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Z -1<br />
dss-113<br />
(15)
Pin(n-2) Pin(n-1) Pin(n) Pin(n+1) Pin(n+2)<br />
Z -1<br />
Z -1<br />
C -2 C -1 C 0 C 1 C 2<br />
i −3<br />
Pout(n')<br />
3<br />
( ) = ∑ ( Φ)<br />
( + ) 7<br />
i<br />
For the 5-tap horizontal up/downsampling, the equation is (with the example of R component):<br />
Rout n ( Ci x Rin n i )<br />
dss-E115<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
The last line is duplicated if the scaling logic requires loading of more lines and the last line has been<br />
reached<br />
7.6.1.1.2 Horizontal Filtering<br />
The horizontal filtering unit is based on a poly-phase rotation architecture with eight phases and five taps.<br />
That means that 40 coefficients are programmable.<br />
The horizontal filtering macro architecture is shown in Figure 7-149.<br />
Legend:<br />
Figure 7-149. Horizontal Filtering Macro Architecture (Five Taps)<br />
Rout: R component output<br />
Ci():Vertical FIR coefficients<br />
Rin: R component input<br />
The line (n+1) is older than line (n).<br />
To horizontally and vertically filter the video layer, the phase is calculated separately. The programmable<br />
coefficients of the poly-phase filters are signed 8-bit values (except for the central coefficient C 0(), which is<br />
unsigned).<br />
The first pixel is duplicated to fill up the three first pixel-buffers (5-tap configuration). The last pixel is<br />
duplicated if the scaling logic requires loading of more pixels and the last pixel has been reached<br />
7.6.1.2 Scaling Algorithms<br />
The up/downsampling finite state machines (FSM) below are detailed in this section.<br />
Figure 7-150 presents the vertical up/downsampling FSM.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Z -1<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Z -1<br />
dss-114<br />
(16)<br />
1763
WAIT<br />
4<br />
5<br />
INIT<br />
Load/duplicate<br />
line(s)<br />
Phase<br />
calculation<br />
Load<br />
coefficients<br />
Number of<br />
line(s) to load<br />
FIR<br />
calculation<br />
Accumulator<br />
calculation<br />
1<br />
2<br />
3<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Figure 7-150. Vertical Up-/Down-Sampling Algorithm<br />
1: New pixel on the same line<br />
2: New pixel on following line (no line to load)<br />
3: New pixel on following line (line[s] to load)<br />
4: End of frame<br />
5: Restart of a new frame<br />
INIT<br />
Phase<br />
calculation<br />
Number of<br />
line(s) to load<br />
FIR<br />
calculation<br />
Accumulator<br />
calculation<br />
Figure 7-151 presents the horizontal up/downsampling FSM.<br />
Initialisation of buffer with duplication,<br />
accu value reset with register value<br />
based on the field polarity if present<br />
Phase = accu[9:7]<br />
Number of element(s) =<br />
((accu + 512 + inc) >> 10) -<br />
((accu + 512) >> 10)<br />
<br />
<br />
( ) ( ) * ( ) <br />
<br />
<br />
7<br />
<br />
<br />
i p<br />
R o u t n C i R in n i<br />
i p<br />
Accu = accu + inc<br />
1764 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-116
4<br />
WAIT<br />
3<br />
INIT<br />
Load/duplicate<br />
pixel(s)<br />
Phase<br />
calculation<br />
Load<br />
coefficients<br />
Number of<br />
pixel(s) to load<br />
FIR<br />
calculation<br />
Accumulator<br />
calculation<br />
1<br />
2<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
7.6.1.3 Scaling Settings<br />
NOTE:<br />
7.6.1.3.1 Register List<br />
Figure 7-151. Horizontal Up-/Down-Sampling Algorithm<br />
1: New pixel (no pixel to load)<br />
2: New pixel (pixel(s) to load)<br />
3: End of line<br />
4: Restart of a line<br />
INIT<br />
Phase<br />
calculation<br />
Number of<br />
line(s) to load<br />
FIR<br />
calculation<br />
Accumulator<br />
calculation<br />
Initialization of buffer with duplication,<br />
accu value reset with register value<br />
based on the field polarity if present<br />
Phase = accu[9:7]<br />
Number of element(s) =<br />
((accu + 512 + inc) >> 10) -<br />
((accu + 512) >> 10)<br />
<br />
<br />
( ) ( ) * ( ) <br />
<br />
<br />
7<br />
<br />
<br />
i p<br />
R o u t n C i R in n i<br />
i p<br />
Accu = accu + inc<br />
• In this section, the screen word refers to LCD panel or TV set.<br />
• n indicates pipeline 0 or 1 because there are two video pipelines in the DISPC.<br />
The following registers define the scaling registers for the video layer n configuration:<br />
• DSS.DISPC_VIDn_BAj<br />
• DSS.DISPC_VIDn_ATTRIBUTES<br />
• DSS.DISPC_VIDn_FIR<br />
• DSS.DISPC_VIDn_ACCUl<br />
• DSS.DISPC_VIDn_FIR_COEF_Hi<br />
• DSS.DISPC_VIDn_FIR_COEF_HVi<br />
• DSS.DISPC_VIDn_FIR_COEF_Vi<br />
Table 7-75 lists the registers for programming the vertical FIR coefficients (3-tap configuration).<br />
Table 7-75. Vertical FIR Coefficients Corresponding<br />
Table (3-Tap Configuration)<br />
C X() VidFIRVC X()<br />
C -1() VidFIRVC 2()<br />
C 0() VidFIRVC 1()<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-117<br />
1765
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Table 7-75. Vertical FIR Coefficients Corresponding<br />
Table (3-Tap Configuration) (continued)<br />
C X() VidFIRVC X()<br />
C 1() VidFIRVC 0()<br />
The corresponding registers for programming the vertical FIR coefficients (3-tap configuration) are:<br />
• VidFIRVC 2() = DSS.DISPC_VIDn_FIR_COEF_HVi[31:24] VIDFIRVC2<br />
• VidFIRVC 1() = DSS.DISPC_VIDn_FIR_COEF_HVi[23:16] VIDFIRVC1<br />
• VidFIRVC 0() = DSS.DISPC_VIDn_FIR_COEF_HVi[15:8] VIDFIRVC0<br />
Table 7-76 lists the registers for programming the vertical FIR coefficients (5-tap configuration).<br />
Table 7-76. Vertical FIR Coefficients Corresponding<br />
Table (5-Tap Configuration)<br />
C X() VidFIRVC X()<br />
C 22() VidFIRVC 22()<br />
C -1() VidFIRVC 2()<br />
C 0() VidFIRVC 1()<br />
C 1() VidFIRVC 0()<br />
C 00() VidFIRVC 00()<br />
The corresponding registers for programming the vertical FIR coefficients (5-tap configuration) are:<br />
• VidFIRVC 22() = DSS.DISPC_VIDn_FIR_COEF_Vi[15:8] VIDFIRVC22<br />
• VidFIRVC 2() = DSS.DISPC_VIDn_FIR_COEF_HVi[31:24] VIDFIRVC2<br />
• VidFIRVC 1() = DSS.DISPC_VIDn_FIR_COEF_HVi[23:16] VIDFIRVC1<br />
• VidFIRVC 0() = DSS.DISPC_VIDn_FIR_COEF_HVi[15:8] VIDFIRVC0<br />
• VidFIRVC 00() = DSS.DISPC_VIDn_FIR_COEF_Vi[7:0] VIDFIRVC00<br />
Table 7-77 lists the registers for programming the horizontal FIR coefficients (5-tap configuration).<br />
Table 7-77. Horizontal FIR Coefficients Corresponding<br />
Table (5-Tap Configuration)<br />
C X() VidFIRHC X()<br />
C -2() VidFIRHC 4()<br />
C -1() VidFIRHC 3()<br />
C 0() VidFIRHC 2()<br />
C 1() VidFIRHC 1()<br />
C 2() VidFIRHC 0()<br />
The corresponding registers for programming the vertical FIR coefficients (3-tap configuration) are:<br />
• VidFIRHC 4() = DSS.DISPC_VIDn_FIR_COEF_HVi[7:0] VIDFIRHC4<br />
• VidFIRHC 3() = DSS.DISPC_VIDn_FIR_COEF_Hi[31:24] VIDFIRHC3<br />
• VidFIRHC 2() = DSS.DISPC_VIDn_FIR_COEF_Hi[23:16] VIDFIRHC2<br />
• VidFIRHC 1() = DSS.DISPC_VIDn_FIR_COEF_Hi[15:8] VIDFIRHC1<br />
• VidFIRHC 0() = DSS.DISPC_VIDn_FIR_COEF_Hi[7:0] VIDFIRHC0<br />
7.6.1.3.2 Enabling<br />
The video pipeline #n is enabled/disabled by setting/resetting the<br />
DSS.DISPC_VIDn_ATTRIBUTES[0].VIDENABLE bit. While the video pipeline is enabled/disabled, the<br />
video layer is visible/not visible on the screen (LCD panel or TV set).<br />
The video up/downsampling block for the video pipeline #n is programmed by setting the<br />
DSS.DISPC_VIDn_ATTRIBUTES[6:5] VIDRESIZEENABLE bit field:<br />
1766 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
VIDFIRVINC[11:0] = 1024 x VIDORGSIZEY[10:0]<br />
The following register bit fields define the increment value of the video up/downsampling block for video<br />
pipeline n:<br />
• Vertical up/downsampling increment value (DSS.DISPC_VIDn_FIR[27:16] VIDFIRVINC bit field, with n<br />
= 1 or 2): The unsigned integer value range is [1:4096]. The software calculates the value using the<br />
following equation:<br />
VIDSIZEY[10:0]<br />
dss-E118<br />
(17)<br />
VIDFIRHINC[11:0] = 1024 x VIDORGSIZEX[10:0]<br />
VIDSIZEX[10:0]<br />
dss-E119<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• When the VIDRESIZEENABLE[1] bit is set to 1, the video vertical up/downsampling block is enabled.<br />
When set to 0, the vertical resize processing is disabled.<br />
• When the VIDRESIZEENABLE[0] bit is set to 1, the video horizontal up/downsampling block is<br />
enabled. When set to 0, the horizontal resize processing is disabled.<br />
• When the VIDRESIZEENABLE[1:0] is set to 0x3, both horizontal and vertical resize processing are<br />
enabled.<br />
NOTE:<br />
7.6.1.3.3 Factor<br />
NOTE:<br />
• Set a valid configuration before enabling the video up/downsampling block.<br />
• Vertical and horizontal downsampling are limited to a 0.25 resize factor. When<br />
processing a down-scaling with a vertical factor between 0.5 and 0.25, a 5-tap filter<br />
configuration must be used. See Section 7.6.1.3.5 for more information concerning the<br />
filter coefficients.<br />
• If the VIDFIRVINC[11:0] bit field value is greater than 4096, it is clipped to 4096. If<br />
VIDSIZEY[10:0] equals 0x1, VIDSIZEY[10:0] is replaced by 0x2 in the previous<br />
equation.<br />
• The VIDORGSIZEY[10:0] and VIDSIZEY[10:0] bit field values must be programmed with<br />
the value desired minus 1.<br />
• Horizontal up/downsampling increment value (the DSS.DISPC_VIDn_FIR[11:0] VIDFIRHINC bit field,<br />
with n = 1 or 2): The unsigned integer value range is [1:4096]. The software calculates the value using<br />
the following equation:<br />
NOTE:<br />
7.6.1.3.4 Initial Phase<br />
• If the VIDFIRHINC[11:0] bit field value is greater than 4096, it is clipped to 4096. If<br />
VIDSIZEX[10:0] equals 1, VIDSIZEX[10:0] is replaced by 2 in the previous equation.<br />
• The VIDORGSIZEX[10:0] and VIDSIZEX[10:0] bit field values must be programmed with<br />
the value desired minus 1.<br />
• Vertical up/downsampling accumulator value DSS.DISPC_VIDn_ACCUl[25:16] VIDVERTICALACCU<br />
bit fields<br />
The unsigned integer value range is [0:1023]. The accumulator value indicates on which phase the<br />
vertical filtering starts. The value 0 indicates that the phase 0 is the first phase used by the hardware to<br />
generate the first data.<br />
• Vertical up/downsampling accumulator value DSS.DISPC_VIDn_ACCUl[9:0] VIDHORIZONTALACCU<br />
bit fields<br />
The unsigned integer value range is [0:1023]. The accumulator value indicates on which phase the<br />
horizontal filtering starts. The value 0 indicates that the phase 0 is the first phase used by the hardware<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
(18)<br />
1767
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
to generate the first data<br />
Table 7-78 lists the vertical/horizontal accumulator values and phases<br />
Table 7-78. Vertical/Horizontal Accumulator Phase<br />
Accumulator Value Phases<br />
0 0<br />
128 1<br />
256 2<br />
384 3<br />
512 4<br />
640 5<br />
768 6<br />
896 7<br />
NOTE: For LCD output, the initial phase is always 0 (horizontal and vertical.) For TV output, the<br />
vertical phases (odd and even) can be nonzero values.<br />
7.6.1.3.5 Coefficients<br />
• Vertical up/downsampling coefficients (DSS.DISPC_VIDn_FIR_COEF_HVi and<br />
DSS.DISPC_VIDn_FIR_COEF_V)<br />
The 3-tap vertical up/downsampling coefficients are defined in DSS.DISPC_VIDn_FIR_COEF_HVi<br />
registers. There are eight registers for the eight phases with three coefficients for each of them so a<br />
total of 24 programmable coefficients for the vertical up/downsampling block. Each register contains<br />
two 8-bit signed coefficients and one 8-bit unsigned coefficient (central one).<br />
In addition, there are 2-tap vertical up/downsampling coefficients defined in<br />
DSS.DISPC_VIDn_FIR_COEF_Vi registers. There are eight registers for the eight phases with two<br />
coefficients for each of them so a total of 16 programmable coefficients for the vertical<br />
up/downsampling block used in addition of the 3-tap registers defined above. Each register contains<br />
two 8-bit signed coefficients (C 22() and C 00()).<br />
In case of 5-tap configuration, both sets of registers, DSS.DISPC_VIDn_FIR_COEF_HVi and<br />
DSS.DISPC_VIDn_FIR_COEF_V, are used. In case of 3-tap configuration, only one set of registers,<br />
DSS.DISPC_VIDn_FIR_COEF_HV, is used.<br />
• Horizontal up/downsampling coefficients (DSS.DISPC_VIDn_FIR_COEF_Hi and<br />
DSS.DISPC_VIDn_FIR_COEF_HV)<br />
The 5-tap horizontal up/downsampling coefficients are defined in DSS.DISPC_VIDn_FIR_COEF_Hi<br />
and DSS.DISPC_VIDn_FIR_COEF_HVi registers. There are eight registers for the eight phases with<br />
five coefficients for each register, for a total of 40 programmable coefficients for the horizontal<br />
up/downsampling block.<br />
Each DSS.DISPC_VIDn_FIR_COEF_Hi register contains three 8-bit signed coefficients and one 8-bit<br />
unsigned coefficient (central one), and each DSS.DISPC_VIDn_FIR_COEF_HVi contains one 8-bit<br />
signed coefficient.<br />
Table 7-79 through Table 7-84 give the programmable coefficients for the FIR up/downsampling filters<br />
(Max-Fauque-Berthier method).<br />
7.6.1.3.5.1 Up-Sampling<br />
Table 7-79 gives the 24 coefficients to program the vertical upsampling (3-tap configuration).<br />
Table 7-79. Up-Sampling Vertical Filter Coefficients (Three Taps)<br />
Phases VidFIRVC 2() VidFIRVC 1() VidFIRVC 0()<br />
0 0 128 0<br />
1 3 123 2<br />
1768<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-79. Up-Sampling Vertical Filter Coefficients (Three Taps) (continued)<br />
Phases VidFIRVC 2() VidFIRVC 1() VidFIRVC 0()<br />
2 12 111 5<br />
3 32 89 7<br />
4 0 64 64<br />
5 7 89 32<br />
6 5 111 12<br />
7 2 123 3<br />
Table 7-80 gives the 40 coefficients to program the vertical upsampling (5-tap configuration).<br />
Table 7-80. Up-Sampling Vertical Filter Coefficients (Five Taps)<br />
Phases VidFIRVC 22() VidFIRVC 2() VidFIRVC 1() VidFIRVC 0() VidFIRVC 00()<br />
0 0 0 128 0 0<br />
1 -1 13 124 -8 0<br />
2 -2 30 112 -11 -1<br />
3 -5 51 95 -11 -2<br />
4 0 -9 73 73 -9<br />
5 -2 -11 95 51 -5<br />
6 -1 -11 112 30 -2<br />
7 0 -8 124 13 -1<br />
Table 7-81 gives the 40 coefficients to program the horizontal upsampling (5-tap configuration).<br />
Table 7-81. Up-Sampling Horizontal Filter Coefficients (Five Taps)<br />
Phases VidFIRHC 4() VidFIRHC 3( VidFIRHC 2() VidFIRHC 1() VidFIRHC 0()<br />
)<br />
0 0 0 128 0 0<br />
1 -1 13 124 -8 0<br />
2 -2 30 112 -11 -1<br />
3 -5 51 95 -11 -2<br />
4 0 -9 73 73 -9<br />
5 -2 -11 95 51 -5<br />
6 -1 -11 112 30 -2<br />
7 0 -8 124 13 -1<br />
The upsampling coefficients register configuration (vertical three taps and horizontal five taps) is the<br />
following:<br />
• DSS.DISPC_VIDn_FIR_COEF_H0 = 0x00800000<br />
• DSS.DISPC_VIDn_FIR_COEF_HV0 = 0x00800000<br />
• DSS.DISPC_VIDn_FIR_COEF_H1 = 0x0D7CF800<br />
• DSS.DISPC_VIDn_FIR_COEF_HV1 = 0x037B02FF<br />
• DSS.DISPC_VIDn_FIR_COEF_H2 = 0x1E70F5FF<br />
• DSS.DISPC_VIDn_FIR_COEF_HV2 = 0x0C6F05FE<br />
• DSS.DISPC_VIDn_FIR_COEF_H3 = 0x335FF5FE<br />
• DSS.DISPC_VIDn_FIR_COEF_HV3 = 0x2059<strong>07</strong>FB<br />
• DSS.DISPC_VIDn_FIR_COEF_H4 = 0xF74949F7<br />
• DSS.DISPC_VIDn_FIR_COEF_HV4 = 0x00404000<br />
• DSS.DISPC_VIDn_FIR_COEF_H5 = 0xF55F33FB<br />
• DSS.DISPC_VIDn_FIR_COEF_HV5 = 0x<strong>07</strong>5920FE<br />
• DSS.DISPC_VIDn_FIR_COEF_H6 = 0xF5701EFE<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1769
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
• DSS.DISPC_VIDn_FIR_COEF_HV6 = 0x056F0CFF<br />
• DSS.DISPC_VIDn_FIR_COEF_H7 = 0xF87C0DFF<br />
• DSS.DISPC_VIDn_FIR_COEF_HV7 = 0x027B0300<br />
NOTE: In this case, the DSS.DISPC_VIDn_FIR_COEF_Vi registers are not used.<br />
The upsampling coefficients register configuration (both vertical and horizontal five taps) is the following:<br />
• DSS.DISPC_VIDn_FIR_COEF_H0 = 0x00800000<br />
• DSS.DISPC_VIDn_FIR_COEF_HV0 = 0x00800000<br />
• DSS.DISPC_VIDn_FIR_COEF_V0 = 0x00000000<br />
• DSS.DISPC_VIDn_FIR_COEF_H1 = 0x0D7CF800<br />
• DSS.DISPC_VIDn_FIR_COEF_HV1 = 0x0D7CF8FF<br />
• DSS.DISPC_VIDn_FIR_COEF_V1 = 0x0000FF00<br />
• DSS.DISPC_VIDn_FIR_COEF_H2 = 0x1E70F5FF<br />
• DSS.DISPC_VIDn_FIR_COEF_HV2 = 0x1E70F5FE<br />
• DSS.DISPC_VIDn_FIR_COEF_V2 = 0x0000FEFF<br />
• DSS.DISPC_VIDn_FIR_COEF_H3 = 0x335FF5FE<br />
• DSS.DISPC_VIDn_FIR_COEF_HV3 = 0x335FF5FB<br />
• DSS.DISPC_VIDn_FIR_COEF_V3 = 0x0000FBFE<br />
• DSS.DISPC_VIDn_FIR_COEF_H4 = 0xF74949F7<br />
• DSS.DISPC_VIDn_FIR_COEF_HV4 = 0xF7404000<br />
• DSS.DISPC_VIDn_FIR_COEF_V04 = 0x000000F7<br />
• DSS.DISPC_VIDn_FIR_COEF_H5 = 0xF55F33FB<br />
• DSS.DISPC_VIDn_FIR_COEF_HV5 = 0xF55F33FE<br />
• DSS.DISPC_VIDn_FIR_COEF_V5 = 0x0000FEFB<br />
• DSS.DISPC_VIDn_FIR_COEF_H6 = 0xF5701EFE<br />
• DSS.DISPC_VIDn_FIR_COEF_HV6 = 0xF5701EFF<br />
• DSS.DISPC_VIDn_FIR_COEF_V6 = 0x0000FFFE<br />
• DSS.DISPC_VIDn_FIR_COEF_H7 = 0xF87C0DFF<br />
• DSS.DISPC_VIDn_FIR_COEF_HV7 = 0xF87C0D00<br />
• DSS.DISPC_VIDn_FIR_COEF_V7 = 0x000000FF<br />
7.6.1.3.5.2 Down-Sampling<br />
Table 7-82 gives the 24 coefficients to program the vertical downsampling (3-tap configuration).<br />
Table 7-82. Down-Sampling Vertical Filter Coefficients (Three Taps)<br />
Phases VidFIRVC 2() VidFIRVC 1() VidFIRVC 0()<br />
0 36 56 36<br />
1 40 57 31<br />
2 45 56 27<br />
3 50 55 23<br />
4 18 55 55<br />
5 23 55 50<br />
6 27 56 45<br />
7 31 57 40<br />
Table 7-83 gives the 40 coefficients to program the vertical downsampling (5-tap configuration).<br />
1770 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-83. Down-Sampling Vertical Filter Coefficients (Five Taps)<br />
Phases VidFIRVC 22() VidFIRVC 2() VidFIRVC 1() VidFIRVC 0() VidFIRVC 00()<br />
0 0 36 56 36 0<br />
1 4 40 55 31 -2<br />
2 8 44 54 27 -5<br />
3 -12 48 53 22 -7<br />
4 -9 17 52 51 17<br />
5 -7 22 53 48 12<br />
6 -5 27 54 44 8<br />
7 -2 31 55 40 4<br />
Table 7-84 gives the 40 coefficients to program the horizontal downsampling (5-tap configuration).<br />
Table 7-84. Down-Sampling Horizontal Filter Coefficients (Five Taps)<br />
Phases VidFIRHC 4() VidFIRHC 3( VidFIRHC 2() VidFIRHC 1() VidFIRHC 0()<br />
)<br />
0 0 36 56 36 0<br />
1 4 40 55 31 -2<br />
2 8 44 54 27 -5<br />
3 -12 48 53 22 -7<br />
4 -9 17 52 51 17<br />
5 -7 22 53 48 12<br />
6 -5 27 54 44 8<br />
7 -2 31 55 40 4<br />
The downsampling coefficients register configuration (vertical three taps and horizontal five taps) is the<br />
following:<br />
• DSS.DISPC_VIDn_FIR_COEF_H0 = 0x24382400<br />
• DSS.DISPC_VIDn_FIR_COEF_HV0 = 0x24382400<br />
• DSS.DISPC_VIDn_FIR_COEF_H1 = 0x28371FFE<br />
• DSS.DISPC_VIDn_FIR_COEF_HV1 = 0x28391F04<br />
• DSS.DISPC_VIDn_FIR_COEF_H2 = 0x2C361BFB<br />
• DSS.DISPC_VIDn_FIR_COEF_HV2 = 0x2D381B08<br />
• DSS.DISPC_VIDn_FIR_COEF_H3 = 0x303516F9<br />
• DSS.DISPC_VIDn_FIR_COEF_HV3 = 0x3237170C<br />
• DSS.DISPC_VIDn_FIR_COEF_H4 = 0x11343311<br />
• DSS.DISPC_VIDn_FIR_COEF_HV4 = 0x123737F7<br />
• DSS.DISPC_VIDn_FIR_COEF_H5 = 0x1635300C<br />
• DSS.DISPC_VIDn_FIR_COEF_HV5 = 0x173732F9<br />
• DSS.DISPC_VIDn_FIR_COEF_H6 = 0x1B362C08<br />
• DSS.DISPC_VIDn_FIR_COEF_HV6 = 0x1B382DFB<br />
• DSS.DISPC_VIDn_FIR_COEF_H7 = 0x1F372804<br />
• DSS.DISPC_VIDn_FIR_COEF_HV7 = 0x1F3928FE<br />
NOTE:<br />
• In this case, the DSS.DISPC_VIDn_FIR_COEF_Vi registers are not used.<br />
• In this case, the downsampling factor must be higher than 1/2.<br />
The downsampling coefficients register configuration (both the vertical and the horizontal five taps) is the<br />
following:<br />
• DSS.DISPC_VIDn_FIR_COEF_H0 = 0x24382400<br />
• DSS.DISPC_VIDn_FIR_COEF_HV0 = 0x24382400<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1771
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
• DSS.DISPC_VIDn_FIR_COEF_V0 = 0x00000000<br />
• DSS.DISPC_VIDn_FIR_COEF_H1 = 0x28371FFE<br />
• DSS.DISPC_VIDn_FIR_COEF_HV1 = 0x28371F04<br />
• DSS.DISPC_VIDn_FIR_COEF_V1 = 0x000004FE<br />
• DSS.DISPC_VIDn_FIR_COEF_H2 = 0x2C361BFB<br />
• DSS.DISPC_VIDn_FIR_COEF_HV2 = 0x2C361B08<br />
• DSS.DISPC_VIDn_FIR_COEF_V2 = 0x000008FB<br />
• DSS.DISPC_VIDn_FIR_COEF_H3 = 0x303516F9<br />
• DSS.DISPC_VIDn_FIR_COEF_HV3 = 0x3035160C<br />
• DSS.DISPC_VIDn_FIR_COEF_V3 = 0x00000CF9<br />
• DSS.DISPC_VIDn_FIR_COEF_H4 = 0x11343311<br />
• DSS.DISPC_VIDn_FIR_COEF_HV4 = 0x113433F7<br />
• DSS.DISPC_VIDn_FIR_COEF_V4 = 0x0000F711<br />
• DSS.DISPC_VIDn_FIR_COEF_H5 = 0x1635300C<br />
• DSS.DISPC_VIDn_FIR_COEF_HV5 = 0x163530F9<br />
• DSS.DISPC_VIDn_FIR_COEF_V5 = 0x0000F90C<br />
• DSS.DISPC_VIDn_FIR_COEF_H6 = 0x1B362C08<br />
• DSS.DISPC_VIDn_FIR_COEF_HV6 = 0x1B362CFB<br />
• DSS.DISPC_VIDn_FIR_COEF_V6 = 0x0000FB08<br />
• DSS.DISPC_VIDn_FIR_COEF_H7 = 0x1F372804<br />
• DSS.DISPC_VIDn_FIR_COEF_HV7 = 0x1F3728FE<br />
• DSS.DISPC_VIDn_FIR_COEF_V7 = 0x0000FE04<br />
NOTE: This configuration must be used for vertical downsampling factors between 1/2 and 1/4<br />
7.6.2 <strong>Display</strong> Low-Power Refresh Settings<br />
This section describes the display low-power refresh application on the device. The display subsystem<br />
remains active while saving power by putting unused power domains and unused modules into idle mode.<br />
This process can be expanded to include the screen saver mode in which the MPU subsystem wakes up<br />
to update the frame buffer and then returns to idle mode. On the device platform, where power<br />
consumption is of high importance, the display modes must be configured properly to achieve optimal<br />
power savings<br />
The display low-power refresh mode can be used in the following scenarios:<br />
• During the period of time when there is no application running and the backlight turns off.<br />
• Once the backlight turns off, the LCD display can be shut off or can be refreshed showing the time and<br />
date. The screen saver mode can be used to update the time every minute.<br />
This section discusses the methodology for finding optimal power savings. These settings are detailed for<br />
a 16-bit, 240 x 320 pixel QVGA LCD.<br />
7.6.2.1 <strong>Display</strong> Low-Power Refresh Overview<br />
When the device is not in idle mode, meaning all clocks are on and the power is applied to all power<br />
domains, the following activity typically occurs with respect to the display subsystem:<br />
• The MPU subsystem is processing<br />
• The display subsystem DMA controller is moving data from the SDRAM frame buffer location to the<br />
display subsystem internal FIFO.<br />
• The LCD data is being sent from the internal FIFO to the display panel.<br />
When the MPU goes into idle mode, the following activity occurs:<br />
• The display subsystem DMA controller remains active, moving data from the SDRAM frame buffer to<br />
the internal FIFO.<br />
1772 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• The SDRAM will go in and out of self-refresh between transfers.<br />
• The display subsystem internal FIFO will continue to send LCD data to the display panel.<br />
This procedure is named as the display low-power refresh scenario.<br />
NOTE: In the device, the display subsystem has its own power domain (the DSS power domain).<br />
7.6.2.2 <strong>Display</strong> <strong>Subsystem</strong> Clock<br />
7.6.2.2.1 <strong>Display</strong> <strong>Subsystem</strong> Clock Configuration<br />
The display subsystem contains two possible functional clock sources, DSS functional clock 1<br />
(DSS1_ALWON_FCLK) and DSI PLL functional clock 1 (DSI1_PLL_FCLK):<br />
• DSS1_ALWON_FCLK is sourced from DPLL4 (DPLL4_ALWON_FCLK), with several multipliers<br />
available and is configured in the PRCM.CM_CLKSEL_DSS[4:0] CLKSEL_DSS1 bit field.<br />
• DSI1_PLL_FCLK is one of the two output clocks from the DSI PLL.<br />
The pixel clock is set as either DSS1_ALWON_FCLK or DSI1_PLL_FCLK by configuring the<br />
DSS.DSS_CONTROL[0] DISPC_CLK_SWITCH bit<br />
NOTE: When the DSI PLL is in bypass mode, the DSI1_PLL_FCLK clock is the<br />
DSS2_ALWON_FCLK clock. This ensures the backward compatibility with OMAP2 devices.<br />
The LCD logic clock is determined by the DSS.DISPC_DIVISOR[23:16] LCD bit field. This divisor is used<br />
on the DSS functional clock that is selected in the DSS_CONTROL register (either DSS1_ALWON_FCLK<br />
or DSS2_ALWON_FCLK). This LCD divisor selects the logical clock frequency which is used to clock the<br />
logic in the display subsystem. For some applications there is a required minimum logical clock frequency.<br />
The lower the logical clock frequency then the lower the power consumption.<br />
The pixel clock is determined by setting the DSS.DISPC_DIVISOR[7:0] PCD bit field. This divisor is used<br />
on the LCD logic clock.<br />
In the following example, the DPLL4 clock (DPLL4_ALWON_FCLK) is enabled and running at 266 MHz:<br />
The PRCM.CM_CLKSEL2_PLL[19:8] PERIPH_DPLL_MULT bit field is set to 0x4 and the<br />
PRCM.CM_CLKSEL2_PLL[6:0] PERIPH_DPLL_DIV bit field is set to 0x1 (DPLL4 x 4/(1+1)):<br />
DPLL4_ALWON_FCLKOUT= DPLL4_ALWON_FCLK(266MHz) x 4/2 = 532 MHz<br />
NOTE: The DPLL4_ALWON_FCLOUT clock is an internal clock in DPLL4 module after the<br />
DPLL_MULT and DPLL_DIV stages. The DPLL4_M4_CLK clock is one of the DPLL4 output<br />
clocks and is the clock source for DSS1_ALWON_FCLK.<br />
The DSS.DSS_CONTROL[0] DSS_CLK_SWITCH bit is set to 0x0 to select DSS1_ALWON_FCLK as the<br />
display subsystem functional clock:<br />
DSS1_ALWON_FCLK = DPLL4_M4_CLK<br />
The PRCM.CM_CLKSEL_DSS[4:0] CLKSEL_DSS1 bit field is set to 0x08:<br />
DPLL4_ALWON_FCLKOUT (532MHz)<br />
DSS1_ALWON_FCLK = = 66.5 MHz<br />
8<br />
The DSS.DISPC_DIVISOR[23:16] LCD bit field is set to 0x01:<br />
DSS1_ALWON_FCLK(66.5MHz)<br />
LogicClock = = 66.5 Mhz<br />
1<br />
dss-E121<br />
The DSS.DISPC_DIVISOR[6:0] PCD bit field is set to 0x0C:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-E120<br />
(19)<br />
(20)<br />
1773
LogicClock(66.5MHz)<br />
PixelClock = = 5.54 Mhz<br />
12<br />
dss-E122<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
7.6.2.2.1.1 Pixel Clock Frequency Settings to Reduce Power Consumption<br />
Power consumption is reduced when a low pixel clock frequency is used. If the clock frequency is set too<br />
low, however, the frames-per-second (FPS) are reduced. This can result in visible flickering on the screen<br />
each time the screen is refreshed. To avoid electrical polarization problems, refer to the appropriate LCD<br />
panel datasheet to determine the maximum range of pixel clock frequency variation. To save power,<br />
therefore, the pixel clock frequency during low-power mode must be set as low as possible, but high<br />
enough to eliminate visible flickering<br />
7.6.2.2.1.2 <strong>Display</strong> <strong>Subsystem</strong> Divider Settings to Reduce Power Consumption<br />
The pixel clock is determined by the DSS.DISPC_DIVISOR[7:0] PCD and DSS.DISPC_DIVISOR[23:16]<br />
LCD settings. In most cases, the LCD[7:0] bit field is set to 0x1 and the PCD[7:0] bit field is used as the<br />
main divider. To reduce power consumption, software users should investigate if the<br />
DSS.DISPC_DIVISOR[23:16] LCD bit field can be set to a value other than 0x1 and then decrease<br />
DSS.DISPC_DIVISOR[7:0] PCD bit field value. For example, if the desired pixel clock is 1.625 MHz with a<br />
13-MHz functional clock, then this pixel clock can be achieved by setting DSS.DISPC_DIVISOR[23:16]<br />
LCD to 0x1 and DSS.DISPC_DIVISOR[7:0] PCD to 0x8. The same pixel clock can be achieved by setting<br />
DSS.DISPC_DIVISOR[23:16] LCD to 0x2 and DSS.DISPC_DIVISOR[7:0] PCD to 0x4.<br />
7.6.2.2.2 <strong>Display</strong> <strong>Subsystem</strong> Clock Enable<br />
To take the DSS out of reset, all DSS-related clocks must be enabled, and the DPLL4 clock must be<br />
enabled. After taking the DSS out of reset, these clocks can be disabled if they are not used. The<br />
following clocks must be enabled before the DSS can come out of reset:<br />
• PRCM.CM_FCLKEN_DSS[0] EN_DSS1 = 0x1<br />
• PRCM.CM_FCLKEN_DSS[1] EN_DSS2 = 0x1<br />
• PRCM.CM_FCLKEN_DSS[2] EN_TV = 0x1<br />
• PRCM.CM_ICLKEN_DSS[0] EN_DSS = 0x1<br />
• PRCM.CM_CLKEN_PLL[18:16] EN_PERIPH_DPLL = 0x7<br />
Once these clocks are enabled, the display subsystem can be taken out of reset.<br />
The following sections explain the display low-power mode configuration options, which are determined by<br />
product requirements (LCD panel type).<br />
7.6.2.3 DPLL4 in Low-Power Mode<br />
For optimal power savings in low-power mode, DPLL4 can be put into low-power stop mode. Thus the<br />
DSS1_ALWON_FCLK clock cut when DPLL4 is in low-power stop mode. Software users must switch from<br />
DSS1_ALWON_FCLK to DSI1_PLL_FCLK by setting the DSS.DSS_CONTROL[0] DISPC_CLK_SWITCH<br />
bit to 0x1.<br />
NOTE: Before switching to DSI1_PLL_FCLK, the DSI PLL and the HS divider must be programmed<br />
and the DSI PLL must be locked.<br />
DPLL4 can be put in low-power stop mode in either of the following methods:<br />
• Manually: When setting the PRCM.CM_CLKEN_PLL[18:16] EN_PERIPH_DPLL bit to 0x1.<br />
• Automatically: When setting the PRCM.CM_AUTOIDLE_PLL[5:3] AUTO_PERIPH_DPLL bit field to<br />
0x1. DPLL4 is automatically put in low-power stop mode when none of the 96- MHz and 54- MHz<br />
clocks are required anymore. DPLL4 is also restarted automatically.<br />
Software users must remember to change the clock configuration after enabling DPLL4 when leaving<br />
low-power mode by setting the DSS.DSS_CONTROL[0] DISPC_CLK_SWITCH bit to 0x0. The<br />
DSS1_ALWON_FCLK clock will be selected.<br />
1774 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
(21)
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Lock time must be considered before disabling the DSS1_ALWON_FCLK clock.<br />
7.6.2.4 Autoidle and Smart Idle<br />
7.6.2.4.1 Autoidle<br />
To further save power consumption, the autoidle feature at the module can be enabled for the active<br />
modules. For example, the PRCM and the system control modules are active during this mode. By<br />
enabling the autoidle feature, the clocks at the module level are gated when they are not needed.<br />
The RFBI, display controller, and L4 interfaces can internally gate their clocks to decrease power<br />
consumption if no transaction is present on the related bus. The following bits must be set to enable this<br />
functionality:<br />
• DSS.DSS_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the display subsystem<br />
• DSS.RFBI_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the RFBI<br />
• DSS.DISPC_SYSCONFIG[0] AUTOIDLE bit (1: Autoidle; 0: Clock free-running) for the display<br />
controller<br />
• DSS.DISPC_CONFIG[9] FUNCGATED bit (1: Functional clocks gated enabled, 0: Functional clocks<br />
gated disabled) for the display controller<br />
7.6.2.4.2 Smart-Idle<br />
The smart-idle feature can be enabled to allow the module to enter idle when the clocks are not needed.<br />
The smart-idle feature can be enabled for the display subsystem submodules to further save power<br />
consumption:<br />
• <strong>Display</strong> subsystem: DSS.DSS_SYSCONFIG[4:3] SIDLEMODE<br />
• <strong>Display</strong> controller: DSS.DISPC_SYSCONFIG[4:3] SIDLEMODE<br />
• RFBI: DSS.RFBI_SYSCONFIG[4:3] SIDLEMODE<br />
7.6.2.5 FIFO Thresholds<br />
The display subsystem internal FIFO is used to move data to the LCD panel. This FIFO is filled by the<br />
display subsystem DMA controller. The DMA controller is triggered to start and stop based on two<br />
thresholds:<br />
• DSS.DISPC_GFX_FIFO_THRESHOLD[11:0] GFXFIFOLOWTHRESHOLD<br />
• DSS.DISPC_GFX_FIFO_THRESHOLD[27:16] GFXFIFOHIGHTHRESHOLD<br />
When the level of the FIFO reaches the low threshold, the internal DMA controller begins to fill the FIFO<br />
With the data in the frame buffer. Once the amount of pixel data reaches the high threshold, the internal<br />
DMA controller stops.<br />
7.6.2.5.1 FIFO Threshold Settings to Reduce Power Consumption<br />
Power consumption is reduced by increasing the difference between the high and low FIFO threshold<br />
levels, thereby leaving the SDRAM in self-refresh for a longer period of time. To perform this reduction,<br />
consider the following:<br />
• The low FIFO threshold level must be as low as possible, but not low enough to cause any underflow.<br />
• The high FIFO threshold level must not exceed the FIFO size minus one burst. A value above this limit<br />
results in the DMA controller trying to fill the FIFO to a level that cannot be reached, which will increase<br />
power consumption.<br />
• The difference between high and low FIFO threshold levels must not be less than one burst size.<br />
These settings do not reduce power consumption because the SDRAM never goes into self-refresh,<br />
but they will avoid underflow.<br />
7.6.2.6 Vertical and Horizontal Timings<br />
The vertical and horizontal timings and the pixel clock speed determine the number of frames updated per<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1775
f ps =<br />
1<br />
[(Hsw + 1) + (Hf p + 1) + 240 + (Hbp + 1)] x [(Vsw + 1) + Vf p + 320 + Vbp)] x (PCLK)<br />
VSYNC<br />
HSYNC<br />
HSYNC<br />
(zoom)<br />
PCLK<br />
Vsw = 2<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
second. Figure 7-152 shows the timings for a 240 x 320 pixel QVGA LCD panel. If the pulse width (also<br />
called blanking) and the front porch parameters are increased, more setup time is added before the data<br />
is transferred. This additional time is beneficial for delaying the data transfer if the data is not ready<br />
because of bandwidth limitations. Care must be taken to determine the fps when modifying these<br />
parameters.<br />
Use the following formula to determine the fps for a 240 x 320 QVGA LCD:<br />
With:<br />
• Hsw: DSS.DISPC_TIMING_H[7:0] HSW bit field value<br />
• Hfp: DSS.DISPC_TIMING_H[19:8] HFP bit field value<br />
• Hbp: DSS.DISPC_TIMING_H[31:20] HBP bit field value<br />
• Vsw: DSS.DISPC_TIMING_V[7:0] VSW bit field value<br />
• Vfp: DSS.DISPC_TIMING_V[19:8] VFP bit field value<br />
• Vbp: DSS.DISPC_TIMING_V[31:20] VBP bit field value<br />
• PCLK: Pixel clock period<br />
The horizontal (Hsw) and vertical (Vsw) pulse widths and the horizontal front (Hfp) and back (Hbp)<br />
porches are increased by 1 because the value is programmed as the desired value minus 1.<br />
Figure 7-152. QVGA LCD Timings<br />
1 frame<br />
Vfp = 9 320H 1H Vbp = 6<br />
…………<br />
Hsw = 2 Hfp = 3 240 PCLK Hbp = 1<br />
……..<br />
16 bits of data are sent to<br />
the LCD every clock<br />
during this period.<br />
dss-E123<br />
Zoom in to view<br />
1 Hsync cycle<br />
fps =<br />
[(2 + 1) + 4 + 240 + 2] x [(2 + 1) + 9 + 320 + 6] x 166.67 x 10 -9<br />
The fps for the example of 6-MHz pixel clock with the setting shown in Figure 7-152 is as follows:<br />
1<br />
fps = 71.57Hz (23)<br />
dss-E125<br />
7.6.2.6.1 Horizontal and Vertical Timing Settings to Reduce Power Consumption<br />
The number of fps that the screen is refreshed is also determined by the vertical and horizontal timings.<br />
Consequently, longer timings between frames (blanking periods) reduce the fps and reduce average<br />
power consumption. Shorter blanking periods increase fps and increases power consumption. If the<br />
blanking between frames is too small, a FIFO underflow may occur.<br />
1776 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-124<br />
(22)
DSI PLL<br />
DSI_PLL_REFCLK 2 REGM CLKin( MHz)<br />
DSI _ PHY ( MHz)<br />
<br />
REGN 1 HIGHFREQ 1<br />
HSDIVIDER<br />
/REGM3 + 1<br />
/REGM4 + 1<br />
DSI1_PLL_FCLK<br />
DSI2_PLL_FCLK<br />
Equation 1<br />
N * T VP_CLK = T L * TTxByteClkHS<br />
dss-301<br />
Equation 2<br />
R = TTxByteClkHS / TVP_PCLK dss-302<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
7.6.3 How to Configure the DSI PLL in Video Mode<br />
Figure 7-153 shows a global overview of the DSI clock tree when used in video mode.<br />
Figure 7-153. DSI Clock Tree in Video Mode<br />
CLKIN4DDR<br />
DISP Controller DSI protocol<br />
DSI_PHY<br />
VP_PCLK<br />
/LCD /PCD T<br />
VP_CLK<br />
DSIFCLK<br />
TxByteClkHS<br />
The settings of the DSI PLL registers can be summarized by the following equations.<br />
where<br />
T L = T HS + HSA DSI + T HE + HFP DSI + (WC + 6)/NDL + HBP DSI<br />
N is an integer<br />
NDL: Number of data lane<br />
WC: Word count or payload in bytes<br />
T HS and T HE are equal to 4/NDL and 0 if they are disabled.<br />
HSA DSI is HSA period in video mode.<br />
/16 /4<br />
T HS is the length of HSYNC start short packet in number of byte clock cycles (TxByteClkHS).<br />
T HE is the length of HSYNC end short packet in number of byte clock cycles (TxByteClkHS).<br />
HBP DSI is HBP period in video mode.<br />
HFP DSI is HFP period in video mode.<br />
NOTE: HSA DSI timing is not used and does not have to be programmed when HE short packet is<br />
not generated.<br />
To synchronize DISPC and DSI Protocol Engine, users should follow the ratio R between TxByteClkHS<br />
and VP_PCLK as listed in Table 7-85.<br />
Table 7-85. Ratio R<br />
Number of data lanes Pixel format Ratio R<br />
1 16-bits pixel 1/2<br />
1 18-bits pixel 4/9<br />
1 24-bits pixel 1/3<br />
Data Lane<br />
Bit Clock<br />
Clock Lane<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1777<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-300<br />
(24)<br />
(25)
All cases are covered by:<br />
FVP_PCLK * bits_per_pixel = FTxByteClkHS* NDL * 8<br />
dss-310<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Equation 3<br />
(HSADISPC + HFPDISPC + PPL + HBPDISPC ) * TVP_PCLK = (4/NDL + HFPDSI + (WC + 6)/NDL + HBPDSI)* TTxByteClkHS Equation 4<br />
HFPDSI = ((HFPDISPC * bits_per_pixel) / (NDL * 8)) - (2 / NDL)<br />
Example<br />
REGM = (REGN+1)*F CLKIN4DDR / (2 * FDSI_PLL_REFCLK) REGM = 150<br />
dss-318<br />
Table 7-85. Ratio R (continued)<br />
Number of data lanes Pixel format Ratio R<br />
The desired performances are:<br />
2 16-bits pixel 1<br />
2 18-bits pixel 8/9<br />
2 24-bits pixel 2/3<br />
• Clock lane at 150 MHz<br />
• RGB24-888<br />
• 1-data lane<br />
• LCD size 480*640 with HSA _DISP = HFP _DISP = HBP _DISP =20, VSA _DISP = VFP _DISP = VBP _DISP =2<br />
Step 1. Determine REGM and REGN<br />
To obtain correct stability, Fint must be kept between 0.032 MHz and 52 MHz . In this case, Fint is<br />
maintained at 2 MHz. For more information, see the DSI PLL programming model.<br />
REGN = (F DSI_PLL_REFCLK / F int)<br />
– 1<br />
REGN = 12<br />
Where DSS2_ALWON_FCLK= 26 MHz is used as a reference clock for FDSI_PLL_REFCLK Step 2. Determine VP_PCLK and TxByteClkHS clocks.<br />
TxByteClkHS frequency is equal to 37.5 MHz. With ratio R equal to 1/3, VP_PCLK frequency is equal<br />
to 12,5 MHz. The frame rate can be estimated by:<br />
Frame rate = F VP_PCLK / (HSA DISPC + HFP DISPC+ PPL + HBP DISPC ) * (VSA DISPC + VFP DISPC+ LPP+ VBP DISPC )<br />
dss-309<br />
Frame rate = 12,5 MHz / (540 ) * (646 )<br />
Step 3. Determine LCD, PCD and REGM3<br />
T CLKIN4DDR = T TxByteClkHS / 16 = T VP_PCLK / ((REGM3 + 1) * LCD * PCD)<br />
((REGM3 + 1) * LCD * PCD) = 16 * 3<br />
Frame rate = 35,83 frame/sec dss-323<br />
dss-315<br />
If LCD and PCD are set to 1 and 3 respectively, REGM3 is equal to 15.<br />
Step 4. Verify N as integer<br />
Firstly, TL must be determined<br />
(HSADISPC + HFPDISPC + PPL + HBPDISPC ) * TVP_PCLK / TTxByteClkHS = TL= 1620<br />
From Equation 1,<br />
1778 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-316<br />
dss-303<br />
(26)<br />
(27)
N is an integer.<br />
Step 5. Determine HFP and HBP of the DSI protocol engine<br />
From Equation 3,<br />
(HSA DISPC + HFP DISPC + PPL + HBP DISPC ) * TVP_PCLK<br />
/ T TxByteClkHS) - (4/NDL + (WC + 6)/NDL) = HFP DSI + HBPDSI<br />
HFP + HBP = 170<br />
DSI DSI<br />
From Equation 4,<br />
HFP DSI= ((HFP DISPC*<br />
bits_per_pixel) / NDL* 8)) - (2 / NDL)<br />
HFP = 58<br />
DSI<br />
HBP = 170 - 58 = 112<br />
DSI<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
N * T VP_CLK = T L * T TxByteClkHS<br />
N = T TxByteclkHS * T L/T VP_CLK = T L/(R*PCD)<br />
N = 14580<br />
7.6.4 DSI Video Mode Using the DISPC Video Port<br />
This section details the basic programming model of video mode using the DISPC video port.<br />
The DSI interface is connected to an external MIPI display controller and the following parameters are<br />
used:<br />
• 1 data lane: NDL = 1<br />
• Clock lane at 150 MHz (DSI_DDR_CLK)<br />
• LCD size is 640 x 480:<br />
dss-321<br />
– 480 pixels per line (PPL)<br />
– 680 lines per panel (LPP)<br />
• <strong>Display</strong> controller input format: YUV<br />
• <strong>Display</strong> controller output format: RGB888, that is 24 bits per pixel (BPP)<br />
• Word Count: WC = 3 x PPL<br />
• DSS2_ALWON_FLCK=26 MHz is used as a reference clock for DSI PLL<br />
• Virtual channel 0 (VC0) is used for video mode.<br />
• Interleaving is not used.<br />
• It is assumed that all modules used in these programming models are in after-POR state.<br />
Figure 7-154 is an overview of the connections in the display subsystem.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-317<br />
1779
L4 interconnect<br />
L3 interconnect<br />
PRCM<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
MPU subsystem<br />
interrupt controller<br />
M_IRQ_25<br />
IVA2.2 subsystem<br />
interrupt controller<br />
IVA2_IRQ[13]<br />
STANDBY/WAIT<br />
handshake<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
DSI1_PLL_FCLK<br />
DSI2_PLL_FCLK<br />
DSS_IRQ<br />
<strong>Display</strong><br />
controller<br />
<strong>Display</strong> subsystem<br />
Data<br />
Syncs<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Figure 7-154. Overview<br />
DSI<br />
protocol<br />
engine<br />
DSI<br />
PLL<br />
controller<br />
Controls<br />
Data<br />
Status<br />
PLL control<br />
The steps listed in Table 7-86 are described in the following sections.<br />
Steps Section<br />
Table 7-86. Main Steps<br />
DSI<br />
complex I/O<br />
DSI PLL<br />
HS divider<br />
Device<br />
GPIO87 Reset<br />
dsi_dx0<br />
dsi_dy0<br />
dsi_dx1<br />
dsi_dy1<br />
Configure DSS clocks Section 7.6.4.1, <strong>Display</strong> <strong>Subsystem</strong> Clock Configuration<br />
Configure the DSI and DSI PLL Section 7.6.4.2, Configure DSI, DSI PLL and Complex I/O<br />
Configure the external MIPI display controller Section 7.6.4.3, Initialization of the External MIPI <strong>Display</strong> Controller<br />
Configure the DISPC Section 7.6.4.4, Configure the DISPC<br />
Enable video mode using the DISPC video port Section 7.6.4.5, Enable Video Mode Using the DISPC Video Port<br />
The programming model must be followed in the order of the following sections.<br />
7.6.4.1 <strong>Display</strong> <strong>Subsystem</strong> Clock Configuration<br />
Table 7-87 lists the steps required to enable the clocks.<br />
LCD<br />
External<br />
display<br />
controller<br />
1780 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-330
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-87. PRCM Registers<br />
Steps Registers Value<br />
Set the divided DPLL value for DSS1. CM_CLKSEL_DSS[4:0] CLKSEL_DSS1 0x9<br />
Disable autoidle mode. CM_AUTOIDLE_DSS[31:0] 0x0<br />
Domain sleep is disabled. CM_SLEEPDEP_DSS[31:0] 0x0<br />
Automatic transition between active and inactive are disabled. CM_CLKSTCTRL_DSS[31:0] 0x0<br />
Enable DSS1, DSS2 and TV clock (DSS1_ALWON_FCLK,<br />
DSS2_ALWON_FCLK and TV_CLK). TV_CLK is only need for correct CM_FCLKEN_DSS[31:0] 0x7<br />
Reset.<br />
Enable the subsystem interface clock (DSS_L3_ICLK and DSS_L4_ICLK). CM_ICLKEN_DSS[31:0] 0x1<br />
7.6.4.2 Configure DSI, DSI PLL and Complex I/O<br />
7.6.4.2.1 Reset DSI Modules<br />
Table 7-88 lists the steps required to reset the DSI modules.<br />
Table 7-88. Resets<br />
Steps Registers Value<br />
Reset IRQ status. DSI_IRQSTATUS[31:0] 0x0<br />
OCP and functional clock are maintained during wakeup, smart idle, and<br />
reset DSI.<br />
DSI_SYSCONFIG[31:0] 0x312<br />
Wait until RESET_DONE ≠ 0. DSI_SYSSTATUS[0] RESET_DONE Read 0x1<br />
7.6.4.2.2 Set Up DSI DPLL<br />
Table 7-89 lists the steps required to configure DSI PLL.<br />
Table 7-89. DSI PLL Configuration Registers<br />
Steps Registers Value<br />
Turn on PLL and HSDIVIDER. DSI_CLK_CTRL[31:30] PLL_PWR_CTRL 0x2<br />
Wait until PLL_PWR_STATUS = 0x2. DSI_CLK_CTRL[29:28] PLL_PWR_STATUS Read 0x2<br />
DSI_PLL_CONFIGURATION1[26:23]<br />
See the calculation following this table. 5<br />
DSIPROTO_CLK_DIV<br />
DSI_PLL_CONFIGURATION1[22:19]<br />
See the calculation following this table. 15<br />
DSS_CLOCK_DIV<br />
DSI_PLL_CONFIGURATION1[18:8]<br />
See the calculation following this table. 150<br />
DSI_PLL_REGM<br />
DSI_PLL_CONFIGURATION1[7:1]<br />
See calculation following this table. 12<br />
DSI_PLL_REGN<br />
Enable PLLStopMode. DSI_PLL_CONFIGURATION1[0] 0x1<br />
The DSI protocol engine clock divider, DSS clock divider,<br />
CLKIN4DDR, and PLL reference clock are enabled. PLL<br />
internal reference frequency is between 0.032 MHz and 52<br />
MHz.<br />
DSI_PLL_CONFIGURATION2[31:0] 0x5600E<br />
Manual mode DSI_PLL_CONTROL[31:0] 0x0<br />
Request PLL locking sequence. DSI_PLL_GO[0] DSI_PLL_GO 0x1<br />
Read until DSI_PLL_GO = 0 DSI_PLL_GO[0] DSI_PLL_GO Read 0x0<br />
PLL is locked. DSI_PLL_STATUS[1] DSI_PLL_LOCK Read 0x1<br />
Turn on PLL and HSDIVIDER; the DSI functional clock 30-MHz<br />
sync is rising/rising; the DSIStopClk signal is automatically<br />
asserted/deasserted; the L3_ICLK clock to the DSI complex I/O<br />
is not gated; and LPCLKDIVISOR = 8<br />
DSI_CLK_CTRL[31:0] 0x8024 4008<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1781<br />
Copyright © 2010–2011, Texas Instruments Incorporated
RegM4 = 5<br />
2. Determine LCD, PCD, and REGM3:<br />
Calculate the divider value for DSS clock source: Same as Step 3.<br />
RegM3 ((BPP 2)/(DISPC _LCD DISPC _PCD NDL)) 1<br />
RegM3 15<br />
3. Calculate N Divider for PLL:<br />
FCLKIN4DDR FCLKIN 4<br />
RegN (FDSI_PLL _REFCLK /F INt) 1<br />
FDSI_PLL _REFCLK 26 MHz (system clock)<br />
Fint 2 MHz (reduce PLL lock time)<br />
RegN 12<br />
dss-E128<br />
dss-E127<br />
4. Calculate M divider for PLL:<br />
RegM ((RegN 1) (FCLKIN4DDR /(2 FDSI_PLL<br />
_REFCLK)))<br />
FCLKIN4DDR 4 150<br />
MHz<br />
RegM 150<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
1. Calculate the divider value for the DSI protocol engine clock source:<br />
RegM4 = FCLKIN4DDR/DSI2_PLL_FCLK – 1<br />
FCLKIN4DDR = 4 x FCLKIN<br />
7.6.4.2.3 Switch to DSI PLL Clock Source<br />
Select the DSI_PLL1 clock as the DISPC functional clock, and select the DSI_PLL2 clock as the DSI<br />
functional clock: Set DSS_CONTROL to 0x3.<br />
7.6.4.2.4 Set Up DSI Protocol Engine<br />
7.6.4.2.4.1 Set Up DSI Control Registers<br />
Table 7-90 lists the steps to set up the DSI control registers. Table 7-91 lists the steps to set up the DSI<br />
complex I/O registers.<br />
dss-E129<br />
Table 7-90. DSI Control Registers<br />
Steps Registers Value<br />
Enable SYNCLOST event. DSI_IRQENABLE[31:0] 0x4 0000<br />
Set PACKET_SENT_IRQ_EN. DSI_VC0_IRQENABLE[31:0] 0x4<br />
While the HSYNC START pulse is detected, the associated short<br />
packet HSYNC START is generated.<br />
While the VSYNC START pulse is detected, the associated short<br />
packet VSYNC START is generated.<br />
DSI_CTRL[17] VP_HSYNC_START 0x1<br />
DSI_CTRL[15] VP_VSYNC_START 0x1<br />
Set the trigger reset mode to immediate. DSI_CTRL[14] TRIGGER_RESET_MODE 0x1<br />
Activate two line buffers. DSI_CTRL[13:12] LINE_BUFFER 0x2<br />
HSYNC signal on the video port is active high. DSI_CTRL[10] VP_HSYNC_POL 0x1<br />
VSYNC on the video port is active high. DSI_CTRL[11] VP_VSYNC_POL 0x1<br />
Set the Data Enable signal on the video port as active high. DSI_CTRL[9] VP_DE_POL 0x1<br />
Set the size of the video port data bus for the RGB format: 0x2<br />
for RGB 888.<br />
VP_CLK_RATIO is not used if video port is used to provide data<br />
in video mode<br />
DSI_CTRL[7:6] VP_DATA_BUS_WIDTH 0x2<br />
DSI_CTRL[4] VP_CLK_RATIO 0x0<br />
1782<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-90. DSI Control Registers (continued)<br />
Steps Registers Value<br />
Set the arbitration scheme for granting the VC pending ready<br />
requests in the TX FIFO as Sequential Scheme.<br />
DSI_CTRL[3] TX_FIFO_ARBITRATION 0x1<br />
Enable the ECC check for the received header. DSI_CTRL[2] ECC_RX_EN 0x1<br />
Table 7-91. DSI Complex I/O Registers<br />
Steps Registers Value<br />
GOBIT, complex I/O power ON, select data, and clock position DSI_COMPLEXIO_CFG1 0x4800 0032<br />
Clear Reg DSI_COMPLEXIO_IRQSTATUS 0xC3F39CE7<br />
Disable IRQ DSI_COMPLEXIO_IRQENABLE 0x0<br />
Enable I/F DSI_CTRL[0] IF_EN 0x1<br />
Disable I/F DSI_CTRL[0] IF_EN 0x0<br />
Wait until IF_EN = 0 DSI_CTRL[0] IF_EN Read 0x0<br />
Enable Low Power clock DSI_CLK_CTRL[20] LP_CLK_ENABLE 0x1<br />
Reset is done. DSI_COMPLEXIO_CFG1[29] RESET_DONE Read 0x1<br />
Power control is on. DSI_COMPLEXIO_CFG1[26:25] PWR_STATUS Read 0x1<br />
Reset is complete. DSI_SYSSTATUS[0] RESETDONE Read 0x1<br />
7.6.4.2.4.2 Configure DSI Timing and Virtual Channels<br />
Table 7-92 lists the steps to configure DSI timing and the virtual channels.<br />
Table 7-92. DSI Timing Registers<br />
Steps Registers Value<br />
STOP_STATE_COUNTER_IO = 0x999 DSI_TIMING1[31:0] 0x0000 0999<br />
HS_TX_TO_X8, HS_TX_TO_COUNTER = 0x0FD2,<br />
LP_RX_TO_X16, LP_RX_TO_COUNTER = 0x00CD<br />
DSI_TIMING2[31:0] 0x2FD2 40CD<br />
(HSA24)|(HFP12)|HBP DSI_VM_TIMING1[31:0] 0x0000 700A<br />
(WINDOW_SYNC24)|(VSA16)|(DSI_VFP8)|VBP DSI_VM_TIMING2[31:0] 0x0401 0101<br />
(TL16)|DSI_VACT DSI_VM_TIMING3[31:0] 0x05BB 0280<br />
(ENTER_HS_MODE_LATENCY16)|EXIT_HS_MODE_LATENCY DSI_VM_TIMING7[31:0]<br />
0x0000<br />
C000A<br />
DDR_CLK_PRE8|DDR_CLK_POST DSI_CLK_TIMING[31:0] 0x0000 0F0B<br />
HS speed, ECC generation for the Transmit, Enable CheckSum<br />
generation for the Payload.<br />
• Freq TxByteClkHS:<br />
FHSB = FCLKIN4DDR/16<br />
FVPP = FCLKIN4DDR/((RegM3 + 1) × DISPC_LCD * DISPC_PCD)<br />
DSI_VC0_CTRL[31:0] 0x2080 0390<br />
FVP = FCLKIN4DDR/(RegM3 + 1) (28)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1783
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
• Length of the line in video mode in Nb of byte clock cycles (TxByteClkHS):<br />
TL = FHSB/FVPP × (DISPC_HSA + DISPC_HFP + PPL + DISPC_HBP)<br />
TL1f = (BPP/(8 × NDL)) × (DISPC_HSA + DISPC_HFP + PPL +DISPC_HBP) (29)<br />
• Blanking periods (HBP + HFP) in DSI are calculated based on the following formula:<br />
(DISPC_HSA + DISPC_HBP + PPL + DISPC_HFP) × Fppi = (HS + HBP + ((WC + 6)/NDL) +HFP) ×<br />
Fvp<br />
HBP + HFP = (TVPP/THSB) × (DISPC_HSA + DISPC_HFP + PPL + DISPC_HBP – (HS + (WC +<br />
6)/NDL))<br />
HBPplusHFP = (FHSB/FVPP) × (DISPC_HSA + DISPC_HFP + PPL + DISPC_HBP) – (HS + WC +<br />
6)/NDL)<br />
HBPplusHFPf = ((FHSB/FVPP) × (DISPC_HSA + DISPC_HFP + PPL + DISPC_HBP)) – ((HS + WC +<br />
6)/NDL)<br />
HFP = (DISCP_HFP × BPP)/(NDL × 8) – (2/NDL)<br />
HBP = HBPplusHFP – HFP (30)<br />
7.6.4.2.5 Configure DSI_PHY<br />
Calculate the timing in the functions of DDR_CLK_P (see Table 7-93). In the example, DDR_CLK_P =<br />
1000/DSI_DDR_CLK. See Section 7.4.3.2, Clock Requirements, for details on timing calculation.<br />
Table 7-93. Calculate DSI_PHY Timing<br />
Steps Registers Value<br />
Refer to Section 7.4.3.2 DSI_PHY_REGISTER0[31:24] REG_THSPREPARE CEIL(70 ns/DDR clock period) + 2<br />
DSI_PHY_REGISTER0[23:16]<br />
REG_THSPRPR_THSZERO<br />
ceil(175 ns/DDR clock period) + 2<br />
DSI_PHY_REGISTER0[7:0] REG_THSEXIT ceil(145 ns/DDR clock period)<br />
DSI_PHY_REGISTER0[15:8] REG_THSTRAIL ceil(60 ns/DDR clock period) + 5<br />
DSI_PHY_REGISTER2[7:0] REG_TCLKPREPARE ceil(65 ns/DDR clock period)<br />
DSI_PHY_REGISTER1[7:0] REG_TCLKZERO ceil(265 ns/DDR clock period)<br />
DSI_PHY_REGISTER1[15:8] REG_TCLKTRAIL ceil(60 ns/DDR clock period) + 2<br />
DSI_PHY_REGISTER1[20:16] REG_TLPXBY2 ceil(25ns/DDR clock period)<br />
NOTE: Keep Reserved bits at reset value in the DSI_PHY_REGISTER1 and<br />
DSI_PHY_REGISTER2 registers.<br />
7.6.4.2.6 Drive Stop State<br />
Table 7-94 lists the steps to Drive Stop State.<br />
Table 7-94. Drive Stop State<br />
Steps Registers Value<br />
Force TX stop mode DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO 0x1<br />
Wait until FORCE_TX_STOP_MODE_IO = 0 DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO Read 0x0<br />
7.6.4.3 Initialization of the External MIPI <strong>Display</strong> Controller<br />
1. Wait for the external MIPI display controller initialization after power up.<br />
In this example, the external MIPI display controller is reset using GPIO 87.<br />
2. Configure the external MIPI display controller.<br />
1784 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
7.6.4.4 Configure the DISPC<br />
7.6.4.4.1 Reset DISPC<br />
Table 7-95 lists the step sequence to reset the DISPC.<br />
Table 7-95. Reset DISPC<br />
Steps Registers Value<br />
Reset the DISPC. DISPC_SYSCONFIG[1] SOFTRESET 0x1<br />
DISPC is reset. DISPC_SYSCONFIG[0] RESETDONE Read 0x1<br />
No standby: MStandby is never asserted. DISPC_SYSCONFIG [13:12] MIDLEMODE 0x1<br />
Disable idle mode. DISPC_SYSCONFIG [4:3] SIDLEMODE 0x1<br />
Disable all interrupts. DISPC_IRQENABLE[31:0] 0x0<br />
7.6.4.4.2 Configure DISPC Timing, Window, and Color<br />
Table 7-96 lists the steps to configure the DISPC registers. Table 7-97 lists the steps to configure the<br />
color space coefficient registers.<br />
Table 7-98 lists the steps to configure DISPC_CONTROL.<br />
Table 7-96. Configure DISPC Registers<br />
Steps Registers Value<br />
Set horizontal timings. DISPC_TIMING_H (HBP – 120)|(HFP – 18)|HSA – 1<br />
Set vertical timing. DISPC_TIMING_V (HBP – 120)|(HFP – 18)|HSA – 1<br />
Set LCD – PCD display controller and pixel<br />
clock divisor.<br />
DISPC_DIVISOR LDC = %1 PXLCLK = %4<br />
Set the size of the LCD – 1. DISPC_SIZE_LCD (LPP – 1 + DSI_VFP)16|(PPL – 1)<br />
Set default RGB value when there is no<br />
data.<br />
DISPC_DEFAULT_COLOR0 0XFF<br />
Set video FIFO height and low threshold. DISPC_VID1_FIFO_THRESHOLD 0xfc00c0<br />
Set the X Y location of the upper left pixel (0<br />
= 0) to the upper left corner.<br />
DISPC_VID1_POSITION 0x0<br />
Set size of the window. DISPC_VID1_SIZE (LPP – 1) 16|(PPL – 1)<br />
Set the size of the picture. DISPC_VID1_PICTURE_SIZE (LPP – 1) 16|(PPL – 1)<br />
Set the input address picture. DISPC_VID1_BA0 0x–<br />
Table 7-97. Configure Color Space Coefficient Registers<br />
Comments Registers Value<br />
RCR and RY coefficients DISPC_VID1_CONV_COEF0 0X0199012A<br />
GY and RCB coefficients DISPC_VID1_CONV_COEF1 0X012A0000<br />
GCB and GCR coefficients DISPC_VID1_CONV_COEF2 0X<strong>07</strong>9C<strong>07</strong>30<br />
BCR and BY coefficients DISPC_VID1_CONV_COEF3 0X0000012A<br />
BCB coefficient DISPC_VID1_CONV_COEF4 0X00000205<br />
Table 7-98. Configure DISPC_CONTROL<br />
Comments Registers Value<br />
Enable pixel clock free-running. DISPC_CONTROL[27] PCLKFREEENABLE 0x1<br />
I/O pad mode selection: Bypass DISPC_CONTROL[16] GPOUT1 0x1<br />
I/O pad mode selection: Bypass DISPC_CONTROL[15] GPOUT0 0x1<br />
Normal mode selected DISPC_CONTROL[11] STALLMODE 0x0<br />
3 for RGB888 DISPC_CONTROL[9:8] TFTDATALINES 0x3<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1785<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Table 7-98. Configure DISPC_CONTROL (continued)<br />
Comments Registers Value<br />
The hardware has finished updating the internal shadow<br />
registers of the pipeline(s) connected to the LCD output using<br />
the user values. The hardware resets the bit when the update<br />
completes.<br />
DISPC_CONTROL[5] GOLCD 0x0<br />
Active matrix display operation mode DISPC_CONTROL[3] STNTFT 0x1<br />
LCD interface is disabled. DISPC_CONTROL[0] LCDENABLE 0x0<br />
The input image is converted from UYVY into RGB (see Table 7-99) :<br />
Table 7-99. Configure DISPC_VID1_ATTRIBUTES<br />
Comments Registers Value<br />
Row of VIDn will not be read twice. DISPC_VID1_ATTRIBUTES[18] VIDROWREPEATENABLE 0x0<br />
8 x 32-bit bursts DISPC_VID1_ATTRIBUTES[15:14] VIDBURSTSIZE 0x1<br />
Full range selected: Y is not modified before the<br />
color space conversion.<br />
DISPC_VID1_ATTRIBUTES[11] VIDFULLRANGE 0x1<br />
Enable color space conversion CbYCr to RGB. DISPC_VID1_ATTRIBUTES[9] VIDCOLORCONVENABLE 0x1<br />
UYVY DISPC_VID1_ATTRIBUTES[4:1] VIDFORMAT 0xB<br />
Video disabled DISPC_VID1_ATTRIBUTES[0] VIDENABLE 0x0<br />
7.6.4.5 Enable Video Mode Using the DISPC Video Port<br />
Table 7-100 lists the steps to enable DISPC to send frames continuously.<br />
Table 7-100. Enable DISPC<br />
Steps Registers Value<br />
Set up long packet header DSI_VC0_LONG_PACKET_HEADER[31:0] 0x0005 A03E<br />
Enable VC0. DSI_VC0_CTRL[1] VC_EN 0x1<br />
Enable IF. DSI_CTRL[0] IF_EN 0x1<br />
Wait until IF_EN ≠ 0. DSI_CTRL[0] IF_EN Read 0x0<br />
Enable VID1. DISPC_VID1_ATTRIBUTES[0] VIDENABLE 0x1<br />
Enable LCD interface. DISPC_CONTROL[0] LCDENABLE 0x1<br />
Enable GOLCD. DISPC_CONTROL[5] GOLCD 0x1<br />
Wait until GOLCD = 0. DISPC_CONTROL[5] GOLCD Read 0x0<br />
7.6.5 DSI Command Mode Using the DISPC Video Port<br />
This section presents some generic use cases and tips for setting the modules of the display subsystem.<br />
7.6.5.1 <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
This section explains the basic programming model of command mode using the DISPC video port.<br />
The DSI interface is connected to an external MIPI DISPC using the following parameters:<br />
• One data lane: NDL = 1<br />
• Clock lane at 150 MHz (DSI_DDR_CLK)<br />
• LCD size is 640 x 480:<br />
– 480 PPL<br />
– 680 LPP<br />
• DISPC input format: YUV<br />
• DISPC output format: RGB888 (24 BPP)<br />
• Word Count: WC = 3 x PPL<br />
• DSS2_ALWON_FLCK = 26 MHz used as a reference clock for DSI PLL<br />
1786 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
L4 interconnect<br />
L3 interconnect<br />
PRCM<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
MPU subsystem<br />
interrupt controller<br />
M_IRQ_25<br />
IVA2.2 subsystem<br />
interrupt controller<br />
IVA2_IRQ[13]<br />
STANDBY/WAIT<br />
handshake<br />
DSS_L3_ICLK<br />
DSS_L4_ICLK<br />
DSS1_ALWON_FCLK<br />
DSS2_ALWON_FCLK<br />
DSI1_PLL_FCLK<br />
DSI2_PLL_FCLK<br />
DSS_IRQ<br />
<strong>Display</strong><br />
controller<br />
<strong>Display</strong> subsystem<br />
Data<br />
Syncs<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Virtual channel 1 (VC1) used for command mode to configure the eternal DISPC, and virtual channel 0<br />
(VC0) used to send data<br />
• Automatic TE used for synchronization<br />
• Interleaving not used<br />
• It is assumed that all modules used in these programming models are in after-POR state.<br />
Figure 7-155 is an overview of the connections in the display subsystem.<br />
Figure 7-155. Overview<br />
DSI<br />
protocol<br />
engine<br />
DSI<br />
PLL<br />
controller<br />
Controls<br />
Data<br />
Status<br />
PLL control<br />
DSI<br />
complex I/O<br />
DSI PLL<br />
HS divider<br />
Device<br />
GPIO87 Reset<br />
dsi_dx0<br />
dsi_dy0<br />
dsi_dx1<br />
dsi_dy1<br />
Table 7-101 lists the steps of the main sequence and the sections that describe them.<br />
Table 7-101. Main Sequence<br />
Steps Register/Bit Field/Programming Model<br />
Configure DSS clocks. Section 7.6.5.1.1, Configure DSS Clocks at the PRCM Module<br />
LCD<br />
External<br />
display<br />
controller<br />
Configure the DSI protocol engine and DSI PLL. Section 7.6.5.1.2, Configure DSI Protocol Engine, DSI PLL, and Complex I/O<br />
Configure the external MIPI display controller. Section 7.6.5.1.3, Initialization of the External MIPI <strong>Display</strong> Controller<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1787<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
dss-330
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Table 7-101. Main Sequence (continued)<br />
Steps Register/Bit Field/Programming Model<br />
Configure the DISPC. Section 7.6.5.1.4, Configure the DISPC<br />
Enable command mode using the DISPC video<br />
port.<br />
Section 7.6.5.1.5, Enable Command Mode Using the DISPC Video Port<br />
Send a frame data to LCD panel using automatic Section 7.6.5.1.6, Send Frame Data to LCD Panel Using Automatic TE<br />
TE.<br />
The programming model must follow the step sequence.<br />
7.6.5.1.1 Configure DSS Clocks at the PRCM Module<br />
Table 7-102 lists the steps required to enable the clocks.<br />
Table 7-102. Configure DSS Clocks at the PRCM Module<br />
Steps Register/Bit Field/Programming Model Value<br />
Set the divided DPLL value for<br />
DSS1.<br />
CM_CLKSEL_DSS[4:0] CLKSEL_DSS1 0x9<br />
Disable autoidle mode. CM_AUTOIDLE_DSS[0] AUTO_DSS 0x0<br />
CM_SLEEPDEP_DSS[2:0] EN_IVA2, EN_MPU,<br />
Domain sleep is disabled. 0x0<br />
EN_CORE<br />
Disable automatic transition. CM_CLKSTCTRL_DSS[1:0] CLKTRCTRL_DSS 0x0<br />
Enable the<br />
DSS1_ALWON_FCLK,<br />
DSS2_ALWON_FCLK, and<br />
TV_CLK functional clocks. (1)<br />
Enable the DSS_L3_ICLK and<br />
DSS_L4_ICLK interface clocks.<br />
(1) TV_CLK is required only for a correct reset.<br />
CM_FCLKEN_DSS[2:0] EN_TV, EN_DSS2, EN_DSS1 0x7<br />
CM_ICLKEN_DSS[0] EN_DSS 0x1<br />
7.6.5.1.2 Configure DSI Protocol Engine, DSI PLL, and Complex I/O<br />
Table 7-103 lists the steps to configure the DSI protocol engine, DSI PLL, and complex I/O and the<br />
sections that describe the sequence.<br />
Table 7-103. Configure DSI Protocol Engine, DSI PLL, and Complex I/O<br />
Steps Register/Bit Field/Programming Model<br />
Reset DSI modules. Section 7.6.5.1.2.1, Reset DSI Modules<br />
Configure DSI DPLL. Section 7.6.5.1.2.2, Configure DSI PLL<br />
Switch to DSI PLL clock source. Section 7.6.5.1.2.3, Switch to DSI PLL Clock Source<br />
Configure DSI protocol engine. Section 7.6.5.1.2.4, Configure DSI Protocol Engine<br />
Configure DSI_PHY. Section 7.6.5.1.2.5, Configure DSI_PHY<br />
Drive stop state. Section 7.6.5.1.2.6, Drive Stop State<br />
7.6.5.1.2.1 Reset DSI Modules<br />
Table 7-104 lists the steps required to reset the DSI modules.<br />
Table 7-104. Reset DSI Modules<br />
Steps Register/Bit Field/Programming Value<br />
Clear DSI IRQ status. DSI_IRQSTATUS[31:0] 0x0<br />
Maintain interface and functional clock during<br />
wakeup.<br />
DSI_SYSCONFIG[9:8] CLOCKACTIVITY 0x3<br />
Enable smart-idle for power management. DSI_SYSCONFIG[4:3] SIDLEMODE 0x2<br />
Set DSI reset. DSI_SYSCONFIG[1] SOFT_RESET 0x1<br />
1788<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
(1) Calculate the divider value for the DSI protocol engine clock source:<br />
RegM4 FCLKIN4DDR /FDSI_PLL _REFCLK 1<br />
FCLKIN4DDR 4 FCLKIN<br />
RegM4 5<br />
dss-E126<br />
(2) Determine LCD, PCD, and REGM3:<br />
Calculate the divider value for the DSS clock source: Same as Step 3.<br />
RegM3 ((BPP 2)/(DISPC _LCD DISPC _PCD NDL)) 1<br />
RegM3 15<br />
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-104. Reset DSI Modules (continued)<br />
Steps Register/Bit Field/Programming Value<br />
Wait until RESET_DONE = 1. DSI_SYSSTATUS[0] RESET_DONE<br />
7.6.5.1.2.2 Configure DSI PLL<br />
Table 7-105 lists the steps required to configure the DSI PLL.<br />
Table 7-105. Configure DSI PLL<br />
Steps Register/Bit Field/Programming Value<br />
Enable PLL and HSDIVIDER. DSI_CLK_CTRL[31:30] PLL_PWR_CMD 0x2<br />
Wait until PLL_PWR_STATUS = 0x2. DSI_CLK_CTRL[29:28] PLL_PWR_STATUS<br />
Set the REGM4 value (see (1)). DSI_PLL_CONFIGURATION1[26:23] DSIPROTO_CLK_DIV 5<br />
Set the REGM3 value (see (2)). DSI_PLL_CONFIGURATION1[22:19] DSS_CLOCK_DIV 15<br />
Set the REGN value (see (3)). DSI_PLL_CONFIGURATION1[7:1] DSI_PLL_REGN 12<br />
Set the REGM value (see (4)). DSI_PLL_CONFIGURATION1[18:8] DSI_PLL_REGM 150<br />
Enable PLL STOPMODE. DSI_PLL_CONFIGURATION1[0] DSI_PLL_STOPMODE 0x1<br />
Enable PLL reference clock control. DSI_PLL_CONFIGURATION2[13] DSI_PLL_REFEN 0x1<br />
Enable CLKIN4DDR control. DSI_PLL_CONFIGURATION2[14] DSI_PHY_CLKINEN 0x1<br />
Enable DSS clock divider. DSI_PLL_CONFIGURATION2[16] DSS_CLOCK_EN 0x1<br />
DSI_PLL_CONFIGURATION2[18]<br />
Enable DSI protocol engine clock divider. 0x1<br />
DSI_PROTO_CLOCK_EN<br />
Enable DSI configuration update with<br />
DISPC_UPDATE_SYNC.<br />
DSI_PLL_CONTROL[0] DSI_PLL_AUTOMODE 0x0<br />
Start PLL locking sequence. DSI_PLL_GO[0] DSI_PLL_GO 0x1<br />
Wait until DSI_PLL_GO = 0. DSI_PLL_GO[0] DSI_PLL_GO<br />
Check whether PLL is locked. DSI_PLL_STATUS[1] DSI_PLL_LOCK 0x1<br />
Set the LP mode clock ratio. DSI_CLK_CTRL[12:0] LP_CLK_DIVISOR 0x8<br />
Set L3_ICLK clock to the DSI complex I/O to not<br />
gated.<br />
DSI_CLK_CTRL[14] CIO_CLK_ICG 0x1<br />
Enable the automatic assertion/deassertion of the DSI_CLK_CTRL[18] HS_AUTO_STOP_ENABLE 0x1<br />
DSIStopClk signal.<br />
Specify that the DSI functional clock is higher<br />
than 30 MHz with a synchronization rising/rising.<br />
DSI_CLK_CTRL[21] LP_RX_SYNCHRO_ENABLE 0x1<br />
Turn on PLL and HSDIVIDER. DSI_CLK_CTRL[31:30] PLL_PWR_CMD 0x2<br />
(3) Calculate N divider for PLL:<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
dss-E127<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1789
FCLKIN4DDR FCLKIN 4<br />
RegN (FDSI_PLL _REFCLK /F INt) 1<br />
FDSI_PLL _REFCLK 26 MHz (system clock)<br />
Fint 2 MHz (reduce PLL lock time)<br />
RegN 12<br />
dss-E128<br />
(4) Calculate M divider for PLL:<br />
RegM ((RegN 1) (FCLKIN4DDR /(2 FDSI_PLL<br />
_REFCLK)))<br />
FCLKIN4DDR 4 150<br />
MHz<br />
RegM 150<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
7.6.5.1.2.3 Switch to DSI PLL Clock Source<br />
Table 7-106 lists the sequence to switch the DSI and DISPC module clocks to DSI PLL clock source.<br />
dss-E129<br />
Table 7-106. Switch to DSI PLL Clock Source<br />
Steps Register/Bit Field/Programming Value<br />
Switch DISPC clock to DSI1_PLL_FCLK. DSS_CONTROL[0] DISPC_CLK_SWITCH 0x1<br />
Switch DSI clock to DSI2_PLL_FCLK. DSS_CONTROL[1] DSI_CLK_SWITCH 0x1<br />
7.6.5.1.2.4 Configure DSI Protocol Engine<br />
7.6.5.1.2.4.1 Set Up DSI Control Registers<br />
Table 7-1<strong>07</strong> lists the steps required to set up the DSI control registers. Table 7-108 lists the steps to set<br />
up the DSI complex I/O registers.<br />
Table 7-1<strong>07</strong>. DSI Control Registers<br />
Steps Register/Bit Field/Programming Value<br />
Enable SYNCLOST event. DSI_IRQENABLE[18] SYNC_LOST_IRQ_EN 0x1<br />
Enable IRQ to indicate that packet has been<br />
sent on VC1.<br />
Enable IRQ to indicate that packet has been<br />
sent on VC0.<br />
DSI_VC1_IRQENABLE[2] PACKET_SENT_IRQ 0x1<br />
DSI_VC0_IRQENABLE[2] PACKET_SENT_IRQ 0x1<br />
Set the trigger reset mode to immediate. DSI_CTRL[14] TRIGGER_RESET_MODE 0x1<br />
Activate the two line buffers. DSI_CTRL[13:12] LINE_BUFFER 0x2<br />
Set the size of the video port data bus to 24<br />
bits (RGB 888).<br />
Define the ratio between VP_CLK and<br />
VP_PCLK.<br />
DSI_CTRL[7:6] VP_DATA_BUS_WIDTH 0x2<br />
DSI_CTRL[4] VP_CLK_RATIO 0x1<br />
Set the arbitration scheme for granting the VC<br />
pending ready requests in the TX FIFO as DSI_CTRL[3] TX_FIFO_ARBITRATION 0x1<br />
sequential scheme.<br />
Enable the ECC check for the received header. DSI_CTRL[2] ECC_RX_EN 0x1<br />
Table 7-108. DSI Complex I/O Registers<br />
Steps Register/Bit Field/Programming Value<br />
Determine the position of the clock lane. DSI_COMPLEXIO_CFG1[2:0] CLOCK_POSITION 0x2<br />
Determine the position of data 1 lane. DSI_COMPLEXIO_CFG1[6:4] DATA1_POSITION 0x3<br />
Turn on COMPLEXIO. DSI_COMPLEXIO_CFG1[28:27] PWR_CMD 0x1<br />
Enable the synchronization of the shadow<br />
registers with DISPC_UPDATE_SYNC.<br />
DSI_COMPLEXIO_CFG1[30] GOBIT 0x1<br />
1790<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-108. DSI Complex I/O Registers (continued)<br />
Steps Register/Bit Field/Programming Value<br />
Clear all COMPLEXIO IRQ status. DSI_COMPLEXIO_IRQSTATUS 0xC3F39CE7<br />
Disable all COMPLEXIO IRQs. DSI_COMPLEXIO_IRQENABLE 0x0<br />
Enable interface. DSI_CTRL[0] IF_EN 0x1<br />
Disable interface. DSI_CTRL[0] IF_EN 0x0<br />
Wait until IF_EN = 0. DSI_CTRL[0] IF_EN<br />
Enable the LP clock. DSI_CLK_CTRL[20] LP_CLK_ENABLE 0x1<br />
Check whether reset is complete. DSI_COMPLEXIO_CFG1[29] RESET_DONE 0x1<br />
Check whether power control is on. DSI_COMPLEXIO_CFG1[26:25] PWR_STATUS 0x1<br />
Check whether reset is complete. DSI_SYSSTATUS[0] RESETDONE 0x1<br />
7.6.5.1.2.4.2 Configure DSI Timing and Virtual Channels<br />
Table 7-109 lists the steps to configure DSI timing and the virtual channels.<br />
Table 7-109. DSI Timing Registers<br />
Steps Register/Bit Field/Programming Value<br />
Determine the number of DSI_FCLK clock DSI_TIMING1[12:0]<br />
cycles for the STOP-STATE counter. STOP_STATE_COUNTER_IO<br />
Disable the multiplication factor of 4 for the<br />
number of DSI_FCLK clock cycles for the DSI_TIMING1[13] STOP_STATE_X4_IO 0x0<br />
STOP-STATE counter.<br />
Disable the multiplication factor of 16 for the<br />
number of DSI_FCLK clock cycles for the DSI_TIMING1[14] STOP_STATE_X16_IO 0x0<br />
STOP-STATE counter.<br />
0x999<br />
Clear turn-around timer settings. DSI_TIMING1[30:16] 0x0000<br />
Determine the number of DSI_FCLK clock<br />
cycles for the LP RX timer.<br />
DSI_TIMING2[12:0] LP_RX_TO_COUNTER 0x0CD<br />
Disable the multiplication factor of 4 for the<br />
number of DSI_FCLK clock cycles for the LP DSI_TIMING2[13] LP_RX_TO_X4 0x0<br />
RX timer.<br />
Enable the multiplication factor of 16 for the<br />
number of DSI_FCLK clock cycles for the LP DSI_TIMING2[14] LP_RX_TO_X16 0x1<br />
RX timer.<br />
Determine the number of TxByteClkHS clock<br />
cycles for the HS RX timer.<br />
DSI_TIMING2[12:0] HS_TX_TO_COUNTER 0xFD2<br />
Disable the multiplication factor of 8 for the<br />
number of TxByteClkHS clock cycles for the DSI_TIMING2[13] HS_TX_TO_X8 0x0<br />
HS TX timer.<br />
Enable the multiplication factor of 16 for the<br />
number of TxByteClkHS clock cycles for the DSI_TIMING2[14] HS_TX_TO_X16 0x1<br />
HS TX timer.<br />
DDR_CLK_PRE8|DDR_CLK_POST DSI_CLK_TIMING[31:0] 0x0000 0F0B<br />
Configuration of VC1<br />
Enable the checksum generation for the<br />
transmit payload.<br />
Enable the ECC generation for the transmit<br />
header.<br />
DSI_VC1_CTRL[7] CS_TX_EN 0x1<br />
DSI_VC1_CTRL[8] ECC_TX_EN 0x1<br />
Disable DMA request for TX FIFO. DSI_VC1_CTRL[23:21] DMA_TX_REQ_NB 0x4<br />
Disable DMA request for RX FIFO. DSI_VC1_CTRL[29:27] DMA_RX_REQ_NB 0x4<br />
Configuration of VC0<br />
Selects source of data and enable VP_STALL. DSI_VC0_CTRL[1] SOURCE 0x1<br />
Enable the checksum generation for the<br />
transmit payload.<br />
DSI_VC0_CTRL[7] CS_TX_EN 0x1<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1791<br />
Copyright © 2010–2011, Texas Instruments Incorporated
• Freq TxByteClkHS:<br />
FHSB FCLKIN4DDR /16<br />
FVPP FCLKIN4DDR /((RegM3 1) DISPC<br />
_LCD * DISPC _PCD)<br />
FVP FCLKIN4DDR /(RegM3 1)<br />
dss-E130<br />
• Length of the line in video mode in number of byte clock cycles (TxByteClkHS):<br />
TL FHSB /FVPP (DISPC _HSA DISPC _HFP PPL DISPC _HBP)<br />
TL1f (BPP /(8 NDL)) (DISPC _HSA DISPC _HFP PPL DISPC _HBP)<br />
• Blanking periods (HBP + HFP) in DSI are calculated based on the following formula:<br />
(DISPC _HSA DISPC _HBP PPL DISPC _HFP) Fppi (HS HBP ((WC 6)/NDL) HFP) <br />
Fvp<br />
dss-E131<br />
HBP HFP (TVPP / THSB) (DISPC _HSA DISPC _HFP PPL DISPC _HBP) (HS <br />
(WC 6)/NDL))<br />
HBPplusHFP (FHSB /FVPP) (DISPC _HSA DISPC _HFP PPL DISPC _HBP) (HS WC <br />
6)/NDL<br />
HBPplusHFPf ((FHSB /FVPP) (DISPC _HSA DISPC _HFP PPL DISPC _HBP)) ((HS WC <br />
6)/NDL)<br />
HFP (DISPC _HFP BPP)/(NDL 8) (2/NDL)<br />
HBP HBPplusHFP HFP<br />
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Table 7-109. DSI Timing Registers (continued)<br />
Steps Register/Bit Field/Programming Value<br />
Enable the ECC generation for the transmit<br />
header.<br />
Enable high-speed mode to send short and<br />
long packets to the peripheral.<br />
DSI_VC0_CTRL[8] ECC_TX_EN 0x1<br />
DSI_VC0_CTRL[9] MODE_SPEED 0x1<br />
Disable DMA request for TX FIFO. DSI_VC0_CTRL[23:21] DMA_TX_REQ_NB 0x4<br />
Disable DMA request for RX FIFO. DSI_VC0_CTRL[29:27] DMA_RX_REQ_NB 0x4<br />
Configuration TX and RX FIFO<br />
Set size of the RX FIFO allocated for VC1 to DSI_RX_FIFO_VC_SIZE[15:12]<br />
32 x 33 bits. VC1_FIFO_SIZE<br />
Set size of the TX and TX FIFO allocated for DSI_TX_FIFO_VC_SIZE[15:12]<br />
VC1 to 96 x 33 bits. VC1_FIFO_SIZE<br />
7.6.5.1.2.5 Configure DSI_PHY Timing<br />
Table 7-110 summarizes DSI_PHY timing in the functions of DDR_CLK_P with DDR_CLK_P =<br />
1000/DSI_DDR_CLK. For more details on timing calculation, see Section 7.4.3.2, Clock Requirements.<br />
Table 7-110. Configure DSI_PHY Timing<br />
Steps Register/Bit Field/Programming Value<br />
Settings of the DSI protocol timing. For a<br />
complete description of timing<br />
specifications, see Section 7.4.3.2, Clock<br />
Requirements.<br />
DSI_PHY_REGISTER0[31:24] REG_THSPREPARE<br />
CEIL(70 ns/DDR clock period)<br />
+ 2<br />
DSI_PHY_REGISTER0[23:16] ceil(175 ns/DDR clock period)<br />
REG_THSPRPR_THSZERO + 2<br />
DSI_PHY_REGISTER0[7:0] REG_THSEXIT ceil(145 ns/DDR clock period)<br />
DSI_PHY_REGISTER0[15:8] REG_THSTRAIL<br />
0x1<br />
0x3<br />
dss-E132<br />
ceil(60 ns/DDR clock period) +<br />
5<br />
1792<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
Table 7-110. Configure DSI_PHY Timing (continued)<br />
Steps Register/Bit Field/Programming Value<br />
DSI_PHY_REGISTER2[7:0] REG_TCLKPREPARE ceil(65 ns/DDR clock period)<br />
DSI_PHY_REGISTER1[7:0] REG_TCLKZERO ceil(265 ns/DDR clock period)<br />
DSI_PHY_REGISTER1[15:8] REG_TCLKTRAIL<br />
ceil(60 ns/DDR clock period) +<br />
2<br />
DSI_PHY_REGISTER1[20:16] REG_TLPXBY2 ceil(25ns/DDR clock period)<br />
NOTE: Keep Reserved bits at reset value in the DSI_PHY_REGISTER1 and<br />
DSI_PHY_REGISTER2 registers.<br />
7.6.5.1.2.6 Drive Stop State<br />
Table 7-111 lists the steps to drive the stop state.<br />
Table 7-111. Drive Stop State<br />
Steps Register/Bit Field/Programming Value<br />
Force TX stop mode. DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO 0x1<br />
Wait until FORCE_TX_STOP_MODE_IO = DSI_TIMING1[15] FORCE_TX_STOP_MODE_IO<br />
0.<br />
7.6.5.1.3 Initialization of the External MIPI LCD Controller<br />
Table 7-112 lists the steps to initialize the external MIPI LCD controller.<br />
Table 7-112. Initialization of the External MIPI LCD Controller<br />
Steps Register/Bit Field/Programming Value<br />
Reset the MIPI LCD controller using<br />
GPIO87.<br />
Wait until initialization of the external MIPI<br />
LCD controller is finished after power up.<br />
– 0x1<br />
– –<br />
Configure the external MIPI LCD controller. – –<br />
7.6.5.1.4 Configure the DISPC<br />
7.6.5.1.4.1 Reset DISPC<br />
Table 7-113 lists the steps to reset the DISPC.<br />
Table 7-113. Reset DISPC<br />
Steps Register/Bit Field/Programming Value<br />
Reset the DISPC. DISPC_SYSCONFIG[1] SOFTRESET 0x1<br />
Wait until RESETDONE = 1. DISPC_SYSCONFIG[0] RESETDONE<br />
Disable master interface power<br />
management.<br />
DISPC_SYSCONFIG [13:12] MIDLEMODE 0x1<br />
Disable slave interface power management. DISPC_SYSCONFIG [4:3] SIDLEMODE 0x1<br />
Disable all DISPC interrupts. DISPC_IRQENABLE[31:0] 0x0<br />
7.6.5.1.4.2 Configure DISPC Timing, Window, and Color<br />
Table 7-114 lists the steps to configure the DISPC registers. Table 7-97 lists the steps to configure the<br />
color space coefficient registers.<br />
Table 7-115 lists the steps to configure DISPC_CONTROL.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1793
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips www.ti.com<br />
Table 7-114. Configure DISPC Registers<br />
Steps Register/Bit Field/Programming Value<br />
Configure LCD output<br />
Set the logic clock divisor (LCD). DISPC_DIVISOR[23:16] LCD 0x1<br />
Set the pixel clock divisor (PCD). DISPC_DIVISOR[7:0] PCD 0x4<br />
Set the number of lines on the LCD panel. DISPC_SIZE_LCD[26:16] LPP 0x2A7<br />
Set the number of PPL on the LCD panel. DISPC_SIZE_LCD[10:0] PPL 0x1DF<br />
Set solid background color. DISPC_DEFAULT_COLOR0 0XFF<br />
Configure VIDEO pipeline VID1.<br />
DISPC_VID1_FIFO_THRESHOLD[11:0]<br />
Set VID1 FIFO low threshold. 0x0C0<br />
VIDFIFOLOWTHRESHOLD<br />
DISPC_VID1_FIFO_THRESHOLD[27:16]<br />
Set VID1 FIFO high threshold. 0xFC0<br />
VIDFIFOHIGHTHRESHOLD<br />
Set the X position of the VID1 window. DISPC_VID1_POSITION[10:0] VIDPOSX 0x0<br />
Set the Y position of the VID1 window. DISPC_VID1_POSITION[26:16] VIDPOSY 0x0<br />
Set the number of lines of the VID1 window. DISPC_VID1_SIZE[26:16] VIDSIZEY 0x2A7<br />
Set the number of pixels of the VID1<br />
window.<br />
Define the base address of the VID1 frame<br />
buffer.<br />
DISPC_VID1_SIZE[10:0] VIDSIZEX 0x1DF<br />
DISPC_VID1_BA0 0x–<br />
Table 7-115. Configure DISPC_CONTROL<br />
Comments Register/Bit Field/Programming Value<br />
Enable pixel clock free-running. DISPC_CONTROL[27] PCLKFREEENABLE 0x1<br />
Disable RFBI.<br />
DISPC_CONTROL[16] GPOUT1 0x1<br />
DISPC_CONTROL[15] GPOUT0 0x1<br />
Enable the stall mode. DISPC_CONTROL[11] STALLMODE 0x1<br />
Select size of DATALINES. DISPC_CONTROL[9:8] TFTDATALINES 0x3<br />
Select active matrix display operation mode. DISPC_CONTROL[3] STNTFT 0x1<br />
Disable LCD output interface. DISPC_CONTROL[0] LCDENABLE 0x0<br />
Update the internal DISPC registers. DISPC_CONTROL[5] GOLCD 0x1<br />
7.6.5.1.5 Enable Command Mode Using DISPC Video Port<br />
Table 7-116 lists the steps to enable DISPC to send frames continuously. Two bus turnarounds (BTA)<br />
must be generated:<br />
• The first BTA gives bus possession to the display module.<br />
• The second BTA obtains the TE trigger.<br />
Table 7-116. Enable Command Mode and Automatic TE<br />
Steps Register/Bit Field/Programming Value<br />
Insert DCS write memory continue code. DSI_CTRL[25] DCS_CMD_CODE 0x0<br />
Enable automatic insertion of DCS<br />
command codes when data is sourced by DSI_CTRL[24] DCS_CMD_ENABLE 0x1<br />
the video port.<br />
Enable VC1. DSI_VC1_CTRL[0] VC_EN 0x1<br />
Enable VC0. DSI_VC0_CTRL[0] VC_EN 0x1<br />
Enable the interface. DSI_CTRL[0] IF_EN 0x1<br />
Wait until IF_EN = 1. DSI_CTRL[0] IF_EN<br />
Send the sequence to receive the TE<br />
trigger from the peripheral. In this use case, DSI_VC1_SHORT_PACKET_HEADER[31:0] HEADER 0x0000 3515<br />
code 0x35 + 1 parameter VC = 0, data type<br />
= 0x15, DCS write + 1 parameter.<br />
1794<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-116. Enable Command Mode and Automatic TE (continued)<br />
Steps Register/Bit Field/Programming Value<br />
Wait until PACKET_SENT_IRQ = 1. DSI_VC1_IRQSTATUS[2] PACKET_SENT_IRQ<br />
Write 1 to clear PACKET_SENT_IRQ. DSI_VC1_IRQSTATUS[2] PACKET_SENT_IRQ 0x1<br />
7.6.5.1.6 Send Frame Data to LCD Panel Using Automatic TE<br />
Table 7-117 summarizes the steps to send a frame data to the LCD panel using automatic TE.<br />
Table 7-117. Send Frame Data to LCD Panel Using Automatic TE<br />
Steps Register/Bit Field/Programming Value<br />
Enable the transfer between DISPC and<br />
DSI. Reset after the transfer is done.<br />
DISPC_CONTROL[0] LCDENABLE 0x1<br />
Specify the number of bytes to send. When<br />
DCS insertions is used, word count (WC) DSI_VC0_TE[23:0] TE_SIZE (WC+1)*LPP<br />
must include this one DCS byte.<br />
Set up long packet header. Send 0x39<br />
DCS long write/write_LUT command<br />
packet used to send larger blocks of data DSI_VC0_LONG_PACKET_HEADER[31:0] HEADER (WC+1) 8 + 0x39<br />
to a display module that implements a<br />
DCS.<br />
Enable TE control. DSI_VC0_TE[30] TE_EN 0x1<br />
Wait until RX FIFO is empty,<br />
RX_FIFO_NOT_EMPTY = 0.<br />
Wait until TX FIFO is not full.<br />
TX_FIFO_FULL = 0.<br />
DSI_VC1_CTRL[20] RX_FIFO_NOT_EMPTY 0x0<br />
DSI_VC1_CTRL[16] TX_FIFO_FULL 0x0<br />
Enable first BTA to give bus possession to DSI_VC1_CTRL[6] BTA_EN 0x1<br />
the display module.<br />
Wait until BTA IRQ. DSI_VC1_IRQSTATUS[5] BTA_IRQ 0x1<br />
Write 1 to clear BTA IRQ. DSI_VC1_IRQSTATUS[5] BTA_IRQ 0x1<br />
Enable second BTA to get the TE trigger. DSI_VC1_CTRL[6] BTA_EN 0x1<br />
Wait until BTA IRQ. DSI_VC1_IRQSTATUS[5] BTA_IRQ 0x1<br />
Write 1 to clear BTA IRQ. DSI_VC1_IRQSTATUS[5] BTA_IRQ 0x1<br />
Wait until transfer is complete. DSI_VC0_TE[30] TE_EN Read 0x0<br />
7.7 <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
CAUTION<br />
• The DISS, DISPC, RFBI, and VENC registers have no register data width<br />
access restriction and can be accessed in 8-bit, 16-bit and 32-bit access.<br />
• The DSI complex I/O and DSI PLL control module registers are limited to<br />
32-bit data access; 16-bit and 8-bit data accesses are not allowed and can<br />
corrupt register content.<br />
• The DSI protocol engine DSS.DSI_VCn_LONG_PACKET_HEADER and<br />
DSS.DSI_VCn_SHORT_PACKET_HEADER registers are limited to 32-bit<br />
data access; 16-bit and 8-bit data accesses are not allowed and can corrupt<br />
register content.<br />
• The DSI protocol engine DSS.DSI_VCn_LONG_PACKET_PAYLOAD<br />
register is limited to 32-bit and 16-bit data access; 8-bit data accesses are<br />
not allowed and can corrupt register content.<br />
• All other DSI protocol engine registers have no register data width access<br />
restriction and can be accessed in 8-bit, 16-bit and 32-bit access.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1795
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-118 summarizes the display subsystem instance.<br />
Table 7-118. <strong>Display</strong> <strong>Subsystem</strong> Instance Summary<br />
Module Name Base Address Size<br />
DSI Protocol Engine 0x4804 FC00 512 bytes<br />
DSI_PHY 0x4804 FE00 64 bytes<br />
DSI PLL Controller 0x4804 FF00 32 bytes<br />
<strong>Display</strong> <strong>Subsystem</strong> 0x4805 0000 512 bytes<br />
<strong>Display</strong> Controller 0x4805 0400 1KB<br />
<strong>Display</strong> Controller VID1 0x4805 0400 1KB<br />
<strong>Display</strong> Controller VID2 0x4805 0400 1KB<br />
RFBI 0x4805 0800 256 bytes<br />
Video Encoder 0x4805 0C00 256 bytes<br />
7.7.1 <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary<br />
7.7.1.1 <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary<br />
Table 7-119. <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
DSS_REVISIONNUMBER R 32 0x000 0x4805 0000<br />
DSS_SYSCONFIG RW 32 0x010 0x4805 0010<br />
DSS_SYSSTATUS R 32 0x014 0x4805 0014<br />
DSS_IRQSTATUS R 32 0x018 0x4805 0018<br />
DSS_CONTROL RW 32 0x040 0x4805 0040<br />
DSS_CLK_STATUS R 32 0x05C 0x4805 005C<br />
7.7.1.2 <strong>Display</strong> Controller Register Mapping Summary<br />
Table 7-120. <strong>Display</strong> Controller Register Mapping Summary<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
DISPC_REVISION R 32 0x000 0x4805 0400<br />
DISPC_SYSCONFIG RW 32 0x010 0x4805 0410<br />
DISPC_SYSSTATUS R 32 0x014 0x4805 0414<br />
DISPC_IRQSTATUS RW 32 0x018 0x4805 0418<br />
DISPC_IRQENABLE RW 32 0x01C 0x4805 041C<br />
DISPC_CONTROL RW 32 0x040 0x4805 0440<br />
DISPC_CONFIG RW 32 0x044 0x4805 0444<br />
DISPC_DEFAULT_COLOR_m RW 32 0x04C+(m * 0x04) (1) 0x4805 044C+(m *<br />
0x04) (1)<br />
DISPC_TRANS_COLOR_m RW 32 0x054+(m * 0x04) (1) 0x4805 0454+(m *<br />
0x04) (1)<br />
DISPC_LINE_STATUS R 32 0x05C 0x4805 045C<br />
DISPC_LINE_NUMBER RW 32 0x060 0x4805 0460<br />
DISPC_TIMING_H RW 32 0x064 0x4805 0464<br />
DISPC_TIMING_V RW 32 0x068 0x4805 0468<br />
DISPC_POL_FREQ RW 32 0x06C 0x4805 046C<br />
DISPC_DIVISOR RW 32 0x<strong>07</strong>0 0x4805 0470<br />
(1) m = 0 to 1<br />
1796<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-120. <strong>Display</strong> Controller Register Mapping Summary (continued)<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
DISPC_GLOBAL_ALPHA RW 32 0x<strong>07</strong>4 0x4805 0474<br />
DISPC_SIZE_DIG RW 32 0x<strong>07</strong>8 0x4805 0478<br />
DISPC_SIZE_LCD RW 32 0x<strong>07</strong>C 0x4805 047C<br />
DISPC_GFX_BAj RW 32 0x080+(j * 0x04) (2)<br />
0x4805 0480+(j * 0x04) (2)<br />
DISPC_GFX_POSITION RW 32 0x088 0x4805 0488<br />
DISPC_GFX_SIZE RW 32 0x08C 0x4805 048C<br />
DISPC_GFX_ATTRIBUTES RW 32 0x0A0 0x4805 04A0<br />
DISPC_GFX_FIFO_THRESHOLD RW 32 0x0A4 0x4805 04A4<br />
DISPC_GFX_FIFO_SIZE_STATUS R 32 0x0A8 0x4805 04A8<br />
DISPC_GFX_ROW_INC RW 32 0x0AC 0x4805 04AC<br />
DISPC_GFX_PIXEL_INC RW 32 0x0B0 0x4805 04B0<br />
DISPC_GFX_WINDOW_SKIP RW 32 0x0B4 0x4805 04B4<br />
DISPC_GFX_TABLE_BA RW 32 0x0B8 0x4805 04B8<br />
DISPC_DATA_CYCLEk RW 32 0x1D4+(k * 0x04) (3) 0x4805 05D4+(k *<br />
0x04) (3)<br />
DISPC_CPR_COEF_R RW 32 0x220 0x4805 0620<br />
DISPC_CPR_COEF_G RW 32 0x224 0x4805 0624<br />
DISPC_CPR_COEF_B RW 32 0x228 0x4805 0628<br />
DISPC_GFX_PRELOAD RW 32 0x22C 0x4805 062C<br />
(2) j = 0 to 1<br />
(3) k = 0 to 2<br />
7.7.1.3 <strong>Display</strong> Controller VID1 Register Mapping Summary<br />
Table 7-121. <strong>Display</strong> Controller VID1 Register Mapping Summary<br />
Register Name (n=1 for VID1) Type Register Width Address Offset <strong>Display</strong> controller VID1<br />
(Bits) Physical<br />
Address<br />
DISPC_VIDn_BAj RW 32 0x0BC+((n–1)* 0x90) + 0x4805 04BC + (j<br />
(j * 0x04) (1) *0x04) (1)<br />
DISPC_VIDn_POSITION RW 32 0x0C4+((n–1)* 0x90) 0x4805 04C4<br />
DISPC_VIDn_SIZE RW 32 0x0C8+((n–1)* 0x90) 0x4805 04C8<br />
DISPC_VIDn_ATTRIBUTES RW 32 0x0CC+((n–1)* 0x90) 0x4805 04CC<br />
DISPC_VIDn_FIFO_THRESHOLD RW 32 0x0D0+((n–1)* 0x90) 0x4805 04D0<br />
DISPC_VIDn_FIFO_SIZE_STATUS R 32 0x0D4+((n–1)* 0x90) 0x4805 04D4<br />
DISPC_VIDn_ROW_INC RW 32 0x0D8+((n–1)* 0x90) 0x4805 04D8<br />
DISPC_VIDn_PIXEL_INC RW 32 0x0DC+((n–1)* 0x90) 0x4805 04DC<br />
DISPC_VIDn_FIR RW 32 0x0E0+((n–1)* 0x90) 0x4805 04E0<br />
DISPC_VIDn_PICTURE_SIZE RW 32 0x0E4+((n–1)* 0x90) 0x4805 04E4<br />
DISPC_VIDn_ACCUl RW 32 0x0E8 + ((n–1)* 0x90) 0x4805 04E8 + (l* 0x04) (2)<br />
+ (l* 0x04) (2)<br />
DISPC_VIDn_FIR_COEF_Hi RW 32 0x0F0+ ((n–1)* 0x90) + 0x4805 04F0+ (i* 0x08) (3)<br />
(i* 0x08) (3)<br />
DISPC_VIDn_FIR_COEF_HVi RW 32 0x0F4+ ((n–1)* 0x90) + 0x4805 04F4 + (i*0x08) (3)<br />
(i* 0x08) (3)<br />
DISPC_VIDn_CONV_COEF0 RW 32 0x130+((n–1)* 0x90) 0x4805 0530<br />
DISPC_VIDn_CONV_COEF1 RW 32 0x134+((n–1)* 0x90) 0x4805 0534<br />
(1)<br />
(2)<br />
(3)<br />
j = 0 to 1<br />
l = 0 to 1<br />
i = 0 to 7<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1797<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-121. <strong>Display</strong> Controller VID1 Register Mapping Summary (continued)<br />
Register Name (n=1 for VID1) Type Register Width Address Offset <strong>Display</strong> controller VID1<br />
(Bits) Physical<br />
Address<br />
DISPC_VIDn_CONV_COEF2 RW 32 0x138+((n–1)* 0x90) 0x4805 0538<br />
DISPC_VIDn_CONV_COEF3 RW 32 0x13C+((n–1)* 0x90) 0x4805 053C<br />
DISPC_VIDn_CONV_COEF4 RW 32 0x140+((n–1)* 0x90) 0x4805 0540<br />
DISPC_VIDn_FIR_COEF_Vi RW 32 0x1E0+ ((n–1)*0x20) + 0x4805 05E0 + (i* 0x04) (3)<br />
(i* 0x04) (3)<br />
DISPC_VIDn_PRELOAD RW 32 0x230+((n–1)* 0x04) 0x4805 0630<br />
7.7.1.4 <strong>Display</strong> Controller VID2 Register Mapping Summary<br />
Table 7-122. <strong>Display</strong> Controller VID2 Register Mapping Summary<br />
Register Name (n=2 for VID2) Type Register Width Address Offset <strong>Display</strong> controller VID2<br />
(Bits) Physical<br />
Address<br />
DISPC_VIDn_BAj RW 32 0x0BC+((n–1)* 0x90) + 0x4805 054C+ (j *0x04) (1)<br />
(j * 0x04) (1)<br />
DISPC_VIDn_POSITION RW 32 0x0C4+((n–1)* 0x90) 0x4805 0554<br />
DISPC_VIDn_SIZE RW 32 0x0C8+((n–1)* 0x90) 0x4805 0558<br />
DISPC_VIDn_ATTRIBUTES RW 32 0x0CC+((n–1)* 0x90) 0x4805 055C<br />
DISPC_VIDn_FIFO_THRESHOLD RW 32 0x0D0+((n–1)* 0x90) 0x4805 0560<br />
DISPC_VIDn_FIFO_SIZE_STATUS R 32 0x0D4+((n–1)* 0x90) 0x4805 0564<br />
DISPC_VIDn_ROW_INC RW 32 0x0D8+((n–1)* 0x90) 0x4805 0568<br />
DISPC_VIDn_PIXEL_INC RW 32 0x0DC+((n–1)* 0x90) 0x4805 056C<br />
DISPC_VIDn_FIR RW 32 0x0E0+((n–1)* 0x90) 0x4805 0570<br />
DISPC_VIDn_PICTURE_SIZE RW 32 0x0E4+((n–1)* 0x90) 0x4805 0574<br />
DISPC_VIDn_ACCUl RW 32 0x0E8 + ((n–1)* 0x90) 0x4805 0578 + (l* 0x04) (2)<br />
+ (l* 0x04) (2)<br />
DISPC_VIDn_FIR_COEF_Hi RW 32 0x0F0+ ((n–1)* 0x90) + 0x4805 0580 + (i* 0x08) (3)<br />
(i* 0x08) (3)<br />
DISPC_VIDn_FIR_COEF_HVi RW 32 0x0F4+ ((n–1)* 0x90) + 0x4805 0584 + (i*0x08) (3)<br />
(i* 0x08) (3)<br />
DISPC_VIDn_CONV_COEF0 RW 32 0x130+((n–1)* 0x90) 0x4805 05C0<br />
DISPC_VIDn_CONV_COEF1 RW 32 0x134+((n–1)* 0x90) 0x4805 05C4<br />
DISPC_VIDn_CONV_COEF2 RW 32 0x138+((n–1)* 0x90) 0x4805 05C8<br />
DISPC_VIDn_CONV_COEF3 RW 32 0x13C+((n–1)* 0x90) 0x4805 05CC<br />
DISPC_VIDn_CONV_COEF4 RW 32 0x140+((n–1)* 0x90) 0x4805 05D0<br />
DISPC_VIDn_FIR_COEF_Vi RW 32 0x1E0+ ((n–1)*0x20) + 0x4805 0670 + (i* 0x04) (3)<br />
(i* 0x04) (3)<br />
DISPC_VIDn_PRELOAD RW 32 0x230+((n–1)* 0x04) 0x4805 0634<br />
(1) j = 0 to 1<br />
(2) l = 0 to 1<br />
(3) i = 0 to 7<br />
7.7.1.5 RFBI Register Mapping Summary<br />
Table 7-123. RFBI Register Mapping Summary<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
RFBI_REVISION R 32 0x00 0x4805 0800<br />
RFBI_SYSCONFIG RW 32 0x10 0x4805 0810<br />
1798<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-123. RFBI Register Mapping Summary (continued)<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
RFBI_SYSSTATUS R 32 0x14 0x4805 0814<br />
RFBI_CONTROL RW 32 0x40 0x4805 0840<br />
RFBI_PIXEL_CNT RW 32 0x44 0x4805 0844<br />
RFBI_LINE_NUMBER RW 32 0x48 0x4805 0848<br />
RFBI_CMD W 32 0x4C 0x4805 084C<br />
RFBI_PARAM W 32 0x50 0x4805 0850<br />
RFBI_DATA W 32 0x54 0x4805 0854<br />
RFBI_READ RW 32 0x58 0x4805 0858<br />
RFBI_STATUS RW 32 0x5C 0x4805 085C<br />
RFBI_CONFIGi RW 32 0x60+ (i* 0x18) (1)<br />
RFBI_ONOFF_TIMEi RW 32 0x64+ (i* 0x18) (1)<br />
RFBI_CYCLE_TIMEi RW 32 0x68+ (i* 0x18) (1)<br />
0x4805 0860+ (i* 0x18) (1)<br />
0x4805 0864+ (i* 0x18) (1)<br />
0x4805 0868+ (i* 0x18) (1)<br />
RFBI_DATA_CYCLE1_i RW 32 0x6C+ (i* 0x18) (2) 0x4805 086C+ (i* 0x18) (2)<br />
RFBI_DATA_CYCLE2_i RW 32 0x70+ (i* 0x18) (2) 0x4805 0870+ (i* 0x18) (2)<br />
RFBI_DATA_CYCLE3_i RW 32 0x74+ (i* 0x18) (2) 0x4805 0874+ (i* 0x18) (2)<br />
RFBI_VSYNC_WIDTH RW 32 0x90 0x4805 0890<br />
RFBI_HSYNC_WIDTH RW 32 0x94 0x4805 0894<br />
(1) i = 0 to 1<br />
(2) i = 0 to 1<br />
7.7.1.6 Video Encoder Register Mapping Summary<br />
Table 7-124. Video Encoder Register Mapping Summary<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
VENC_REV_ID R 32 0x00 0x4805 0C00<br />
VENC_STATUS R 32 0x04 0x4805 0C04<br />
VENC_F_CONTROL RW 32 0x08 0x4805 0C08<br />
VENC_VIDOUT_CTRL RW 32 0x10 0x4805 0C10<br />
VENC_SYNC_CTRL RW 32 0x14 0x4805 0C14<br />
VENC_LLEN RW 32 0x1C 0x4805 0C1C<br />
VENC_FLENS RW 32 0x20 0x4805 0C20<br />
VENC_HFLTR_CTRL RW 32 0x24 0x4805 0C24<br />
VENC_CC_CARR_WSS_CARR RW 32 0x28 0x4805 0C28<br />
VENC_C_PHASE RW 32 0x2C 0x4805 0C2C<br />
VENC_GAIN_U RW 32 0x30 0x4805 0C30<br />
VENC_GAIN_V RW 32 0x34 0x4805 0C34<br />
VENC_GAIN_Y RW 32 0x38 0x4805 0C38<br />
VENC_BLACK_LEVEL RW 32 0x3C 0x4805 0C3C<br />
VENC_BLANK_LEVEL RW 32 0x40 0x4805 0C40<br />
VENC_X_COLOR RW 32 0x44 0x4805 0C44<br />
VENC_M_CONTROL RW 32 0x48 0x4805 0C48<br />
VENC_BSTAMP_WSS_DATA RW 32 0x4C 0x4805 0C4C<br />
VENC_S_CARR RW 32 0x50 0x4805 0C50<br />
VENC_LINE21 RW 32 0x54 0x4805 0C54<br />
VENC_LN_SEL RW 32 0x58 0x4805 0C58<br />
VENC_L21_WC_CTL RW 32 0x5C 0x4805 0C5C<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1799<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-124. Video Encoder Register Mapping Summary (continued)<br />
Register Name Type Register Width Address Offset Physical Address<br />
(Bits)<br />
VENC_HTRIGGER_VTRIGGER RW 32 0x60 0x4805 0C60<br />
VENC_SAVID_EAVID RW 32 0x64 0x4805 0C64<br />
VENC_FLEN_FAL RW 32 0x68 0x4805 0C68<br />
VENC_LAL_PHASE_RESET RW 32 0x6C 0x4805 0C6C<br />
VENC_HS_INT_START_STOP_X RW 32 0x70 0x4805 0C70<br />
VENC_HS_EXT_START_STOP_X RW 32 0x74 0x4805 0C74<br />
VENC_VS_INT_START_X RW 32 0x78 0x4805 0C78<br />
VENC_VS_INT_STOP_X_VS_INT_START_Y RW 32 0x7C 0x4805 0C7C<br />
VENC_VS_INT_STOP_Y_VS_EXT_START_X RW 32 0x80 0x4805 0C80<br />
VENC_VS_EXT_STOP_X_VS_EXT_START_Y RW 32 0x84 0x4805 0C84<br />
VENC_VS_EXT_STOP_Y RW 32 0x88 0x4805 0C88<br />
VENC_AVID_START_STOP_X RW 32 0x90 0x4805 0C90<br />
VENC_AVID_START_STOP_Y RW 32 0x94 0x4805 0C94<br />
VENC_FID_INT_START_X_FID_INT_START_Y RW 32 0xA0 0x4805 0CA0<br />
VENC_FID_INT_OFFSET_Y_FID_EXT_START_ RW 32 0xA4 0x4805 0CA4<br />
X<br />
VENC_FID_EXT_START_Y_FID_EXT_OFFSET RW 32 0xA8 0x4805 0CA8<br />
_Y<br />
VENC_TVDETGP_INT_START_STOP_X RW 32 0xB0 0x4805 0CB0<br />
VENC_TVDETGP_INT_START_STOP_Y RW 32 0xB4 0x4805 0CB4<br />
VENC_GEN_CTRL RW 32 0xB8 0x4805 0CB8<br />
VENC_OUTPUT_CONTROL RW 32 0xC4 0x4805 0CC4<br />
VENC_OUTPUT_TEST RW 32 0xC8 0x4805 0CC8<br />
7.7.1.7 DSI Protocol Engine Register Mapping Summary<br />
Table 7-125. DSI Protocol Engine Register Mapping Summary<br />
Register Name Type Register Width (Bits) Address Offset Physical Address<br />
DSI_REVISION R 32 0x000 0x4804 FC00<br />
DSI_SYSCONFIG RW 32 0x010 0x4804 FC10<br />
DSI_SYSSTATUS R 32 0x014 0x4804 FC14<br />
DSI_IRQSTATUS RW 32 0x018 0x4804 FC18<br />
DSI_IRQENABLE RW 32 0x01C 0x4804 FC1C<br />
DSI_CTRL RW 32 0x040 0x4804 FC40<br />
DSI_COMPLEXIO_CFG RW 32 0x048 0x4804 FC48<br />
1<br />
DSI_COMPLEXIO_IRQ RW 32 0x04C 0x4804 FC4C<br />
STATUS<br />
DSI_COMPLEXIO_IRQ RW 32 0x050 0x4804 FC50<br />
ENABLE<br />
DSI_CLK_CTRL RW 32 0x054 0x4804 FC54<br />
DSI_TIMING1 RW 32 0x058 0x4804 FC58<br />
DSI_TIMING2 RW 32 0x05C 0x4804 FC5C<br />
DSI_VM_TIMING1 RW 32 0x060 0x4804 FC60<br />
DSI_VM_TIMING2 RW 32 0x064 0x4804 FC64<br />
DSI_VM_TIMING3 RW 32 0x068 0x4804 FC68<br />
DSI_CLK_TIMING RW 32 0x06C 0x4804 FC6C<br />
DSI_TX_FIFO_VC_SIZE RW 32 0x<strong>07</strong>0 0x4804 FC70<br />
1800<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-125. DSI Protocol Engine Register Mapping Summary (continued)<br />
Register Name Type Register Width (Bits) Address Offset Physical Address<br />
DSI_RX_FIFO_VC_SIZ RW 32 0x<strong>07</strong>4 0x4804 FC74<br />
E<br />
DSI_COMPLEXIO_CFG RW 32 0x<strong>07</strong>8 0x4804 FC78<br />
2<br />
DSI_RX_FIFO_VC_FUL R 32 0x<strong>07</strong>C 0x4804 FC7C<br />
LNESS<br />
DSI_VM_TIMING4 RW 32 0x080 0x4804 FC80<br />
DSI_TX_FIFO_VC_EMP R 32 0x084 0x4804 FC84<br />
TINESS<br />
DSI_VM_TIMING5 RW 32 0x088 0x4804 FC88<br />
DSI_VM_TIMING6 RW 32 0x08C 0x4804 FC8C<br />
DSI_VM_TIMING7 RW 32 0x090 0x4804 FC90<br />
DSI_STOPCLK_TIMING RW 32 0x094 0x4804 FC94<br />
DSI_VCn_CTRL RW 32 0x100+ (n* 0x20) (1)<br />
0x4804 FD00+ (n*<br />
0x20) (1)<br />
DSI_VCn_TE RW 32 0x104+ (n* 0x20) (1) 0x4804 FD04+ (n*<br />
0x20) (1)<br />
DSI_VCn_LONG_PACK W 32 0x108+ (n* 0x20) (1) 0x4804 FD08+ (n*<br />
ET_HEADER 0x20) (1)<br />
DSI_VCn_LONG_PACK W 32 0x10C+ (n* 0x20) (1) 0x4804 FD0C+ (n*<br />
ET_PAYLOAD 0x20) (1)<br />
DSI_VCn_SHORT_PAC RW 32 0x110+ (n* 0x20) (1) 0x4804 FD10+ (n*<br />
KET_HEADER 0x20) (1)<br />
DSI_VCn_IRQSTATUS RW 32 0x118+ (n* 0x20) (1) 0x4804 FD18+ (n*<br />
0x20) (1)<br />
DSI_VCn_IRQENABLE RW 32 0x11C+ (n* 0x20) (1) 0x4804 FD1C+ (n*<br />
0x20) (1)<br />
(1) n = 0 to 3<br />
7.7.1.8 DSI_PHY Register Mapping Summary<br />
Table 7-126. DSI_PHY Register Mapping Summary<br />
Register Name Type Register Width (Bits) Address Offset Physical Address<br />
DSI_PHY_REGISTER0 RW 32 0x0000 0000 0x4804 FE00<br />
DSI_PHY_REGISTER1 RW 32 0x0000 0004 0x4804 FE04<br />
DSI_PHY_REGISTER2 RW 32 0x0000 0008 0x4804 FE08<br />
DSI_PHY_REGISTER3 RW 32 0x0000 000C 0x4804 FE0C<br />
DSI_PHY_REGISTER4 RW 32 0x0000 0010 0x4804 FE10<br />
DSI_PHY_REGISTER5 R 32 0x0000 0014 0x4804 FE14<br />
7.7.1.9 DSI PLL Controller Register Mapping Summary<br />
Table 7-127. DSI PLL Controller Register Mapping Summary<br />
Register Name Type Register Width (Bits) Address Offset Physical Address<br />
DSI_PLL_CONTROL RW 32 0x0000 0000 0x4804 FF00<br />
DSI_PLL_STATUS R 32 0x0000 0004 0x4804 FF04<br />
DSI_PLL_GO RW 32 0x0000 0008 0x4804 FF08<br />
DSI_PLL_CONFIGURA RW 32 0x0000 000C 0x4804 FF0C<br />
TION1<br />
DSI_PLL_CONFIGURA RW 32 0x0000 0010 0x4804 FF10<br />
TION2<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1801<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
7.7.2 <strong>Display</strong> <strong>Subsystem</strong> Register Descriptions<br />
7.7.2.1 <strong>Display</strong> <strong>Subsystem</strong> Registers<br />
Address Offset 0x000<br />
Table 7-128. DSS_REVISIONNUMBER<br />
Physical address 0x4805 0000 Instance DISS<br />
Description This register contains the display subsystem revision number.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved REV<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Read returns 0. R 0x000000<br />
7:0 REV Revision number R TI internal data<br />
[7:4] Major revision<br />
[3:0] Minor revision<br />
Table 7-129. Register Call Summary for Register DSS_REVISIONNUMBER<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary: [0]<br />
Address Offset 0x010<br />
Table 7-130. DSS_SYSCONFIG<br />
Physical address 0x4805 0010 Instance DISS<br />
Description This register controls the various parameters of the interconnect interface.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
Bits Field Name Description Type Reset<br />
31:5 Reserved Write 0s for future compatibility. Reads return zero. RW 0x00000000<br />
4:3 Reserved Reserved. Keep at reset value. RW 0x0<br />
2 Reserved Write 0s for future compatibility . Reads return zero. RW 0<br />
1 SOFTRESET Software reset. Set this bit to 1 to trigger a module reset. The bit is RW 0<br />
automatically reset by the hardware. During reads, it always returns<br />
0.<br />
0x0: Normal mode<br />
0x1: The module is reset<br />
0 AUTOIDLE Enable power management capability RW 1<br />
0x0: OCP clock is free-running<br />
0x1: Automatic OCP clock gating strategy is applied based on<br />
the OCP interface activity<br />
1802 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Reserved<br />
Reserved<br />
SOFTRESET<br />
AUTOIDLE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Software Reset: [0]<br />
• Autoidle Mode: [1]<br />
• DISPC Interrupt Request: [2]<br />
Table 7-131. Register Call Summary for Register DSS_SYSCONFIG<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> <strong>Subsystem</strong> Reset: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Autoidle: [4]<br />
• Smart-Idle: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary: [6]<br />
Address Offset 0x014<br />
Table 7-132. DSS_SYSSTATUS<br />
Physical address 0x4805 0014 Instance DISS<br />
Description This register provides status information about the module.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
Bits Field Name Description Type Reset<br />
31:1 Reserved Read returns 0. R 0x00000000<br />
0 RESETDONE Internal reset monitoring R 1<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Software Reset: [0]<br />
Read 0x0: Internal module reset is ongoing.<br />
Read 0x1: Reset completed<br />
Table 7-133. Register Call Summary for Register DSS_SYSSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> <strong>Subsystem</strong> Reset: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary: [2]<br />
Address Offset 0x0000 0018<br />
Table 7-134. DSS_IRQSTATUS<br />
Physical Address 0x4805 0018 Instance DSS<br />
Description The register indicates the source of the interrupt and the status of the interrupt line.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_IRQ<br />
RESETDONE<br />
DISPC_IRQ<br />
1803
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:2 RESERVED Reads returns 0. R 0x00000000<br />
1 DSI_IRQ DSI interrupt status (related to DSI_IRQSTATUS) R 0x0<br />
0x0: DSI interrupt inactive<br />
0x1: DSI interrupt active<br />
0 DISPC_IRQ DISPC interrupt status (related to DISPC_IRQSTATUS) R 0x0<br />
0x0: DISPC interrupt inactive<br />
0x1: DISPC interrupt active<br />
Table 7-135. Register Call Summary for Register DSS_IRQSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary: [0]<br />
Address Offset 0x040<br />
Table 7-136. DSS_CONTROL<br />
Physical address 0x4805 0040 Instance DISS<br />
Description This register contains the display subsystem control bits.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
Bits Field Name Description Type Reset<br />
31:7 Reserved Reserved for future DAC use RW 0x0000000<br />
6 VENC_OUT_SEL Video DAC1 input selection: RW 0<br />
0x0: CVBS VENC output selected for composite video<br />
mode<br />
0x1: Luminance VENC output selected for s-video mode<br />
5 DAC_POWERDN_BGZ DAC Power-Down Control RW 0<br />
0x0: DAC Power-Down Band Gap powered down<br />
0x1: DAC Power-Down Band Gap powered up<br />
4 DAC_DEMEN DAC dynamic element matching enable RW 0<br />
0x0: DAC Dynamic Element Matching Disabled<br />
0x1: DAC Dynamic Element Matching Enabled<br />
3 VENC_CLOCK_4X_ VENC clock 4x enable RW 0<br />
ENABLE 0x0: Disable<br />
0x1: Enable<br />
2 VENC_CLOCK_MODE VENC clock mode. See Table 7-20, Possible Digital RW 0<br />
Clock Division for the Video Encoder.<br />
0x0: Mode 0. All three balanced clocks, derived from the<br />
DSS_TV_CLK clock, are provided to the VENC, if the<br />
VENC_CLOCK_4X_ENABLE bit [3] is set to 1 by<br />
software.<br />
0x1: Mode 1. The VENC_CLOCK_4X_ENABLE bit [3] is<br />
used to control clock gating.<br />
1804 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VENC_OUT_SEL<br />
DAC_POWERDN_BGZ<br />
DAC_DEMEN<br />
VENC_CLOCK_4X_ ENABLE<br />
VENC_CLOCK_MODE<br />
DSI_CLK_SWITCH<br />
DISPC_CLK_SWITCH
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
1 DSI_CLK_SWITCH Selects the clock source for the DSI functional clock RW 0<br />
0x0: DSS1_ALWON_FCLK clock is selected (from<br />
PRCM)<br />
0x1: DSI2_PLL_FCLK clock is selected (from DSI PLL)<br />
0 DISPC_CLK_SWITCH Selects the clock source for the DISPC functional clock RW 0<br />
0x0: DSS1_ALWON_FCLK clock is selected (from<br />
PRCM)<br />
0x1: DSI1_PLL_FCLK clock is selected (from DSI PLL)<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• TV <strong>Display</strong> Support: [0]<br />
• Digital-to-Analog Converters: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Clocks: [2] [3] [4] [5] [6] [7]<br />
Table 7-137. Register Call Summary for Register DSS_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Video Encoder Functionalities: [8]<br />
• Video DAC Stage Power Management: [9] [10]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> <strong>Subsystem</strong> Configuration Phase: [11] [12] [13] [14]<br />
• Video DAC Stage Settings: [15]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• <strong>Display</strong> <strong>Subsystem</strong> Clock Configuration: [16] [17] [18]<br />
• DPLL4 in Low-Power Mode: [19] [20]<br />
• Switch to DSI PLL Clock Source: [21]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [22] [23]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary: [24]<br />
Address Offset 0x05C<br />
Table 7-138. DSS_CLK_STATUS<br />
Physical address 0x4805 005C Instance DISS<br />
Description This register contains the display subsystem register.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED RESERVED<br />
Bits Field Name Description Type Reset<br />
31:9 RESERVED RESERVED R 0x0000000<br />
8 DSI_PLL_CLK2_ DSI2_PLL_FCLK clock selection status (DSI mux) Indicates if R 0<br />
STATUS the DSI protocol engine is running from the DSI2_PLL_FCLK<br />
clock<br />
Read 0: DSI2_PLL_FCLK is not selected (unused by DSI).<br />
Read 1: DSI2_PLL_FCLK is selected (used by DSI).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_PLL_CLK2_STATUS<br />
DSS_DSI_CLK1_STATUS<br />
DSI_PLL_CLK1_STATUS<br />
DSS_DISPC_CLK1_STATUS<br />
1805
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
7 DSS_DSI_CLK1_ DSS1_ALWON_FCLK clock selection status (DSI mux) R 0<br />
STATUS Indicates if the DSI protocol engine is running from the<br />
DSS1_ALWON_FCLK clock<br />
Read 0: DSS1_ALWON_FCLK is not selected (unused by DSI).<br />
Read 1: DSS1_ALWON_FCLK is selected (used by DSI).<br />
6:2 RESERVED RESERVED R 0<br />
1 DSI_PLL_CLK1_ DSI1_PLL_FCLK clock selection status (DISPC mux) Indicates if R 0<br />
STATUS the display controller is running from the DSI1_PLL_FCLK clock<br />
Read 0: DSI1_PLL_FCLK is not selected (unused by DISPC).<br />
Read 1: DSI1_PLL_FCLK is selected (used by DISPC).<br />
0 DSS_DISPC_CLK1_ DSS1_ALWON_FCLK clock selection status (DISPC mux) R 1<br />
STATUS Indicates if the display controller is running from the<br />
DSS1_ALWON_FCLK clock<br />
Read 0: DSS1_ALWON_FCLK is not selected (unused by<br />
DISPC).<br />
Read 1: DSS1_ALWON_FCLK is selected (used by DISPC).<br />
Table 7-139. Register Call Summary for Register DSS_CLK_STATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Mapping Summary: [0]<br />
7.7.2.2 <strong>Display</strong> Controller Registers<br />
Address Offset 0x000<br />
Table 7-140. DISPC_REVISION<br />
Physical address 0x4805 0400 Instance DISC<br />
Description This register contains the IP revision code.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved REV<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Write 0s for future compatibility. Read returns 0. R 0x000000<br />
7:0 REV IP revision R TI internal data<br />
[7:4] Major revision<br />
[3:0] Minor revision<br />
Table 7-141. Register Call Summary for Register DISPC_REVISION<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [0]<br />
Address Offset 0x010<br />
Table 7-142. DISPC_SYSCONFIG<br />
Physical address 0x4805 0410 Instance DISC<br />
Description This register allows the control of various parameters of the interconnect interface.<br />
Type RW<br />
1806 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved Reserved<br />
Bits Field Name Description Type Reset<br />
31:14 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00000<br />
13:12 MIDLEMODE Master interface power management, standby/waitcontrol RW 0x0<br />
MIDLEMODE<br />
Reserved<br />
CLOCKACTIVITY<br />
0x0: Force standby. MStandby is asserted only when the<br />
module is disabled.<br />
0x1: No standby: MStandby is never asserted.<br />
0x2: Smart Standby. MStandby is asserted based on the<br />
internal activity of the module.<br />
0x3: Reserved<br />
11:10 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00<br />
9:8 CLOCKACTIVITY Clock activity during wakeup mode period RW 0x0<br />
0x0: interface and functional clocks can be switched off.<br />
0x1: Functional clocks can be switched off and interface<br />
clocks are maintained during wakeup period.<br />
0x2: Interface clocks can be switched off and functional clocks<br />
are maintained during wakeup period.<br />
0x3: Interface and functional clocks are maintained during<br />
wakeup period.<br />
7:5 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0<br />
4:3 SIDLEMODE Slave interface power management, idle req/ack control RW 0x0<br />
0x0: Force idle. An idle request is acknowledged<br />
unconditionally.<br />
0x1: No idle. An idle request is never acknowledged.<br />
0x2: Smart idle. Idle request is acknowledged based on the<br />
internal activity of the module.<br />
0x3: Reserved<br />
2 ENWAKEUP Wakeup feature control RW 0<br />
0x0: Wakeup is disabled.<br />
0x1: Wakeup is enabled.<br />
1 SOFTRESET Software reset. Set this bit to 1 to trigger a module reset. The bit is RW 0<br />
automatically reset by the hardware. During reads, it always returns<br />
0.<br />
0x0: Normal mode<br />
0x1: The module is reset.<br />
0 AUTOIDLE Internal interface clock gating strategy RW 1<br />
0x0: Interface clock is free-running.<br />
0x1: Automatic L3 and L4 interface clock gating strategy is<br />
applied based on interface activity.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
SIDLEMODE<br />
ENWAKEUP<br />
SOFTRESET<br />
AUTOIDLE<br />
18<strong>07</strong>
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-143. Register Call Summary for Register DISPC_SYSCONFIG<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Software Reset: [0]<br />
• Clock Activity Mode: [1] [2] [3] [4] [5]<br />
• Autoidle Mode: [6]<br />
• Idle Mode: [7] [8] [9]<br />
• Wake-Up Mode: [10]<br />
• Standby Mode: [11]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Configuration: [12]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Autoidle: [13]<br />
• Smart-Idle: [14]<br />
• Reset DISPC: [15] [16] [17] [18]<br />
• Configure the DISPC: [19] [20] [21] [22]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [23]<br />
Address Offset 0x014<br />
Table 7-144. DISPC_SYSSTATUS<br />
Physical address 0x4805 0414 Instance DISC<br />
Description This register provides status information about the module, excluding interrupt status information.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved Reserved<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Write 0s for future compatibility. Read returns 0. R 0x000000<br />
7:1 Reserved Reserved. Read returns 0. R 0x00<br />
0 RESETDONE Internal reset monitoring R 0<br />
Read 0x0: Internal module reset is ongoing.<br />
Read 0x1: Reset complete<br />
Table 7-145. Register Call Summary for Register DISPC_SYSSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Configuration: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [1]<br />
1808 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESETDONE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x018<br />
Table 7-146. DISPC_IRQSTATUS<br />
Physical address 0x4805 0418 Instance DISC<br />
Description This register regroups all the status of module internal events that generate an interrupt. A write of 1 to a given bit<br />
resets the bit.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
WAKEUP<br />
Bits Field Name Description Type Reset<br />
31:17 Reserved Write 0s for future compatibility. RW 0x0000<br />
Read returns 0<br />
16 WAKEUP Wakeup RW 0<br />
SYNCLOSTDIGITAL<br />
Read 0x0: Wakeup is false.<br />
SYNCLOST<br />
VID2ENDWINDOW<br />
VID2FIFOUNDERFLOW<br />
Write 0x0: Wakeup status bit unchanged<br />
Read 0x1: Wakeup is true (pending).<br />
Write 0x1: Wakeup status bit reset<br />
15 SYNCLOSTDIGITAL SyncLostDigital RW 0<br />
Read 0x0: SyncLostDigital is false.<br />
VID1ENDWINDOW<br />
VID1FIFOUNDERFLOW<br />
Write 0x0: SyncLostDigital status bit unchanged<br />
Read 0x1: SyncLostDigital is true (pending).<br />
Write 0x1: SyncLostDigital status bit reset<br />
14 SYNCLOST SyncLost RW 0<br />
Read 0x0: SyncLost is false.<br />
Write 0x0: SyncLost status bit unchanged<br />
Read 0x1: SyncLost is true (pending).<br />
Write 0x1: SyncLost status bit reset<br />
13 VID2ENDWINDOW Vid2EndWindow RW 0<br />
Read 0x0: Vid2EndWindow is false.<br />
Write 0x0: Vid2EndWindow status bit unchanged<br />
Read 0x1: Vid2EndWindow is true (pending).<br />
Write 0x1: Vid2EndWindow status bit reset<br />
12 VID2FIFOUNDERFLOW Vid2FIFOUnderflow RW 0<br />
Read 0x0: Vid2FIFOUnderflow is false.<br />
OCPERROR<br />
Write 0x0: Vid2FIFOUnderflow status bit unchanged<br />
Read 0x1: Vid2FIFOUnderflow is true (pending).<br />
Write 0x1: Vid2FIFOUnderflow status bit reset<br />
11 VID1ENDWINDOW Vid1EndWindow RW 0<br />
Read 0x0: Vid1EndWindow is false.<br />
Write 0x0: Vid1EndWindow status bit unchanged<br />
Read 0x1: Vid1EndWindow is true (pending).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
PALETTEGAMMALOADING<br />
GFXENDWINDOW<br />
GFXFIFOUNDERFLOW<br />
PROGRAMMEDLINENUMBER<br />
ACBIASCOUNTSTATUS<br />
EVSYNC_ODD<br />
EVSYNC_EVEN<br />
VSYNC<br />
FRAMEDONE<br />
1809
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
Write 0x1: Vid1EndWindow status bit reset<br />
10 VID1FIFOUNDERFLOW Vid1FIFOUnderflow RW 0<br />
Read 0x0: Vid1FIFOUnderflow is false.<br />
Write 0x0: Vid1FIFOUnderflow status bit unchanged<br />
Read 0x1: Vid1FIFOUnderflow is true (pending).<br />
Write 0x1: Vid1FIFOUnderflow status bit reset<br />
9 OCPERROR OCPError RW 0<br />
Read 0x0: OCPError is false.<br />
Write 0x0: OCPError status bit unchanged<br />
Read 0x1: OCPError is true (pending).<br />
Write 0x1: OCPError status bit reset<br />
8 PALETTEGAMMA PaletteGammaLoading RW 0<br />
LOADING<br />
Read 0x0: PaletteGammaLoading is false.<br />
Write 0x0: PaletteGammaLoading status bit unchanged<br />
Read 0x1: PaletteGammaLoading is true (pending).<br />
Write 0x1: PaletteGammaLoading status bit reset<br />
7 GFXENDWINDOW GfxEndWindow RW 0<br />
Read 0x0: GfxEndWindow is false.<br />
Write 0x0: GfxEndWindow status bit unchanged<br />
Read 0x1: GfxEndWindow is true (pending).<br />
Write 0x1: GfxEndWindow status bit reset<br />
6 GFXFIFOUNDERFLOW GfxFIFOUnderflow RW 0<br />
Read 0x0: GfxFIFOUnderflow is false.<br />
Write 0x0: GfxFIFOUnderflow status bit unchanged<br />
Read 0x1: GfxFIFOUnderflow is true (pending).<br />
Write 0x1: GfxFIFOUnderflow status bit reset<br />
5 PROGRAMMEDLINE ProgrammedLineNumber RW 0<br />
NUMBER<br />
Read 0x0: ProgrammedLineNumber is false.<br />
Write 0x0: ProgrammedLineNumber status bit unchanged<br />
Read 0x1: ProgrammedLineNumber is true (pending).<br />
Write 0x1: ProgrammedLineNumber status bit reset<br />
4 ACBIASCOUNTSTATUS ACBiasCountStatus RW 0<br />
Read 0x0: ACBiasCountStatus is false.<br />
Write 0x0: ACBiasCountStatus status bit unchanged<br />
Read 0x1: ACBiasCountStatus is true (pending).<br />
Write 0x1: ACBiasCountStatus status bit reset<br />
3 EVSYNC_ODD EVSYNC_ODD RW 0<br />
Read 0x0: EVSYNC_ODD is false.<br />
Write 0x0: EVSYNC_ODD status bit unchanged<br />
Read 0x1: EVSYNC_ODD is true (pending).<br />
Write 0x1: EVSYNC_ODD status bit reset<br />
2 EVSYNC_EVEN EVSYNC_EVEN RW 0<br />
Read 0x0: EVSYNC_EVEN is false.<br />
Write 0x0: EVSYNC_EVEN status bit unchanged<br />
Read 0x1: EVSYNC_EVEN is true (pending).<br />
Write 0x1: EVSYNC_EVEN status bit reset<br />
1 VSYNC VSYNC RW 0<br />
Read 0x0: VSYNC is false.<br />
1810 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
Write 0x0: VSYNC status bit unchanged<br />
Read 0x1: VSYNC is true (pending).<br />
Write 0x1: VSYNC status bit reset<br />
0 FRAMEDONE FrameDone RW 0<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• DISPC Interrupt Request: [0] [1]<br />
Read 0x0: FrameDone is false.<br />
Write 0x0: FrameDone status bit unchanged<br />
Read 0x1: FrameDone is true (pending).<br />
Write 0x1: FrameDone status bit reset<br />
Table 7-147. Register Call Summary for Register DISPC_IRQSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> <strong>Subsystem</strong> Reset: [2] [3]<br />
• <strong>Display</strong> Controller Configuration: [4]<br />
• TV Set-Specific Control Registers: [5]<br />
• Video Encoder Programming Sequence: [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [7]<br />
• <strong>Display</strong> <strong>Subsystem</strong> Registers: [8]<br />
Address Offset 0x01C<br />
Table 7-148. DISPC_IRQENABLE<br />
Physical address 0x4805 041C Instance DISC<br />
Description This register allows the masking/unmasking of module internal interrupt sources, on an event-by-event basis.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
WAKEUP<br />
Bits Field Name Description Type Reset<br />
31:17 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0000<br />
16 WAKEUP Wakeup mask RW 0<br />
SYNCLOSTDIGITAL<br />
0x0: Wakeup is masked.<br />
SYNCLOST<br />
VID2ENDWINDOW<br />
VID2FIFOUNDERFLOW<br />
ENDVID1WINDOW<br />
VID1FIFOUNDERFLOW<br />
0x1: Wakeup generates an interrupt when it occurs.<br />
15 SYNCLOSTDIGITAL SyncLostDigital RW 0<br />
0x0: SyncLostDigital is masked.<br />
OCPERROR<br />
PALETTEGAMMAMASK<br />
0x1: SyncLostDigital generates an interrupt when it occurs.<br />
14 SYNCLOST SyncLost RW 0<br />
0x0: SyncLost is masked.<br />
0x1: SyncLost generates an interrupt when it occurs.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
GFXENDWINDOW<br />
GFXFIFOUNDERFLOW<br />
PROGRAMMEDLINENUMBER<br />
ACBIASCOUNTSTATUS<br />
EVSYNC_ODD<br />
EVSYNC_EVEN<br />
VSYNC<br />
FRAMEMASK<br />
1811
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
13 VID2ENDWINDOW Vid2EndWindow RW 0<br />
0x0: Vid2EndWindow is masked.<br />
0x1: Vid2EndWindow generates an interrupt when it occurs.<br />
12 VID2FIFOUNDERFLOW Vid2FIFOUnderflow RW 0<br />
0x0: Vid2FIFOUnderflow is masked.<br />
0x1: Vid2FIFOUnderflow generates an interrupt when it<br />
occurs.<br />
11 ENDVID1WINDOW EndVid1Window RW 0<br />
0x0: EndVid1Window is masked.<br />
0x1: EndVid1Window generates an interrupt when it occurs.<br />
10 VID1FIFOUNDERFLOW Vid1FIFOUnderflow RW 0<br />
0x0: Vid1FIFOUnderflow is masked.<br />
0x1: Vid1FIFOUnderflow generates an interrupt when it<br />
occurs.<br />
9 OCPERROR OCPError RW 0<br />
0x0: OCPError is masked.<br />
0x1: OCPError generates an interrupt when it occurs.<br />
8 PALETTEGAMMAMASK PaletteGammaMask RW 0<br />
0x0: PaletteGammaMask is masked.<br />
0x1: PaletteGammaMask generates an interrupt when it<br />
occurs.<br />
7 GFXENDWINDOW GfxEndWindow RW 0<br />
0x0: GfxEndWindow is masked.<br />
0x1: GfxEndWindow generates an interrupt when it occurs.<br />
6 GFXFIFOUNDERFLOW GfxFIFOUnderflow RW 0<br />
0x0: GfxFIFOUnderflow is masked.<br />
0x1: GfxFIFOUnderflow generates an interrupt when it<br />
occurs.<br />
5 PROGRAMMEDLINE ProgrammedLineNumber RW 0<br />
NUMBER<br />
0x0: ProgrammedLineNumber is masked.<br />
0x1: ProgrammedLineNumber generates an interrupt when it<br />
occurs.<br />
4 ACBIASCOUNTSTATUS ACBiasCountStatus RW 0<br />
0x0: ACBiasCountStatus is masked.<br />
0x1: ACBiasCountStatus generates an interrupt when it<br />
occurs.<br />
3 EVSYNC_ODD EVSYNC_ODD RW 0<br />
0x0: EVSYNC_ODD is masked.<br />
0x1: EVSYNC_ODD generates an interrupt when it occurs.<br />
2 EVSYNC_EVEN EVSYNC_EVEN RW 0<br />
0x0: EVSYNC_EVEN is masked.<br />
0x1: EVSYNC_EVEN generates an interrupt when it occurs.<br />
1 VSYNC VSYNC RW 0<br />
0x0: VSYNC is masked.<br />
0x1: VSYNC generates an interrupt when it occurs.<br />
0 FRAMEMASK FrameMask RW 0<br />
0x0: FrameMask is masked.<br />
0x1: FrameMask generates an interrupt when it occurs.<br />
1812 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• DISPC Interrupt Request: [0] [1]<br />
Table 7-149. Register Call Summary for Register DISPC_IRQENABLE<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Configuration: [2]<br />
• TV Set-Specific Control Registers: [3]<br />
• Video Encoder Programming Sequence: [4] [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Reset DISPC: [7]<br />
• Configure the DISPC: [8]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [9]<br />
Address Offset 0x040<br />
Table 7-150. DISPC_CONTROL<br />
Physical address 0x4805 0440 Instance DISC<br />
Description The control register configures the display controller module.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
SPATIALTEMPORALDITHERINGFRAMES<br />
LCDENABLEPOL<br />
LCDENABLESIGNAL<br />
PCKFREEENABLE<br />
TDMUNUSEDBITS<br />
TDMCYCLEFORMAT<br />
TDMPARALLELMODE<br />
TDMENABLE<br />
HT<br />
GPOUT1<br />
Bits Field Name Description Type Reset<br />
31:30 SPATIALTEMPORAL Spatial/Temporal dithering number of frames RW 0x0<br />
DITHERINGFRAMES wr: VFP<br />
0x0: Spatial only<br />
GPOUT0<br />
GPIN1<br />
GPIN0<br />
OVERLAYOPTIMIZATION<br />
0x1: Spatial and temporal over two frames<br />
STALLMODE<br />
0x2: Spatial and temporal over four frames<br />
0x3: Reserved<br />
29 LCDENABLEPOL LCD Enable Signal Polarity RW 0<br />
0x0: Active low<br />
0x1: Active high<br />
28 LCDENABLESIGNAL LCD Enable Signal: LCD interface active/inactive RW 0<br />
0x0: Signal disabled<br />
0x1: Signal enabled<br />
27 PCKFREEENABLE Pixel clock free-running enabled/disabled RW 0<br />
0x0: Clock disabled<br />
0x1: Clock enabled<br />
26:25 TDMUNUSEDBITS State of unused bits (TDM mode only) RW 0x0<br />
WR: VFP<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Reserved<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
TFTDATALINES<br />
STDITHERENABLE<br />
GODIGITAL<br />
GOLCD<br />
M8B<br />
STNTFT<br />
MONOCOLOR<br />
DIGITALENABLE<br />
LCDENABLE<br />
1813
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x0: Low level (0)<br />
0x1: High level (1)<br />
0x2: Unchanged from previous state<br />
0x3: Reserved<br />
24:23 TDMCYCLEFORMAT Cycle format (TDM mode only) RW 0x0<br />
WR: VFP<br />
0x0: 1 cycle for 1 pixel<br />
0x1: 2 cycles for 1 pixel<br />
0x2: 3 cycles for 1 pixel<br />
0x3: 3 cycles for 2 pixels<br />
22:21 TDMPARALLELMODE Output Interface width (TDM mode only) RW 0x0<br />
WR: VFP<br />
0x0: 8-bit parallel output interface selected<br />
0x1: 9-bit parallel output interface selected<br />
0x2: 12-bit parallel output interface selected<br />
0x3: 16-bit parallel output interface selected<br />
20 TDMENABLE Enable the multiple cycle format (TDM mode used only for Active RW 0<br />
Matrix mode with the RFBI enable bit off).<br />
WR: VFP<br />
0x0: TDM disabled<br />
0x1: TDM enabled<br />
19:17 HT Hold Time for digital output RW 0x0<br />
WR: EVSYNC<br />
Encoded value (from 0 to 7) holds time for digital output. The data<br />
will be held for (HT + 1) external digital clock periods.<br />
16 GPOUT1 General Purpose Output Signal RW 0<br />
0x0: The GPout1 is reset.<br />
0x1: The GPout1 is set.<br />
15 GPOUT0 General Purpose Output Signal RW 0<br />
0x0: The GPout0 is reset.<br />
0x1: The GPout0 is set.<br />
14 GPIN1 General Purpose Input Signal R 0<br />
WR: VFP<br />
Read The GPin1 has been reset.<br />
0x0:<br />
Read The GPin1 has been set.<br />
0x1:<br />
13 GPIN0 General Purpose Input Signal R 0<br />
WR: VFP<br />
Read The GPin0 has been reset.<br />
0x0:<br />
Read The GPin0 has been set.<br />
0x1:<br />
12 OVERLAYOPTIMI Overlay Optimization (available when graphics format is NOT is RW 0<br />
ZATION 1-, 2, and 4-BPP)<br />
WR: VFP or EVSYNC<br />
0x0: Graphics data below video1 window fetched from<br />
memory or no overlap between graphics and video1<br />
windows.<br />
0x1: Graphics data below video1 window not fetched from<br />
memory.<br />
11 STALLMODE Stall mode for the LCD output RW 0<br />
wr: VFP<br />
0x0: Normal mode selected<br />
1814 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
0x1: Stall mode selected. The <strong>Display</strong> Controller sends the<br />
data without considering the VSYNC/HSYNC. The LCD<br />
output is disabled at the end of the transfer of the<br />
frame. The S/W has to re-enable the LCD output to<br />
generate a new frame. The stall mode is used in RFBI<br />
and DSI command modes.<br />
10 Reserved Reserved for non-GP devices RW 0<br />
9:8 TFTDATALINES Number of lines of the LCD interface RW 0x0<br />
WR: VFP<br />
0x0: 12-bit output aligned on the LSB of the pixel data<br />
interface<br />
0x1: 16-bit output aligned on the LSB of the pixel data<br />
interface<br />
0x2: 18-bit output aligned on the LSB of the pixel data<br />
interface<br />
0x3: 24-bit output aligned on the LSB of the pixel data<br />
interface<br />
7 STDITHERENABLE Spatial temporal dithering enable RW 0<br />
WR: VFP<br />
0x0: Spatial/temporal dithering logic disabled<br />
0x1: Spatial/temporal dithering logic enabled<br />
6 GODIGITAL Digital GO Command RW 0<br />
0x0: The hardware has finished updating the internal shadow<br />
registers of the pipeline(s) associated with the digital<br />
output using the user values. The hardware resets the<br />
bit when the update is completed.<br />
0x1: Users have finished programming the shadow registers<br />
of the pipeline(s) associated with the digital output and<br />
the hardware can update the internal registers at the<br />
external VSYNC.<br />
5 GOLCD LCD GO Command RW 0<br />
0x0: The hardware has finished updating the internal shadow<br />
registers of the pipeline(s) connected to the LCD output<br />
using the user values. The hardware resets the bit when<br />
the update is completed.<br />
0x1: Users have finished programming the shadow registers<br />
of the pipeline(s) associated with the LCD output and<br />
the hardware can update the internal registers at the<br />
VFP start period.<br />
4 M8B Mono 8-bit mode RW 0<br />
WR: VFP<br />
0x0: Pixel data [3:0] is used to output four pixel values to the<br />
panel at each pixel clock transition (only in Passive<br />
Mono 8-bit mode).<br />
0x1: Pixel data [7:0] is used to output eight pixel values to<br />
the panel each pixel clock transition (only in Passive<br />
Mono 8-bit mode).<br />
3 STNTFT LCD display type RW 0<br />
WR: VFP<br />
0x0: Passive or Passive Matrix display operation enabled.<br />
Passive Matrix dither logic enabled.<br />
0x1: Active Matrix display operation enabled. Passive Matrix<br />
Dither logic and output FIFO bypassed.<br />
2 MONOCOLOR Monochrome/Color RW 0<br />
WR: VFP<br />
0x0: Color operation enabled (Passive Matrix mode only)<br />
0x1: Monochrome operation enabled (Passive Matrix mode<br />
only)<br />
1 DIGITALENABLE Digital enable RW 0<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1815
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x0: Digital output disabled (at the end of the current field if<br />
interlace output when the bit is reset)<br />
0x1: Digital output enabled<br />
0 LCDENABLE LCD enable RW 0<br />
0x0: LCD output disabled (at the end of the frame when the<br />
bit is reset)<br />
0x1: LCD output enabled<br />
Table 7-151. Register Call Summary for Register DISPC_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Parallel Interface: [0] [1] [2]<br />
• Transaction Timing Diagrams: [3]<br />
• Video Port Used on Command Mode: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Clocks: [5]<br />
• DISPC Interrupt Request: [6] [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Overlay Support: [8]<br />
• Multiple Cycle Output Format: [9]<br />
• Command Mode: [10]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> <strong>Subsystem</strong> Reset: [11]<br />
• <strong>Display</strong> Controller Basic Programming Model: [12] [13] [14] [15] [16] [17] [18]<br />
• Graphics DMA Registers: [19]<br />
• Graphics Layer Configuration Registers: [20] [21]<br />
• Graphics Window Attributes: [22]<br />
• Video DMA Registers: [23]<br />
• Video Configuration Register: [24] [25]<br />
• Video Up-/Down-Sampling Configuration: [26] [27]<br />
• Image Data from On-Chip SRAM: [28]<br />
• LCD-Specific Control Registers: [29] [30]<br />
• LCD Attributes: [31] [32] [33] [34]<br />
• LCD Timings: [35] [36] [37]<br />
• LCD Overlay: [38] [39] [40]<br />
• LCD TDM: [41] [42] [43] [44] [45] [46] [47]<br />
• LCD Spatial/Temporal Dithering: [48] [49] [50] [51] [52]<br />
• LCD Color Phase Rotation: [53] [54] [55]<br />
• TV Set-Specific Control Registers: [56] [57] [58] [59]<br />
• Digital Timings: [60]<br />
• Digital Overlay: [61] [62] [63]<br />
• Video Mode Transfer: [64]<br />
• Command Mode Transfer Example 1: [65]<br />
• Command Mode Transfer Example 2: [66]<br />
• DISPC Control Registers: [67] [68] [69] [70] [71] [72]<br />
• Enable: [73]<br />
• Video Encoder Programming Sequence: [74] [75]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DISPC Timing, Window, and Color: [76] [77] [78] [79] [80] [81] [82] [83] [84]<br />
• Enable Video Mode Using the DISPC Video Port: [85] [86] [87]<br />
• Configure the DISPC: [88] [89] [90] [91] [92] [93] [94] [95] [96]<br />
• Send Frame Data to LCD Panel Using Automatic TE: [97]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [98]<br />
• <strong>Display</strong> Controller Registers: [99]<br />
1816<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x044<br />
Table 7-152. DISPC_CONFIG<br />
Physical address 0x4805 0444 Instance DISC<br />
Description This control register configures the display controller module.<br />
Shadow register, updated on VFP start period or EVSYNC<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
TVALPHABLENDERENABLE<br />
LCDALPHABLENDERENABLE<br />
FIFOFILLING<br />
FIFOHANDCHECK<br />
Bits Field Name Description Type Reset<br />
31: 20 Reserved Write 0s for future compatibility. Read returns 0 RW 0x00000<br />
19 TVALPHABLENDER Selects the alpha blender (TV output) RW 0<br />
ENABLE<br />
CPR<br />
FIFOMERGE<br />
0x0: Alpha blender is disabled.<br />
TCKDIGSELECTION<br />
0x1: The alpha blender is enabled.<br />
18 LCDALPHABLENDER Selects the alpha blender (LCD output) RW 0<br />
ENABLE<br />
0x0: Alpha blender is disabled.<br />
0x1: The alpha blender is enabled.<br />
17 FIFOFILLING Controls if the FIFO are refilled only when the LOW threshold is RW 0<br />
reached or if all FIFO are refilled when at least one of them<br />
reaches the LOW threshold.<br />
0x0: Each FIFO is refilled when it reaches LOW threshold.<br />
0x1: All FIFOs are refilled up to high threshold when at least<br />
one of them reaches the LOW threshold. (only active<br />
FIFOs should be considered and when reaching the end<br />
of the frame the FIFO goes to empty condition so no<br />
need to fill it again).<br />
16 FIFOHANDCHECK Controls the handshake between FIFO and RFBI STALL to RW 0<br />
prevent from underflow. The bit should be set to 0 when the<br />
module is not in STALL mode.<br />
0x0: Only the STALL signal from RFBI is used regardless of<br />
the FIFO fullness information to provide data to the<br />
RFBI module.<br />
0x1: The STALL signal from RFBI is used in combination<br />
with the FIFO fullness information to provide data to the<br />
RFBI module only when it does not generated FIFO<br />
underflow.<br />
15 CPR Color phase rotation control wr: VFP RW 0<br />
0x0: Color phase rotation disabled<br />
0x1: Color phase rotation enabled<br />
14 FIFOMERGE FIFO merge control RW 0<br />
wr: EVSYNC or VFP<br />
TCKDIGENABLE<br />
TCKLCDSELECTION<br />
0x0: FIFO merge disabled<br />
Each FIFO is dedicated to one pipeline.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
TCKLCDENABLE<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
FUNCGATED<br />
ACBIASGATED<br />
VSYNCGATED<br />
HSYNCGATED<br />
PIXELCLOCKGATED<br />
PIXELDATAGATED<br />
PALETTEGAMMATABLE<br />
LOADMODE<br />
PIXELGATED<br />
1817
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x1: FIFO merge enabled<br />
All the FIFOS are merged into a single one to be used<br />
by the single active pipeline.<br />
13 TCKDIGSELECTION Transparency color key selection (digital output) RW 0<br />
wr: EVSYNC<br />
0x0: Graphics destination transparency color key selected in<br />
normal mode or graphics source transparency color key<br />
selected in alpha mode<br />
0x1: Video source transparency color key selected in normal<br />
mode<br />
12 TCKDIGENABLE Transparency color key enabled (digital output) RW 0<br />
wr: EVSYNC<br />
0x0: Disable the transparency color key for digital output<br />
0x1: Enable the transparency color key for digital output<br />
11 TCKLCDSELECTION Transparency color key selection (LCD output) RW 0<br />
WR: VFP<br />
0x0: Graphics destination transparency color key selected in<br />
normal mode or graphics source transparency color key<br />
selected in alpha mode<br />
0x1: Video source transparency color key selected in normal<br />
mode<br />
10 TCKLCDENABLE Transparency color key enabled (LCD output) RW 0<br />
WR: VFP *<br />
0x0: Disable the transparency color key for the LCD<br />
0x1: Enable the transparency color key for the LCD<br />
9 FUNCGATED Functional clocks gated enabled RW 0<br />
WR: immediate<br />
0x0: Functional clocks gated disabled<br />
0x1: Functional clocks gated enabled<br />
8 ACBIASGATED ACBias Gated Enabled RW 0<br />
WR: VFP<br />
0x0: AcBias Gated Disabled<br />
0x1: AcBias Gated Enabled<br />
7 VSYNCGATED VSYNC Gated Enabled RW 0<br />
WR: VFP<br />
0x0: VSYNC Gated Disabled<br />
0x1: VSYNC Gated Enabled<br />
6 HSYNCGATED HSYNC Gated Enabled RW 0<br />
WR: VFP<br />
0x0: HSYNC Gated Disabled<br />
0x1: HSYNC Gated Enabled<br />
5 PIXELCLOCKGATED Pixel Clock Gated Enabled RW 0<br />
WR: VFP<br />
0x0: Pixel Clock Gated Disabled<br />
0x1: Pixel Clock Gated Enabled<br />
4 PIXELDATAGATED Pixel Data Gated Enabled RW 0<br />
WR: VFP<br />
0x0: Pixel Data Gated Disabled<br />
0x1: Pixel Data Gated Enabled<br />
3 PALETTEGAMMATABLE Palette/Gamma Table selection RW 0<br />
WR: EVSYNC or VFP<br />
0x0: LUT used as palette (only if graphics format is<br />
BITMAP1, 2, 4, and 8)<br />
0x1: LUT used as gamma table (only if graphics format is<br />
NOT BITMAP1, 2, 4, and 8 or no graphics window<br />
present)<br />
1818 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
2:1 LOADMODE Loading Mode for the Palette/Gamma Table RW 0x0<br />
WR: EVSYNC or VFP<br />
0x0: Palette/Gamma Table and data are loaded every frame.<br />
0x1: Palette/Gamma Table to be loaded. Users set the bit<br />
when the palette/gamma table has to be loaded. H/W<br />
resets the bit when table has been loaded.<br />
(DISPC_GFX_ATTRIBUTES. GfxEnable has to be set<br />
to 1).<br />
0x2: Frame data only loaded every frame<br />
0x3: Palette/Gamma Table and frame data loaded on first<br />
frame then switch to 10 (H/W).<br />
0 PIXELGATED Pixel Gated Enable (only for Active Matrix <strong>Display</strong>) RW 0<br />
WR: VFP<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Autoidle Mode: [1]<br />
• Wake-Up Mode: [2]<br />
0x0: Pixel clock always toggles (only in Active Matrix mode)<br />
0x1: Pixel clock only toggles when there is valid data to<br />
display. (only in Active Matrix mode)<br />
Table 7-153. Register Call Summary for Register DISPC_CONFIG<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Transparency Color Keys: [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [15]<br />
• Graphics DMA Registers: [16] [17] [18]<br />
• Graphics Layer Configuration Registers: [19]<br />
• Video DMA Registers: [20] [21]<br />
• Video Configuration Register: [22]<br />
• LCD-Specific Control Registers: [23]<br />
• LCD Timings: [24] [25] [26] [27] [28]<br />
• LCD Overlay: [29] [30] [31]<br />
• LCD Color Phase Rotation: [32]<br />
• TV Set-Specific Control Registers: [33]<br />
• Digital Overlay: [34] [35] [36]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Autoidle: [37]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [38]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1819
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-154. DISPC_DEFAULT_COLOR_m<br />
Address Offset 0x04C + m * 0x04 Indexm m = 0 to 1<br />
Physical address 0x4805 044C + m * 0x04 Instance DISPC<br />
Description The control register allows to configure the default solid background color for the LCD<br />
(DISPC_DEFAULT_COLOR_0) and for 24-bit digital output (DISPC_DEFAULT_COLOR_1).<br />
Shadow register, updated on VFP start period for DISPC_DEFAULT_COLOR_0 and EVSYNC for<br />
DISPC_DEFAULT_COLOR_1<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved DEFAULTCOLOR<br />
Bits Field Name Description Type Reset<br />
31:24 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
23:0 DEFAULTCOLOR 24-bit RGB color value to specify the default solid color to display RW 0x000000<br />
when there is no data from the overlays.<br />
Table 7-155. Register Call Summary for Register DISPC_DEFAULT_COLOR_m<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0] [1]<br />
• LCD-Specific Control Registers: [2]<br />
• LCD Overlay: [3]<br />
• TV Set-Specific Control Registers: [4]<br />
• Digital Overlay: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [6]<br />
Table 7-156. DISPC_TRANS_COLOR_m<br />
Address Offset 0x054 + m * 0x04 Index m = 0 to 1<br />
Physical address 0x4805 0454 + m * 0x04 Instance DISPC<br />
Description The register sets the transparency color value for the video/graphics overlays for the LCD output<br />
(DISPC_TRANS_COLOR_0) for 24-bit digital output(DISPC_TRANS_COLOR_1).<br />
Shadow register, updated on VFP start period for DISPC_TRANS_COLOR_0 and EVSYNC for<br />
DISPC_TRANS_COLOR_1<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved TRANSCOLORKEY<br />
Bits Field Name Description Type Reset<br />
31:24 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
23:0 TRANSCOLORKEY Transparency Color Key Value in RGB format RW 0x000000<br />
[0] BITMAP 1 (CLUT), [23,1] set to 0s<br />
[1:0] BITMAP 2 (CLUT), [23,2] set to 0s<br />
[3:0] BITMAP 4 (CLUT), [23,4] set to 0s<br />
[7:0] BITMAP 8 (CLUT), [23,8] set to 0s<br />
[11:0] RGB 12, [23,12] set to 0s<br />
[15:0] RGB 16, [23,16] set to 0s<br />
[23:0] RGB 24<br />
1820 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-157. Register Call Summary for Register DISPC_TRANS_COLOR_m<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0] [1]<br />
• LCD-Specific Control Registers: [2]<br />
• TV Set-Specific Control Registers: [3]<br />
• Digital Overlay: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [5]<br />
Address Offset 0x05C<br />
Table 7-158. DISPC_LINE_STATUS<br />
Physical address 0x4805 045C Instance DISC<br />
Description The control register indicates the current LCD panel display line number.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LINENUMBER<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Write 0s for future compatibility. R 0x000000<br />
Read returns 0<br />
10:0 LINENUMBER Current LCD panel line number R 0x7FF<br />
Current display line number. The first active line has the value 0.<br />
During blanking lines the line number is not incremented.<br />
Table 7-159. Register Call Summary for Register DISPC_LINE_STATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [0]<br />
Address Offset 0x060<br />
Table 7-160. DISPC_LINE_NUMBER<br />
Physical address 0x4805 0460 Instance DISC<br />
Description The control register indicates the LCD panel display line number for the interrupt and the DMA request.<br />
Shadow register, updated on VFP start period.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LINENUMBER<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Write 0s for future compatibility. RW 0x000000<br />
Read returns 0<br />
10:0 LINENUMBER LCD panel line number programming RW 0x000<br />
LCD line number defines the line on which the programmable<br />
interrupt is generated and the DMA request occurs.<br />
Table 7-161. Register Call Summary for Register DISPC_LINE_NUMBER<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• <strong>Display</strong> Controller DMA Request (Line Trigger): [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [1]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1821<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-161. Register Call Summary for Register DISPC_LINE_NUMBER (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [2]<br />
Address Offset 0x064<br />
Table 7-162. DISPC_TIMING_H<br />
Physical address 0x4805 0464 Instance DISC<br />
Description The register configures the timing logic for the HSYNC signal.<br />
Shadow register, updated on VFP start period<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HBP HFP HSW<br />
Bits Field Name Description Type Reset<br />
31:20 HBP Horizontal Back Porch. RW 0x00<br />
Encoded value (from 1 to 4096) to specify the number of pixel clock<br />
periods to add to the beginning of a line transmission before the first set<br />
of pixels is output to the display (program to value minus 1).<br />
19:8 HFP Horizontal front porch. RW 0x00<br />
Encoded value (from 1 to 4096) to specify the number of pixel clock<br />
periods to add to the end of a line transmission before line clock is<br />
asserted (program to value minus 1).<br />
7:0 HSW Horizontal synchronization pulse width RW 0x00<br />
Encoded value (from 1 to 256) to specify the number of pixel clock<br />
periods to pulse the line clock at the end of each line (program to value<br />
minus 1).<br />
Table 7-163. Register Call Summary for Register DISPC_TIMING_H<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [3]<br />
• LCD-Specific Control Registers: [4]<br />
• LCD Timings: [5] [6] [7] [8] [9] [10]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Vertical and Horizontal Timings: [11] [12] [13]<br />
• Configure DISPC Timing, Window, and Color: [14]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [15]<br />
Address Offset 0x068<br />
Table 7-164. DISPC_TIMING_V<br />
Physical address 0x4805 0468 Instance DISC<br />
Description The register configures the timing logic for the VSYNC signal.<br />
Shadow register, updated on VFP start period<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VBP VFP VSW<br />
1822 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31:20 VBP Vertical back porch RW 0x00<br />
Encoded value (from 0 to 4095) to specify the number of line clock<br />
periods to add to the beginning of a frame before the first set of pixels is<br />
output to the display.<br />
19:8 VFP Vertical front porch RW 0x00<br />
Encoded value (from 0 to 4095) to specify the number of line clock<br />
periods to add to the end of each frame.<br />
7:0 VSW Vertical synchronization pulse width RW 0x00<br />
In active mode, encoded value (from 1 to 256) to specify the number of<br />
line clock periods (program to value minus one) to pulse the frame clock<br />
(VSYNC) pin at the end of each frame after the end of frame wait (VFP)<br />
period elapses. Frame clock uses as VSYNC signal in active mode.<br />
In passive mode, encoded value (from 1 to 256) to specify the number of<br />
extra line clock periods (program to value minus one) to insert after the<br />
vertical front porch (VFP) period has elapsed.<br />
Table 7-165. Register Call Summary for Register DISPC_TIMING_V<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [3]<br />
• LCD-Specific Control Registers: [4]<br />
• LCD Timings: [5] [6] [7] [8] [9] [10]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Vertical and Horizontal Timings: [11] [12] [13]<br />
• Configure DISPC Timing, Window, and Color: [14]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [15]<br />
Address Offset 0x06C<br />
Table 7-166. DISPC_POL_FREQ<br />
Physical address 0x4805 046C Instance DISC<br />
Description The register configures the signal configuration.<br />
Shadow register, updated on VFP start period<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
ONOFF<br />
Reserved ACBI ACB<br />
RF<br />
Bits Field Name Description Type Reset<br />
31:18 Reserved Write 0s for future compatibility. RW 0x0000<br />
Read returns 0<br />
17 ONOFF HSYNC/VSYNC Pixel clock Control On/Off RW 0<br />
IEO<br />
0x0: HSYNC and VSYNC are driven on opposite edges of pixel clock<br />
than pixel data<br />
IPC<br />
IHS<br />
IVS<br />
0x1: HSYNC and VSYNC are driven according to bit 16<br />
16 RF Program HSYNC/VSYNC Rise or Fall RW 0<br />
0x0: HSYNC and VSYNC are driven on falling edge of pixel clock (if<br />
bit 17 set to 1)<br />
0x1: HSYNC and VSYNC are driven on the rising edge of pixel clock<br />
(if bit 17 set to 1)<br />
15 IEO Invert output enable RW 0<br />
0x0: Ac-bias is active high (active display mode)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1823
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x1: Ac-bias is active low (active display mode)<br />
14 IPC Invert pixel clock RW 0<br />
0x0: Data is driven on the LCD data lines on the rising-edge of the<br />
pixel clock<br />
0x1: Data is driven on the LCD data lines on the falling-edge of the<br />
pixel clock<br />
13 IHS Invert HSYNC RW 0<br />
0x0: Line clock pin is active high and inactive low<br />
0x1: Line clock pin is active low and inactive high<br />
12 IVS Invert VSYNC RW 0<br />
0x0: Frame clock pin is active high and inactive low<br />
0x1: Frame clock pin is active low and inactive high<br />
11:8 ACBI AC-bias pin transitions per interrupt RW 0x0<br />
Value (from 0 to 15) used to specify the number of AC Bias pin transitions<br />
7:0 ACB AC-bias pin frequency RW 0x00<br />
Value (from 0 to 255) used to specify the number of line clocks to count<br />
before transitioning the ac-bias pin. This pin is used to periodically invert<br />
the polarity of the power supply to prevent DC charge build-up within the<br />
display.<br />
Table 7-167. Register Call Summary for Register DISPC_POL_FREQ<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23]<br />
[24] [25] [26] [27] [28] [29]<br />
• Video Port (VP) Interface: [30]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [31]<br />
• LCD-Specific Control Registers: [32]<br />
• LCD Timings: [33] [34] [35] [36] [37] [38] [39] [40]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [41]<br />
Address Offset 0x<strong>07</strong>0<br />
Table 7-168. DISPC_DIVISOR<br />
Physical address 0x4805 0470 Instance DISC<br />
Description The register configures the divisors.<br />
Shadow register, updated on VFP start period<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LCD Reserved PCD<br />
Bits Field Name Description Type Reset<br />
31:24 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
23:16 LCD <strong>Display</strong> Controller Logic Clock Divisor RW 0x01<br />
Value (from 1 to 255) to specify the frequency of the display controller<br />
logic clock based on the function clock. The value 0 is invalid.<br />
15:8 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
7:0 PCD Pixel Clock Divisor RW 0x02<br />
Value (from 1 to 255) to specify the frequency of the pixel clock based on<br />
the Logic clock which is the functional clock divided by LCD. The values 0<br />
and 1 are invalid.<br />
1824 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-169. Register Call Summary for Register DISPC_DIVISOR<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Video Port (VP) Interface: [0]<br />
• Video Port Used on Command Mode: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [2]<br />
• LCD-Specific Control Registers: [3]<br />
• LCD Timings: [4] [5] [6]<br />
• Digital Timings: [7] [8]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• <strong>Display</strong> <strong>Subsystem</strong> Clock Configuration: [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]<br />
• Configure DISPC Timing, Window, and Color: [21]<br />
• Configure the DISPC: [22] [23]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [24]<br />
Address Offset 0x0000 0<strong>07</strong>4<br />
Table 7-170. DISPC_GLOBAL_ALPHA<br />
Physical Address 0x4805 0474 Instance DISC<br />
Description The register defines the global alpha value for the graphics and video 2 pipelines. Shadow<br />
register, updated on VFP start period or EVSYNC for each bit field depending on the association<br />
of the each pipeline with the LCD or TV output.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED VID2GLOBALALPHA RESERVED GFXGLOBALALPHA<br />
Bits Field Name Description Type Reset<br />
31:24 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads return 0<br />
23:16 VID2GLOBALALPHA Global alpha value from 0 to 255. 0 corresponds to fully transparent RW 0x00<br />
and 255 to fully opaque.<br />
15:8 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads return 0<br />
7:0 GFXGLOBALALPHA Global alpha value from 0 to 255. 0 corresponds to fully transparent RW 0x00<br />
and 255 to fully opaque.<br />
Table 7-171. Register Call Summary for Register DISPC_GLOBAL_ALPHA<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• LCD Overlay: [0] [1]<br />
• Digital Overlay: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [4]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1825
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x<strong>07</strong>8<br />
Table 7-172. DISPC_SIZE_DIG<br />
Physical address 0x4805 0478 Instance DISC<br />
Description The register configures the size of the digital output field (interlace), frame (progressive) (horizontal and vertical).<br />
Shadow register, updated on EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LPP Reserved PPL<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 LPP Lines per panel RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of lines per panel<br />
(program to value minus one).<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 PPL Pixels per line RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of pixels contained<br />
within each line on the display (program to value minus one)<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Up-/Down-Sampling: [0]<br />
Table 7-173. Register Call Summary for Register DISPC_SIZE_DIG<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [1]<br />
• TV Set-Specific Control Registers: [2]<br />
• Digital Frame/Field Size: [3] [4]<br />
• Video Encoder Register Settings: [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [7]<br />
Address Offset 0x<strong>07</strong>C<br />
Table 7-174. DISPC_SIZE_LCD<br />
Physical address 0x4805 047C Instance DISC<br />
Description The register configures the panel size (horizontal and vertical).<br />
Shadow register, updated on VFP start period<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LPP Reserved PPL<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 LPP Lines per panel RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of lines per panel<br />
(program to value minus one).<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
1826 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
10:0 PPL Pixels per line RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of pixels contains<br />
within each line on the display (program to value minus one). When<br />
running in normal mode (stall mode is bypassed by setting<br />
DSS.DISPC_CONTROL[11] STALLMODE =0) the line width must be set<br />
to a value multiple of 8 pixels (ex: PPL=0x7)<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Up-/Down-Sampling: [2]<br />
Table 7-175. Register Call Summary for Register DISPC_SIZE_LCD<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [3]<br />
• LCD-Specific Control Registers: [4]<br />
• LCD Attributes: [5] [6]<br />
• LCD Timings: [7] [8]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DISPC Timing, Window, and Color: [9]<br />
• Configure the DISPC: [10] [11]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [12]<br />
Table 7-176. DISPC_GFX_BAj<br />
Address Offset 0x080 + j * 0x04 Index j = 0 to 1<br />
Physical address 0x4805 0480+ j * 0x04 Instance DISC<br />
Description The register configures the base address of the graphics buffer displayed in the graphics window (0 1 :for<br />
ping-pong mechanism with external trigger, based on the field polarity, 0 only used when graphics pipeline on the<br />
LCD output and 0 1 when on the 24-bit digital output).<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
GFXBA<br />
Bits Field Name Description Type Reset<br />
31:0 GFXBA Graphics base address RW 0x00000000<br />
Base address of the graphics buffer (aligned on pixel size boundary)<br />
(in case 1-, 2-, and 4-BPP, byte alignment is required)<br />
Table 7-177. Register Call Summary for Register DISPC_GFX_BAj<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics DMA Registers: [1] [2]<br />
• Image Data from On-Chip SRAM: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [4]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1827
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x088<br />
Table 7-178. DISPC_GFX_POSITION<br />
Physical address 0x4805 0488 Instance DISC<br />
Description The register configures the position of the graphics window.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GFXPOSY Reserved GFXPOSX<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 GFXPOSY Y position of the graphics window. RW 0x000<br />
Encoded value (from 0 to 2047) to specify the Y position of the graphics<br />
window on the screen. The line at the top has the Y-position 0.<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 GFXPOSX X position of the graphics window. RW 0x000<br />
Encoded value (from 0 to 2047) to specify the X position of the graphics<br />
window on the screen. The first pixel on the left of the screen has the<br />
X-position 0.<br />
Table 7-179. Register Call Summary for Register DISPC_GFX_POSITION<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics Layer Configuration Registers: [1]<br />
• Graphics Window Attributes: [2] [3]<br />
• Image Data from On-Chip SRAM: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [5]<br />
Address Offset 0x08C<br />
Table 7-180. DISPC_GFX_SIZE<br />
Physical address 0x4805 048C Instance DISC<br />
Description The register configures the size of the graphics window.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GFXSIZEY Reserved GFXSIZEX<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00<br />
26:16 GFXSIZEY Number of lines of the graphics window. RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of lines of the<br />
graphics window (program to value minus one).<br />
15:11 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00<br />
10:0 GFXSIZEX Number of pixels of the graphics window. RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of pixels per line<br />
of the graphics window (program to value minus one).<br />
1828 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-181. Register Call Summary for Register DISPC_GFX_SIZE<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics Layer Configuration Registers: [1]<br />
• Graphics Window Attributes: [2] [3]<br />
• Image Data from On-Chip SRAM: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [5]<br />
Address Offset 0x0A0<br />
Table 7-182. DISPC_GFX_ATTRIBUTES<br />
Physical address 0x4805 04A0 Instance DISC<br />
Description The register configures the graphics attributes.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
PREMULTIPLYALPHA<br />
RESERVED GFXFORMAT<br />
Bits Field Name Description Type Reset<br />
31:29 Reserved Write 0s for future compatibility. RW 0x000000<br />
Read returns 0.<br />
28 PREMULTIPLYALPHA The field configures the DISPC GFX to process incoming data as RW 0<br />
pre-multiplied alpha data or non premultiplied alpha data.<br />
Default setting is non pre-multiplied alpha data.<br />
0x0: Non pre-multiplyalpha data color component<br />
0x1: Pre-multiplyalpha data color component<br />
GFXSELFREFRESH<br />
GFXARBITRATION<br />
GFXROTATION<br />
GFXFIFOPRELOAD<br />
NOTE: The pre-multiplied alpha option is<br />
only valid when bit field [4:1]<br />
GFXFORMAT is set to ARGB or<br />
RGBA formats. Otherwise, the<br />
PREMULTIPLYALPHA bit field is<br />
ignored by the hardware.<br />
27:16 Reserved Write 0s for future compatibility. RW 0x000000<br />
Read returns 0.<br />
15 GFXSELFREFRESH Enables the self refresh of the graphics window from its own FIFO RW 0<br />
only.<br />
0x0: The graphics pipeline accesses the interconnect to fetch<br />
data from the system memory<br />
0x1: The graphics pipeline does not need anymore to fetch<br />
data from memory. Only the graphics FIFO is used. It<br />
takes effect after the frame has been loaded in the FIFO<br />
14 GFXARBITRATION Determines the priority of the graphics pipeline. The graphics RW 0<br />
pipeline is one of the high priority pipeline. The arbitration wheel<br />
gives always the priority first to the high priority pipelines using<br />
round-robin between them. When there is only normal priority<br />
pipelines sending requests, the round-robin applies between them.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
GFXENDIANNESS<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
GFXNIBBLEMODE<br />
GFXCHANNELOUT<br />
GFXBURSTSIZE<br />
GFXREPLICATIONENABLE<br />
GFXENABLE<br />
1829
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x0: The graphics pipeline is one of the normal priority<br />
pipeline.<br />
0x1: The graphics pipeline is one of the high priority pipeline.<br />
13:12 GFXROTATION Graphics rotation flag (used only in case of RGB24 packed format) RW 0x0<br />
0x0: No rotation<br />
0x1: Rotation by 90 degrees<br />
0x2: Rotation by 180 degrees<br />
0x3: Rotation by 270 degrees<br />
11 GFXFIFOPRELOAD Graphics preload value RW 0<br />
0x0: H/W prefetches pixels up to the preload value defined in<br />
the preload register.<br />
0x1: H/W prefetches pixels up to high threshold value.<br />
10 GFXENDIANNESS Graphics endianness RW 0<br />
0x0: Little endian operation is selected.<br />
0x1: Big endian operation is selected.<br />
9 GFXNIBBLEMODE Graphics Nibble Mode (only for 1-, 2- and 4-BPP) RW 0<br />
0x0: Nibble mode is disabled<br />
0x1: Nibble mode is enabled<br />
8 GFXCHANNELOUT Graphics Channel Out configuration RW 0<br />
wr: immediate<br />
0x0: LCD output selected<br />
0x1: 24-bit output selected<br />
7:6 GFXBURSTSIZE Graphics DMA Burst Size RW 0x0<br />
0x0: 4x32bit bursts<br />
0x1: 8x32bit bursts<br />
0x2: 16x32bit bursts<br />
0x3: Reserved<br />
5 GFXREPLICATION GfxReplicationEnable RW 0<br />
ENABLE<br />
0x0: Disable Graphics replication logic<br />
0x1: Enable Graphics replication logic<br />
4:1 GFXFORMAT Graphics format; Other enums: Reserved (0x7, 0xA, 0xB and 0xF) RW 0x0<br />
0x0: BITMAP 1 (CLUT)<br />
0x1: BITMAP 2 (CLUT)<br />
0x2: BITMAP 4 (CLUT)<br />
0x3: BITMAP 8 (CLUT)<br />
0x4: RGB 12 (un-packed in 16-bit container)<br />
0x5: ARGB16<br />
0x6: RGB 16<br />
0x8: RGB 24 (un-packed in 32-bit container)<br />
0x9: RGB 24 (packed in 24-bit container)<br />
0xC: ARGB32<br />
0xD: RGBA32<br />
0xE: RGBx 32 (24-bit RGB aligned on MSB of the 32-bit<br />
container)<br />
0 GFXENABLE GfxEnable RW 0<br />
0x0: Graphics disabled (graphics pipeline inactive and<br />
graphics window not present)<br />
0x1: Graphics enabled (graphics pipeline active and graphics<br />
window present on the screen)<br />
1830 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-183. Register Call Summary for Register DISPC_GFX_ATTRIBUTES<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Priority Rule: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [2]<br />
• Graphics DMA Registers: [3] [4] [5] [6] [7] [8] [9]<br />
• Graphics Layer Configuration Registers: [10] [11]<br />
• Graphics Window Attributes: [12] [13] [14] [15] [16]<br />
• Image Data from On-Chip SRAM: [17]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [18]<br />
• <strong>Display</strong> Controller Registers: [19]<br />
Address Offset 0x0A4<br />
Table 7-184. DISPC_GFX_FIFO_THRESHOLD<br />
Physical address 0x4805 04A4 Instance DISC<br />
Description The register configures the graphics FIFO.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GFXFIFOHIGHTHRESHOLD Reserved GFXFIFOLOWTHRESHOLD<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00<br />
27:16 GFXFIFOHIGH Graphics FIFO High Threshold RW 0x3FF<br />
THRESHOLD Number of bytes defining the threshold value.<br />
15:12 Reserved Write 0s for future compatibility. Read returns 0 RW 0x00<br />
11:0 GFXFIFOLOW Graphics FIFO Low Threshold RW 0x3C0<br />
THRESHOLD Number of bytes defining the threshold value<br />
Table 7-185. Register Call Summary for Register DISPC_GFX_FIFO_THRESHOLD<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics DMA Registers: [1] [2] [3] [4] [5] [6]<br />
• Image Data from On-Chip SRAM: [7] [8] [9]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• FIFO Thresholds: [10] [11]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [12]<br />
Address Offset 0x0A8<br />
Table 7-186. DISPC_GFX_FIFO_SIZE_STATUS<br />
Physical address 0x4805 04A8 Instance DISC<br />
Description This register defines the graphics FIFO size.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GFXFIFOSIZE<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1831
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Write 0s for future compatibility. R 0x000000<br />
Read returns 0<br />
10:0 GFXFIFOSIZE Graphics FIFO Size R 0x400<br />
Number of bytes defining the FIFO value.<br />
Table 7-187. Register Call Summary for Register DISPC_GFX_FIFO_SIZE_STATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [0]<br />
Address Offset 0x0AC<br />
Table 7-188. DISPC_GFX_ROW_INC<br />
Physical address 0x4805 04AC Instance DISC<br />
Description The register configures the number of bytes to increment at the end of the row.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
GFXROWINC<br />
Bits Field Name Description Type Reset<br />
31:0 GFXROWINC Number of bytes to increment at the end of the row RW 0x00000001<br />
Encoded signed value (from -2 31 - 1 to 2 31 ) to specify the number of<br />
bytes to increment at the end of the row in the graphics buffer.<br />
The value 0 is invalid. The value 1 means next pixel. The value<br />
1+n*BPP means increment of n pixels. The value 1- (n+1)*BPP<br />
means decrement of n pixels.<br />
Table 7-189. Register Call Summary for Register DISPC_GFX_ROW_INC<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics DMA Registers: [1]<br />
• Graphics Window Attributes: [2] [3]<br />
• Image Data from On-Chip SRAM: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [5]<br />
Address Offset 0x0B0<br />
Table 7-190. DISPC_GFX_PIXEL_INC<br />
Physical address 0x4805 04B0 Instance DISC<br />
Description The register configures the number of bytes to increment between two pixels.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GFXPIXELINC<br />
1832 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility. RW 0x0000<br />
Read returns 0<br />
15:0 GFXPIXELINC Number of bytes to increment between two pixels RW 0x0001<br />
Encoded signed value (from -2 15 - 1 to 2 15 ) to specify the number of<br />
bytes between two pixels in the graphics buffer.<br />
The value 0 is invalid. The value 1 means next pixel. The value<br />
1+n*BPP means increment of n pixels. The value 1- (n+1)*BPP<br />
means decrement of n pixels.<br />
Table 7-191. Register Call Summary for Register DISPC_GFX_PIXEL_INC<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics DMA Registers: [1]<br />
• Image Data from On-Chip SRAM: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [3]<br />
Address Offset 0x0B4<br />
Table 7-192. DISPC_GFX_WINDOW_SKIP<br />
Physical address 0x4805 04B4 Instance DISC<br />
Description The register configures the number of bytes to skip during video window display.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
GFXWINDOWSKIP<br />
Bits Field Name Description Type Reset<br />
31:0 GFXWINDOWSKIP Number of bytes to skip during video window #1. RW 0x00000000<br />
Encoded signed value (from -2 31 -1 to 2 31 ) to specify the number of<br />
bytes to skip in the graphics buffer when video window #1 is<br />
displayed on top of the graphics and no transparency color is<br />
enabled.<br />
Table 7-193. Register Call Summary for Register DISPC_GFX_WINDOW_SKIP<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Overlay Support: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [1]<br />
• Graphics Window Attributes: [2] [3] [4] [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [6]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1833
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x0B8<br />
Table 7-194. DISPC_GFX_TABLE_BA<br />
Physical address 0x4805 04B8 Instance DISC<br />
Description The register configures the base address of the palette buffer or the gamma table buffer.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
GFXTABLEBA<br />
Bits Field Name Description Type Reset<br />
31:0 GFXTABLEBA Base address of the palette/gamma table buffer (24-bit entries in RW 0x00000000<br />
32-bit containers, aligned on 32-bit boundary).<br />
Table 7-195. Register Call Summary for Register DISPC_GFX_TABLE_BA<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics DMA Registers: [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [3]<br />
Table 7-196. DISPC_VIDn_BAj<br />
Address Offset 0x0BC + ((n–1)* 0x90) + (j* 0x04) Index n = 1 for VID1 or 2 for VID2<br />
j = 0 to 1<br />
Physical address 0x4805 04BC + (j *0x04) Instance <strong>Display</strong> Controller<br />
0x4805 04BC + (j *0x04) <strong>Display</strong> Controller VID1<br />
0x4805 054C+ (j *0x04) <strong>Display</strong> Controller<br />
0x4805 054C+ (j *0x04) <strong>Display</strong> Controller VID2<br />
Description The register configures the base address of the video buffer for video window #n(#j for ping-pong mechanism with<br />
external trigger, based on the field polarity: 0 for even field and 1 for odd field).<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VIDBA<br />
Bits Field Name Description Type Reset<br />
31:0 VIDBA Video base address RW 0x00000000<br />
Base address of the video buffer (aligned on pixel size boundary)<br />
Table 7-197. Register Call Summary for Register DISPC_VIDn_BAj<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video DMA Registers: [1] [2]<br />
• Image Data from On-Chip SRAM: [3] [4] [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Register List: [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [7]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [8]<br />
1834<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-198. DISPC_VIDn_POSITION<br />
Address Offset 0x0C4 + ((–1) *0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04C4 Instance <strong>Display</strong> Controller<br />
0x4805 04C4 <strong>Display</strong> Controller VID1<br />
0x4805 0554 <strong>Display</strong> Controller<br />
0x4805 0554 <strong>Display</strong> Controller VID2<br />
Description The register configures the position of video window #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDPOSY Reserved VIDPOSX<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 VIDPOSY Y position of video window #n RW 0x000<br />
Encoded value (from 0 to 2047) to specify the Y position of video<br />
window #n. The line at the top has the Y-position 0.<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 VIDPOSX X position of video window #n RW 0x000<br />
Encoded value (from 0 to 2047) to specify the X position of video<br />
window #n. The first pixel on the left of the display screen has the<br />
X-position 0.<br />
Table 7-199. Register Call Summary for Register DISPC_VIDn_POSITION<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Configuration Register: [1]<br />
• Video Window Attributes: [2] [3]<br />
• Image Data from On-Chip SRAM: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [5]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [6]<br />
Table 7-200. DISPC_VIDn_SIZE<br />
Address Offset 0x0C8+((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04C8 Instance <strong>Display</strong> Controller<br />
0x4805 04C8 <strong>Display</strong> Controller VID1<br />
0x4805 0558 <strong>Display</strong> Controller<br />
0x4805 0558 <strong>Display</strong> Controller VID2<br />
Description The register configures the size of video window #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDSIZEY Reserved VIDSIZEX<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 VIDSIZEY Number of lines of video #n RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of lines of<br />
video window #n (program to value minus one).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1835
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 VIDSIZEX Number of pixels of video window #n RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of pixels of<br />
video window #n (program to value minus one).<br />
Table 7-201. Register Call Summary for Register DISPC_VIDn_SIZE<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Configuration Register: [1]<br />
• Video Window Attributes: [2] [3]<br />
• Image Data from On-Chip SRAM: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [5]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [6]<br />
Table 7-202. DISPC_VIDn_ATTRIBUTES<br />
Address Offset 0x0CC+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04CC Instance <strong>Display</strong> Controller<br />
0x4805 04CC <strong>Display</strong> Controller VID1<br />
0x4805 055C <strong>Display</strong> Controller<br />
0x4805 055C <strong>Display</strong> Controller VID2<br />
Description The register configures the attributes of video window #n such as format, resizeenable, shadow register, updated<br />
on VFP start period, or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
PREMULTIPLYALPHA<br />
RESERVED<br />
VIDSELFREFRESH<br />
VIDARBITRATION<br />
VIDLINEBUFFERSPLIT<br />
VIDVERTICALTAPS<br />
VIDDMAOPTIMIZATION<br />
VIDFIFOPRELOAD<br />
VIDROWREPEATENABLE<br />
VIDENDIANNESS<br />
VIDCHANNELOUT<br />
VIDBURSTSIZE<br />
VIDROTATION<br />
VIDFULLRANGE<br />
VIDVRESIZECONF<br />
VIDHRESIZECONF<br />
VIDRESIZEENABLE<br />
VIDFORMAT<br />
Bits Field Name Description Type Reset<br />
31: 29 RESERVED Write 0s for future compatibility. Read returns 0. RW 0x0000<br />
28 PREMULTIPLYALPHA The field configures the DISPC VID2 to process incoming data as RW 0<br />
pre-multiplied alpha data or non pre-multiplied alpha data.<br />
Default setting is non pre-multiplied alpha data.<br />
0x0: Non pre-multiplyalpha data color component<br />
0x1: Premultiplyalpha data color component<br />
NOTE: The pre-multiplied alpha control is<br />
supported only on VID2.<br />
For VID1 this bitfield is<br />
RESERVED.<br />
The pre-multiplied alpha option is<br />
only valid when bit field [4:1]<br />
VIDFORMAT is set to ARGB or<br />
RGBA formats. Otherwise, the<br />
PREMULTIPLYALPHA bit field is<br />
ignored by the hardware.<br />
1836 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
VIDREPLICATIONENABLE<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VIDCOLORCONVENABLE<br />
VIDENABLE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
27: 25 RESERVED Write 0s for future compatibility. Read returns 0. RW 0x0000<br />
24 VIDSELFREFRESH Enables the self refresh of the video window from its own FIFO RW 0<br />
only.<br />
0x0: The video pipeline accesses the interconnect to fetch data<br />
from the system memory<br />
0x1: The video pipeline does not need anymore to fetch data<br />
from memory. Only the video FIFO is used. It takes effect<br />
after the frame has been loaded in the FIFO<br />
23 VIDARBITRATION Determines the priority of the video pipeline. The video pipeline is RW 0<br />
one of the high priority pipeline. The arbitration wheel gives always<br />
the priority first to the high priority pipelines using round-robin<br />
between them. When there is only normal priority pipelines sending<br />
requests, the round-robin applies between them.<br />
0x0: The video pipeline is one of the normal priority pipeline.<br />
0x1: The video pipeline is one of the high priority pipeline.<br />
22 VIDLINEBUFFER Video vertical line buffer split RW 0<br />
SPLIT<br />
0x0: Vertical line buffers are not split.<br />
0x1: Vertical line buffers are split into two.<br />
21 VIDVERTICALTAPS Video vertical resize tap number RW 0<br />
0x0: Three taps are used for the vertical filtering logic. The<br />
other two taps are not used.<br />
0x1: Five taps are used for the vertical filtering logic.<br />
20 VIDDMAOPTI Video optimization in case of RW 0<br />
MIZATION<br />
0x0: The DMA engine fetches one pixel for each 32-bit OCP<br />
request (RGB16 and YUV422) while doing 90- and<br />
270-degree rotation (accessing on-chip memory and<br />
off-chip memory).<br />
0x1: The DMA engine fetches two pixels for each 32-bit OCP<br />
request (RGB16 and YUV422) while doing 90- and<br />
270-degree rotation (accessing on-chip memory and<br />
off-chip memory).<br />
The bit field [21] VIDVERTICALTAPS shall be set to 0x1,<br />
bit field [22] VIDLINEBUFFERSPLIT to 0x1, and all scaler<br />
registers shall be configured even for 1:1 ratio.<br />
Even width is required for the input picture when 5 taps are<br />
used.<br />
19 VIDFIFOPRELOAD Video preload value RW 0<br />
0x0: H/W prefetches pixels up to the preload value defined in<br />
the preload register.<br />
0x1: H/W prefetches pixels up to the high threshold value.<br />
18 VIDROWREPEAT Video Row Repeat (YUV case only when rotating 90 or RW 0<br />
ENABLE 270-degree)<br />
0x0: Row of VIDn won't be read twice.<br />
0x1: The Row data are fetched twice to extract both the Y<br />
components<br />
17 VIDENDIANNESS Video Endianness RW 0<br />
0x0: Little endian operation is selected.<br />
0x1: Big endian operation is selected.<br />
16 VIDCHANNELOUT Video Channel Out configuration RW 0<br />
wr: Immediate<br />
0x0: LCD output selected<br />
0x1: 24 bit output selected<br />
15:14 VIDBURSTSIZE Video DMA Burst Size RW 0x0<br />
0x0: 4x32bit bursts<br />
0x1: 8x32bit bursts<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1837
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x2: 16x32bit bursts<br />
0x3: Reserved<br />
13:12 VIDROTATION Video Rotation Flag RW 0x0<br />
0x0: No rotation or VidFormat is RGB<br />
0x1: Rotation by 90 degrees<br />
0x2: Rotation by 180 degrees<br />
0x3: Rotation by 270 degrees<br />
11 VIDFULLRANGE VidFullRange RW 0<br />
0x0: Limited range selected: 16 subtracted from Y before color<br />
space conversion<br />
0x1: Full range selected: Y is not modified before the color<br />
space conversion<br />
10 VIDREPLICATION VidReplicationEnable RW 0<br />
ENABLE<br />
0x0: Disable Video replication logic<br />
0x1: Enable Video replication logic<br />
9 VIDCOLORCONV VidColorConvEnable RW 0<br />
ENABLE<br />
0x0: Disable Color Space Conversion CbYCr to RGB<br />
0x1: Enable Color Space Conversion CbYCr to RGB<br />
8 VIDVRESIZECONF Video Vertical Resize Configuration RW 0<br />
0x0: Up-sampling selected<br />
0x1: Down-sampling selected<br />
7 VIDHRESIZECONF Video Horizontal Resize Configuration RW 0<br />
0x0: Up-sampling selected<br />
0x1: Down-sampling selected<br />
6:5 VIDRESIZEENABLE Video Resize Enable RW 0x0<br />
0x0: Disable the resize processing<br />
0x1: Enable the horizontal resize processing<br />
0x2: Enable the vertical resize processing<br />
0x3: Enable both horizontal and vertical resize processing<br />
4:1 VIDFORMAT Video1 channel Format; Other enums: Reserved (all other values RW 0x0<br />
(Video 1 channel) between 0x0 and 0x3, 0x5, 0x7, and between 0xC and 0xF)<br />
0x4: RGB12 (16-bit container)<br />
0x6: RGB 16<br />
0x8: RGB 24 (unpacked in 32-bit container)<br />
0x9: RGB 24 (packed in24-bit container)<br />
0xA: YUV2 4:2:2 co-sited<br />
0xB: UYVY 4:2:2 co-sited<br />
VIDFORMAT Video2 channel Format; Other enums: Reserved (all other values: RW 0x0<br />
(Video 2 channel) 0x0 and 0x3, 0x7, and 0xF)<br />
0x4: RGB 12 (16-bit container)<br />
0x5: ARGB 16<br />
0x6: RGB 16<br />
0x8: RGB 24 (un-packed in 32-bit container)<br />
0x9: RGB 24 (packed in 24-bit container)<br />
0xA: YUV2 4:2:2 co-sited<br />
0xB: UYVY 4:2:2 co-sited<br />
0xC: ARGB 32<br />
0xD: RGBA 32<br />
1838 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
0xE: RGBx 32 (24-bit RGB aligned on MSB of the 32-bit<br />
container)<br />
0 VIDENABLE VidEnable RW 0<br />
0x0: Video disabled (video pipeline inactive and window not<br />
present)<br />
0x1: Video enabled (video pipeline active and window present<br />
on the screen)<br />
Table 7-203. Register Call Summary for Register DISPC_VIDn_ATTRIBUTES<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Up-/Down-Sampling: [0]<br />
• Overlay Support: [1]<br />
• Priority Rule: [2] [3]<br />
• Rotation: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [5]<br />
• Video DMA Registers: [6] [7] [8] [9] [10] [11]<br />
• Video Configuration Register: [12] [13]<br />
• Video Window Attributes: [14] [15] [16] [17] [18]<br />
• Video Up-/Down-Sampling Configuration: [19] [20] [21] [22] [23] [24] [25]<br />
• Image Data from On-Chip SRAM: [26]<br />
• Additional Configuration When Using YUV Format: [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43]<br />
[44]<br />
• Video DMA Optimization: [45] [46] [47] [48] [49] [50] [51] [52] [53]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Vertical Filtering: [54]<br />
• Register List: [55]<br />
• Enabling: [56] [57]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [58]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [59]<br />
• <strong>Display</strong> Controller Registers: [60]<br />
Table 7-204. DISPC_VIDn_FIFO_THRESHOLD<br />
Address Offset 0x0D0+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04D0 Instance <strong>Display</strong> Controller<br />
0x4805 04D0 <strong>Display</strong> Controller VID1<br />
0x4805 0560 <strong>Display</strong> Controller<br />
0x4805 0560 <strong>Display</strong> Controller VID2<br />
Description The register configures the video FIFO associated with video pipeline #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDFIFOHIGHTHRESHOLD Reserved VIDFIFOLOWTHRESHOLD<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00<br />
27:16 VIDFIFOHIGH Video FIFO high threshold RW 0x3FF<br />
THRESHOLD Number of bytes defining the threshold value<br />
15:12 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00<br />
11:0 VIDFIFOLOW Video FIFO low threshold RW 0x3C0<br />
THRESHOLD Number of bytes defining the threshold value<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1839
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-205. Register Call Summary for Register DISPC_VIDn_FIFO_THRESHOLD<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video DMA Registers: [1] [2] [3] [4] [5] [6]<br />
• Image Data from On-Chip SRAM: [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [8]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [9]<br />
Table 7-206. DISPC_VIDn_FIFO_SIZE_STATUS<br />
Address Offset 0x0D4+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04D4 Instance <strong>Display</strong> Controller<br />
0x4805 04D4 <strong>Display</strong> Controller VID1<br />
0x4805 0564 <strong>Display</strong> Controller<br />
0x4805 0564 <strong>Display</strong> Controller VID2<br />
Description The register defines the video FIFO size for video pipeline #n.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDFIFOSIZE<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Write 0s for future compatibility. Read returns 0. R 0x000000<br />
10:0 VIDFIFOSIZE Video FIFO Size R 0x400<br />
Number of bytes defining the FIFO value<br />
Table 7-2<strong>07</strong>. Register Call Summary for Register DISPC_VIDn_FIFO_SIZE_STATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [0]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [1]<br />
Table 7-208. DISPC_VIDn_ROW_INC<br />
Address Offset 0x0D8+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04D8 Instance DISC<br />
0x4805 04D8<br />
0x4805 0568<br />
0x4805 0568<br />
Description The register configures the number of bytes to increment at the end of the row for the buffer associated with video<br />
window #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VIDROWINC<br />
Bits Field Name Description Type Reset<br />
31:0 VIDROWINC Number of bytes to increment at the end of the row RW 0x00000001<br />
Encoded signed value (from -2 31 - 1 to 2 31 ) to specify the number of bytes to<br />
increment at the end of the row in the video buffer.<br />
The value 0 is invalid. The value 1 means next pixel. The value 1+n*BPP<br />
means increment of n pixels. The value 1- (n+1)*BPP means decrement of<br />
n pixels.<br />
1840 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-209. Register Call Summary for Register DISPC_VIDn_ROW_INC<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video DMA Registers: [1]<br />
• Video Window Attributes: [2] [3]<br />
• Image Data from On-Chip SRAM: [4] [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [7]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [8]<br />
Table 7-210. DISPC_VIDn_PIXEL_INC<br />
Address Offset 0x0DC+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04DC Instance <strong>Display</strong> Controller<br />
0x4805 04DC <strong>Display</strong> Controller VID1<br />
0x4805 056C <strong>Display</strong> Controller<br />
0x4805 056C <strong>Display</strong> Controller VID2<br />
Description The register configures the number of bytes to increment between two pixels for the buffer associated with video<br />
window #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDPIXELINC<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility. RW 0x0000<br />
Read returns 0<br />
15:0 VIDPIXELINC Number of bytes to increment at the end of the row RW 0x0001<br />
Encoded signed value (from -2 15 - 1 to 2 15 ) to specify the number of<br />
bytes between two pixels in the video buffer.<br />
The value 0 is invalid. The value 1 means next pixel. The value<br />
1+n*BPP means increment of n pixels. The value 1- (n+1)*BPP<br />
means decrement of n pixels<br />
Table 7-211. Register Call Summary for Register DISPC_VIDn_PIXEL_INC<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video DMA Registers: [1]<br />
• Image Data from On-Chip SRAM: [2] [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [5]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [6]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1841
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-212. DISPC_VIDn_FIR<br />
Address Offset 0x0E0+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04E0 Instance <strong>Display</strong> Controller<br />
0x4805 04E0 <strong>Display</strong> Controller VID1<br />
0x4805 0570 <strong>Display</strong> Controller<br />
0x4805 0570 <strong>Display</strong> Controller VID2<br />
Description The register configures the resize factors for horizontal and vertical up-/down-sampling of video window #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDFIRVINC Reserved VIDFIRHINC<br />
Bits Field Name Description Type Reset<br />
31:29 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0<br />
28:16 VIDFIRVINC Vertical increment of the up-/down-sampling filter RW 0x0000<br />
Encoded value (from 1 to 4096). The value 0 is invalid. Values<br />
greater than 4096 are invalid.<br />
15:13 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0<br />
12:0 VIDFIRHINC Horizontal increment of the up-/down-sampling filter RW 0x0000<br />
Encoded value (from 1 to 4096). The value 0 is invalid. Values<br />
greater than 4096 are invalid.<br />
Table 7-213. Register Call Summary for Register DISPC_VIDn_FIR<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Configuration Register: [1]<br />
• Video Up-/Down-Sampling Configuration: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Register List: [4]<br />
• Factor: [5] [6]<br />
• Coefficients: [7] [8] [9] [10]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [11]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [12]<br />
Table 7-214. DISPC_VIDn_PICTURE_SIZE<br />
Address Offset 0x0E4+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 04E4 Instance <strong>Display</strong> Controller<br />
0x4805 04E4 <strong>Display</strong> Controller VID1<br />
0x4805 0574 <strong>Display</strong> Controller<br />
0x4805 0574 <strong>Display</strong> Controller VID2<br />
Description The register configures the size of the video picture associated with video layer #nbefore up-/down-scaling.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDORGSIZEY Reserved VIDORGSIZEX<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 VIDORGSIZEY Number of lines of the video picture RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of lines of the<br />
video picture in memory (program to value minus one).<br />
1842 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 VIDORGSIZEX Number of pixels of the video picture RW 0x000<br />
Encoded value (from 1 to 2048) to specify the number of pixels of the<br />
video picture in memory (program to value minus one). The size is<br />
limited to the size of the line buffer of the vertical sampling block in<br />
case the video picture is processed by the vertical filtering unit. (1)<br />
(1) For 5-tap RGB16 and YUV422 picture formats, the width of the input picture must be a multiple of 2 pixels and more than 5 pixels. This<br />
leads to the following register configuration:<br />
• DISPC_VIDn_ATTRIBUTES[21] VIDVERTICALTAPS is set to 1.<br />
• DISPC_VIDn_PICTURE_SIZE[10:0] VIDORGSIZEX must be even and more than 4.<br />
Table 7-215. Register Call Summary for Register DISPC_VIDn_PICTURE_SIZE<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Up-/Down-Sampling: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [1]<br />
• Video DMA Registers: [2] [3] [4]<br />
• Video Configuration Register: [5]<br />
• Video Window Attributes: [6] [7]<br />
• Video Up-/Down-Sampling Configuration: [8]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Vertical Filtering: [9]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [10]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [11]<br />
• <strong>Display</strong> Controller Registers: [12]<br />
Table 7-216. DISPC_VIDn_ACCUl<br />
Address Offset 0x0E8+ ((–1)* 0x90)+ (l*0x04) Index n = 1 for VID1 or 2 for VID2<br />
l = 0 to 1<br />
Physical address 0x4805 04E8 + (l* 0x04) Instance <strong>Display</strong> Controller<br />
0x4805 04E8 + (l* 0x04) <strong>Display</strong> Controller VID1<br />
0x4805 0578 + (l* 0x04) <strong>Display</strong> Controller<br />
0x4805 0578 + (l* 0x04) <strong>Display</strong> Controller VID2<br />
Description The register configures the resize accumulator init values for horizontal and vertical up-/down-sampling of video<br />
window #n (#I for ping-pong mechanism with external trigger, based on the field polarity)<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDVERTICALACCU Reserved VIDHORIZONTALACCU<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
25:16 VIDVERTICAL Vertical initialization accu value. Encoded value (from 0 to 1023). RW 0x000<br />
ACCU<br />
15:10 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
9:0 VIDHORIZONTAL Horizontal initialization accu value. Encoded value (from 0 to 1023). RW 0x000<br />
ACCU<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1843
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-217. Register Call Summary for Register DISPC_VIDn_ACCUl<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Up-/Down-Sampling Configuration: [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Register List: [3]<br />
• Initial Phase: [4] [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [6]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [7]<br />
Table 7-218. DISPC_VIDn_FIR_COEF_Hi<br />
Address Offset 0x0F0+ ((–1)* 0x90) + (i* 0x08) Index n = 1 for VID1 or 2 for VID2<br />
i = 0 to 7<br />
Physical address 0x4805 04F0+ (i* 0x08) Instance <strong>Display</strong> Controller<br />
0x4805 04F0+ (i* 0x08) <strong>Display</strong> Controller VID1<br />
0x4805 0580 + (i* 0x08) <strong>Display</strong> Controller<br />
0x4805 0580 + (i* 0x08) <strong>Display</strong> Controller VID2<br />
Description The bank of registers configure the up-/down-scaling coefficients for the vertical and horizontal resize of the video<br />
picture associated with video window #n for the phases from 0 to 7.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VIDFIRHC3 VIDFIRHC2 VIDFIRHC1 VIDFIRHC0<br />
Bits Field Name Description Type Reset<br />
31:24 VIDFIRHC3 Signed coefficient C3 for the horizontal up-/down-scaling with the phase n RW 0x00<br />
23:16 VIDFIRHC2 Unsigned coefficient C2 for the horizontal up-/down-scaling with the phase RW 0x00<br />
n<br />
15:8 VIDFIRHC1 Signed coefficient C1 for the horizontal up-/down-scaling with the phase n RW 0x00<br />
7:0 VIDFIRHC0 Signed coefficient C0 for the horizontal up-/down-scaling with the phase n RW 0x00<br />
Table 7-219. Register Call Summary for Register DISPC_VIDn_FIR_COEF_Hi<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Configuration Register: [1]<br />
• Video Up-/Down-Sampling Configuration: [2] [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Register List: [5] [6] [7] [8] [9]<br />
• Coefficients: [10] [11] [12]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [13]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [14]<br />
1844 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-220. DISPC_VIDn_FIR_COEF_HVi<br />
Address Offset 0x0F4+ ((–1)* 0x90) + (i* 0x08) Index n = 1 for VID1 or 2 for VID2<br />
i = 0 to 7<br />
Physical address 0x4805 04F4 + (i*0x08) Instance <strong>Display</strong> Controller<br />
0x4805 04F4 + (i*0x08) <strong>Display</strong> Controller VID1<br />
0x4805 0584 + (i*0x08) <strong>Display</strong> Controller<br />
0x4805 0584 + (i*0x08) <strong>Display</strong> Controller VID2<br />
Description The bank of registers configure the down/up-/down-scaling coefficients for the vertical and horizontal resize of the<br />
video picture associated with video window #n for the phases from 0 to 7.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VIDFIRVC2 VIDFIRVC1 VIDFIRVC0 VIDFIRHC4<br />
Bits Field Name Description Type Reset<br />
31:24 VIDFIRVC2 Signed coefficient C2 for the vertical up-/down-scaling with the phase n RW 0x00<br />
23:16 VIDFIRVC1 Unsigned coefficient C1 for the vertical up-/down-scaling with the phase n RW 0x00<br />
15:8 VIDFIRVC0 Signed coefficient C0 for the vertical up-/down-scaling with the phase n RW 0x00<br />
7:0 VIDFIRHC4 Signed coefficient C4 for the horizontal up-/down-scaling with the phase n RW 0x00<br />
Table 7-221. Register Call Summary for Register DISPC_VIDn_FIR_COEF_HVi<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Configuration Register: [1]<br />
• Video Up-/Down-Sampling Configuration: [2] [3] [4] [5] [6] [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Register List: [8] [9] [10] [11] [12] [13] [14] [15]<br />
• Coefficients: [16] [17] [18] [19] [20]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [21]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [22]<br />
Table 7-222. DISPC_VIDn_CONV_COEF0<br />
Address Offset 0x130+((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 0530 Instance <strong>Display</strong> Controller<br />
0x4805 0530 <strong>Display</strong> Controller VID1<br />
0x4805 05C0 <strong>Display</strong> Controller<br />
0x4805 05C0 <strong>Display</strong> Controller VID2<br />
Description The register configures the color space conversion matrix coefficients for video pipeline #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved RCR Reserved RY<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 RCR RCr Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1845
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
10:0 RY RY Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
Table 7-223. Register Call Summary for Register DISPC_VIDn_CONV_COEF0<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Image Data from On-Chip SRAM: [0] [1]<br />
• Video DMA Optimization: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [3]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [4]<br />
Table 7-224. DISPC_VIDn_CONV_COEF1<br />
Address Offset 0x134+((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 0534 Instance <strong>Display</strong> Controller<br />
0x4805 0534 <strong>Display</strong> Controller VID1<br />
0x4805 05C4 <strong>Display</strong> Controller<br />
0x4805 05C4 <strong>Display</strong> Controller VID2<br />
Description The register configures the color space conversion matrix coefficients for video pipeline #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GY Reserved RCB<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 GY GY Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 RCB RCb Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
Table 7-225. Register Call Summary for Register DISPC_VIDn_CONV_COEF1<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Image Data from On-Chip SRAM: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [1]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [2]<br />
1846 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-226. DISPC_VIDn_CONV_COEF2<br />
Address Offset 0x138+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 0538 Instance <strong>Display</strong> Controller<br />
0x4805 0538 <strong>Display</strong> Controller VID1<br />
0x4805 05C8 <strong>Display</strong> Controller<br />
0x4805 05C8 <strong>Display</strong> Controller VID2<br />
Description The register configures the color space conversion matrix coefficients for video pipeline #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GCB Reserved GCR<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 GCB GCb Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 GCR GCr Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
Table 7-227. Register Call Summary for Register DISPC_VIDn_CONV_COEF2<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Image Data from On-Chip SRAM: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [1]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [2]<br />
Table 7-228. DISPC_VIDn_CONV_COEF3<br />
Address Offset 0x13C+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 053C Instance <strong>Display</strong> Controller<br />
0x4805 053C <strong>Display</strong> Controller VID1<br />
0x4805 05CC <strong>Display</strong> Controller<br />
0x4805 05CC <strong>Display</strong> Controller VID2<br />
Description The register configures the color space conversion matrix coefficients for video pipeline #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved BCR Reserved BY<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
26:16 BCR BCr coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
15:11 Reserved Write 0s for future compatibility. RW 0x00<br />
Read returns 0<br />
10:0 BY BY coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1847
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-229. Register Call Summary for Register DISPC_VIDn_CONV_COEF3<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Image Data from On-Chip SRAM: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [1]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [2]<br />
Table 7-230. DISPC_VIDn_CONV_COEF4<br />
Address Offset 0x140+ ((–1)* 0x90) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 0540 Instance <strong>Display</strong> Controller<br />
0x4805 0540 <strong>Display</strong> Controller VID1<br />
0x4805 05D0 <strong>Display</strong> Controller<br />
0x4805 05D0 <strong>Display</strong> Controller VID2<br />
Description The register configures the color space conversion matrix coefficients for video pipeline #n.<br />
Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved BCB<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Write 0s for future compatibility. RW 0x000000<br />
Read returns 0<br />
10:0 BCB BCb Coefficient RW 0x000<br />
Encoded signed value (from -1024 to 1023).<br />
Table 7-231. Register Call Summary for Register DISPC_VIDn_CONV_COEF4<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Image Data from On-Chip SRAM: [0] [1]<br />
• Video DMA Optimization: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [3]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [4]<br />
Table 7-232. DISPC_DATA_CYCLEk<br />
Address Offset 0x1D4 + (k* 0x04) Index k = 0 to 2<br />
Physical address 0x4805 05D4+ (k * 0x04) Instance DISPC<br />
Description The control register configures the output data format for ith (1st, 2nd or 3rd) cycle.<br />
Shadow register, updated on VFP start period.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
BITALIGNMENTPIXEL2<br />
Reserved Reserved NBBITSPIXEL2 Reserved Reserved NBBITSPIXEL1<br />
1848 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
BITALIGNMENTPIXEL1
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility. RW 0x0<br />
Read returns 0<br />
27:24 BITALIGNMENT Bit alignment RW 0x0<br />
PIXEL2 Alignment of the bits from pixel#2 on the output interface<br />
23:21 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0<br />
20:16 NBBITSPIXEL2 Number of bits RW 0x00<br />
Number of bits from the pixel #2 (value from 0 to 16 bits). The<br />
values from 17 to 31 are invalid.<br />
15:12 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0<br />
11:8 BITALIGNMENT Bit alignment RW 0x0<br />
PIXEL1 Alignment of the bits from pixel#1 on the output interface<br />
7:5 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0<br />
4:0 NBBITSPIXEL1 Number of bits RW 0x00<br />
Number of bits from the pixel #1 (value from 0 to 16 bits). The<br />
values from 17 to 31 are invalid.<br />
Table 7-233. Register Call Summary for Register DISPC_DATA_CYCLEk<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Multiple Cycle Output Format: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [3]<br />
• LCD-Specific Control Registers: [4]<br />
• LCD TDM: [5] [6] [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [8]<br />
Table 7-234. DISPC_VIDn_FIR_COEF_Vi<br />
Address Offset 0x1E0+ ((–1)* 0x20) + (i* Index n = 1 for VID1 or 2 for VID2<br />
0x04) i = 0 to 7<br />
Physical address 0x4805 05E0 + (i* 0x04) Instance DISC<br />
0x4805 05E0 + (i* 0x04)<br />
0x4805 0670 + (i* 0x04)<br />
0x4805 0670 + (i* 0x04)<br />
Description This bank of registers configures the down/up/down-scaling coefficients for the vertical resize of the video picture<br />
associated with video window #n for phases 0 to 7. Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VIDFIRVC22 VIDFIRVC00<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0000<br />
15:8 VIDFIRVC22 Signed coefficient C22 for vertical up/down-scaling with phase n RW 0x00<br />
7:0 VIDFIRVC00 Signed coefficient C00 for vertical up/down-scaling with phase n RW 0x00<br />
Table 7-235. Register Call Summary for Register DISPC_VIDn_FIR_COEF_Vi<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video Up-/Down-Sampling Configuration: [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Register List: [3] [4] [5]<br />
• Coefficients: [6] [7] [8]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1849<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-235. Register Call Summary for Register DISPC_VIDn_FIR_COEF_Vi (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [9]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [10]<br />
Address Offset 0x220<br />
Table 7-236. DISPC_CPR_COEF_R<br />
Physical address 0x4805 0620 Instance DISC<br />
Description This register configures the color phase rotation matrix coefficients for the red component. Shadow register,<br />
updated on VFP start period.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
RR RG RB<br />
Bits Field Name Description Type Reset<br />
31:22 RR RR coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
21 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
20:11 RG RG coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
10 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
9:0 RB RB coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
Table 7-237. Register Call Summary for Register DISPC_CPR_COEF_R<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• LCD-Specific Control Registers: [1]<br />
• LCD Color Phase Rotation: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [4]<br />
Address Offset 0x224<br />
Table 7-238. DISPC_CPR_COEF_G<br />
Physical address 0x4805 0624 Instance DISC<br />
Description This register configures the color phase rotation matrix coefficients for the green component. Shadow register,<br />
updated on VFP start period.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
GR GG GB<br />
Bits Field Name Description Type Reset<br />
31:22 GR GR coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
21 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
1850 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Reserved<br />
Reserved<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
20:11 GG GG coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
10 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
9:0 GB GB coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
Table 7-239. Register Call Summary for Register DISPC_CPR_COEF_G<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• LCD-Specific Control Registers: [1]<br />
• LCD Color Phase Rotation: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [4]<br />
Address Offset 0x228<br />
Table 7-240. DISPC_CPR_COEF_B<br />
Physical address 0x4805 0628 Instance DISC<br />
Description This register configures the color phase rotation matrix coefficients for the blue component. Shadow register,<br />
updated on VFP start period.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
BR BG BB<br />
Bits Field Name Description Type Reset<br />
31:22 BR BR coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
21 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
20:11 BG BG coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
10 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
9:0 BB BB coefficient RW 0x000<br />
Encoded signed value (from -512 to 511)<br />
Table 7-241. Register Call Summary for Register DISPC_CPR_COEF_B<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• LCD-Specific Control Registers: [1]<br />
• LCD Color Phase Rotation: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [4]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Reserved<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1851
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x22C<br />
Table 7-242. DISPC_GFX_PRELOAD<br />
Physical address 0x4805 062C Instance DISC<br />
Description This register configures the graphics FIFO. Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved PRELOAD<br />
Bits Field Name Description Type Reset<br />
31:12 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00000<br />
11:0 PRELOAD Graphics preload value: Number of bytes defining the preload value. RW 0x100<br />
Constraint: Maximum value is (FIFO size - DMA burst size - 8) bytes<br />
Table 7-243. Register Call Summary for Register DISPC_GFX_PRELOAD<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Graphics DMA Registers: [1] [2] [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller Register Mapping Summary: [5]<br />
Table 7-244. DISPC_VIDn_PRELOAD<br />
Address Offset 0x230+ ((–1)* 0x04) Index n = 1 for VID1 or 2 for VID2<br />
Physical address 0x4805 0630 Instance DISC<br />
0x4805 0630<br />
0x4805 0634<br />
0x4805 0634<br />
Description This register configures the video FIFO. Shadow register, updated on VFP start period or EVSYNC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved PRELOAD<br />
Bits Field Name Description Type Reset<br />
31:12 Reserved Write 0s for future compatibility. Read returns 0. RW 0x00000<br />
11:0 PRELOAD Video preload value: Number of bytes defining the preload value. RW 0x100<br />
Constraint: Maximum value is (FIFO size - DMA burst size - 8) bytes<br />
Table 7-245. Register Call Summary for Register DISPC_VIDn_PRELOAD<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• <strong>Display</strong> Controller Basic Programming Model: [0]<br />
• Video DMA Registers: [1] [2] [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> Controller VID1 Register Mapping Summary: [5]<br />
• <strong>Display</strong> Controller VID2 Register Mapping Summary: [6]<br />
7.7.2.3 RFBI Registers<br />
1852 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x00<br />
Table 7-246. RFBI_REVISION<br />
Physical address 0x4805 0800 Instance RFBI<br />
Description This register contains the IP revision code.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved REV<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Read returns 0. R 0x000000<br />
7:0 REV IP revision R TI internal data<br />
[7:4] Major revision<br />
[3:0] Minor revision<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [0]<br />
Address Offset 0x10<br />
Table 7-247. Register Call Summary for Register RFBI_REVISION<br />
Table 7-248. RFBI_SYSCONFIG<br />
Physical address 0x4805 0810 Instance RFBI<br />
Description This register allows control of various parameters of the interconnect interface.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
Bits Field Name Description Type Reset<br />
31:7 Reserved Write 0s for future compatibility. Read returns 0. RW 0x0000000<br />
6 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
5 Reserved Write 0s for future compatibility. Read returns 0. RW 0<br />
4:3 SIDLEMODE Slave interface power management, Idle req/ack control RW 0x0<br />
00: Force-idle: Idle request is acknowledged unconditionally.<br />
01: No idle: An idle request is never acknowledged<br />
10: Smart idle: Idle request is acknowledged based on the internal<br />
activity of the module.<br />
11: Reserved<br />
2 Reserved Write 0s for future compatibility RW 0<br />
Read returns 0<br />
1 SOFTRESET Software reset RW 0<br />
Sets this bit to 1 to trigger a module reset. The bit is automatically<br />
reset by the hardware. During reads, it always returns 0.<br />
0: Normal mode<br />
1: The module is reset<br />
0 AUTOIDLE Internal clock gating strategy (interconnectL4 and display controller RW 1<br />
clock)<br />
0: Interconnect L4 clock and display controller clock are free-running.<br />
1: Automatic clock gating strategy is applied for the interconnect L4<br />
clock and display controller clock, based on the interconnect interface<br />
and internal activity.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
Reserved<br />
Reserved<br />
SIDLEMODE<br />
Reserved<br />
SOFTRESET<br />
AUTOIDLE<br />
1853
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Software Reset: [0]<br />
• Autoidle Mode: [1]<br />
• Idle Mode: [2] [3] [4]<br />
Table 7-249. Register Call Summary for Register RFBI_SYSCONFIG<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Configuration: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Autoidle: [6]<br />
• Smart-Idle: [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [8]<br />
Address Offset 0x14<br />
Table 7-250. RFBI_SYSSTATUS<br />
Physical address 0x4805 0814 Instance RFBI<br />
Description This register provides status information about the module, excluding the interrupt status information.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED RESERVED<br />
Bits Field Name Description Type Reset<br />
31: 10 Reserved Reserved. Read returns 0 R 0x000000<br />
9 BUSYRFBIDATA Data are pending to be processed from interconnect FIFO. R 0<br />
Read 0x0: No data pending<br />
Read 0x1: Some data are pending<br />
8 BUSY L4 Interface busy status bit R 0<br />
Read 0x0: The access to the following register is not stalled:<br />
RFBI_CMD, RFBI_DATA, RFBI_STATUS, RFBI_PARAM,<br />
RFBI_READ.<br />
Read 0x1: The access to any of the following registers is stalled:<br />
RFBI_CMD, RFBI_DATA, RFBI_STATUS, RFBI_PARAM,<br />
RFBI_READ.<br />
7:1 Reserved Reserved. Read returns 0 R 0x00<br />
0 RESETDONE Internal reset monitoring R 1<br />
0: Internal module reset is on-going<br />
1: Reset completed<br />
Table 7-251. Register Call Summary for Register RFBI_SYSSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Configuration: [0]<br />
• RFBI State-Machine: [1] [2] [3] [4] [5] [6] [7] [8] [9]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [10]<br />
1854 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
BUSYRFBIDATA<br />
BUSY<br />
RESETDONE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x40<br />
Table 7-252. RFBI_CONTROL<br />
Physical address 0x4805 0840 Instance RFBI<br />
Description The control register allows configuration of the RFBI module.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31: 9 Reserved Write 0s for future compatibility RW 0x0000000<br />
Read returns 0<br />
8 SMART_DMA_REQ Smart DMA request RW 0x0<br />
0x0: The dmareq is asserted and de-asserted depending on the<br />
interconnect FIFO space even if MIdlereq is high in smart idle/no-idle<br />
mode and the entire burst gets error responses from the module.<br />
0x1: The dmareq is de-asserted after 2 clk cycles if it has been<br />
asserted for more than or equal to 2 clk cycles and MIdlereq is high<br />
in smart idle or no idle mode. No more burst requests will be given<br />
even if the space is available in the interconnect FIFO.<br />
7 DISABLE_DMA_REQ Disable DMA request RW 0x0<br />
0x0: The dmareq is enabled and the signal is generated based on the<br />
space available and the request coming into the data register.<br />
0x1: The dmareq is disabled and the signal is not generated at all<br />
based on space in the interconnect FIFO. It stays high until the<br />
DISABLE DMAREQ is high even if there is space in the interconnect<br />
FIFO to take requests.<br />
6:5 HIGHTHRESHOLD Defines the interconnect FIFO high threshold used by HW to assert RW 0x0<br />
DMA request. Used only if data written to RFBI_DATA are sent using<br />
system DMA.<br />
0x0: Size of the transfer of 4 words of 32-bit wide<br />
0x1: Size of the transfer of 8 words of 32-bit wide<br />
0x2: Size of the transfer of 16 words of 32-bit wide<br />
4 ITE Internal Trigger RW 0<br />
0: H/W waits for ITE bit to be set if in internal trigger mode for the<br />
configuration in use.<br />
1: User sets the ITE bit to start the transfer, when H/W takes into<br />
account the bit, the H/W resets it.<br />
3:2 CONFIGSELECT Select the CS and configuration RW 0x0<br />
00: No CS selected<br />
01: CS0 selected and configuration #0<br />
10: CS1 selected and configuration #1<br />
11: CS0 and CS1 both selected (only the configuration for CS0 is<br />
used)<br />
1 BYPASSMODE Bypass Mode RW 1<br />
0: The bypass mode not selected<br />
1: The bypass mode is selected<br />
0 ENABLE Enable/Disable flag RW 0<br />
0: Disable the RFBI module<br />
1: Enable the RFBI module<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
SMART_DMA_REQ<br />
DISABLE_DMA_REQ<br />
HIGHTHRESHOLD<br />
ITE<br />
CONFIGSELECT<br />
BYPASSMODE<br />
ENABLE<br />
1855
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-253. Register Call Summary for Register RFBI_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Parallel Interface in RFBI Mode (MIPI DBI Protocol): [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Control Registers: [2]<br />
• High Threshold: [3] [4] [5]<br />
• Bypass Mode: [6]<br />
• Enable: [7] [8] [9]<br />
• Configuration Selection: [10]<br />
• ITE Bit: [11] [12] [13] [14] [15]<br />
• Number of Pixels to Transfer: [16] [17]<br />
• RFBI Configuration: [18]<br />
• Trigger Mode: [19]<br />
• RFBI Timings: [20]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [21]<br />
Address Offset 0x44<br />
Table 7-254. RFBI_PIXEL_CNT<br />
Physical address 0x4805 0844 Instance RFBI<br />
Description The control register configures the RFBI pixel count value.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
PIXELCNT<br />
Bits Field Name Description Type Reset<br />
31:0 PIXELCNT Pixel counter value RW 0x00000000<br />
The S/W indicates the number of pixels to transfer to the LCD panel<br />
frame buffer. The value is set when the module is disabled. During<br />
the transfer the HW decrements the register when a pixel has been<br />
sent to the RFB.<br />
Table 7-255. Register Call Summary for Register RFBI_PIXEL_CNT<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Control Registers: [0]<br />
• Enable: [1]<br />
• Number of Pixels to Transfer: [2] [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [5]<br />
Address Offset 0x48<br />
Table 7-256. RFBI_LINE_NUMBER<br />
Physical address 0x4805 0848 Instance RFBI<br />
Description The control register configures the number of lines to synchronize the beginning of the transfer.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LINENUMBER<br />
1856 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Write 0s for future compatibility RW 0x000000<br />
Read returns 0<br />
10:0 LINENUMBER Programmable line number RW 0x000<br />
Line number from 0 to 2 11 -1. Number of HSYNC after the VSYNC<br />
occurs before the beginning of the transfer.<br />
Table 7-257. Register Call Summary for Register RFBI_LINE_NUMBER<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Control Registers: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [1]<br />
Address Offset 0x4C<br />
Table 7-258. RFBI_CMD<br />
Physical address 0x4805 084C Instance RFBI<br />
Description The control register configures the RFBI command<br />
Type W<br />
Write Latency 1<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved CMD<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility W 0x0000<br />
Read returns 0<br />
15:0 CMD Command Value W 0x0000<br />
8/9/12/16 bit value depending on the parallel mode<br />
[7:0] 8-bit DT<br />
[8:0] 9-bit Data type<br />
[11:0] 12-bit Data type<br />
[15:0] 16-bit Data type<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Send Commands: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Number of Pixels to Transfer: [1] [2]<br />
• RFBI State-Machine: [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [5]<br />
• RFBI Registers: [6] [7]<br />
Table 7-259. Register Call Summary for Register RFBI_CMD<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1857
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x50<br />
Table 7-260. RFBI_PARAM<br />
Physical address 0x4805 0850 Instance RFBI<br />
Description The control register configures the RFBI parameter.<br />
Type W<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved PARAM<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility W 0x0000<br />
Read returns 0<br />
15:0 PARAM Param Value W 0x0000<br />
8/9/12/16 bit value depending on the parallel mode<br />
[7:0] 8-bit Data type<br />
[8:0] 9-bit Data type<br />
[11:0] 12-bit Data type<br />
[15:0] 16-bit Data type<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Number of Pixels to Transfer: [0] [1]<br />
• RFBI State-Machine: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [4]<br />
• RFBI Registers: [5] [6]<br />
Address Offset 0x54<br />
Table 7-261. Register Call Summary for Register RFBI_PARAM<br />
Table 7-262. RFBI_DATA<br />
Physical address 0x4805 0854 Instance RFBI<br />
Description The control register configures the RFBI data.<br />
Type W<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
DATA<br />
Bits Field Name Description Type Reset<br />
31:0 DATA Data value W 0x00000000<br />
12/16/18/24/2x16 bit value depending on the Data type<br />
[11:0] 12-bit Data type<br />
[15:0] 16-bit Data type<br />
[17:0] 18-bit Data type<br />
[23:0] 24-bit Data type<br />
[31:0] 2x16-bit Data type<br />
<strong>Display</strong> <strong>Subsystem</strong> Overview<br />
• <strong>Display</strong> <strong>Subsystem</strong> Overview: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• RFBI Interconnect FIFO: [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• High Threshold: [3] [4] [5]<br />
• RFBI State-Machine: [6] [7] [8] [9] [10]<br />
Table 7-263. Register Call Summary for Register RFBI_DATA<br />
1858<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-263. Register Call Summary for Register RFBI_DATA (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [11]<br />
• RFBI Registers: [12] [13] [14]<br />
Address Offset 0x58<br />
Table 7-264. RFBI_READ<br />
Physical address 0x4805 0858 Instance RFBI<br />
Description The control register configures the RFBI read<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved READ<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility RW 0x0000<br />
Read returns 0<br />
15:0 READ Read Value RW 0x0000<br />
8/9/12/16 bit value depending on the parallel mode<br />
[7:0] 8-bit Data type<br />
[8:0] 9-bit Data type<br />
[11:0] 12-bit Data type<br />
[15:0] 16-bit Data type<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Number of Pixels to Transfer: [0] [1]<br />
• RFBI State-Machine: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [4]<br />
• RFBI Registers: [5] [6]<br />
Address Offset 0x5C<br />
Table 7-265. Register Call Summary for Register RFBI_READ<br />
Table 7-266. RFBI_STATUS<br />
Physical address 0x4805 085C Instance RFBI<br />
Description The control register configures the RFBI status.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved STATUS<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility RW 0x0000<br />
Read returns 0<br />
15:0 STATUS Status value RW 0x0000<br />
8/9/12/16 bit value depending on the parallel mode<br />
[7:0] 8-bit Data type<br />
[8:0] 9-bit Data type<br />
[11:0] 12-bit Data type<br />
[15:0] 16-bit Data type<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1859
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Number of Pixels to Transfer: [0] [1]<br />
• RFBI State-Machine: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [4]<br />
• RFBI Registers: [5] [6]<br />
Table 7-267. Register Call Summary for Register RFBI_STATUS<br />
Table 7-268. RFBI_CONFIGi<br />
Address Offset 0x60+ (i* 0x18) Index i = 0 to 1<br />
Physical address 0x4805 0860+ (i* 0x18) Instance RFBI<br />
Description The control register allows configuration #I of the RFBI module.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HSYNCPOLARITY<br />
TE_VSYNC_POLARITY<br />
Reserved Reserved<br />
CSPOLARITY<br />
WEPOLARITY<br />
REPOLARITY<br />
A0POLARITY<br />
Bits Field Name Description Type Reset<br />
31:22 Reserved Write 0s for future compatibility RW 0x000<br />
Read returns 0<br />
21 HSYNCPOLARITY HSYNC polarity RW 1<br />
0: HSYNC active low<br />
1: HSYNC active high<br />
20 TE_VSYNC_ TE or VSYNC Polarity RW 1<br />
POLARITY 0: TE or VSYNC active low<br />
1: TE or SYNC active high<br />
19 CSPOLARITY CS Polarity RW 0<br />
0: CS active low defined at reset time<br />
1: CS active high defined at reset time<br />
18 WEPOLARITY WE Polarity RW 0<br />
0: WE active low<br />
1: WE active high<br />
17 REPOLARITY RE Polarity RW 0<br />
0: RE active low<br />
1: RE active high<br />
16 A0POLARITY A0 Polarity RW 1<br />
0: A0 active low<br />
1: A0 active high<br />
15:13 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
12:11 UNUSEDBITS State of unused bits RW 0x0<br />
00: Low level (0)<br />
01: High level (1)<br />
10: Unchanged from previous state<br />
11: Reserved<br />
10:9 CYCLEFORMAT Cycle format RW 0x0<br />
00: 1 cycle for 1 pixel<br />
01: 2 cycles for 1 pixel<br />
10: 3 cycles for 1 pixel<br />
11: 3 cycles for 2 pixels<br />
1860 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
UNUSEDBITS<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
CYCLEFORMAT<br />
L4FORMAT<br />
DATA TYPE<br />
TIMEGRANULARITY<br />
TRIGGERMODE<br />
PARALLEL MODE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
8:7 L4FORMAT L4 Write Access format RW 0x0<br />
00: 1 pixel per L4 access to the register data<br />
01: Reserved<br />
10: 2 pixels per L4 access to the register data with 1st pixel at<br />
the position [15:0]<br />
11: 2 pixels per L4 access to the register data with 1st pixel at<br />
the position [31:16]<br />
6:5 DATA TYPE Data type from the display controller and L4 RW 0x0<br />
00: 12-bit<br />
01: 16-bit<br />
10: 18-bit<br />
11: 24-bit<br />
4 TIMEGRANU Multiplies signal timing latencies by two RW 0<br />
LARITY 0: x2 latencies disabled<br />
1: x2 latencies enabled<br />
3:2 TRIGGERMODE Trigger Mode RW 0x0<br />
00: Internal trigger mode (ITE bit mode)<br />
01: External trigger mode (TE signal)<br />
10: External trigger mode (VSYNC/HSYNC signals)<br />
11: Reserved<br />
1:0 PARALLELMODE Parallel Mode RW 0x0<br />
00: 8-bit parallel output interface selected<br />
01: 9-bit parallel output interface selected<br />
10: 12-bit parallel output interface selected<br />
11: 16-bit parallel output interface selected<br />
Table 7-269. Register Call Summary for Register RFBI_CONFIGi<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Parallel Interface in RFBI Mode (MIPI DBI Protocol): [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Output Parallel Modes: [1]<br />
• Read/Write: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• ITE Bit: [4] [5]<br />
• Number of Pixels to Transfer: [6] [7] [8] [9] [10]<br />
• Parallel Mode: [11]<br />
• Cycle Format: [12]<br />
• Unused Bits: [13]<br />
• RFBI Timings: [14]<br />
• RFBI State-Machine: [15] [16]<br />
• RFBI Configuration Flow Charts: [17] [18] [19]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [20]<br />
Table 7-270. RFBI_ONOFF_TIMEi<br />
Address Offset 0x64+ (i* 0x18) Index i = 0 to 1<br />
Physical address 0x4805 0864+ (i* 0x18) Instance RFBI<br />
Description The control register allows configuration of the RFBI timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
REOFFTIME REONTIME WEOFFTIME WEONTIME CSOFFTIME CSONTIME<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1861
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:30 Reserved Write 0s for future compatibility. RW 0x0<br />
Read returns 0.<br />
29:24 REOFFTIME Read Enable deassertion time from start access time RW 0x00<br />
Number of L4Clk cycles<br />
23:20 REONTIME Read Enable assertion time from start access time RW 0x0<br />
Number of L4Clk cycles<br />
19:14 WEOFFTIME Write Enable deassertion time from start access time RW 0x00<br />
Number of L4Clk cycles<br />
13:10 WEONTIME Write Enable assertion time from start access time RW 0x0<br />
Number of L4Clk cycles<br />
9:4 CSOFFTIME CS deassertion time from start access time RW 0x00<br />
Number of L4Clk cycles<br />
3:0 CSONTIME CS assertion time from start access time RW 0x0<br />
Number of L4Clk cycles<br />
Table 7-271. Register Call Summary for Register RFBI_ONOFF_TIMEi<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Timings: [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [18]<br />
Table 7-272. RFBI_CYCLE_TIMEi<br />
Address Offset 0x68+ (i* 0x18) Index i = 0 to 1<br />
Physical address 0x4805 0868+ (i* 0x18) Instance RFBI<br />
Description The control register allows configuration of the RFBI timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
WRENABLE<br />
WWENABLE<br />
RRENABLE<br />
RWENABLE<br />
Reserved ACCESSTIME CSPULSEWIDTH RECYCLETIME WECYCLETIME<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
27:22 ACCESSTIME Access Time RW 0x00<br />
Number of L4Clk cycles<br />
21 WRENABLE Write to Read Pulse Width Enable (same CS) RW 0<br />
0: CSPulseWidth does not apply on Write to Read access<br />
1: CSPulseWidth applies on Write to Read access<br />
20 WWENABLE Write to Write Pulse Width Enable (same CS) RW 0<br />
0: CSPulseWidth does not apply on Write to Write access<br />
1: CSPulseWidth applies on Write to Write access<br />
19 RRENABLE Read to Read Pulse Width Enable (same CS) RW 0<br />
0: CSPulseWidth does not apply on Read to Read access<br />
1: CSPulseWidth applies on Read to Read access<br />
18 RWENABLE Read to Write Pulse Width Enable (same CS) RW 0<br />
0: CSPulseWidth does not apply on Read to Write access<br />
1: CSPulseWidth applies on Read to Write access<br />
17:12 CSPULSEWIDTH CS Pulse Width RW 0x00<br />
Number of L4Clk cycles<br />
1862 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
11:6 RECYCLETIME RE Cycle Time RW 0x00<br />
Number of L4Clk cycles<br />
5:0 WECYCLETIME WE Cycle Time RW 0x00<br />
Number of L4Clk cycles<br />
Table 7-273. Register Call Summary for Register RFBI_CYCLE_TIMEi<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Transaction Timing Diagrams: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Timings: [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [16]<br />
Table 7-274. RFBI_DATA_CYCLE1_i<br />
Address Offset 0x6C+ (i* 0x18) Index i = 0 to 1<br />
Physical address 0x4805 086C+ (i* 0x18) Instance RFBI<br />
Description The control register configures the RFBI data format for 1st cycle.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
BITALIGNMENTPIXEL2<br />
Reserved Reserved NBBITSPIXEL2 Reserved Reserved NBBITSPIXEL1<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
27:24 BITALIGNMENTPIXEL2 Bit alignment RW 0x0<br />
Alignment of the bits from pixel#2 on the output interface<br />
23:21 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
20:16 NBBITSPIXEL2 Number of bits RW 0x00<br />
Number of bits from the pixel #2 (value from 0 to16 bits).<br />
The values from 17 to 31 are invalid.<br />
15:12 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
11:8 BITALIGNMENTPIXEL1 Bit alignment RW 0x0<br />
Alignment of the bits from pixel#1 on the output interface<br />
7:5 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
4:0 NBBITSPIXEL1 Number of bits RW 0x00<br />
Number of bits from the pixel #1 (value from 0 to16 bits).<br />
The values from 17 to 31 are invalid.<br />
Table 7-275. Register Call Summary for Register RFBI_DATA_CYCLE1_i<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Output Parallel Modes: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Cycle Format: [1] [2]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1863<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
BITALIGNMENTPIXEL1
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-275. Register Call Summary for Register RFBI_DATA_CYCLE1_i (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [3]<br />
Table 7-276. RFBI_DATA_CYCLE2_i<br />
Address Offset 0x70+ (i* 0x18) Index i = 0 to 1<br />
Physical address 0x4805 0870+ (i* 0x18) Instance RFBI<br />
Description The control register configures the RFBI data format for 2nd cycle.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
BITALIGNMENTPIXEL2<br />
Reserved Reserved NBBITSPIXEL2 Reserved Reserved NBBITSPIXEL1<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
27:24 BITALIGNMENTPIXEL2 Bit alignment RW 0x0<br />
Alignment of the bits from pixel#2 on the output interface<br />
23:21 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
20:16 NBBITSPIXEL2 Number of bits RW 0x00<br />
Number of bits from the pixel #2 (value from 0 to16 bits).<br />
The values from 17 to 31 are invalid.<br />
15:12 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
11:8 BITALIGNMENTPIXEL1 Bit alignment RW 0x0<br />
Alignment of the bits from pixel#1 on the output interface<br />
7:5 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
4:0 NBBITSPIXEL1 Number of bits RW 0x00<br />
Number of bits from the pixel #1 (value from 0 to16 bits).<br />
The values from 17 to 31 are invalid.<br />
Table 7-277. Register Call Summary for Register RFBI_DATA_CYCLE2_i<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Output Parallel Modes: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Cycle Format: [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [3]<br />
1864 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
BITALIGNMENTPIXEL1
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-278. RFBI_DATA_CYCLE3_i<br />
Address Offset 0x74+ (i* 0x18) Index i = 0 to 1<br />
Physical address 0x4805 0874+ (i* 0x18) Instance RFBI<br />
Description The control register configures the RFBI data format for 3rd cycle.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
BITALIGNMENTPIXEL2<br />
Reserved Reserved NBBITSPIXEL2 Reserved Reserved NBBITSPIXEL1<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
27:24 BITALIGNMENTPIXEL2 Bit alignment RW 0x0<br />
Alignment of the bits from pixel#2 on the output interface<br />
23:21 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
20:16 NBBITSPIXEL2 Number of bits RW 0x00<br />
Number of bits from the pixel #2 (value from 0 to16 bits).<br />
The values from 17 to 31 are invalid.<br />
15:12 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
11:8 BITALIGNMENTPIXEL1 Bit alignment RW 0x0<br />
Alignment of the bits from pixel#1 on the output interface<br />
7:5 Reserved Write 0s for future compatibility RW 0x0<br />
Read returns 0<br />
4:0 NBBITSPIXEL1 Number of bits RW 0x00<br />
Number of bits from the pixel #1 (value from 0 to16 bits).<br />
The values from 17 to 31 are invalid.<br />
Table 7-279. Register Call Summary for Register RFBI_DATA_CYCLE3_i<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Output Parallel Modes: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Cycle Format: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [2]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
BITALIGNMENTPIXEL1<br />
1865
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x90<br />
Table 7-280. RFBI_VSYNC_WIDTH<br />
Physical address 0x4805 0890 Instance RFBI<br />
Description The control register configures the RFBI VSYNC minimum pulse width<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved MINVSYNCPULSEWIDTH<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility RW 0x0000<br />
Read returns 0<br />
15:0 MINVSYNCPULSEWIDTH Programmable min VSYNC pulse width RW 0x0000<br />
Minimum VSYNC pulse width from 0 to 65535. Number<br />
of L4 clock cycles to determine when VSYNC pulse<br />
occurs. The values 0 and 1 are invalid.<br />
Table 7-281. Register Call Summary for Register RFBI_VSYNC_WIDTH<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Parallel Interface in RFBI Mode (MIPI DBI Protocol): [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Configuration: [1]<br />
• VSYNC Pulse Width (Minimum Value): [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [3]<br />
Address Offset 0x94<br />
Table 7-282. RFBI_HSYNC_WIDTH<br />
Physical address 0x4805 0894 Instance RFBI<br />
Description The control register configures the RFBI HSYNC minimum pulse width.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved MINHSYNCPULSEWIDTH<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Write 0s for future compatibility RW 0x0000<br />
Read returns 0<br />
15:0 MINHSYNC Programmable min HSYNC pulse width RW 0x0000<br />
PULSEWIDTH Minimum HSYNC pulse width from 0 to 65535. Number of L4 clock<br />
cycles to determine when HSYNC pulse occurs. The values 0 and 1 are<br />
invalid.<br />
Table 7-283. Register Call Summary for Register RFBI_HSYNC_WIDTH<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Parallel Interface in RFBI Mode (MIPI DBI Protocol): [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• RFBI Configuration: [1]<br />
• HSYNC Pulse Width (Minimum Value): [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• RFBI Register Mapping Summary: [3]<br />
1866<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
7.7.2.4 Video Encoder Registers<br />
Address Offset 0x00<br />
Table 7-284. VENC_REV_ID<br />
Physical address 0x4805 0C00 Instance VENC<br />
Description Revision ID for the encoder<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved REV_ID<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Reserved. Read returns 0s. R 0x000000<br />
7:0 REV_ID This read-only register contains the revision ID for the encoder. The R TI internal data<br />
revision ID will identify different revisions of the IP.<br />
Table 7-285. Register Call Summary for Register VENC_REV_ID<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [0]<br />
Address Offset 0x04<br />
Table 7-286. VENC_STATUS<br />
Physical address 0x4805 0C04 Instance VENC<br />
Description VENC_STATUS<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved FSQ<br />
Bits Field Name Description Type Reset<br />
31:5 Reserved Reserved. Read returns 0s. R 0x0000000<br />
4 CCE Closed caption status for even Field. R 0<br />
This bit is set immediately after the data in registers LINE21_E0 and<br />
LINE21_E1 have been encoded to closed caption. This bit is reset<br />
when both of these registers are written.<br />
3 CCO Closed Caption Status for Odd Field. R 0<br />
This bit is set immediately after the data in registers LINE21_O0 and<br />
LINE21_O1 have been encoded to closed caption. This bit is reset<br />
when both of these registers are written.<br />
2:0 FSQ Field Sequence ID. R 0x0<br />
For PAL, all three FSQ[2:0] are used whereas for NTSC only FSQ[1:0]<br />
is meaningful. Furthermore, FSQ[0] represents odd field when it is 0<br />
and even field when it is 1.<br />
Read 0x0: Odd field<br />
Read 0x1: Even field<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Closed Caption Encoding: [0] [1] [2] [3]<br />
Table 7-287. Register Call Summary for Register VENC_STATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [4]<br />
• Video Encoder Registers: [5]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1867<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
CCE<br />
CCO
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x08<br />
Table 7-288. VENC_F_CONTROL<br />
Physical address 0x4805 0C08 Instance VENC<br />
Description This register specifies the input video source and format<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved SVDS BCOLOR FMT<br />
Bits Field Name Description Type Reset<br />
31:9 Reserved Reserved. Read returns 0s. RW 0x000000<br />
8 RESET RESET the encoder RW 0<br />
0x0: No effect<br />
0x1: Reset the encoder, after reset, this bit is automatically set to<br />
zero.<br />
7:6 SVDS Select Video Data Source. RW 0x2<br />
0x0: Use external video source<br />
0x1: Use internal Color BAR<br />
0x2: Use background color<br />
0x3: Reserved<br />
5 RGBF RGB/YCrCb input coding range RW 0<br />
0x0: The input RGB data are in binary format with coding range<br />
0-255<br />
The input YCrCb data are in binary format with coding range<br />
0-255<br />
0x1: The input RGB data are in binary format with coding range<br />
16-235<br />
The input YCrCb data are in binary format conforming to<br />
ITU-601 standard<br />
4:2 BCOLOR Background color select RW 0x1<br />
0x0: black<br />
0x1: blue<br />
0x2: red<br />
0x3: magenta<br />
0x4: green<br />
0x5: cyan<br />
0x6: yellow<br />
0x7: white<br />
1:0 FMT These two bits specify the video input data stream format and timing RW 0x3<br />
0x0: 24-bit 4:4:4 RGB<br />
0x1: 24-bit 4:4:4<br />
0x2: 16-bit 4:2:2<br />
0x3: 8-bit ITU-R 656 4:2:2<br />
Table 7-289. Register Call Summary for Register VENC_F_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Test Pattern Generation: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Software Reset: [1]<br />
• Video Encoder Programming Sequence: [2] [3]<br />
• Video Encoder Register Settings: [4]<br />
1868<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESET<br />
RGBF
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-289. Register Call Summary for Register VENC_F_CONTROL (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [5]<br />
Address Offset 0x10<br />
Table 7-290. VENC_VIDOUT_CTRL<br />
Physical address 0x4805 0C10 Instance VENC<br />
Description Encoder output clock<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved<br />
Bits Field Name Description Type Reset<br />
31:1 Reserved Reserved. Read returns 0s. RW 0x00000000<br />
0 27_54 Encoder output clock RW 0<br />
0x0: 54 MHz, 4x oversampling<br />
0x1: 27 MHz, 2x oversampling, the last 2x oversampling filter<br />
bypassed<br />
Table 7-291. Register Call Summary for Register VENC_VIDOUT_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0x14<br />
Table 7-292. VENC_SYNC_CTRL<br />
Physical address 0x4805 0C14 Instance VENC<br />
Description Sync Control Register<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved Reserved<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Reserved. Read returns 0s. RW 0x0000<br />
15 FREE Free running RW 1<br />
0x0: Free running disabled<br />
0x1: Free running enabled. HSYNC and VSYNC are ignored<br />
14 ESAV Enable to detect F and V bits only on EAV in ITU-R 656 input mode RW 0<br />
FREE<br />
ESAV<br />
IGNP<br />
NBLNKS<br />
0x0: Detection of F and V bits on both EAV and SAV<br />
0x1: Detection of F and V bits only on EAV<br />
13 IGNP Ignore protection bits in ITU-R 656 input mode RW 0<br />
0x0: Protection bits are not ignored<br />
0x1: Protection bits are ignored<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
VBLKM<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
HBLKM<br />
Reserved<br />
FID_POL<br />
27_54<br />
1869
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
12 NBLNKS Blank shaping RW 0<br />
0x0: Blank shaping enabled<br />
0x1: Blank shaping disabled<br />
11:10 VBLKM Vertical blanking mode RW 0x0<br />
0x0: Internal default blanking<br />
0x1: Internal default blanking AND internal programmable blanking<br />
defined by VENC_FLEN_FAL[24:16]FAL and<br />
VENC_LAL_PHASE_RESET[8:0] LAL bit fields.<br />
Note: in this mode, the VENC_LAL_PHASE_RESET[16]<br />
SBLANK bit must be '0b1' to active the VBLKM functionality.<br />
0x2: Reserved<br />
0x3: Reserved<br />
9:8 HBLKM Horizontal blanking mode RW 0x0<br />
0x0: Internal default blanking<br />
0x1: Internal programmable blanking defined by<br />
VENC_SAVID_EAVID[26:16] SAVID and<br />
VENC_SAVID_EAVID[10:0] EAVID bit fields.<br />
0x2: External blanking defined by VENC_AVID_START_STOP_X<br />
and VENC_AVID_START_STOP_Y registers.<br />
0x3: Reserved<br />
7 Reserved Reserved. Read returns 0. RW 0<br />
6 FID_POL FID output polarity RW 0<br />
0x0: Odd field = 0<br />
Even field = 1<br />
0x1: Odd field = 1<br />
Even field = 0<br />
5:0 Reserved Reserved. Read returns 0. RW 0x00<br />
Table 7-293. Register Call Summary for Register VENC_SYNC_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Programming Sequence: [0]<br />
• Video Encoder Register Settings: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [2]<br />
• Video Encoder Registers: [3]<br />
Address Offset 0x1C<br />
Table 7-294. VENC_LLEN<br />
Physical address 0x4805 0C1C Instance VENC<br />
Description VENC_LLEN<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved Reserved LLEN<br />
Bits Field Name Description Type Reset<br />
31:15 Reserved Reserved. Read returns 0s. RW 0x0000<br />
14:11 Reserved Reserved. Read returns 0s. RW 0x0<br />
10:0 LLEN LLEN[10:0] RW 0x359<br />
Line length or total number of pixels in a scan line including active video and<br />
blanking.<br />
Total number of pixels in a scan line = LLEN<br />
NOTE: A write on the LLEN[10] is illegal.<br />
1870 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
Table 7-295. Register Call Summary for Register VENC_LLEN<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2] [3]<br />
Address Offset 0x20<br />
Table 7-296. VENC_FLENS<br />
Physical address 0x4805 0C20 Instance VENC<br />
Description VENC_FLENS<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved FLENS<br />
Bits Field Name Description Type Reset<br />
31:11 Reserved Reserved. Read returns 0s. RW 0x000000<br />
10:0 FLENS The frame length or total number of lines in a frame including active RW 0x20C<br />
video and blanking from the source image.<br />
Total number of lines in a frame from the source image = FLENS + 1<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
Table 7-297. Register Call Summary for Register VENC_FLENS<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2]<br />
Address Offset 0x24<br />
Table 7-298. VENC_HFLTR_CTRL<br />
Physical address 0x4805 0C24 Instance VENC<br />
Description VENC_HFLTR_CTRL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved CINTP<br />
Bits Field Name Description Type Reset<br />
31:3 Reserved Reserved. Read returns 0s. RW 0x00000000<br />
2:1 CINTP Chrominance interpolation filter control RW 0x0<br />
0x0: The chrominance interpolation filter is enabled<br />
0x1: The first section of the chrominance interpolation filter is bypassed<br />
0x2: The second section of the chrominance interpolation filter is<br />
bypassed<br />
0x3: Both sections of the filter are bypassed<br />
0 YINTP Luminance interpolation filter control RW 0<br />
0x0: The luminance interpolation filter is enabled<br />
0x1: The luminance interpolation filter is bypassed<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
YINTP<br />
1871
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-299. Register Call Summary for Register VENC_HFLTR_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2]<br />
Address Offset 0x28<br />
Table 7-300. VENC_CC_CARR_WSS_CARR<br />
Physical address 0x4805 0C28 Instance VENC<br />
Description Frequency code control<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
FWSS FCC<br />
Bits Field Name Description Type Reset<br />
31:16 FWSS Wide screen signaling run-in code frequency control RW 0x043F<br />
For common values for FWSS[15:0] bit field, refer to Table 7-46<br />
Reset value is for NTSC-601standard<br />
15:0 FCC Close caption run-in code frequency control RW 0x2631<br />
For common values for FCC[15:0] bit field refer to Table 7-44. Reset value is<br />
for NTSC-601 standard<br />
Table 7-301. Register Call Summary for Register VENC_CC_CARR_WSS_CARR<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Closed Caption Encoding: [0] [1] [2]<br />
• Wide-Screen Signaling (WSS) Encoding: [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [6]<br />
Address Offset 0x2C<br />
Table 7-302. VENC_C_PHASE<br />
Physical address 0x4805 0C2C Instance VENC<br />
Description VENC_C_PHASE<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved CPHS<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Reserved. Read returns 0. RW 0x000000<br />
7:0 CPHS Phase of the encoded video color subcarrier (including the color burst) RW 0x00<br />
relative to H-sync. The adjustable step is 360/256 degrees.<br />
1872 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-303. Register Call Summary for Register VENC_C_PHASE<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Subcarrier and Burst Generation: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [4]<br />
• Video Encoder Registers: [5]<br />
Address Offset 0x30<br />
Table 7-304. VENC_GAIN_U<br />
Physical address 0x4805 0C30 Instance VENC<br />
Description Gain control for Cb signal<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GU<br />
Bits Field Name Description Type Reset<br />
31:9 Reserved Reserved. Read returns 0s. RW 0x000000<br />
8:0 GU Gain control for Cb signal. Following are typical programming examples for RW 0x102<br />
NTSC and PAL standards.<br />
NTSC with 7.5 IRE pedestal: WHITE - BLACK = 92.5 IRE GU = 0x102<br />
NTSC with no pedestal: WHITE - BLACK = 100 IRE GU = 0x117<br />
PAL with no pedestal: WHITE - BLACK = 100 IRE GU = 0x111<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Chroma Stage: [0]<br />
Table 7-305. Register Call Summary for Register VENC_GAIN_U<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [2]<br />
Address Offset 0x34<br />
Table 7-306. VENC_GAIN_V<br />
Physical address 0x4805 0C34 Instance VENC<br />
Description Gain control of Cr signal<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GV<br />
Bits Field Name Description Type Reset<br />
31:9 Reserved Reserved. Read returns 0s. RW 0x000000<br />
8:0 GV Gain control of Cr signal. Following are typical programming examples for RW 0x16C<br />
NTSC and PAL standards.<br />
NTSC with 7.5 IRE pedestal: WHITE - BLACK = 92.5 IRE GV = 0x16C<br />
NTSC with no pedestal: WHITE - BLACK = 100 IRE GV = 0x189<br />
PAL with no pedestal: WHITE - BLACK = 100 IRE GV = 0x181<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1873
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Chroma Stage: [0]<br />
Table 7-3<strong>07</strong>. Register Call Summary for Register VENC_GAIN_V<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [2]<br />
Address Offset 0x38<br />
Table 7-308. VENC_GAIN_Y<br />
Physical address 0x4805 0C38 Instance VENC<br />
Description Gain control of Y signal<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved GY<br />
Bits Field Name Description Type Reset<br />
31:9 Reserved Reserved. Read returns 0s. RW 0x000000<br />
8:0 GY Gain control of Y signal. Following are typical programming examples for RW 0x12F<br />
NTSC/PAL standards.<br />
NTSC with 7.5 IRE pedestal: WHITE - BLACK = 92.5 IRE GY = 0x12F<br />
NTSC with no pedestal: WHITE - BLACK = 100 IRE GY = 0x147<br />
PAL with no pedestal: WHITE - BLACK = 100 IRE GY = 0x140<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Luma Stage: [0]<br />
Table 7-309. Register Call Summary for Register VENC_GAIN_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [2]<br />
Address Offset 0x3C<br />
Table 7-310. VENC_BLACK_LEVEL<br />
Physical address 0x4805 0C3C Instance VENC<br />
Description Video Encoder BLACK LEVEL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved BLACK<br />
Bits Field Name Description Type Reset<br />
31:7 Reserved Reserved. Read returns 0. RW 0x0000000<br />
6:0 BLACK Black level setting. Following are typical programming examples for RW 0x43<br />
NTSC/PAL standards.<br />
NTSC with 7.5 IRE pedestal: WHITE - BLACK = 92.5 IRE BLACK_LEVEL =<br />
0x43<br />
NTSC with no pedestal: WHITE - BLACK = 100 IRE BLACK_LEVEL = 0x38<br />
PAL with no pedestal: WHITE - BLACK = 100 IRE BLACK_LEVEL = 0x3B<br />
1874 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-311. Register Call Summary for Register VENC_BLACK_LEVEL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Luma Stage: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [2]<br />
Address Offset 0x40<br />
Table 7-312. VENC_BLANK_LEVEL<br />
Physical address 0x4805 0C40 Instance VENC<br />
Description Video Encoder BLANK LEVEL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved BLANK<br />
Bits Field Name Description Type Reset<br />
31:7 Reserved Reserved. Read returns 0s. RW 0x0000000<br />
6:0 BLANK Blank level setting. Following are typical programming examples for RW 0x38<br />
NTSC/PAL standards.<br />
NTSC with 7.5 IRE pedestal: WHITE - BLACK = 92.5 IRE BLANK_LEVEL =<br />
0x38<br />
NTSC with no pedestal: WHITE - BLACK = 100 IRE BLANK_LEVEL = 0x38<br />
PAL with no pedestal: WHITE - BLACK = 100 IRE BLANK_LEVEL = 0x3B<br />
Table 7-313. Register Call Summary for Register VENC_BLANK_LEVEL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Luma Stage: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [2]<br />
Address Offset 0x44<br />
Table 7-314. VENC_X_COLOR<br />
Physical address 0x4805 0C44 Instance VENC<br />
Description Cross-Color Control Register<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved XCBW LCD<br />
Bits Field Name Description Type Reset<br />
31:7 Reserved Reserved. Read returns 0s. RW 0x0000000<br />
6 XCE Cross color reduction enable for composite video output. Cross color does RW 0<br />
not affect S-video output<br />
0x0: Cross color reduction is disabled<br />
0x1: Cross color is enabled<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
XCE<br />
Reserved<br />
1875
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
5 Reserved Reserved. Read returns 0. RW 0<br />
4:3 XCBW Cross color reduction filter selection RW 0x0<br />
0x0: The notch is at 32.8 % of the frequency of the encoding pixel clock<br />
0x1: The notch is at 26.5 % of the frequency of the encoding pixel clock<br />
0x2: The notch is at 30.0 % of the frequency of the encoding pixel clock<br />
0x3: The notch is at 29.2 % of the frequency of the encoding pixel clock<br />
2:0 LCD These three bits can be used for chroma channel delay compensation. RW 0x0<br />
Delay on Luma channel.<br />
0x0: 0<br />
0x1: 0.5 pixel clock period<br />
0x2: 1.0 pixel clock period<br />
0x3: 1.5 pixel clock period<br />
0x4: -2.0 pixel clock period<br />
0x5: -1.5 pixel clock period<br />
0x6: -1.0 pixel clock period<br />
0x7: -0.5 pixel clock period<br />
Table 7-315. Register Call Summary for Register VENC_X_COLOR<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0x48<br />
Table 7-316. VENC_M_CONTROL<br />
Physical address 0x4805 0C48 Instance VENC<br />
Description VENC_M_CONTROL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved CBW<br />
Bits Field Name Description Type Reset<br />
31:8 Reserved Reserved. Read returns 0s. RW 0x0000000<br />
7 PALI PAL I enable RW 0<br />
0x0: Normal operation<br />
0x1: PAL I enable<br />
6 PALN PAL N enable RW 0<br />
0x0: Normal operation<br />
0x1: PAL N enable<br />
5 PALPHS PAL switch phase setting RW 0<br />
0x0: PAL switch phase is nominal<br />
0x1: PAL switch phase is inverted compared to nominal<br />
4:2 CBW Chrominance lowpass filter bandwidth control RW 0x0<br />
0x0: -6db at 21.8 % of encoding pixel clock frequency<br />
0x1: -6db at 19.8 % of encoding pixel clock frequency<br />
0x2: -6db at 18.0 % of encoding pixel clock frequency<br />
1876 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
PALI<br />
PALN<br />
PALPHS<br />
PAL<br />
FFRQ
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
0x3: Reserved<br />
0x4: Reserved<br />
0x5: -6db at 23.7 % of encoding pixel clock frequency<br />
0x6: -6db at 26.8 % of encoding pixel clock frequency<br />
0x7: Chrominance lowpass filter bypass<br />
1 PAL Phase alternation line encoding selection RW 0<br />
0x0: Phase alternation line encoding disabled<br />
0x1: Phase alternation line encoding enabled<br />
0 FFRQ The value of this field and the SQP bit in the VENC_BSTAMP_WSS_DATA[7] RW 1<br />
SQP bit control the number of horizontal pixels displayed per scan line<br />
Mode: Configuration:<br />
ITU-R 601 NTSC SQP = 0, FFRQ = 1, Number of pixels by line = 858<br />
Square pixel NTSC SQP = 1, FFRQ = 1, Number of pixels by line = 780<br />
ITU-R 601 PAL SQP = 0, FFRQ = 0, Number of pixels by line = 864<br />
Square pixel PAL SQP = 1, FFRQ = 0, Number of pixels by line = 944<br />
Table 7-317. Register Call Summary for Register VENC_M_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Subcarrier and Burst Generation: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [4]<br />
• Video Encoder Registers: [5] [6]<br />
Address Offset 0x4C<br />
Table 7-318. VENC_BSTAMP_WSS_DATA<br />
Physical address 0x4805 0C4C Instance VENC<br />
Description VENC BSTAMP and WSS_DATA<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved WSS_DATA BSTAP<br />
Bits Field Name Description Type Reset<br />
31:28 Reserved Reserved. Read returns 0s. RW 0x0<br />
27:8 WSS_DATA WSS data [19:0]: Wide Screen Signaling data RW 0x00000<br />
NTSC: WORD 0 WSS_D1, WSS_D0<br />
WORD 1 WSS_D5, WSS_D4, WSS_D3, WSS_D2<br />
WORD 2 WSS_D13, WSS_D12, WSS_D11, WSS_D10,<br />
WSS_D9, WSS_D8, WSS_D7, WSS_D6<br />
CRC WSS_D19, WSS_D18, WSS_D17, WSS_D16,<br />
WSS_D15, WSS_D14<br />
PAL: GROUP A WSS_D3, WSS_D2, WSS_D1, WSS_D0<br />
GROUP B WSS_D7, WSS_D6, WSS_D5, WSS_D4<br />
GROUP C WSS_D10, WSS_D9, WSS_D8<br />
GROUP D WSS_D13, WSS_D12, WSS_D11<br />
7 SQP Square-pixel sampling rate. Please refer to VENC_M_CONTROL[0] FFRQ RW 0<br />
bit description for programming information.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
SQP<br />
1877
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
0x0: ITU-R 601 sampling rate<br />
0x1: Square-pixel sampling rate<br />
6:0 BSTAP Setting of amplitude of color burst. RW 0x38<br />
Table 7-319. Register Call Summary for Register VENC_BSTAMP_WSS_DATA<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Subcarrier and Burst Generation: [0]<br />
• Wide-Screen Signaling (WSS) Encoding: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [3]<br />
• Video Encoder Registers: [4]<br />
Address Offset 0x50<br />
Table 7-320. VENC_S_CARR<br />
Physical address 0x4805 0C50 Instance VENC<br />
Description Color Subcarrier Frequency Registers.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Bits Field Name Description Type Reset<br />
FSC<br />
31:0 FSC These four bytes' data program the color subcarrier frequency and are RW 0x21F<strong>07</strong>C1F<br />
determined by the following formula.<br />
S_CARR = ROUND((Fsc/Fclkenc) * 2 32 )<br />
Where: Fsc = Frequency of the subcarrier<br />
Fclkenc = Frequency of the internal video encoding clock = 2*LLEN *Fh<br />
LLEN = Number of pixels in a scan line. For LLEN setting, please refer<br />
to the description of VENC_LLEN register (offset 0x1C).<br />
Fh = Line frequency<br />
For typical setting of the FSC field, refer to Table 7-42.<br />
Table 7-321. Register Call Summary for Register VENC_S_CARR<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Subcarrier and Burst Generation: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [4]<br />
1878 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x54<br />
Table 7-322. VENC_LINE21<br />
Physical address 0x4805 0C54 Instance VENC<br />
Description VENC LINE 21<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
L21E L21O<br />
Bits Field Name Description Type Reset<br />
31:16 L21E The two bytes of the closed-caption data in the even field. For a RW 0x0000<br />
complete field description, refer to CEA-608-x standard. For data stream<br />
content, see Table 7-43, Closed-Caption Data Format.<br />
[31:24] First byte of data<br />
[23:16] Second byte of data<br />
15:0 L21O The two bytes of the closed caption data in the odd field. For a complete RW 0x0000<br />
field description, refer to CEA-608-x standard. For data stream content,<br />
see Table 7-43, Closed-Caption Data Format.<br />
[15:8] First byte of data<br />
[7:0] Second byte of data<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Closed Caption Encoding: [0] [1] [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [4]<br />
Table 7-323. Register Call Summary for Register VENC_LINE21<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [5]<br />
Address Offset 0x58<br />
Table 7-324. VENC_LN_SEL<br />
Physical address 0x4805 0C58 Instance VENC<br />
Description VENC_LN_SEL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved LN21_RUNIN Reserved SLINE<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 LN21_RUNIN The two bytes of the closed caption run in code position from the RW 0x10B<br />
HSYNC.<br />
15:5 Reserved Reserved. Read returns 0s. RW 0x000<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1879
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
4:0 SLINE Selects the line where closed caption or extended service data are RW 0x15<br />
encoded. The value of the SLINE[4:0] bit field depends on the video<br />
standard:<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Closed Caption Encoding: [0] [1] [2]<br />
PAL mode: Because there is a one-line offset, program the desired<br />
line number – 1.<br />
To activate the closed caption on line 21 (0x15), program the value<br />
0x15 – 1 = 0x14. The default value is 0x15 + 1 = 0x16 (line 22).<br />
NTSC mode: Because there is a four-line offset, program the desired<br />
line number – 4.<br />
To activate the closed caption on line 21 (0x15), program the value<br />
0x15 – 4 = 0x11. The default value is 0x15 + 4 = 0x19 (line 25).<br />
Table 7-325. Register Call Summary for Register VENC_LN_SEL<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [4]<br />
• Video Encoder Registers: [5]<br />
Address Offset 0x5C<br />
Table 7-326. VENC_L21_WC_CTL<br />
Physical address 0x4805 0C5C Instance VENC<br />
Description VENC L21 WC_CTL registers<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
INV<br />
EVEN_ODD_EN<br />
Reserved LINE Reserved L21EN<br />
Bits Field Name Description Type Reset<br />
31:16 Reserved Reserved. Read returns 0s. RW 0x0000<br />
15 INV WSS inverter RW 0<br />
0x0: No effect<br />
0x1: Invert WSS data<br />
14:13 EVEN_ODD_EN This bit controls the WSS encoding. RW 0x0<br />
0x0: WSS encoding OFF<br />
0x1: Enables encoding in 1 st field (odd field)<br />
0x2: Enables encoding in 2 nd field (even field)<br />
0x3: Enables encoding in both fields<br />
12:8 LINE Selects the line where WSS data are encoded. The LINE[12:8] bit field RW 0x14<br />
value depends on the video standard:<br />
PAL mode: There is an one line offset, so program the wanted line<br />
number - 1. The recommended value is line 0x16 + 1 = 0x17 (23rd line).<br />
The default value is 0x14 + 1 = 0x15 (line 21).<br />
NTSC mode: There is a four line offset, so program the wanted line<br />
number - 4. The recommended value is line 0x10 + 4 = 0x14 (20th line).<br />
The default value is 0x14 + 4 = 0x18 (line 24).<br />
7:2 Reserved Reserved. Read returns 0s. RW 0x00<br />
1880 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
1:0 L21EN Those bits controls the Line21 closed caption encoding according to the RW 0x0<br />
mode.<br />
0x0: Line21 encoding OFF<br />
0x1: Enables encoding in 1st field (odd field)<br />
0x2: Enables encoding in 2d field (even field)<br />
0x3: Enables encoding in both fields<br />
Table 7-327. Register Call Summary for Register VENC_L21_WC_CTL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Closed Caption Encoding: [0] [1]<br />
• Wide-Screen Signaling (WSS) Encoding: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [5]<br />
Address Offset 0x60<br />
Table 7-328. VENC_HTRIGGER_VTRIGGER<br />
Physical address 0x4805 0C60 Instance VENC<br />
Description VENC HTRIGGER and VTRIGGER<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VTRIG Reserved HTRIG<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 VTRIG Vertical trigger reference for VSYNC. These bits specify the phase RW 0x000<br />
between VSYNC input and the lines in a field. The VTRIG field is<br />
expressed in units of half-line.<br />
15:11 Reserved Reserved. Read returns 0s. RW 0x00<br />
10:0 HTRIG Horizontal trigger phase, which sets HSYNC. HTRIG is expressed in RW 0x000<br />
half-pixels or clk2x (27 MHz) periods<br />
Table 7-329. Register Call Summary for Register VENC_HTRIGGER_VTRIGGER<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0x64<br />
Table 7-330. VENC_SAVID_EAVID<br />
Physical address 0x4805 0C64 Instance VENC<br />
Description VENC SAVID and EAVID<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved EAVID Reserved SAVID<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1881
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Reserved. Read returns 0s. RW 0x00<br />
26:16 EAVID End of active video. These bits define the ending pixel position on a RW 0x693<br />
horizontal display line where active video will be displayed.<br />
15:11 Reserved Reserved. Read returns 0s. RW 0x00<br />
10:0 SAVID Start of active video. These bits define the starting pixel position on a RW 0x0F4<br />
horizontal line where active video will be displayed.<br />
Table 7-331. Register Call Summary for Register VENC_SAVID_EAVID<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2] [3]<br />
Address Offset 0x68<br />
Table 7-332. VENC_FLEN_FAL<br />
Physical address 0x4805 0C68 Instance VENC<br />
Description VENC FLEN and FAL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved FAL Reserved FLEN<br />
Bits Field Name Description Type Reset<br />
31:25 Reserved Reserved. Read returns 0s. RW 0x00<br />
24:16 FAL First Active Line of Field. These bits define the first active line of a field RW 0x016<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 FLEN Field length. These bits define the number of half_lines in each field. RW 0x20C<br />
Length of field = (FLEN + 1) half_lines<br />
Table 7-333. Register Call Summary for Register VENC_FLEN_FAL<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2]<br />
Address Offset 0x6C<br />
Table 7-334. VENC_LAL_PHASE_RESET<br />
Physical address 0x4805 0C6C Instance VENC<br />
Description VENC LAL and PHASE_RESET<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
SBLANK<br />
Reserved PRES Reserved LAL<br />
1882 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31:19 Reserved Reserved. Read returns 0s. RW 0x0000<br />
18:17 PRES Phase reset mode. RW 0x3<br />
0x0: No reset<br />
0x1: Reset every two lines<br />
0x2: Reset every eight fields. Color subcarrier phase is reset to<br />
VENC_CPHASE[7:0] CPHS field value (offset 0x2C) upon reset<br />
0x3: Reset every four fields. Color subcarrier phase is reset to<br />
VENC_CPHASE[7:0] CPHS bit field value (offset 0x2C) upon<br />
reset<br />
16 SBLANK Data output enable RW 0<br />
0x0: No functionality<br />
0x1: Enables the output of data when VENC_SYNC_CTRL[10]<br />
VBLMK bit is '0b1'.<br />
15:9 Reserved Reserved. Read returns 0s. RW 0x00<br />
8:0 LAL Last Active Line of Field. These bits define the last active line of a field. The RW 0x1<strong>07</strong><br />
LAL[8:0] bit field value must be set to a value lower than the active window.<br />
Table 7-335. Register Call Summary for Register VENC_LAL_PHASE_RESET<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2] [3]<br />
Address Offset 0x70<br />
Table 7-336. VENC_HS_INT_START_STOP_X<br />
Physical address 0x4805 0C70 Instance VENC<br />
Description VENC_HS_INT_START_STOP_X<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved HS_INT_STOP_X Reserved HS_INT_START_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 HS_INT_STOP_X HSYNC internal stop. These bits define HSYNC internal stop pixel RW 0x<strong>07</strong>E<br />
value<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 HS_INT_START_X HSYNC internal start. These bits define HSYNCI NTERNAL start RW 0x34E<br />
pixel value<br />
Table 7-337. Register Call Summary for Register VENC_HS_INT_START_STOP_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1883
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x74<br />
Table 7-338. VENC_HS_EXT_START_STOP_X<br />
Physical address 0x4805 0C74 Instance VENC<br />
Description VENC_HS_EXT_START_STOP_X<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved HS_EXT_STOP_X Reserved HS_EXT_START_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 HS_EXT_STOP_X HSYNC external stop. These bits define HSYNC external stop pixel RW 0x00F<br />
value<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 HS_EXT_START_X HSYNC external start. These bits define HSYNC EXTERNAL start RW 0x359<br />
pixel value<br />
Table 7-339. Register Call Summary for Register VENC_HS_EXT_START_STOP_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2]<br />
Address Offset 0x78<br />
Table 7-340. VENC_VS_INT_START_X<br />
Physical address 0x4805 0C78 Instance VENC<br />
Description VENC_VS_INT_START_X<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VS_INT_START_X Reserved<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 VS_INT_START_X VSYNC internal start. These bits define VSYNC internal start pixel RW 0x1A0<br />
value.<br />
15:0 Reserved Reserved. Read returns 0s. RW 0x0000<br />
Table 7-341. Register Call Summary for Register VENC_VS_INT_START_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2]<br />
1884 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x7C<br />
Table 7-342. VENC_VS_INT_STOP_X_VS_INT_START_Y<br />
Physical address 0x4805 0C7C Instance VENC<br />
Description VENC VS_INT_STOP_X and VS_INT_START_Y<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VS_INT_START_Y Reserved VS_INT_STOP_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 VS_INT_START_Y VSYNC internal start. These bits define VSYNC INTERNAL start line RW 0x209<br />
value<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 VS_INT_STOP_X VSYNC internal stop. These bits define VSYNC internal stop pixel RW 0x1A0<br />
value<br />
Table 7-343. Register Call Summary for Register VENC_VS_INT_STOP_X_VS_INT_START_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0x80<br />
Table 7-344. VENC_VS_INT_STOP_Y_VS_EXT_START_X<br />
Physical address 0x4805 0C80 Instance VENC<br />
Description VENC VS_INT_STOP_Y and VS_EXT_START_X<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VS_EXT_START_X Reserved VS_INT_STOP_Y<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 VS_EXT_START_X VSYNC external start. These bits define VSYNC external start pixel RW 0x1AC<br />
value.<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 VS_INT_STOP_Y VSYNC internal stop. These bits define VSYNC INTERNAL stop line RW 0x022<br />
value.<br />
Table 7-345. Register Call Summary for Register VENC_VS_INT_STOP_Y_VS_EXT_START_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1885
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x84<br />
Table 7-346. VENC_VS_EXT_STOP_X_VS_EXT_START_Y<br />
Physical address 0x4805 0C84 Instance VENC<br />
Description VENC VS_EXT_STOP_X and VS_EXT_START_Y<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VS_EXT_START_Y Reserved VS_EXT_STOP_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 VS_EXT_START_Y VSYNC external start. These bits define VSYNC EXTERNAL RW 0x20D<br />
start line value.<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 VS_EXT_STOP_X VSYNC external stop. These bits define VSYNC EXTERNAL RW 0x1AC<br />
stop pixel value.<br />
Table 7-347. Register Call Summary for Register VENC_VS_EXT_STOP_X_VS_EXT_START_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0x88<br />
Table 7-348. VENC_VS_EXT_STOP_Y<br />
Physical address 0x4805 0C88 Instance VENC<br />
Description VENC VS_EXT_STOP_Y<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved VS_EXT_STOP_Y<br />
Bits Field Name Description Type Reset<br />
31:10 Reserved Reserved. Read returns 0s. RW 0x000000<br />
9:0 VS_EXT_STOP_Y VSYNC external stop. These bits define VSYNC EXTERNAL RW 0x006<br />
stop line value.<br />
Table 7-349. Register Call Summary for Register VENC_VS_EXT_STOP_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
1886 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x90<br />
Table 7-350. VENC_AVID_START_STOP_X<br />
Physical address 0x4805 0C90 Instance VENC<br />
Description VENC_AVID_START_STOP_X<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved AVID_STOP_X Reserved AVID_START_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 AVID_STOP_X AVID stop. These bits define AVID stop pixel value RW 0x348<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 AVID_START_X AVID start. These bits define AVID start pixel value RW 0x<strong>07</strong>8<br />
Table 7-351. Register Call Summary for Register VENC_AVID_START_STOP_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2] [3]<br />
Address Offset 0x94<br />
Table 7-352. VENC_AVID_START_STOP_Y<br />
Physical address 0x4805 0C94 Instance VENC<br />
Description VENC_AVID_START_STOP_Y<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved AVID_STOP_Y Reserved AVID_START_Y<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 AVID_STOP_Y AVID stop. These bits define AVID stop line value. RW 0x206<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 AVID_START_Y AVID start. These bits define AVID start line value RW 0x026<br />
Table 7-353. Register Call Summary for Register VENC_AVID_START_STOP_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
• Video Encoder Registers: [2] [3]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1887
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0xA0<br />
Table 7-354. VENC_FID_INT_START_X_FID_INT_START_Y<br />
Physical address 0x4805 0CA0 Instance VENC<br />
Description VENC_FID_INT_START_X and FID_INT_START_Y<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved FID_INT_START_Y Reserved FID_INT_START_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 FID_INT_START_Y FID internal start. These bits define FID internal start line value RW 0x001<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 FID_INT_START_X FID internal start. These bits define FID internal start pixel value RW 0x08A<br />
Table 7-355. Register Call Summary for Register VENC_FID_INT_START_X_FID_INT_START_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0xA4<br />
Table 7-356. VENC_FID_INT_OFFSET_Y_FID_EXT_START_X<br />
Physical address 0x4805 0CA4 Instance VENC<br />
Description VENC FID_INT_OFFSET_Y and FID_EXT_START_X<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved FID_EXT_START_X Reserved FID_INT_OFFSET_Y<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 FID_EXT_START_X FID external start. These bits define FID external start pixel value RW 0x1AC<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 FID_INT_OFFSET_Y FID internal offset. These bits define FID internal offset linel value RW 0x106<br />
Table 7-357. Register Call Summary for Register VENC_FID_INT_OFFSET_Y_FID_EXT_START_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
1888 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0xA8<br />
Table 7-358. VENC_FID_EXT_START_Y_FID_EXT_OFFSET_Y<br />
Physical address 0x4805 0CA8 Instance VENC<br />
Description VENC FID_EXT_START_Y and FID_EXT_OFFSET_Y<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved FID_EXT_OFFSET_Y Reserved FID_EXT_START_Y<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 FID_EXT_OFFSET_Y FID external offset. These bits define FID external offset line value RW 0x106<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 FID_EXT_START_Y FID external start. These bits define FID external start line value. RW 0x006<br />
Table 7-359. Register Call Summary for Register VENC_FID_EXT_START_Y_FID_EXT_OFFSET_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [1]<br />
Address Offset 0xB0<br />
Table 7-360. VENC_TVDETGP_INT_START_STOP_X<br />
Physical address 0x4805 0CB0 Instance VENC<br />
Description TV Detection Start and Stop pixel values<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved TVDETGP_INT_STOP_X Reserved TVDETGP_INT_START_X<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 TVDETGP_INT_STOP_X TVDETGP internal stop. These bits define TVDETGP internal RW 0x014<br />
stop pixel value.<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 TVDETGP_INT_START_X TVDETGP internal start. These bits define TVDETGP internal RW 0x001<br />
start pixel value<br />
Table 7-361. Register Call Summary for Register VENC_TVDETGP_INT_START_STOP_X<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• TV Detection/Disconnection Pulse Generation: [0]<br />
• TV Detection Procedure: [1] [2] [3]<br />
• TV Disconnection Procedure: [4] [5] [6]<br />
• Recommended TV Detection/Disconnection Pulse Waveform: [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [8]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [9]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1889<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0xB4<br />
Table 7-362. VENC_TVDETGP_INT_START_STOP_Y<br />
Physical address 0x4805 0CB4 Instance VENC<br />
Description TV detection Start and Stop line values<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved TVDETGP_INT_STOP_Y Reserved TVDETGP_INT_START_Y<br />
Bits Field Name Description Type Reset<br />
31:26 Reserved Reserved. Read returns 0s. RW 0x00<br />
25:16 TVDETGP_INT_STOP_Y TVDETGP internal stop. These bits define TVDETGP internal RW 0x001<br />
stop line value.<br />
15:10 Reserved Reserved. Read returns 0s. RW 0x00<br />
9:0 TVDETGP_INT_START_Y TVDETGP internal start. These bits define TVDETGP internal RW 0x001<br />
start line value.<br />
Table 7-363. Register Call Summary for Register VENC_TVDETGP_INT_START_STOP_Y<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• TV Detection/Disconnection Pulse Generation: [0]<br />
• TV Detection Procedure: [1] [2] [3]<br />
• TV Disconnection Procedure: [4] [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [8]<br />
Address Offset 0xB8<br />
Table 7-364. VENC_GEN_CTRL<br />
Physical address 0x4805 0CB8 Instance VENC<br />
Description TVDETGP enable and SYNC_POLARITY and UVPHASE_POL<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
Reserved Reserved EN<br />
MS<br />
656<br />
CBAR<br />
HIP<br />
VIP<br />
HEP<br />
VEP<br />
AVIDP<br />
FIP<br />
FEP<br />
TVDP<br />
Bits Field Name Description Type Reset<br />
31:27 Reserved Reserved. Read returns 0s. RW 0x0000<br />
26 MS UVPHASE_POL MS mode UV phase RW 0<br />
0x0: CbCr<br />
0x1: CrCb<br />
25 656 UVPHASE_POL 656 input mode UV phase RW 0<br />
0x0: CbCr<br />
0x1: CrCb<br />
24 CBAR UVPHASE_POL CBAR mode UV phase RW 0<br />
0x0: CbCr<br />
0x1: CrCb<br />
23 HIP HSYNC internal polarity RW 1<br />
0x0: Active low<br />
1890 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
0x1: Active high<br />
22 VIP VSYNC internal polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
21 HEP HSYNC external polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
20 VEP VSYNC external polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
19 AVIDP AVID polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
18 FIP FID internal polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
17 FEP FID external polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
16 TVDP TVDETGP polarity RW 1<br />
0x0: Active low<br />
0x1: Active high<br />
15:1 Reserved Reserved. Read returns 0s. RW 0x00<br />
0 EN TVDETGP generation enable RW 0<br />
0x0: Disabled<br />
0x1: Enabled<br />
Table 7-365. Register Call Summary for Register VENC_GEN_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• TV Detection/Disconnection Pulse Generation: [0] [1]<br />
• TV Detection Procedure: [2] [3]<br />
• TV Disconnection Procedure: [4] [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [7]<br />
Address Offset 0x0000 00C4<br />
Table 7-366. VENC_OUTPUT_CONTROL<br />
Physical Address 0x4805 0CC4 Instance VENC<br />
Description Output channel control register Also contains some test control features<br />
Type RW<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1891
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED LUMA_TEST RESERVED<br />
Bits Field Name Description Type Reset<br />
31:26 RESERVED Reserved. Read returns 0s. RW 0x00<br />
25:16 LUMA_TEST In test mode, DAC 1 input value RW 0x000<br />
(if s-video video mode is selected)<br />
15:8 RESERVED Reserved. Read returns 0s. RW 0x00<br />
7 CHROMA_SOURCE Source of chroma video data in test mode RW 0x0<br />
0x0: Chroma test data comes from internal register<br />
OUTPUT_TEST[25:16]<br />
0x1: Chroma test data comes from display controller video port<br />
G[1:0], B[7:0]<br />
6 COMPOSITE_ Source of composite video data in test mode RW 0x0<br />
SOURCE<br />
0x0: Composite test data comes from internal register<br />
OUTPUT_TEST[9:0]<br />
0x1: Composite test data comes from display controller video port<br />
G[1:0], B[7:0]<br />
5 LUMA_SOURCE Source of luminance video data in test mode RW 0x0<br />
0x0: Luma test data comes from internal register<br />
OUTPUT_CONTROL[25:16]<br />
0x1: Luma test data comes from display controller video port G[1:0],<br />
B[7:0]<br />
4 TEST_MODE This enables the video DACs to be tested. The values sent to the RW 0x0<br />
DACs comes from a register for each output channel (Luma,<br />
Composite or Chroma) or from the display controller video port bits<br />
G[1:0], B[7:0], depending on the setting of the Source bits<br />
0x0: Video outputs are in normal operation<br />
0x1: Test mode. Video outputs are directly connected to either<br />
internal registers or the display controller video port.<br />
3 VIDEO_INVERT Controls the video output polarity. This may be used to correct for RW 0x1<br />
inversion in an external video amplifier.<br />
0x0: Video outputs are inverted<br />
0x1: Video outputs are normal polarity<br />
2 CHROMA_ENABLE Enable the Chrominance output channel RW 0x0<br />
0x0: Chroma output is disabled<br />
0x1: Chroma output is enabled<br />
1 COMPOSITE_ Enable the Composite output channel RW 0x0<br />
ENABLE<br />
0x0: Composite output is disabled<br />
0x1: Composite output is enabled<br />
0 LUMA_ENABLE Enable the Luminance output channel RW 0x0<br />
0x0: Luma output is disabled<br />
0x1: Luma output is enabled<br />
1892 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
CHROMA_SOURCE<br />
COMPOSITE_SOURCE<br />
LUMA_SOURCE<br />
TEST_MODE<br />
VIDEO_INVERT<br />
CHROMA_ENABLE<br />
COMPOSITE_ENABLE<br />
LUMA_ENABLE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-367. Register Call Summary for Register VENC_OUTPUT_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• TV <strong>Display</strong> Support: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• TV Detection Procedure: [2] [3]<br />
• TV Disconnection Procedure: [4] [5]<br />
• Video DAC Stage Test Mode: [6] [7] [8] [9] [10]<br />
• Video DAC Stage Power Management: [11] [12] [13]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video DAC Stage Settings: [14] [15] [16]<br />
• Video Encoder Register Settings: [17]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [18]<br />
Address Offset 0x0000 00C8<br />
Table 7-368. VENC_OUTPUT_TEST<br />
Physical Address 0x4805 0CC8 Instance VENC<br />
Description Test values for the Luma/Composite Video DAC1 (if composite video is selected) and the Chroma Video<br />
DAC2<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED CHROMA_TEST RESERVED COMPOSITE_TEST<br />
Bits Field Name Description Type Reset<br />
31:26 RESERVED Reserved. Read returns 0s. RW 0x00<br />
25:16 CHROMA_TEST In test mode, DAC 2 input value RW 0x000<br />
15:10 RESERVED Reserved. Read returns 0s. RW 0x00<br />
9:0 COMPOSITE_TEST In test mode, DAC 1 input value (if composite video is selected) RW 0x000<br />
Table 7-369. Register Call Summary for Register VENC_OUTPUT_TEST<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Video DAC Stage Test Mode: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Encoder Register Settings: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• Video Encoder Register Mapping Summary: [3]<br />
7.7.2.5 DSI Protocol Engine Registers<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1893
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x0000 0000<br />
Table 7-370. DSI_REVISION<br />
Physical Address 0x4804 FC00 Instance DSI_PROTOCOL_ENGINE<br />
Description MODULE REVISION This register contains the IP revision code in binary coded digital. For example, we<br />
have: 0x01 = revision 0.1 and 0x21 = revision 2.1<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED REV<br />
Bits Field Name Description Type Reset<br />
31:8 RESERVED Write 0s for future compatibility. R 0x000000<br />
Reads returns 0.<br />
7:0 REV IP revision R TI internal data<br />
[7:4] Major revision<br />
[3:0] Minor revision<br />
Table 7-371. Register Call Summary for Register DSI_REVISION<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [0]<br />
Address Offset 0x0000 0010<br />
Table 7-372. DSI_SYSCONFIG<br />
Physical Address 0x4804 FC10 Instance DSI_PROTOCOL_ENGINE<br />
Description SYSTEM CONFIGURATION REGISTER This register is the system configuration register.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED RESERVED<br />
Bits Field Name Description Type Reset<br />
31:14 RESERVED Write 0s for future compatibility. RW 0x00000<br />
Reads returns 0.<br />
13:10 RESERVED Write 0s for future compatibility. RW 0x0<br />
9:8 CLOCKACTIVITY Clocks activity during wake up mode period RW 0x0<br />
0x0: Interface and Functional clocks can be switched off<br />
0x1: Functional clocks can be switched off and Interface clocks are<br />
maintained during wake up period<br />
0x2: Interface clocks can be switched off and Functional clocks are<br />
maintained during wake up period<br />
0x3: Interface and Functional clocks are maintained during wake up<br />
period<br />
7:5 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
1894 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
CLOCKACTIVITY<br />
RESERVED<br />
SIDLEMODE<br />
ENWAKEUP<br />
SOFT_RESET<br />
AUTO_IDLE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
4:3 SIDLEMODE Slave interface power management, Idle req/ack control RW 0x2<br />
0x0: Force-idle. An idle request is acknowledged unconditionally<br />
0x1: No-idle. An idle request is never acknowledged<br />
0x2: Smart-idle. Acknowledgement to an idle request is given based on<br />
the internal activity of the module.<br />
0x3: Reserved<br />
2 ENWAKEUP Wake-up mode enable bit RW 0x0<br />
0x0: Wakeup is disabled.<br />
0x1: Wakeup is enabled,<br />
1 SOFT_RESET Software reset. Set the bit to 1 to trigger a module reset. The bit is RW 0x0<br />
automatically reset by the hw. During reads return 0.<br />
0x0: Normal mode.<br />
0x1: The module is reset<br />
0 AUTO_IDLE Internal interface clock gating strategy RW 0x1<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Software Reset: [0]<br />
• Clock Activity Mode: [1] [2] [3]<br />
• Autoidle Mode: [4]<br />
• Idle Mode: [5] [6] [7]<br />
0x0: Interface clock is free-running.<br />
0x1: Automatic Interface clock gating strategy is applied based on the<br />
module interface activity.<br />
Table 7-373. Register Call Summary for Register DSI_SYSCONFIG<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Software Reset: [8]<br />
• Power Management: [9] [10]<br />
• Software Reset: [11]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Reset DSI Modules: [12]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [13] [14] [15]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [16]<br />
Address Offset 0x0000 0014<br />
Table 7-374. DSI_SYSSTATUS<br />
Physical Address 0x4804 FC14 Instance DSI_PROTOCOL_ENGINE<br />
Description SYSTEM STATUS REGISTER This register provides status information about the module, excluding the<br />
interrupt status register.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESET_DONE<br />
1895
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:1 RESERVED Reads returns 0. R 0x00000000<br />
0 RESET_DONE Internal reset monitoring R 0x1<br />
0x0: Internal module reset is on going.<br />
0x1: Reset completed.<br />
Table 7-375. Register Call Summary for Register DSI_SYSSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Software Reset: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Reset DSI Modules: [2]<br />
• Set Up DSI Protocol Engine: [3]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [4] [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [6]<br />
Address Offset 0x0000 0018<br />
Table 7-376. DSI_IRQSTATUS<br />
Physical Address 0x4804 FC18 Instance DSI_PROTOCOL_ENGINE<br />
Description INTERRUPT STATUS REGISTER - All VCs + complex I/O + PLL This register associates one bit for<br />
each VC to determine which VC has generated the interrupt. The VC should be enabled for events to be<br />
generated on that VC. If the VC is disabled, the interrupt is not generated.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
TA_TO_IRQ<br />
LDO_POWER_GOOD_IRQ<br />
SYNC_LOST_IRQ<br />
ACK_TRIGGER_IRQ<br />
TE_TRIGGER_IRQ<br />
Bits Field Name Description Type Reset<br />
31:21 RESERVED Write 0s for future compatibility. RW 0x000<br />
Reads returns 0.<br />
20 TA_TO_IRQ Turn-around Time out. RW 0x0<br />
LP_RX_TO_IRQ<br />
HS_TX_TO_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
RESERVED<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
19 LDO_POWER_ Transition of the status signal LDOPWRGOOD from the RW 0x0<br />
GOOD_IRQ DSI_PHY indicating a state change for the supply<br />
VDDALDODSIPLL from up to down or down to up.<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
1896 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
RESERVED<br />
COMPLEXIO_ERR_IRQ<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
PLL_RECAL_IRQ<br />
PLL_UNLOCK_IRQ<br />
PLL_LOCK_IRQ<br />
RESERVED<br />
RESYNCHRONIZATION_IRQ<br />
WAKEUP_IRQ<br />
VIRTUAL_CHANNEL3_IRQ<br />
VIRTUAL_CHANNEL2_IRQ<br />
VIRTUAL_CHANNEL1_IRQ<br />
VIRTUAL_CHANNEL0_IRQ
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
18 SYNC_LOST_IRQ Synchronization with Video port is lost (Video mode only) RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
17 ACK_TRIGGER_IRQ Acknowledge Trigger RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
16 TE_TRIGGER_IRQ Tearing Effect Trigger RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
15 LP_RX_TO_IRQ Interrupt for Low Power Rx Time out RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
14 HS_TX_TO_IRQ Interrupt for high-speed Tx Time out. RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
13 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
12:11 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
10 COMPLEXIO_ Error signaling from complex I/O: status of the complex I/O R 0x0<br />
ERR_IRQ errors received from the complex I/O(events are defined in<br />
DSI_COMPLEXIO_IRQSTATUS).<br />
0x0: READS: Event is false.<br />
0x1: READS: Event is true (pending).<br />
9 PLL_RECAL_IRQ PLL recalibration event (assertion of recalibration signal from the RW 0x0<br />
DSI PLL Control module)<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
8 PLL_UNLOCK_IRQ PLL un-lock event (de-assertion of lock signal from the DSI PLL RW 0x0<br />
Control module)<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
7 PLL_LOCK_IRQ PLL lock event (assertion of lock signal from the DSI PLL RW 0x0<br />
Control module)<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
6 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
5 RESYNCHRONIZATION_ Video mode resynchronization RW 0x0<br />
IRQ<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1897
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
Indicates that the video port works but the configuration of the<br />
timings for the display controller (DISPC) and for DSI protocol<br />
engine may have to be modified to avoid the resynchronization<br />
to occur.<br />
0x0: READS: Event is false. WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending). WRITES: Status bit is<br />
reset.<br />
4 WAKEUP_IRQ Wakeup RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
3 VIRTUAL_CHANNEL3_ Virtual channel #3 R 0x0<br />
IRQ<br />
Error signaling from DSI Virtual Channel3: Status of DSI Virtual<br />
Channel3 errors received from DSI Virtual Channel3 (events are<br />
defined in DSI_VC3_IRQSTATUS).<br />
0x0: READS: Event is false.<br />
0x1: READS: Event is true (pending).<br />
2 VIRTUAL_CHANNEL2_ Virtual channel #2 R 0x0<br />
IRQ<br />
Error signaling from DSI Virtual Channel2: Status of DSI Virtual<br />
Channel2 errors received from DSI Virtual Channel2 (events are<br />
defined in DSI_VC2_IRQSTATUS).<br />
0x0: READS: Event is false.<br />
0x1: READS: Event is true (pending).<br />
1 VIRTUAL_CHANNEL1_ Virtual channel #1 R 0x0<br />
IRQ<br />
Error signaling from DSI Virtual Channel1: Status of DSI Virtual<br />
Channel1 errors received from DSI Virtual Channel1 (events are<br />
defined in DSI_VC1_IRQSTATUS).<br />
0x0: READS: Event is false.<br />
0x1: READS: Event is true (pending).<br />
0 VIRTUAL_CHANNEL0_ Virtual channel #0 R 0x0<br />
IRQ<br />
Error signaling from DSI Virtual Channel0: Status of the DSI<br />
Virtual Channel0 errors received from DSI Virtual Channel0<br />
(events are defined in DSI_VC0_IRQSTATUS).<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• DSI Interrupt Request: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• HS TX Timer: [1]<br />
• LP RX Timer: [2]<br />
• Tearing Effect: [3]<br />
• Acknowledge: [4]<br />
• Error Handling: [5] [6] [7]<br />
0x0: READS: Event is false.<br />
0x1: READS: Event is true (pending).<br />
Table 7-377. Register Call Summary for Register DSI_IRQSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Interrupts: [8] [9]<br />
• Video Mode: [10] [11]<br />
• DSI PLL Error Handling: [12] [13] [14] [15] [16] [17]<br />
• Error Handling: [18]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Reset DSI Modules: [19]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [20]<br />
1898<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-377. Register Call Summary for Register DSI_IRQSTATUS (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [21]<br />
• <strong>Display</strong> <strong>Subsystem</strong> Registers: [22]<br />
Address Offset 0x0000 001C<br />
Table 7-378. DSI_IRQENABLE<br />
Physical Address 0x4804 FC1C Instance DSI_PROTOCOL_ENGINE<br />
Description INTERRUPT ENABLE REGISTER - This register associates one bit for each VC to enable/disable each<br />
VC individually.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
TA_TO_IRQ_EN<br />
LDO_POWER_GOOD_IRQ_EN<br />
SYNC_LOST_IRQ_EN<br />
ACK_TRIGGER_IRQ_EN<br />
TE_TRIGGER_IRQ_EN<br />
RESERVED RESERVED<br />
Bits Field Name Description Type Reset<br />
31:21 RESERVED Write 0s for future compatibility. RW 0x000<br />
Reads returns 0.<br />
20 TA_TO_IRQ_EN Turn-around Time out. RW 0x0<br />
0x0: Event is masked<br />
LP_RX_TO_IRQ_EN<br />
HS_TX_TO_IRQ_EN<br />
RESERVED<br />
RESERVED<br />
RESERVED<br />
0x1: Event generates an interrupt when it occurs<br />
19 LDO_POWER_GOOD_ Transition of the status signal LDOPWRGOOD from the RW 0x0<br />
IRQ_EN DSI_PHY indicating a state change for the supply<br />
VDDALDODSIPLL from up to down or down to up.<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
18 SYNC_LOST_IRQ_EN Synchronization with Video port is lost (Video mode only) RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
17 ACK_TRIGGER_IRQ_EN Acknowledge trigger RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
16 TE_TRIGGER_IRQ_EN Tearing Effect trigger RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
15 LP_RX_TO_IRQ_EN Interrupt for Low Power Rx Time out. RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
14 HS_TX_TO_IRQ_EN Interrupt for high-speed Tx Time out. RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
PLL_RECAL_IRQ_EN<br />
PLL_UNLOCK_IRQ_EN<br />
PLL_LOCK_IRQ_EN<br />
RESERVED<br />
RESYNCHRONIZATION_IRQ_EN<br />
WAKEUP_IRQ_EN<br />
1899
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
13 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
12:11 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
10 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
9 PLL_RECAL_IRQ_EN PLL recalibration event (assertion of recalibration signal from RW 0x0<br />
the DSI PLL Control module)<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
8 PLL_UNLOCK_IRQ_EN PLL un-lock event (de-assertion of lock signal from the DSI RW 0x0<br />
PLL Control module)<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
7 PLL_LOCK_IRQ_EN PLL lock event (assertion of lock signal from the DSI PLL RW 0x0<br />
Control module)<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
6 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
5 RESYNCHRONIZATION_ Resynchronization RW 0x0<br />
IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
4 WAKEUP_IRQ_EN Wakeup RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
3:0 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Tearing Effect: [0]<br />
• Acknowledge: [1]<br />
Table 7-379. Register Call Summary for Register DSI_IRQENABLE<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Interrupts: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [3]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [5]<br />
Address Offset 0x0000 0040<br />
Table 7-380. DSI_CTRL<br />
Physical Address 0x4804 FC40 Instance DSI_PROTOCOL_ENGINE<br />
Description GLOBAL CONTROL REGISTER This register controls the DSI Protocol Engine module. This register<br />
should not be modified dynamically (except IF_EN bit field).<br />
Type RW<br />
1900 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
RGB565_ORDER<br />
DCS_CMD_CODE<br />
DCS_CMD_ENABLE<br />
HSA_BLANKING_MODE<br />
HBP_BLANKING_MODE<br />
HFP_BLANKING_MODE<br />
BLANKING_MODE<br />
EOT_ENABLE<br />
VP_HSYNC_END<br />
VP_HSYNC_START<br />
VP_VSYNC_END<br />
Bits Field Name Description Type Reset<br />
31:27 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads returns 0.<br />
26 RGB565_ORDER Byte order for RBG565 command mode from video port RW 0<br />
0x0:<br />
VP_VSYNC_START<br />
0x1: Byte order as for video mode<br />
25 DCS_CMD_CODE DCS command code value to insert between header and video port RW 0<br />
data when enabled by DCS_CMD_ENABLE<br />
TRIGGER_RESET_MODE<br />
LINE_BUFFER<br />
0x0: DCS write memory continue code is inserted.<br />
0x1: DCS write memory start code is inserted.<br />
24 DCS_CMD_ENABLE Enables automatic insertion of DCS command codes when data is RW 0<br />
sourced by the video port.<br />
0x0: DCS command code is not inserted when command mode<br />
traffic is coming from the Video Port.<br />
0x1: DCS command code is inserted automatically when command<br />
mode traffic is coming from the Video Port.<br />
23 HSA_BLANKING_ Blanking mode RW 0x0<br />
MODE<br />
0x0: Packets in TX FIFO are sent during HSA blanking period of<br />
video mode or LPS is used.<br />
VP_VSYNC_POL<br />
VP_HSYNC_POL<br />
VP_DE_POL<br />
0x1: LONG BLANKING PACKETS only are used during HSA<br />
blanking period of video mode.<br />
22 HBP_BLANKING_ Blanking mode RW 0x0<br />
MODE<br />
0x0: Packets in TX FIFO are sent during HBP blanking period of<br />
video mode or LPS is used.<br />
0x1: LONG BLANKING PACKETS only are used during HBP<br />
blanking period of video mode.<br />
21 HFP_BLANKING_ Blanking mode RW 0x0<br />
MODE<br />
0x0: Packets in TX FIFO are sent during HFP blanking period of<br />
video mode or LPS is used.<br />
0x1: LONG BLANKING PACKETS only are used during HFP<br />
blanking period of video mode.<br />
20 BLANKING_MODE Blanking mode RW 0x0<br />
0x0: LPS is used during blanking periods of video mode (except<br />
HSA, HBP, HFP defined in HSA_BLANKING_MODE,<br />
HBP_BLANKING_MODE and HFP_BLANKING_MODE bit fields<br />
respectively) when there is no command mode data in TX FIFO<br />
ready to be sent. So blanking periods can be different during the<br />
frame depending on the TX FIFO.<br />
0x1: LONG BLANKING PACKETS are used during blanking periods<br />
of video mode (except HSA, HBP, HFP defined in<br />
HSA_BLANKING_MODE, HBP_BLANKING_MODE and<br />
HFP_BLANKING_MODE bit fields respectively) regardless of the<br />
packets present in the TX FIFO ready to be sent<br />
19 EOT_ENABLE Enable EOT packets at the end of HS transmission. RW 0<br />
0x0: No EOT packets<br />
0x1: EOT packet is sent at all HS to LP transitions<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VP_CLK_POL<br />
VP_DATA_BUS_WIDTH<br />
TRIGGER_RESET<br />
VP_CLK_RATIO<br />
TX_FIFO_ARBITRATION<br />
ECC_RX_EN<br />
CS_RX_EN<br />
IF_EN<br />
1901
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
18 VP_HSYNC_END HSYNC end pulse. RW 0x0<br />
0x0: Disabled. No HSYNC END short packet is generated.<br />
0x1: Enabled. While the HSYNC END pulse is detected, the<br />
associated short packet HSYNC END is generated.<br />
17 VP_HSYNC_START HSYNC start pulse. RW 0x0<br />
0x0: Disabled. No HSYNC START short packet is generated.<br />
0x1: Enabled. While the HSYNC start pulse is detected, the<br />
associated short packet HSYNC START is generated.<br />
16 VP_VSYNC_END VSYNC end pulse. RW 0x0<br />
0x0: Disabled. No VSYNC END short packet is generated.<br />
0x1: Enabled. While the VSYNC END pulse is detected, the<br />
associated short packet VSYNC END is generated.<br />
15 VP_VSYNC_START VSYNC start pulse. RW 0x0<br />
0x0: Disabled. No VSYNC START short packet is generated.<br />
0x1: Enabled. While the VSYNC START pulse is detected, the<br />
associated short packet VSYNC START is generated.<br />
14 TRIGGER_RESET_ Selection of the trigger reset mode RW 0x0<br />
MODE<br />
0x0: Synchronized: the mode is only valid if there is VC using the<br />
video mode and it is active. The principle is to wait for the current<br />
video frame to be transferred on the link. Any data received after the<br />
VSYNC are ignored.<br />
0x1: Immediate: all pending requests in TX FIFO are taken into<br />
account for transfer scheduling, the RX FIFO is ignored, and the<br />
data from video port are ignored as soon as possible. Only the<br />
current transfer on DSI link and already scheduled ones are<br />
transmitted. All the other transfers are discarded.<br />
13:12 LINE_BUFFER Number of line buffers to be used while receiving data on the video RW 0x0<br />
port.<br />
0x0: No line buffer<br />
0x1: 1 line buffer<br />
0x2: 2 line buffers<br />
11 VP_VSYNC_POL VP vertical synchronization signal polarity RW 0x0<br />
0x0: VSYNC signal on the video port is active low.<br />
0x1: VSYNC signal on the video port is active high.<br />
10 VP_HSYNC_POL VP horizontal synchronization signal polarity RW 0x0<br />
0x0: HSYNC signal on the video port is active low.<br />
0x1: HSYNC signal on the video port is active high.<br />
9 VP_DE_POL VP data enable signal polarity RW 0x0<br />
0x0: DE signal on the video port is active low.<br />
0x1: DE signal on the video port is active high.<br />
8 VP_CLK_POL VP pixel clock polarity RW 0x1<br />
0x0: The DSI Protocol Engine module captures the data on the VP<br />
on the pixel clock falling edge. The module connected to the VP<br />
must drive the data on the pixel clock rising edge.<br />
0x1: The DSI Protocol Engine module captures the data on the VP<br />
on the pixel clock raising edge. The module connected to the VP<br />
must drive the data on the pixel clock falling edge.<br />
7:6 VP_DATA_BUS_ Defines the size of the video port data bus RW 0x0<br />
WIDTH<br />
0x0: 16-bits data width (LSB of the 24-bit video port data bus)<br />
0x1: 18-bits data width (LSB of the 24-bit video port data bus)<br />
0x2: 24-bits data width (LSB of the 24-bit video port data bus)<br />
1902 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
5 TRIGGER_RESET Send the reset trigger to the peripheral. RW 0x0<br />
0x0: READS: Reset trigger generation is completed. It is reset by<br />
HW when it is completed.<br />
WRITES: Cancellation of the request for Reset trigger generation<br />
(maybe too late since it is already on going)<br />
0x1: READS: Generation of the reset trigger has been requested by<br />
user (could be on going but not completed yet).<br />
WRITES: Request for Reset trigger to be sent to the peripheral.<br />
4 VP_CLK_RATIO This bit indicates the clock ratio between VP_CLK and VP_PCLK. RW 0x0<br />
The clock VP_PCLK is generated from VP_CLK. It is divided down.<br />
The information is only used when the video port is used to provide<br />
data in command mode. In the case of video mode, it is not used.<br />
0x0: The clock VP_PCLK is the clock VP_CLK divided by 2. The<br />
duty cycle of VP_PCLK is 50/50.<br />
0x1: The clock VP_PCLK is the clock VP_CLK divided by 3 or more.<br />
The duty cycle of VP_PCLK is not 50/50 for odd ratio numbers<br />
(3,5,7,...).<br />
3 TX_FIFO_ Defines the arbitration scheme for granting the VC pending ready RW 0x0<br />
ARBITRATION requests in the TX FIFO<br />
0x0: Round-Robin Scheme is used<br />
0x1: Sequential Scheme is used<br />
2 ECC_RX_EN Enables the ECC check for the received header (short and long RW 0x0<br />
packets for all VC IDs).<br />
0x0: Disabled<br />
0x1: Enabled<br />
1 CS_RX_EN Enables the checksum check for the received payload (long packet RW 0x0<br />
only for all VC IDs).<br />
0x0: Disabled<br />
0x1: Enabled<br />
0 IF_EN Enables the module. When the module is disabled the signals from RW 0x0<br />
the complex I/O are gated (no updates of the interrupt status<br />
register).<br />
It is not possible to change the bit fields in the DSI_CTRL register,<br />
except IF_EN when it is enabled. All the other registers can be<br />
changed except the ones that require DSI_VCn_CTRL[0] VC_EN to<br />
be equal to 0 to be modified.<br />
0x0: The interface is disabled. If one of the VC uses the video mode<br />
with the video port to receive the data, the DSI protocol engines is<br />
disabled when the next VSYNC is received and all the data in the<br />
FIFO for the other VCs in command mode are sent to the<br />
peripherals (if BTA_EN bit is enabled, the DSI protocol engine needs<br />
to wait for the response and BTA from the peripheral before<br />
disabling all the internal logic since an acknowledge is requested).<br />
0x1: The interface is enabled immediately, the data acquisition on<br />
the video port starts on the next VSYNC (video mode) or first data<br />
received in the Slave port FIFO (command mode).<br />
Table 7-381. Register Call Summary for Register DSI_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Data/Clock Configuration: [0] [1] [2]<br />
• Video Port (VP) Interface: [3] [4] [5] [6]<br />
• Video Port Used for Video Mode: [7] [8] [9]<br />
• Video Port Used on Command Mode: [10] [11] [12]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1903<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-381. Register Call Summary for Register DSI_CTRL (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Clock Requirements: [13]<br />
• Command Mode: [14] [15] [16] [17]<br />
• DSI PLL Power Control Commands: [18] [19] [20] [21]<br />
• TurnRequest FSM: [22] [23]<br />
• HS TX Timer: [24] [25]<br />
• LP RX Timer: [26] [27]<br />
• Bus Turnaround: [28] [29] [30] [31]<br />
• Reset: [32] [33] [34]<br />
• Tearing Effect: [35]<br />
• ECC Generation: [36]<br />
• Checksum Generation for Long Packet Payloads: [37]<br />
• End of Transfer Packet: [38]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Global Register Controls: [39] [40] [41] [42] [43] [44] [45]<br />
• Packets: [46] [47] [48] [49] [50] [51]<br />
• Video Mode: [52] [53] [54] [55]<br />
• Video Port Data Bus: [56]<br />
• Command Mode TX FIFO: [57] [58]<br />
• Video Mode Transfer: [59]<br />
• Command Mode Transfer Example 1: [60]<br />
• Command Mode Transfer Example 2: [61]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75]<br />
• Enable Video Mode Using the DISPC Video Port: [76] [77]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [78] [79] [80] [81] [82] [83] [84] [85] [86]<br />
• Enable Command Mode Using DISPC Video Port: [87] [88] [89] [90]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [91]<br />
• DSI Protocol Engine Registers: [92] [93] [94] [95] [96] [97] [98] [99]<br />
Address Offset 0x0000 0048<br />
Table 7-382. DSI_COMPLEXIO_CFG1<br />
Physical Address 0x4804 FC48 Instance DSI_PROTOCOL_ENGINE<br />
Description COMPLEXIO CONFIGURATION REGISTER for the complex I/O This register contains the lane<br />
configuration for the order and position of the lanes (clock and data) and the polarity order for the control<br />
of the PHY differential signals in addition to the control bit for the power FSM.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
SHADOWING<br />
GOBIT<br />
RESET_DONE<br />
PWR_CMD<br />
PWR_STATUS<br />
RESERVED<br />
LDO_POWER_GOOD_STATE<br />
USE_LDO_EXTERNAL<br />
RESERVED<br />
RESERVED<br />
1904 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
RESERVED<br />
RESERVED<br />
DATA2_POL<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DATA2_POSITION<br />
DATA1_POL<br />
DATA1_POSITION<br />
CLOCK_POL<br />
CLOCK_POSITION
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31 SHADOWING Shadowing configuration. RW 0x0<br />
0x0: Disabled. The writes to the DSIPHY_CFG0 and DSIPHY_CFG1<br />
registers are done like the other SCP registers.<br />
0x1: Enabled. The writes to the DSIPHY_CFG0 and DSIPHY_CFG1<br />
registers are done only when the GO bit is set and when the signal<br />
DISPC_UPDATE_SYNC from the display controller module is active.<br />
30 GOBIT Allows the synchronized update of the shadow registers when the RW 0<br />
signal DISPC_UPDATE_SYNC is active.<br />
0x0: Resets the Gobit. The hardware has finished the update of the<br />
shadow SCP registers. The bit is reset by Hardware. The software<br />
can reset the bit in case users decide to abort it. There is no<br />
guarantee that the software reset is done before the transfer of the<br />
values to the complex I/O.<br />
0x1: Set the Gobit. Only when the transfer of the new values for the<br />
two first registers is completed (2, 1, or 0 transfers are performed<br />
based on the number of registers to update), the GObit is reset. The<br />
DISPC_UPDATE_SYNC signal is used to synchronize the update.<br />
The bit must be set only when it is in reset state.<br />
29 RESET_DONE Internal reset monitoring of the power domain using the TxByteClkHS R 1<br />
from the complex I/O<br />
0x0: Internal module reset is on going.<br />
0x1: Reset completed.<br />
28:27 PWR_CMD Command for power control of the complex I/O RW 0x0<br />
0x0: Command to change to OFF state<br />
0x1: Command to change to ON state<br />
0x2: Command to change to ultralow-power state<br />
26:25 PWR_STATUS Status of the power control of the complex I/O R 0x0<br />
0x0: complex I/O in OFF state<br />
0x1: complex I/O in ON state<br />
0x2: complex I/O in ultralow-power state<br />
24:22 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
21 LDO_POWER_ Indicates the state of the signal LDOPWRGOOD. VDDALDODSIPLL: R 0x0<br />
GOOD_STATE 1.2-V power supply for the PLL. The voltage is supplied by the internal<br />
or external LDO. The interrupt LDO_POWER_GOOD_IRQ is<br />
generated when a transition is detected on the signal LDOPWRGOOD<br />
from the DSI_PHY.<br />
0x0: VDDALDODSIPLL power supply is down<br />
0x1: VDDALDODSIPLL power supply is up<br />
20 USE_LDO_ Select the external LDO for the DSI_PHY. RW 0x0<br />
EXTERNAL<br />
0x0: DSI_PHY internal LDO is used.<br />
0x1: External LDO is used. DSI_PHY LDO is tri-stated.<br />
19 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
18:16 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
15 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
14:12 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
11 DATA2_POL +/- differential pin order of DATA lane 2. RW 0x0<br />
0x0: +/- pin order (dsi_dx=+ and dsi_dy=-)<br />
0x1: -/+ pin order (dsi_dx=- and dsi_dy=+)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1905
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
10:8 DATA2_POSITION Position and order of the DATA lane 2. RW 0x0<br />
0x0: Not used/connected<br />
0x1: Data lane 2 is at the position 1 (line 1).<br />
0x2: Data lane 2 is at the position 2 (line 2).<br />
0x3: Data lane 2 is at the position 3 (line 3).<br />
Other values: reserved<br />
7 DATA1_POL +/- differential pin order of DATA lane 1 RW 0x0<br />
0x0: +/- pin order (dsi_dx=+ and dsi_dy=-)<br />
0x1: -/+ pin order (dsi_dx=- and dsi_dy=+)<br />
6:4 DATA1_POSITION Position and order of the DATA lane 1. RW 0x0<br />
0x1: Data lane 1 is at the position 1 (line 1).<br />
0x2: Data lane 1 is at the position 2 (line 2).<br />
0x3: Data lane 1 is at the position 3 (line 3).<br />
Other values: reserved<br />
3 CLOCK_POL +/- differential pin order of CLOCK lane. RW 0x0<br />
0x0: +/- pin order (dsi_dx=+ and dsi_dy=-)<br />
0x1: -/+ pin order (dsi_dx=- and dsi_dy=+)<br />
2:0 CLOCK_POSITION Position and order of the CLOCK lane. RW 0x0<br />
The clock lane is always present.<br />
0x1: Clock lane is at the position 1 (line 1).<br />
0x2: Clock lane is at the position 2 (line 2).<br />
0x3: Clock lane is at the position 3 (line 3).<br />
Other values: reserved<br />
Table 7-383. Register Call Summary for Register DSI_COMPLEXIO_CFG1<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Data/Clock Configuration: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• DSI Protocol Architecture: [2]<br />
• Shadowing Register: [3] [4] [5] [6] [7] [8] [9]<br />
• Complex I/O Power Control Commands: [10] [11]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Exiting ULPS: [12] [13]<br />
• Software Reset: [14]<br />
• Pad Configuration: [15] [16] [17]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [18] [19] [20]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [21] [22] [23] [24] [25] [26]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [27]<br />
1906 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x0000 004C<br />
Table 7-384. DSI_COMPLEXIO_IRQSTATUS<br />
Physical Address 0x4804 FC4C Instance DSI_PROTOCOL_ENGINE<br />
Description INTERRUPT STATUS REGISTER - All errors from complex I/O<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
ULPSACTIVENOT_ALL1_IRQ<br />
ULPSACTIVENOT_ALL0_IRQ<br />
RESERVED<br />
RESERVED<br />
RESERVED<br />
RESERVED<br />
ERRCONTENTIONLP1_3_IRQ<br />
ERRCONTENTIONLP0_3_IRQ<br />
ERRCONTENTIONLP1_2_IRQ<br />
ERRCONTENTIONLP0_2_IRQ<br />
ERRCONTENTIONLP1_1_IRQ<br />
ERRCONTENTIONLP0_1_IRQ<br />
RESERVED<br />
RESERVED<br />
STATEULPS3_IRQ<br />
STATEULPS2_IRQ<br />
Bits Field Name Description Type Reset<br />
31 ULPSACTIVENOT_ All the ULPSActiveNOT signals corresponding to the lanes with RW 0x0<br />
ALL1_IRQ TXULPSExit being high are high.<br />
STATEULPS1_IRQ<br />
RESERVED<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
RESERVED<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
30 ULPSACTIVENOT_ All signals ULPSActiveNOT are 0 RW 0x0<br />
ALL0_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
29 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
28 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
27 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
26 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
25 ERRCONTENTIONLP1_ Contention LP1 error for lane #3 RW 0x0<br />
3_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
24 ERRCONTENTIONLP0_ Contention LP0 error for lane #3 RW 0x0<br />
3_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
23 ERRCONTENTIONLP1_ Contention LP1 error for lane #2 RW 0x0<br />
2_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
ERRCONTROL3_IRQ<br />
ERRCONTROL2_IRQ<br />
ERRCONTROL1_IRQ<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESERVED<br />
RESERVED<br />
ERRESC3_IRQ<br />
ERRESC2_IRQ<br />
ERRESC1_IRQ<br />
RESERVED<br />
RESERVED<br />
ERRSYNCESC3_IRQ<br />
ERRSYNCESC2_IRQ<br />
ERRSYNCESC1_IRQ<br />
19<strong>07</strong>
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
22 ERRCONTENTIONLP0_ Contention LP0 error for lane #2 RW 0x0<br />
2_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
21 ERRCONTENTIONLP1_ Contention LP1 error for lane #1 RW 0x0<br />
1_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
20 ERRCONTENTIONLP0_ Contention LP0 error for lane #1 RW 0x0<br />
1_IRQ<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
19 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
18 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
17 STATEULPS3_IRQ Lane #3 in ultralow-power state RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
16 STATEULPS2_IRQ Lane #2 in ultralow-power state RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
15 STATEULPS1_IRQ Lane #1 in ultralow-power state RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
14 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
13 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
12 ERRCONTROL3_IRQ Control error for lane #3 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
11 ERRCONTROL2_IRQ Control error for lane #2 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
10 ERRCONTROL1_IRQ Control error for lane #1 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
9 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
8 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
1908 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
7 ERRESC3_IRQ Escape entry error for lane #3 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
6 ERRESC2_IRQ Escape entry error for lane #2 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
5 ERRESC1_IRQ Escape entry error for lane #1 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
4 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
3 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
2 ERRSYNCESC3_IRQ Low power Data transmission synchronization error for lane #3 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
1 ERRSYNCESC2_IRQ Low power Data transmission synchronization error for lane #2 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
0 ERRSYNCESC1_IRQ Low power Data transmission synchronization error for lane #1 RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
Table 7-385. Register Call Summary for Register DSI_COMPLEXIO_IRQSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• DSI Interrupt Request: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Twakeup Timer: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Exiting ULPS: [3] [4]<br />
• Error Handling: [5] [6] [7] [8] [9] [10] [11] [12] [13]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [14]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [15]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [16]<br />
• DSI Protocol Engine Registers: [17]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1909
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x0000 0050<br />
Table 7-386. DSI_COMPLEXIO_IRQENABLE<br />
Physical Address 0x4804 FC50 Instance DSI_PROTOCOL_ENGINE<br />
Description INTERRUPT ENABLE REGISTER - All errors from complex I/O<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
ULPSACTIVENOT_ALL1_IRQ_EN<br />
ULPSACTIVENOT_ALL0_IRQ_EN<br />
RESERVED<br />
RESERVED<br />
RESERVED<br />
RESERVED<br />
ERRCONTENTIONLP1_3_IRQ_EN<br />
ERRCONTENTIONLP0_3_IRQ_EN<br />
ERRCONTENTIONLP1_2_IRQ_EN<br />
ERRCONTENTIONLP0_2_IRQ_EN<br />
ERRCONTENTIONLP1_1_IRQ_EN<br />
ERRCONTENTIONLP0_1_IRQ_EN<br />
RESERVED<br />
RESERVED<br />
STATEULPS3_IRQ_EN<br />
STATEULPS2_IRQ_EN<br />
Bits Field Name Description Type Reset<br />
31 ULPSACTIVENOT_ All the ULPSActiveNOT signals corresponding to the lanes RW 0x0<br />
ALL1_IRQ_EN with TXULPSExit being high are high.<br />
0x0: Event is masked<br />
STATEULPS1_IRQ_EN<br />
RESERVED<br />
RESERVED<br />
ERRCONTROL3_IRQ_EN<br />
ERRCONTROL2_IRQ_EN<br />
ERRCONTROL1_IRQ_EN<br />
0x1: Event generates an interrupt when it occurs<br />
30 ULPSACTIVENOT_ All signals ULPSActiveNOT are 0 RW 0x0<br />
ALL0_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
29 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
28 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
27 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
26 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
25 ERRCONTENTIONLP1_ Contention LP1 error for lane #3 RW 0x0<br />
3_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
24 ERRCONTENTIONLP0_ Contention LP0 error for lane #3 RW 0x0<br />
3_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
23 ERRCONTENTIONLP1_ Contention LP1 error for lane #2 RW 0x0<br />
2_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
22 ERRCONTENTIONLP0_ Contention LP0 error for lane #2 RW 0x0<br />
2_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
21 ERRCONTENTIONLP1_ Contention LP1 error for lane #1 RW 0x0<br />
1_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
1910 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESERVED<br />
RESERVED<br />
ERRESC3_IRQ_EN<br />
ERRESC2_IRQ_EN<br />
ERRESC1_IRQ_EN<br />
RESERVED<br />
RESERVED<br />
ERRSYNCESC3_IRQ_EN<br />
ERRSYNCESC2_IRQ_EN<br />
ERRSYNCESC1_IRQ_EN
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
20 ERRCONTENTIONLP0_ Contention LP0 error for lane #1 RW 0x0<br />
1_IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
19 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
18 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
17 STATEULPS3_IRQ_EN Lane #3 in ultralow-power state RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
16 STATEULPS2_IRQ_EN Lane #2 in ultralow-power state RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
15 STATEULPS1_IRQ_EN Lane #1 in ultralow-power state RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
14 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
13 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
12 ERRCONTROL3_IRQ_EN Control error for lane #3 RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
11 ERRCONTROL2_IRQ_EN Control error for lane #2 RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
10 ERRCONTROL1_IRQ_EN Control error for lane #1 RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
9 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
8 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
7 ERRESC3_IRQ_EN Escape entry error for lane #3 RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
6 ERRESC2_IRQ_EN Escape entry error for lane #2 RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
5 ERRESC1_IRQ_EN Escape entry error for lane #1 RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
4 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
3 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
2 ERRSYNCESC3_IRQ_EN Low power Data transmission synchronization error for lane RW 0x0<br />
#3<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1911
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
1 ERRSYNCESC2_IRQ_EN Low power Data transmission synchronization error for lane RW 0x0<br />
#2<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
0 ERRSYNCESC1_IRQ_EN Low power Data transmission synchronization error for lane RW 0x0<br />
#1<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
Table 7-387. Register Call Summary for Register DSI_COMPLEXIO_IRQENABLE<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [0]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [2]<br />
Address Offset 0x0000 0054<br />
Table 7-388. DSI_CLK_CTRL<br />
Physical Address 0x4804 FC54 Instance DSI_PROTOCOL_ENGINE<br />
Description CLOCK CONTROL This register controls the CLOCK GENERATION. The register can be modified only<br />
when IF_EN is reset.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
PLL_PWR_CMD<br />
PLL_PWR_STATUS<br />
LP_RX_SYNCHRO_ENABLE<br />
LP_CLK_ENABLE<br />
HS_MANUAL_STOP_CTRL<br />
HS_AUTO_STOP_ENABLE<br />
LP_CLK_NULL_PACKET_SIZE<br />
RESERVED LP_CLK_DIVISOR<br />
Bits Field Name Description Type Reset<br />
31:30 PLL_PWR_CMD Command for power control of the DSI PLL Control RW 0x0<br />
module<br />
LP_CLK_NULL_PACKET_ENABLE<br />
CIO_CLK_ICG<br />
DDR_CLK_ALWAYS_ON<br />
0x0: Command to change to OFF state<br />
0x1: Command to change to ON state for PLL only<br />
(HSDIVISER is OFF)<br />
0x2: Command to change to ON state for both PLL and<br />
HSDIVISER<br />
0x3: Command to change to ON state for both PLL and<br />
HSDIVISER (no clock output to the DSI complex I/O)<br />
1912 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
29:28 PLL_PWR_STATUS Status of the power control of the DSI PLL Control R 0x0<br />
module<br />
0x0: DSI PLL Control module in OFF state<br />
0x1: DSI PLL Control module in ON state for PLL only<br />
(HSDIVISER is OFF)<br />
0x2: DSI PLL Control module in ON state for both PLL<br />
and HSDIVISER<br />
0x3: DSI PLL Control module in ON state for both PLL<br />
and HSDIVISER (no clock output to the DSI complex I/O)<br />
27:22 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads returns 0.<br />
21 LP_RX_SYNCHRO_ Defines if the DSI functional clock is higher or lower than RW 0x0<br />
ENABLE 30 MHz. The information is used to define<br />
synchronization to be used for RxValidEsc.<br />
0x0: The DSI functional clock is equal or slower than 30<br />
MHz. The synchronization is falling/rising.<br />
0x1: The DSI functional clock is higher than 30 MHz. The<br />
synchronization is rising/rising.<br />
20 LP_CLK_ENABLE Controls the gating of the TXCLKESC clock. RW 0x0<br />
0x0: Disabled. The clock is not generated. The value of<br />
LP_CLK_DIVISOR[12:0] bit field is not used and does not<br />
have to be programmed.<br />
0x1: Enabled. The clock is generated. The value of<br />
LP_CLK_DIVISOR[12:0] bit field is used and must be<br />
programmed.<br />
19 HS_MANUAL_STOP_ In case HS_AUTO_STOP_ENABLE bit is set to 0 (reset RW 0x0<br />
CTRL value), the bit field allows manual control of the<br />
assertion/de-assertion of the signal DSIStopClk by users.<br />
0x0: DSIStopClk de-assertion unconditionally.<br />
0x1: DSIStopClk assertion unconditionally.<br />
18 HS_AUTO_STOP_ENABLE Enables the automatic assertion/de-assertion of RW 0x0<br />
DSIStopClk signal.<br />
0x0: Auto mode disabled.<br />
0x1: Auto mode enabled.<br />
17:16 LP_CLK_NULL_PACKET_ Indicates the size of LP NULL Packets to be sent RW 0x0<br />
SIZE automatically when after the last LP packet transfer. It is<br />
used by the receiver to drain its internal pipeline. The<br />
valid values are from 0 to 3 bytes for the payload size.<br />
15 LP_CLK_NULL_PACKET_ Enables the generation of NULL packet in low speed. RW 0x0<br />
ENABLE<br />
0x0: Disabled. The NULL packet is not sent in LP mode<br />
after the last LP packet.<br />
0x1: Enabled. The NULL packet is sent in LP mode after<br />
the last LP packet.<br />
14 CIO_CLK_ICG Controls the signal for gating the L3_ICLK clock provided RW 0x0<br />
to the complex I/O<br />
0x0: Disabled. The L3_ICLK clock to the DSI complex I/O<br />
is gated.<br />
0x1: Enabled. The L3_ICLK clock to the DSI complex I/O<br />
is not gated.<br />
13 DDR_CLK_ALWAYS_ON Defines if the DDR clock is also sent when there is no HS RW 0x0<br />
packets sent to the peripheral (low power mode). So<br />
TXRequest for the clock lane is not de-asserted.<br />
0x0: Disabled. The DDR clock is only provided when HS<br />
packets are sent.<br />
0x1: Enabled. The DDR clock is always sent to the<br />
peripheral regardless of the state of the data lanes (HS or<br />
LP mode).<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1913
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
12:0 LP_CLK_DIVISOR Defines the ratio to be used for the generation of the RW 0x0001<br />
low-power mode clock from DSI functional clock.<br />
The supported values are from 1 to 8191(the value 0 is<br />
invalid). The output frequency must be in the range<br />
between 20 MHz and 32 kHz.<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Data/Clock Configuration: [0] [1]<br />
Table 7-389. Register Call Summary for Register DSI_CLK_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Clock Requirements: [2] [3] [4] [5]<br />
• Extra LP Transitions: [6] [7] [8]<br />
• Power Management: [9]<br />
• DSI PLL Power Control Commands: [10] [11] [12] [13] [14] [15]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Entering ULPS: [16]<br />
• Turn-Around Request in Transmit Mode: [17]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI DPLL: [18] [19] [20]<br />
• Set Up DSI Protocol Engine: [21]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [22] [23] [24] [25] [26] [27] [28] [29]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [30]<br />
• DSI Protocol Engine Registers: [31] [32]<br />
Address Offset 0x0000 0058<br />
Table 7-390. DSI_TIMING1<br />
Physical Address 0x4804 FC58 Instance DSI_PROTOCOL_ENGINE<br />
Description TIMING1 REGISTER This register controls the DSI Protocol Engine module timers. Any bit field can be<br />
modified while DSI_CTRL.IF_EN is set to 1. It is used to indicate the number of DSI_FCLK clock cycles<br />
for the timers FORCE_TX_STOP_TIMER and TA_TO_TIMER<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
TA_TO<br />
TA_TO_X16<br />
TA_TO_X8<br />
FORCE_TX_STOP_MODE_IO<br />
STOP_STATE_X16_IO<br />
STOP_STATE_X4_IO<br />
TA_TO_COUNTER STOP_STATE_COUNTER_IO<br />
Bits Field Name Description Type Reset<br />
31 TA_TO Enables the turn-around timer RW 0x0<br />
0x0: Turn-around counter is disabled.<br />
0x1: Turn-around counter is enabled (required to receive TA<br />
interrupt in case the turn-around procedure is not successful).<br />
1914 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
30 TA_TO_X16 Multiplication factor for the number of DSI_FCLK clock cycles RW 0x1<br />
defined in TA_TO_COUNTER bit field<br />
0x0: The number of DSI_FCLK clock cycles defined in<br />
TA_TO_COUNTER is multiplied by 1x<br />
0x1: The number of DSI_FCLK clock cycles defined in<br />
TA_TO_COUNTER is multiplied by 16x<br />
29 TA_TO_X8 Multiplication factor for the number of DSI_FCLK clock cycles RW 0x1<br />
defined in TA_TO_COUNTER bit field<br />
0x0: The number of DSI_FCLK clock cycles defined in<br />
TA_TO_COUNTER is multiplied by 1x<br />
0x1: The number of DSI_FCLK clock cycles defined in<br />
TA_TO_COUNTER is multiplied by 8x<br />
28:16 TA_TO_COUNTER Turn around counter. It indicates the number of DSI_FCLK clock RW 0x1FFF<br />
cycles to wait for the change of the Direction PPI signal<br />
according to the TurnRequest signal<br />
The value is from 0 to 8191.<br />
15 FORCE_TX_STOP_ Control of ForceTxStopMode signal RW 0x0<br />
MODE_IO<br />
0x0: De-assertion of ForceTxStopMode. The hardware reset the<br />
bit at the end of the ForceTXStopMode assertion. The SW can<br />
reset the bit to stop the assertion of the ForceTXStopMode<br />
signal prior to the completion of the period.<br />
0x1: Assertion of ForceTxStopMode<br />
14 STOP_STATE_X16_IO Multiplication factor for the number of DSI_FCLK clock cycles RW 0x1<br />
defined in STOP_STATE_COUNTER_IO bit field<br />
0x0: The number of DSI_FCLK clock cycles defined in<br />
STOP_STATE _COUNTER_IO is multiplied by 1x<br />
0x1: The number of DSI_FCLK clock cycles defined in<br />
STOP_STATE _COUNTER_IO is multiplied by 16x<br />
13 STOP_STATE_X4_IO Multiplication factor for the number of DSI_FCLK clock cycles RW 0x1<br />
defined in STOP_STATE_COUNTER_IO bit field<br />
0x0: The number of DSI_FCLK clock cycles defined in<br />
STOP_STATE _COUNTER_IO is multiplied by 1x<br />
0x1: The number of DSI_FCLK clock cycles defined in<br />
STOP_STATE _COUNTER_IO is multiplied by 4x<br />
12:0 STOP_STATE_ Stop state counter. It indicates the number of DSI_FCLK clock RW 0x1FFF<br />
COUNTER_IO cycles to assert ForceTXStopMode signal. The value is from 0 to<br />
8191.<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• ForceTxStopMode FSM: [0] [1] [2] [3] [4]<br />
• TurnRequest FSM: [5] [6] [7] [8] [9]<br />
• LP RX Timer: [10]<br />
Table 7-391. Register Call Summary for Register DSI_TIMING1<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode Transfer: [11] [12]<br />
• Command Mode Transfer Example 1: [13] [14]<br />
• Command Mode Transfer Example 2: [15] [16]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [17]<br />
• Drive Stop State: [18] [19]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [20] [21] [22] [23] [24] [25]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [26]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1915<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x0000 005C<br />
Table 7-392. DSI_TIMING2<br />
Physical Address 0x4804 FC5C Instance DSI_PROTOCOL_ENGINE<br />
Description TIMING2 REGISTER This register controls the DSI Protocol Engine module timers. Any bit field can be<br />
modified while DSI_CTRL.IF_EN is set to 1. It is used to indicate the number of TxByteClkHS clock<br />
cycles for the timers HS_TX_TIMER and LP_RX_TIMER<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HS_TX_TO<br />
HS_TX_TO_X16<br />
HS_TX_TO_X8<br />
LP_RX_TO<br />
LP_RX_TO_X16<br />
HS_TX_TO_COUNTER LP_RX_TO_COUNTER<br />
Bits Field Name Description Type Reset<br />
31 HS_TX_TO Enables the HS TX timer. RW 0x0<br />
0x0: Turn-around counter is disabled.<br />
0x1: Turn-around counter is enabled (required to receive TA interrupt<br />
in case the turn-around procedure is not successful).<br />
30 HS_TX_TO_X16 Multiplication factor for the number of TxByteClkHS functional clock RW 0x1<br />
cycles defined in HS_TX_COUNTER bit field<br />
0x0: The number of TxByteClkHS functional clock cycles defined in<br />
HS_TX_TO_COUNTER is multiplied by 1x<br />
0x1: The number of TxByteClkHS functional clock cycles defined in<br />
HS_TX_TO_COUNTER is multiplied by 16x<br />
29 HS_TX_TO_X8 Multiplication factor for the number of TxByteClkHS functional clock RW 0x1<br />
cycles defined in HS_TX_COUNTER bit<br />
0x0: The number of TxByteClkHS functional clock cycles defined in<br />
HS_TX_TO_COUNTER is multiplied by 1x<br />
0x1: The number of TxByteClkHS functional clock cycles defined in<br />
HS_TX_TO_COUNTER is multiplied by 8x<br />
28:16 HS_TX_TO_ HS_TX_TIMER counter. It indicates the number of TxByteClkHS RW 0x1FFF<br />
COUNTER function clock cycles for the HS TX timer.<br />
The value is from 0 to 8191.<br />
15 LP_RX_TO Enables the LP RX timer. RW 0x0<br />
0x0: Turn-around counter is disabled.<br />
0x1: Turn-around counter is enabled (required to receive TA interrupt<br />
in case the turn-around procedure is not successful).<br />
14 LP_RX_TO_X16 Multiplication factor for the number of DSI_FCLK clock cycles RW 0x1<br />
defined in LP_RX_COUNTER bit field<br />
LP_RX_TO_X4<br />
0x0: The number of DSI_FCLK clock cycles defined in<br />
LP_RX_TO_COUNTER is multiplied by 1x<br />
0x1: The number of DSI_FCLK clock cycles defined in<br />
LP_RX_TO_COUNTER is multiplied by 16x<br />
13 LP_RX_TO_X4 Multiplication factor for the number of DSI_FCLK clock cycles RW 0x1<br />
defined in LP_RX_COUNTER bit<br />
0x0: The number of DSI_FCLK clock cycles defined in<br />
LP_RX_TO_COUNTER is multiplied by 1x<br />
0x1: The number of DSI_FCLK clock cycles defined in<br />
LP_RX_TO_COUNTER is multiplied by 4x<br />
12:0 LP_RX_TO_ LP_RX_TIMER counter. It indicates the number of DSI_FCLK clock RW 0x1FFF<br />
COUNTER cycles for the LP RX timer.<br />
The value is from 0 to 8191.<br />
1916 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• HS TX Timer: [0]<br />
• LP RX Timer: [1] [2] [3] [4] [5]<br />
Table 7-393. Register Call Summary for Register DSI_TIMING2<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [6]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [7] [8] [9] [10] [11] [12]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [13]<br />
Address Offset 0x0000 0060<br />
Table 7-394. DSI_VM_TIMING1<br />
Physical Address 0x4804 FC60 Instance DSI_PROTOCOL_ENGINE<br />
Description VIDEO MODE TIMING REGISTER This register defines the video mode timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HSA HFP HBP<br />
Bits Field Name Description Type Reset<br />
31:24 HSA Defines the horizontal Sync active period used in video mode in RW 0x00<br />
number of byte clock cycles (TxByteClkHS)<br />
The supported values are from 0 to 255.<br />
23:12 HFP Defines the horizontal front porch used in video mode in number of RW 0x000<br />
byte clock cycles (TxByteClkHS)<br />
The supported values are from 0 to 255<br />
11:0 HBP Defines the horizontal back porch used in video mode in number of RW 0x000<br />
byte clock cycles (TxByteClkHS)<br />
The supported values are from 0 to 255<br />
Table 7-395. Register Call Summary for Register DSI_VM_TIMING1<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [0]<br />
• Video Mode Transfer: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [3]<br />
Address Offset 0x0000 0064<br />
Table 7-396. DSI_VM_TIMING2<br />
Physical Address 0x4804 FC64 Instance DSI_PROTOCOL_ENGINE<br />
Description VIDEO MODE TIMING REGISTER This register defines the video mode timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
WINDOW_SYNC<br />
RESERVED VSA VFP VBP<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1917
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:28 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
27:24 WINDOW_SYNC Number of TxByteClkHS clock cycles for the synchronization RW 0x0<br />
window. An interrupt for synchronization lost is generated when the<br />
received synchronization on video port is not inside the window. The<br />
DSI protocol engine does not change its own timings if the synch is<br />
inside the window. The valid values are from 0 to 15.<br />
23:16 VSA Defines the vertical Sync active period used in video mode in RW 0x00<br />
number of lines.<br />
The supported values are from 0 to 255 It is used to generate the<br />
short packet for End of Vertical synchronization.<br />
15:8 VFP Defines the vertical front porch used in video mode in number of RW 0x00<br />
lines.<br />
The supported values are from 0 to 255<br />
7:0 VBP Defines the vertical back porch used in video mode in number of RW 0x00<br />
lines.<br />
The supported values are from 0 to 255<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Video Port Used for Video Mode: [0]<br />
Table 7-397. Register Call Summary for Register DSI_VM_TIMING2<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [4]<br />
Address Offset 0x0000 0068<br />
Table 7-398. DSI_VM_TIMING3<br />
Physical Address 0x4804 FC68 Instance DSI_PROTOCOL_ENGINE<br />
Description VIDEO MODE TIMING REGISTER This register defines the video mode timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
TL VACT<br />
Bits Field Name Description Type Reset<br />
31:16 TL Defines the number of length of the line in video mode in number of RW 0x0000<br />
byte clock cycles (TxByteClkHS)<br />
The supported values are from 0 to 8192. The values from 8193 to<br />
65535 are not supported.<br />
15:0 VACT Defines the number of active lines used in video mode. RW 0x0000<br />
The supported values are from 0 to 65535<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Video Port Used for Video Mode: [0]<br />
Table 7-399. Register Call Summary for Register DSI_VM_TIMING3<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [3]<br />
1918<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x0000 006C<br />
Table 7-400. DSI_CLK_TIMING<br />
Physical Address 0x4804 FC6C Instance DSI_PROTOCOL_ENGINE<br />
Description CLOCK TIMING REGISTER This register controls the DSI Protocol Engine module timers. This register<br />
should not be modified while DSI_CTRL.IF_EN is set to 1.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED DDR_CLK_PRE DDR_CLK_POST<br />
Bits Field Name Description Type Reset<br />
31:16 RESERVED Write 0s for future compatibility. RW 0x0000<br />
Reads returns 0.<br />
15:8 DDR_CLK_PRE Indicates the number of TxByteClkHS cycles between the start of the RW 0x01<br />
DDR clock and the assertion of the data request signal. The values<br />
from 1 to 255 are valid. The value 0 is reserved. The value is not<br />
used if DSI_CLK_CTRL[13] DDR_CLK_ALWAYS_ON is set to 1<br />
since the DDR clock is always present.<br />
7:0 DDR_CLK_POST Indicates the number of TxByteClkHS cycles after the de-assertion of RW 0x01<br />
the data request signal and the stop of the DDR clock. The values<br />
from 1 to 255 are valid. The value 0 is reserved. The value is not<br />
used if DSI_CLK_CTRL[13] DDR_CLK_ALWAYS_ON is set to 1<br />
since the DDR clock is always present.<br />
Table 7-401. Register Call Summary for Register DSI_CLK_TIMING<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Timing Parameters for an LP to HS Transaction: [0] [1]<br />
• Timing Parameters for an HS to LP Transaction: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [4]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [6]<br />
Address Offset 0x0000 0<strong>07</strong>0<br />
Table 7-402. DSI_TX_FIFO_VC_SIZE<br />
Physical Address 0x4804 FC70 Instance DSI_PROTOCOL_ENGINE<br />
Description Defines the corresponding memory entries allocated for each VC. The VC must be disabled to<br />
allocate/un-allocate some entries in the TX FIFO.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VC3_FIFO_SIZE<br />
RESERVED<br />
VC3_FIFO_ADD<br />
VC2_FIFO_SIZE<br />
RESERVED<br />
VC2_FIFO_ADD<br />
Bits Field Name Description Type Reset<br />
31:28 VC3_FIFO_SIZE Size of the FIFO allocated for VC 3. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
27 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
VC1_FIFO_SIZE<br />
RESERVED<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VC1_FIFO_ADD<br />
VC0_FIFO_SIZE<br />
RESERVED<br />
VC0_FIFO_ADD<br />
1919
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
26:24 VC3_FIFO_ADD Address of the space allocated in the FIFO for VC 3. For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
23:20 VC2_FIFO_SIZE Size of the FIFO allocated for VC 2. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
19 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
18:16 VC2_FIFO_ADD Address of the space allocated in the FIFO for VC 2. For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
15:12 VC1_FIFO_SIZE Size of the FIFO allocated for VC 1. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
11 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
10:8 VC1_FIFO_ADD Address of the space allocated in the FIFO for VC 1.For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
7:4 VC0_FIFO_SIZE Size of the FIFO allocated for VC 0. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
3 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
2:0 VC0_FIFO_ADD Address of the space allocated in the FIFO for VC 0. For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
Table 7-403. Register Call Summary for Register DSI_TX_FIFO_VC_SIZE<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Command Mode TX FIFO: [0] [1] [2] [3] [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [6]<br />
Address Offset 0x0000 0<strong>07</strong>4<br />
Table 7-404. DSI_RX_FIFO_VC_SIZE<br />
Physical Address 0x4804 FC74 Instance DSI_PROTOCOL_ENGINE<br />
Description Defines the corresponding memory entries allocated for each VC and the addresses. The VC must be<br />
disabled to allocate/un-allocate some entries in the RX FIFO.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VC3_FIFO_SIZE<br />
RESERVED<br />
VC3_FIFO_ADD<br />
VC2_FIFO_SIZE<br />
RESERVED<br />
VC2_FIFO_ADD<br />
Bits Field Name Description Type Reset<br />
31:28 VC3_FIFO_SIZE Size of the FIFO allocated for VC 3. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
27 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
26:24 VC3_FIFO_ADD Address of the space allocated in the FIFO for VC 3.For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
23:20 VC2_FIFO_SIZE Size of the FIFO allocated for VC 2. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
19 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
1920 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
VC1_FIFO_SIZE<br />
RESERVED<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
VC1_FIFO_ADD<br />
VC0_FIFO_SIZE<br />
RESERVED<br />
VC0_FIFO_ADD
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
18:16 VC2_FIFO_ADD Address of the space allocated in the FIFO for VC 2. For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
15:12 VC1_FIFO_SIZE Size of the FIFO allocated for VC 1. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
11 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
10:8 VC1_FIFO_ADD Address of the space allocated in the FIFO for VC 1. For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
7:4 VC0_FIFO_SIZE Size of the FIFO allocated for VC 0. For a complete description, RW 0x0<br />
refer to Table 7-68.<br />
3 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
2:0 VC0_FIFO_ADD Address of the space allocated in the FIFO for VC 0. For a RW 0x0<br />
complete description, refer to Table 7-69.<br />
Table 7-405. Register Call Summary for Register DSI_RX_FIFO_VC_SIZE<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Command Mode RX FIFO: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [4]<br />
Address Offset 0x0000 0<strong>07</strong>8<br />
Table 7-406. DSI_COMPLEXIO_CFG2<br />
Physical Address 0x4804 FC78 Instance DSI_PROTOCOL_ENGINE<br />
Description COMPLEXIO CONFIGURATION REGISTER for the complex I/O This register contains the lane<br />
configuration for the ULPS for each lane.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED RESERVED<br />
LP_BUSY<br />
HS_BUSY<br />
Bits Field Name Description Type Reset<br />
31:18 RESERVED Write 0s for future compatibility. RW 0x0000<br />
Reads returns 0.<br />
17 LP_BUSY Indicates when there are still pending operations for VCs configured for R 0x0<br />
LP mode. Forced to 1 when at least one VC is enabled and configured for<br />
LP mode.<br />
Read 0x0: LP logic is idle<br />
Read 0x1: LP logic is active<br />
16 HS_BUSY Indicates when there are still pending operations for VCs configured for R 0x0<br />
HS mode. Forced to 1 when at least one VC is enabled and configured<br />
for HS mode<br />
Read 0x0: HS logic is idle<br />
Read 0x1: HS logic is active<br />
15:10 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads returns 0.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESERVED<br />
RESERVED<br />
LANE3_ULPS_SIG2<br />
LANE2_ULPS_SIG2<br />
LANE1_ULPS_SIG2<br />
RESERVED<br />
RESERVED<br />
LANE3_ULPS_SIG1<br />
LANE2_ULPS_SIG1<br />
LANE1_ULPS_SIG1<br />
1921
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
9 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
8 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
7 LANE3_ULPS_ Enables the ULPS for the lane #3. The HW should change the state of RW 0x0<br />
SIG2 the lane to ULPS only when it is in stop state and there is no data<br />
pending inside the DSI protocol engine and the DSI protocol engine has<br />
control of the bus (BTA has not been sent).<br />
The state of the signal TxRequestEsc is change if lane #3 is a data lane.<br />
The state of the signal TxUlpsClk is change if lane #3 is a clock lane.<br />
There will be a latency depending on the frequency of TxClkExc. This bit<br />
should be read back to confirm a write has been effective.<br />
0x0: READ: Inactive state effective<br />
WRITE: Request to change to inactive state<br />
0x1: READ: Active state effective<br />
WRITE: Change request to active. If the lane is a data lane,<br />
TxRequestEsc is asserted and synchronously TxUlpsEsc is asserted for<br />
one period of TxClkEsc.<br />
6 LANE2_ULPS_ Enables the ULPS for the lane #2. The HW should change the state of RW 0x0<br />
SIG2 the lane to ULPS only when it is in stop state and there is no data<br />
pending inside the DSI protocol engine and the DSI protocol engine has<br />
control of the bus (BTA has not been sent).<br />
The state of the signal TxRequestEsc is change if lane #2 is a data lane.<br />
The state of the signal TxUlpsClk is change if lane #2 is a clock lane.<br />
There will be a latency depending on the frequency of TxClkExc. This bit<br />
should be read back to confirm a write has been effective.<br />
0x0: READ: Inactive state effective<br />
WRITE: Request to change to inactive state<br />
0x1: READ: ACTIVE state effective<br />
WRITE: Change request to active. If the lane is a data lane,<br />
TxRequestEsc is asserted and synchronously TxUlpsEsc is asserted for<br />
one period of TxClkEsc.<br />
5 LANE1_ULPS_ Enables the ULPS for the lane #1. The HW should change the state of RW 0x0<br />
SIG2 the lane to ULPS only when it is in stop state and there is no data<br />
pending inside the DSI protocol engine and the DSI protocol engine has<br />
control of the bus (BTA has not been sent).<br />
The state of the signal TxRequestEsc is change if lane #1 is a data lane.<br />
The state of the signal TxUlpsClk is change if lane #1 is a clock lane.<br />
There will be a latency depending on the frequency of TxClkExc. This bit<br />
should be read back to confirm a write has been effective.<br />
0x0: READ: Inactive state effective<br />
WRITE: Request to change to inactive state<br />
0x1: READ: ACTIVE state effective<br />
WRITE: Change request to active. If the lane is a data lane,<br />
TxRequestEsc is asserted and synchronously TxUlpsEsc is asserted for<br />
one period of TxClkEsc.<br />
4 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
3 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
2 LANE3_ULPS_ Enables the ULPS for the lane #3. The HW should change the state of RW 0x0<br />
SIG1 the lane to ULPS only when it is in stop state and there is no data<br />
pending inside the DSI protocol engine and the DSI protocol engine has<br />
control of the bus (BTA has not been sent).<br />
The state of the signal TxULPSExit is changed if lane #3 is a clock lane.<br />
There will be a latency depending on the frequency of TxClkExc.<br />
This bit should be read back to confirm a write has been effective.<br />
0x0: READ: Inactive state effective<br />
WRITE: Request to change to inactive state<br />
0x1: READ: ACTIVE state effective<br />
WRITE: Change request to active. If the lane is a data lane,<br />
TxRequestEsc is asserted and synchronously TxUlpsEsc is asserted for<br />
one period of TxClkEsc.<br />
1922 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
1 LANE2_ULPS_ Enables the ULPS for the lane #2. The HW must change the state of the RW 0x0<br />
SIG1 lane to ULPS only when it is in stop state and there is no data pending<br />
inside the DSI protocol engine and the DSI protocol engine has control of<br />
the bus (BTA has not been sent).<br />
The state of the signal TxULPSExit is changed if lane #3 is a clock lane.<br />
There will be a latency depending on the frequency of TxClkExc. This bit<br />
should be read back to confirm a write has been effective.<br />
0x0: READ: Inactive state effective<br />
WRITE: Request to change to inactive state<br />
0x1: READ: ACTIVE state effective<br />
WRITE: Change request to active. If the lane is a data lane,<br />
TxRequestEsc is asserted and synchronously TxUlpsEsc is asserted for<br />
one period of TxClkEsc.<br />
0 LANE1_ULPS_ Enables the ULPS for the lane #1. The HW must change the state of the RW 0x0<br />
SIG1 lane to ULPS only when it is in stop state and there is no data pending<br />
inside the DSI protocol engine and the DSI protocol engine has control of<br />
the bus (BTA has not been sent).<br />
The state of the signal TxULPSExit is changed if lane #3 is a clock lane.<br />
There will be a latency depending on the frequency of TxClkExc. This bit<br />
should be read back to confirm a write has been effective.<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• ULPS: [0]<br />
0x0: READ: Inactive state effective<br />
WRITE: Request to change to inactive state<br />
0x1: READ: ACTIVE state effective<br />
WRITE: Change request to active. If the lane is a data lane,<br />
TxRequestEsc is asserted and synchronously TxUlpsEsc is asserted for<br />
one period of TxClkEsc.<br />
Table 7-4<strong>07</strong>. Register Call Summary for Register DSI_COMPLEXIO_CFG2<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Ultra-Low Power State: [1]<br />
• Entering ULPS: [2] [3] [4] [5] [6] [7] [8] [9]<br />
• Exiting ULPS: [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [28]<br />
Address Offset 0x0000 0<strong>07</strong>C<br />
Table 7-408. DSI_RX_FIFO_VC_FULLNESS<br />
Physical Address 0x4804 FC7C Instance DSI_PROTOCOL_ENGINE<br />
Description Defines the fullness of each space allocated for each VC.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VC3_FIFO_FULLNESS VC2_FIFO_FULLNESS VC1_FIFO_FULLNESS VC0_FIFO_FULLNESS<br />
Bits Field Name Description Type Reset<br />
31:24 VC3_FIFO_FULLNESS Fullness of the FIFO allocated for VC 3.The valid values are R 0x00<br />
from 0 to 127 corresponding to 1x33-bit,...up to 128x33-bit.<br />
23:16 VC2_FIFO_FULLNESS Fullness of the FIFO allocated for VC 2.The valid values are R 0x00<br />
from 0 to 127 corresponding to 1x33-bit,...up to 128x33-bit.<br />
15:8 VC1_FIFO_FULLNESS Fullness of the FIFO allocated for VC 1.The valid values are R 0x00<br />
from 0 to 127 corresponding to 1x33-bit,...up to 128x33-bit.<br />
7:0 VC0_FIFO_FULLNESS Fullness of the FIFO allocated for VC 0.The valid values are R 0x00<br />
from 0 to 127 corresponding to 1x33-bit,...up to 128x33-bit.<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1923
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-409. Register Call Summary for Register DSI_RX_FIFO_VC_FULLNESS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Command Mode DMA Requests: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [1]<br />
Address Offset 0x0000 0080<br />
Table 7-410. DSI_VM_TIMING4<br />
Physical Address 0x4804 FC80 Instance DSI_PROTOCOL_ENGINE<br />
Description VIDEO MODE TIMING REGISTER This register defines the video mode timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED HSA_HS_INTERLEAVING HFP_HS_INTERLEAVING HBP_HS_INTERLEAVING<br />
Bits Field Name Description Type Reset<br />
31:24 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads returns 0.<br />
23:16 HSA_HS_INTERLEAVING Defines the number of TxByteClkHS cycles that can be used RW 0x00<br />
for interleaving high-speed command mode packet into Video<br />
Mode stream during HSA blanking period.<br />
The supported values are from 0 to 255.<br />
15:8 HFP_HS_INTERLEAVING Defines the number of TxByteClkHS cycles that can be used RW 0x00<br />
for interleaving high-speed command mode packet into Video<br />
Mode stream during HFP blanking period.<br />
The supported values are from 0 to 255<br />
7:0 HBP_HS_INTERLEAVING Defines the number of TxByteClkHS cycles that can be used RW 0x00<br />
for interleaving high-speed command mode packet into Video<br />
Mode stream during HBP blanking period.<br />
The supported values are from 0 to 255<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Interleaving Mode: [0] [1] [2]<br />
Table 7-411. Register Call Summary for Register DSI_VM_TIMING4<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [4]<br />
Address Offset 0x0000 0084<br />
Table 7-412. DSI_TX_FIFO_VC_EMPTINESS<br />
Physical Address 0x4804 FC84 Instance DSI_PROTOCOL_ENGINE<br />
Description Defines the emptiness of each space allocated for each VC.<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
VC3_FIFO_EMPTINESS VC2_FIFO_EMPTINESS VC1_FIFO_EMPTINESS VC0_FIFO_EMPTINESS<br />
1924 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
31:24 VC3_FIFO_EMPTINESS Emptiness of the FIFO allocated for VC 3.The valid values R 0x00<br />
are from 0 to 127 corresponding to 1x33-bit,...up to<br />
128x33-bit.<br />
23:16 VC2_FIFO_EMPTINESS Emptiness of the FIFO allocated for VC 2.The valid values R 0x00<br />
are from 0 to 127 corresponding to 1x33-bit,...up to<br />
128x33-bit.<br />
15:8 VC1_FIFO_EMPTINESS Emptiness of the FIFO allocated for VC 1.The valid values R 0x00<br />
are from 0 to 127 corresponding to 1x33-bit,...up to<br />
128x33-bit.<br />
7:0 VC0_FIFO_EMPTINESS Emptiness of the FIFO allocated for VC 0.The valid values R 0x00<br />
are from 0 to 127 corresponding to 1x33-bit,...up to<br />
128x33-bit.<br />
Table 7-413. Register Call Summary for Register DSI_TX_FIFO_VC_EMPTINESS<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Command Mode TX FIFO: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [2]<br />
Address Offset 0x0000 0088<br />
Table 7-414. DSI_VM_TIMING5<br />
Physical Address 0x4804 FC88 Instance DSI_PROTOCOL_ENGINE<br />
Description VIDEO MODE TIMING REGISTER This register defines the video mode timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED HSA_LP_INTERLEAVING HFP_LP_INTERLEAVING HBP_LP_INTERLEAVING<br />
Bits Field Name Description Type Reset<br />
31:24 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads returns 0.<br />
23:16 HSA_LP_INTERLEAVING Defines the number of bytes for Low Power command RW 0x00<br />
mode packets that can be sent on PPI link during HSA<br />
blanking period.<br />
The supported values are from 0 to 255.<br />
15:8 HFP_LP_INTERLEAVING Defines the number of bytes for Low Power command RW 0x00<br />
mode packets that can be sent on PPI link during HFP<br />
blanking period.<br />
The supported values are from 0 to 255<br />
7:0 HBP_LP_INTERLEAVING Defines the number of bytes for Low Power command RW 0x00<br />
mode packets that can be sent on PPI link during HBP<br />
blanking period.<br />
The supported values are from 0 to 255<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Interleaving Mode: [0] [1] [2]<br />
Table 7-415. Register Call Summary for Register DSI_VM_TIMING5<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [4]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1925<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x0000 008C<br />
Table 7-416. DSI_VM_TIMING6<br />
Physical Address 0x4804 FC8C Instance DSI_PROTOCOL_ENGINE<br />
Description VIDEO MODE TIMING REGISTER This register defines the video mode timing.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
BL_HS_INTERLEAVING BL_LP_INTERLEAVING<br />
Bits Field Name Description Type Reset<br />
31:16 BL_HS_INTERLEAVING Defines the number of TxByteClkHS clock cycles that RW 0x0000<br />
can be used for interleaving high-speed command mode<br />
packet into Video Mode stream during blanking periods<br />
during VSA, VBP, VFP periods inside one video frame<br />
on PPI link.<br />
The supported values are from 0 to 65535.<br />
15:0 BL_LP_INTERLEAVING Defines the maximum number of bytes for Low Power RW 0x0000<br />
command mode packets that can be sent on PPI link<br />
during blanking periods during VSA, VBP or VFP periods<br />
inside one video frame on PPI link.<br />
The supported values are from 0 to 65535<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Video Port Used for Video Mode: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Interleaving Mode: [1] [2]<br />
Table 7-417. Register Call Summary for Register DSI_VM_TIMING6<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [4]<br />
Address Offset 0x0000 0090<br />
Table 7-418. DSI_VM_TIMING7<br />
Physical Address 0x4804 FC90 Instance DSI_PROTOCOL_ENGINE<br />
Description Defines the maximum number of bytes of Low Power command mode packets that can be sent on PPI<br />
link during blanking periods during VSA, VBP or VFP periods inside one video frame on PPI link. The<br />
supported values are from 0 to 65535<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
ENTER_HS_MODE_LATENCY EXIT_HS_MODE_LATENCY<br />
Bits Field Name Description Type Reset<br />
31:16 ENTER_HS_MODE_ Defines the number of TxByteClkHS clock cycles necessary RW 0x0000<br />
LATENCY for entering to HS mode. It corresponds to the delay in<br />
number of HS clock cycles from assertion of TxRequestHS<br />
signal to 1 until assertion of TxReadyHS signal to 1.<br />
The supported values are from 0 to 65535 .<br />
15:0 EXIT_HS_MODE_ Defines the number of TxByteClkHS clock cycles necessary RW 0x0000<br />
LATENCY for exiting from HS mode. It corresponds to the maximum<br />
delay in number of TxByteClkHS from de-assertion of<br />
TxRequestHS signal until PPI link is in LP-11 state from which<br />
a new entrance to HS mode can be initiated which does not<br />
take more than ENTER_HS_MODE_LATENCY clock cycles.<br />
The supported values are from 0 to 65535<br />
1926 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-419. Register Call Summary for Register DSI_VM_TIMING7<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Timing Parameters for an LP to HS Transaction: [0] [1]<br />
• Timing Parameters for an HS to LP Transaction: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Video Mode: [4]<br />
• Video Mode Transfer: [5]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI Protocol Engine: [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [7]<br />
Address Offset 0x0000 0094<br />
Table 7-420. DSI_STOPCLK_TIMING<br />
Physical Address 0x4804 FC94 Instance DSI_PROTOCOL_ENGINE<br />
Description Number of functional clock cycles to wait for TxByteClock to stop/start after change in DSIStopClk signal<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED DSI_STOPCLK_LATENCY<br />
Bits Field Name Description Type Reset<br />
31:8 RESERVED Write 0s for future compatibility. Reads returns 0. R 0x000000<br />
7:0 DSI_STOPCLK_ Clock gating latency from DSI Protocol engine to TxByteClkHS RW 0x80<br />
LATENCY<br />
Table 7-421. Register Call Summary for Register DSI_STOPCLK_TIMING<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• DSI PLL Power Control Commands: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [2]<br />
Table 7-422. DSI_VCn_CTRL<br />
Address Offset 0x0000 0100+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD00+ (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description CONTROL REGISTER - Virtual channel This register controls the VC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
DMA_RX_REQ_NB<br />
DMA_RX_THRESHOLD<br />
DMA_TX_REQ_NB<br />
RX_FIFO_NOT_EMPTY<br />
DMA_TX_THRESHOLD<br />
TX_FIFO_FULL<br />
VC_BUSY<br />
PP_BUSY<br />
RESERVED<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
MODE_SPEED<br />
ECC_TX_EN<br />
CS_TX_EN<br />
BTA_EN<br />
TX_FIFO_NOT_EMPTY<br />
MODE<br />
BTA_LONG_EN<br />
BTA_SHORT_EN<br />
SOURCE<br />
VC_EN<br />
1927
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
31:30 RESERVED Write 0s for future compatibility. RW 0x0<br />
Reads returns 0.<br />
29:27 DMA_RX_REQ_NB Selection of the use of the DMA request (associated to RW 0x0<br />
the RX FIFO)<br />
0x0: DSI_DMA_REQ0 is selected<br />
0x1: DSI_DMA_REQ1 is selected<br />
0x2: DSI_DMA_REQ2 is selected<br />
0x3: DSI_DMA_REQ3 is selected<br />
0x4: No DMA req selected<br />
26:24 DMA_RX_THRESHOLD Defines the threshold value for the DMA request RW 0x0<br />
(associated to the RX FIFO)<br />
0x0: 1x 32 bits<br />
0x1: 2 x 32 bits<br />
0x2: 4 x 32 bits<br />
0x3: 8 x 32 bits<br />
0x4: 16 x 32 bits<br />
0x5: 32 x 32 bits<br />
23:21 DMA_TX_REQ_NB Selection of the use of the DMA request (associated to RW 0x0<br />
the TX FIFO)<br />
0x0: DSI_DMA_REQ0 is selected<br />
0x1: DSI_DMA_REQ1 is selected<br />
0x2: DSI_DMA_REQ2 is selected<br />
0x3: DSI_DMA_REQ3 is selected<br />
0x4: No DMA req selected<br />
20 RX_FIFO_NOT_EMPTY FIFO status in command mode. Otherwise, this bit can be R 0x0<br />
ignored.<br />
0x0: The RX FIFO is empty (the FIFO does not contain<br />
any data for the VC)<br />
0x1: The RX FIFO is not empty (the FIFO contains at<br />
least one byte for the VC)<br />
19:17 DMA_TX_THRESHOLD Defines the threshold value for the DMA request RW 0x0<br />
(associated to the TX FIFO)<br />
0x0: 1x 32 bits<br />
0x1: 2 x 32 bits<br />
0x2: 4 x 32 bits<br />
0x3: 8 x 32 bits<br />
0x4: 16 x 32 bits<br />
0x5: 32 x 32 bits<br />
16 TX_FIFO_FULL FIFO status in command mode. Otherwise, this bit can be R 0x0<br />
ignored.<br />
0x0: The TX FIFO is not full (the FIFO can accept at least<br />
one more 32-bit value)<br />
0x1: The TX FIFO is full<br />
15 VC_BUSY Indicates if previously scheduled activities (packets, BTA) R 0x0<br />
are still being processed. Forced to 1 by hardware if VC<br />
is enabled. Software should check this bit is 0 before<br />
changing channel configuration.<br />
0x0: No pending operations for this VC<br />
0x1: Pending operations for this VC<br />
14 PP_BUSY Line buffer busy status. R 0<br />
0x0: Software is permitted to write a new header for VP<br />
command mode traffic.<br />
0x1: Software is NOT permitted to write a new header for<br />
VP command mode traffic.<br />
1928 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
13:10 RESERVED Write 0s for future compatibility. RW 0x00<br />
Reads returns 0.<br />
9 MODE_SPEED Selection of the mode. This bit is ignored by hardware RW 0x0<br />
when video mode is selected.<br />
0x0: Low-power mode (CMOS) is used to send short and<br />
long packets to the peripheral.<br />
0x1: High speed mode (SLVS) is used to send short and<br />
long packets to the peripheral.<br />
8 ECC_TX_EN Enables the ECC generation for the transmit header RW 0x0<br />
(short and long packets).<br />
0x0: Disabled<br />
0x1: Enabled<br />
7 CS_TX_EN Enables the checksum generation for the transmit RW 0x0<br />
payload (long packet only).<br />
0x0: Disabled. The value 0x00 is used.<br />
0x1: Enabled. The Check-sum value is calculated by HW.<br />
6 BTA_EN Send the bus turn around to the peripheral. It can be RW 0x0<br />
used when the automatic mode is enabled<br />
(BTA_SHORT_EN=1 or/and BTA_LONG_EN=1). In that<br />
case only one BTA is sent to the peripheral. The manual<br />
mode allows users to define for which packets, the turn<br />
around is required for example getting acknowledge from<br />
the peripheral.<br />
0x0: READS: BTA generation is completed. It is reset by<br />
HW when it is completed.<br />
WRITES: Cancellation of the BTA generation (not<br />
guarantee since it could already on going, must not be<br />
used).<br />
0x1: READS: BTA generation has been requested by<br />
user (it could be on going but not completed).<br />
WRITES: Request for BTA generation.<br />
5 TX_FIFO_NOT_EMPTY FIFO status R 0x0<br />
0x0: The TX FIFO is empty (the FIFO does not contain<br />
any data for the VC)<br />
0x1: The TX FIFO is not empty (the FIFO contains at<br />
least one byte for the VC)<br />
4 MODE Selection of the mode RW 0x0<br />
0x0: Command mode.<br />
0x1: Video mode.<br />
3 BTA_LONG_EN Enables the automatic bus turn-around after completion RW 0x0<br />
of each long packet transmission.<br />
0x0: Disabled<br />
0x1: Enabled<br />
2 BTA_SHORT_EN Enables the automatic bus turn-around after completion RW 0x0<br />
of each short packet transmission.<br />
0x0: Disabled<br />
0x1: Enabled<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1929
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
1 SOURCE Selection of the source between L4 interconnect slave RW 0x0<br />
port and video port. This bit is ignored by hardware when<br />
video mode is selected.<br />
0x0: All the data are provided by the L4 interconnect<br />
slave port. Any transfer on the video port is ignored for<br />
this VC.<br />
0x1: If MODE=VIDEO_MODE. any data received on the<br />
video port (pixels and enabled synchronization events<br />
using DSI_CTRL[17] VP_HSYNC_START,<br />
DSI_CTRL[18] VP_HSYNC_END, DSI_CTRL[15]<br />
VP_VSYNC_START, DSI_CTRL[16] VP_VSYNC_END,)<br />
are sent on the VC (only one VC can be associated with<br />
the video port, the software must ensure that no more<br />
than one VC is enabled with the video port as the main<br />
source for data). If MODE=COMMAND_MODE, the<br />
VP_STALL signal is used by the protocol engine to<br />
indicate when new data are required. The<br />
synchronization signals are not generated by the display<br />
controller. Regardless of the MODE, no data can be<br />
provided on the L4 interconnect slave port.<br />
0 VC_EN Enables the VC. RW 0x0<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Blanking: [0] [1] [2] [3]<br />
0x0: Disabled. The VC must be disabled for any register<br />
change in the DSI_VCn_XXX registers the corresponding<br />
VC ID.<br />
0x1: Enabled. No change is allowed to the VC registers<br />
(except for setting the bit fields/registers:<br />
DSI_VCn_CTRL[6] BTA_EN, DSI_VCn_TE[15:0]<br />
TE_SIZE, DSI_VCn_TE[31] TE_START,<br />
DSI_VCn_LONG_XXX, DSI_VCn_SHORT_XXX,<br />
DSI_VCn_IRQXXX registers).<br />
Table 7-423. Register Call Summary for Register DSI_VCn_CTRL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Command Mode: [4] [5] [6]<br />
• DSI PLL Power Control Commands: [7] [8]<br />
• TurnRequest FSM: [9]<br />
• LP RX Timer: [10]<br />
• Bus Turnaround: [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27]<br />
• Tearing Effect: [28] [29] [30]<br />
• ECC Generation: [31]<br />
• Checksum Generation for Long Packet Payloads: [32]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Global Register Controls: [33]<br />
• Virtual Channels: [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44]<br />
• Packets: [45] [46]<br />
• Video Mode: [47] [48] [49] [50] [51] [52] [53]<br />
• Command Mode TX FIFO: [54] [55] [56] [57] [58]<br />
• Command Mode RX FIFO: [59]<br />
• Command Mode DMA Requests: [60] [61] [62] [63] [64] [65]<br />
• DSI Programming Sequence Example: [66] [67]<br />
• Video Mode Transfer: [68] [69]<br />
• Command Mode Transfer Example 1: [70] [71] [72] [73] [74]<br />
• Command Mode Transfer Example 2: [75] [76] [77] [78] [79]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [80]<br />
• DSI Protocol Engine Registers: [81] [82]<br />
1930<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-424. DSI_VCn_TE<br />
Address Offset 0x0000 0104+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD04+ (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description CONTROL REGISTER - Virtual channel This register controls the tearing effect logic. It defines the size<br />
of the transfer when TE occurs and enables the automatic TE mode.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
TE_START<br />
TE_EN<br />
RESERVED TE_SIZE<br />
Bits Field Name Description Type Reset<br />
31 TE_START Manual control of the start of the transfer. Users can use the TE RW 0<br />
interrupt to determine that the TE trigger has been received before<br />
setting the TE_START bit field. It is not mandatory to use the TE<br />
interrupt.<br />
0x0: Indicates the end of the transfer. The bit can be used to cancel<br />
the transfer if not already started. The FIFO must be flushed by<br />
software to ensure it contains no remaining data.<br />
0x1: Starts the transfer of the data. The size is defined in TE_SIZE.<br />
The bit field is set until the transfer completes. It is reset by hardware<br />
when the transfer completes.<br />
30 TE_EN Tearing effect control RW 0<br />
0x0: Disables the automatic transfer of the data using the TE trigger<br />
as a synchronization event. The interruption is used to know when<br />
the TE trigger is received. The hardware resets the bit field when the<br />
transfer completes(TE_SIZE=0).<br />
0x1: Enables the automatic transfer of the data using the TE trigger<br />
as a synchronization event.<br />
29:24 RESERVED Write 0s for future compatibility. RW 0x0000<br />
Reads returns 0.<br />
23:0 TE_SIZE Defines the number of bytes (payload data excluding the check-sum) RW 0x000000<br />
to be sent. Users must perform the write into the<br />
DSI_VCn_LONG_PACKET_HEADER register before sending data<br />
from the DSI_VCn_LONG_PACKET_PAYLOAD register. The register<br />
value is decremented for every byte of the DSI link that is sent. At the<br />
end of the transfer (TE_SIZE = 0), the TE_EN bit field is reset by<br />
hardware. The DMA_request is asserted when the trigger is received<br />
in order to receive data in the TX FIFO. It must not be used until all<br />
data (TE_SIZE) have been received in the FIFO.<br />
Table 7-425. Register Call Summary for Register DSI_VCn_TE<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Tearing Effect: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [14]<br />
• DSI Protocol Engine Registers: [15] [16]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1931
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-426. DSI_VCn_LONG_PACKET_HEADER<br />
Address Offset 0x0000 0108+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD08+ (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description LONG PACKET HEADER INFORMATION - virtual channel. This register sets the 32-bit DATA_ID +<br />
Word count + ECC. The ECC is computed if ECC_TX_EN is set to 1.<br />
Type W<br />
DATA_ID is located at bit[7:0].<br />
WC is located at bit[23:8].<br />
ECC is located at bit[31:24] (least-significant byte first and least significant bit first).<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HEADER<br />
Bits Field Name Description Type Reset<br />
31:0 HEADER Packet header information: DATA ID + DATA FIELD +ECC W 0x00000000<br />
Table 7-427. Register Call Summary for Register DSI_VCn_LONG_PACKET_HEADER<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Video Port Used on Command Mode: [0] [1]<br />
• Virtual Channel ID - VC Field, DI[7:6]: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Video Mode: [3]<br />
• Command Mode: [4] [5] [6] [7] [8] [9]<br />
• Bus Turnaround: [10]<br />
• Tearing Effect: [11] [12] [13]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Global Register Controls: [14]<br />
• Virtual Channels: [15]<br />
• Packets: [16] [17] [18] [19] [20] [21]<br />
• Video Mode: [22] [23]<br />
• Command Mode TX FIFO: [24] [25] [26] [27] [28] [29]<br />
• Command Mode RX FIFO: [30]<br />
• Command Mode DMA Requests: [31]<br />
• Command Mode Transfer Example 1: [32] [33] [34]<br />
• Command Mode Transfer Example 2: [35]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Manual: [36]<br />
• DSI Protocol Engine Register Mapping Summary: [37]<br />
• DSI Protocol Engine Registers: [38] [39]<br />
1932 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-428. DSI_VCn_LONG_PACKET_PAYLOAD<br />
Address Offset 0x0000 010C+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD0C+ (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description LONG PACKET PAYLOAD INFORMATION - virtual channel. This register sets the payload information<br />
(excluding Check-sum). Hardware must capture the word count in the packet header (in<br />
DSI_VCn_LONG_PACKET_HEADER register) to determine the last valid data (the VC ID can be<br />
different from VC). Byte1 is bit[7:0]; Byte2 is bit[15:8]; Byte3 is bit[23:16]; Byte4 is bit[31:24]; and Byten<br />
is sent before Byten+1 (least-significant byte first and least significant bit first).<br />
Type W<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
PAYLOAD<br />
Bits Field Name Description Type Reset<br />
31:0 PAYLOAD Packet payload information (excluding check-sum) W 0x00000000<br />
Table 7-429. Register Call Summary for Register DSI_VCn_LONG_PACKET_PAYLOAD<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Command Mode: [0] [1] [2] [3] [4]<br />
• Bus Turnaround: [5]<br />
• Tearing Effect: [6] [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Global Register Controls: [8]<br />
• Packets: [9] [10] [11]<br />
• Command Mode TX FIFO: [12] [13] [14]<br />
• Command Mode RX FIFO: [15]<br />
• Command Mode Transfer Example 1: [16] [17]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Manual: [18]<br />
• DSI Protocol Engine Register Mapping Summary: [19]<br />
• DSI Protocol Engine Registers: [20]<br />
Table 7-430. DSI_VCn_SHORT_PACKET_HEADER<br />
Address Offset 0x0000 0110+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD10+ (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description SHORT PACKET HEADER INFORMATION - Virtual channel This register sets the 24-bit DATA_ID +<br />
Short packet data field + ECC (the VC ID can be different than VC) DATA_ID is located at bit[7:0] short<br />
packet data field is located at bit[23:8] ECC is located at bit[31:24] (least-significant byte first and least<br />
significant bit first)<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HEADER<br />
Bits Field Name Description Type Reset<br />
31:0 HEADER WRITES: Packet header information: DATA ID + DATA FIELD +ECC RW 0x00000000<br />
written into the TX FIFO<br />
READS: 32-bit values read from the RX FIFO<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1933
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-431. Register Call Summary for Register DSI_VCn_SHORT_PACKET_HEADER<br />
<strong>Display</strong> <strong>Subsystem</strong> Environment<br />
• Virtual Channel ID - VC Field, DI[7:6]: [0]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Command Mode: [1] [2] [3]<br />
• Tearing Effect: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Global Register Controls: [5]<br />
• Virtual Channels: [6]<br />
• Packets: [7]<br />
• Command Mode TX FIFO: [8] [9] [10]<br />
• Command Mode RX FIFO: [11]<br />
• Command Mode DMA Requests: [12]<br />
• Command Mode Transfer Example 1: [13] [14]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• <strong>Display</strong> <strong>Subsystem</strong> Register Manual: [15]<br />
• DSI Protocol Engine Register Mapping Summary: [16]<br />
Table 7-432. DSI_VCn_IRQSTATUS<br />
Address Offset 0x0000 0118+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD18+ (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description INTERRUPT STATUS REGISTER - Virtual channel This register regroups all the events related to the<br />
VC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31:9 RESERVED Write 0s for future compatibility. RW 0x000000<br />
Reads returns 0.<br />
8 PP_BUSY_CHANGE_IRQ Video port ping-pong buffer busy status. RW 0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
7 FIFO_TX_UDF_IRQ FIFO underflow status. The FIFO used on the slave port RW 0x0<br />
for buffering the data received on the OCP slave port for<br />
the VC has underflowed which means that the data for<br />
the current packet have not been received in time since<br />
the transfer of the packet are already started (transfer<br />
started since the packet size is bigger than space<br />
allocated in the FIFO).<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
1934 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
PP_BUSY_CHANGE_IRQ<br />
FIFO_TX_UDF_IRQ<br />
ECC_NO_CORRECTION_IRQ<br />
BTA_IRQ<br />
FIFO_RX_OVF_IRQ<br />
FIFO_TX_OVF_IRQ<br />
PACKET_SENT_IRQ<br />
ECC_CORRECTION_IRQ<br />
CS_IRQ
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
6 ECC_NO_CORRECTION_IRQ ECC error status (short and long packets). No correction RW 0x0<br />
of the header because of more than 1-bit error.<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
5 BTA_IRQ Virtual channel - BTA status. RW 0x0<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
4 FIFO_RX_OVF_IRQ FIFO overflow error status. The FIFO used on the slave RW 0x0<br />
port for buffering the data received on the DSI link for the<br />
VC has overflowed.<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
3 FIFO_TX_OVF_IRQ FIFO overflow error status. The FIFO used on the slave RW 0x0<br />
port for buffering the data received on the OCP slave port<br />
for the VC has overflowed.<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
2 PACKET_SENT_IRQ Indicates that a packet has been sent. It is used when RW 0x0<br />
BTA manual mode is used.<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
1 ECC_CORRECTION_IRQ Virtual channel - ECC has been used to do the correction RW 0x0<br />
of the only 1-bit error status (short and long packet only).<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
0 CS_IRQ Virtual channel - Check-Sum mismatch status. RW 0x0<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• DSI Interrupt Request: [0]<br />
0x0: READS: Event is false.<br />
WRITES: Status bit unchanged.<br />
0x1: READS: Event is true (pending).<br />
WRITES: Status bit is reset.<br />
Table 7-433. Register Call Summary for Register DSI_VCn_IRQSTATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Command Mode: [1]<br />
• Bus Turnaround: [2] [3]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Interrupts: [4]<br />
• Command Mode TX FIFO: [5] [6]<br />
• Command Mode DMA Requests: [7]<br />
• Command Mode Transfer Example 1: [8]<br />
• Command Mode Transfer Example 2: [9]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [10]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1935<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-434. DSI_VCn_IRQENABLE<br />
Address Offset 0x0000 011C+ (n* 0x20) Index n = 0 to 3<br />
Physical Address 0x4804 FD1C + (n* 0x20) Instance DSI_PROTOCOL_ENGINE<br />
Description INTERRUPT ENABLE REGISTER - Virtual channel This register regroups all the events related to VC.<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31:9 RESERVED Write 0s for future compatibility. RW 0x000000<br />
Reads returns 0.<br />
8 PP_BUSY_CHANGE_ Video port ping-pong buffer busy. RW 0<br />
IRQ_EN<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
7 FIFO_TX_UDF_IRQ_EN FIFO underflow enable. The FIFO used on the slave port for RW 0x0<br />
buffering the data received on the OCP slave port for the VC<br />
has underflowed which means that the data for the current<br />
packet have not been received in time since the transfer of<br />
the packet are already started (transfer started since the<br />
packet size is bigger than space allocated in the FIFO).<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
6 ECC_NO_CORRECTION_ ECC error (short and long packets). No correction of the RW 0x0<br />
IRQ_EN header because of more than 1-bit error.<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
5 BTA_IRQ_EN Virtual channel -Bus turn around reception RW 0x0<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
4 FIFO_RX_OVF_IRQ_EN FIFO overflow enable. The FIFO used on the slave port for RW 0x0<br />
buffering the data received on the DSI link for the VC has<br />
overflowed.<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
3 FIFO_TX_OVF_IRQ_EN FIFO overflow enable. The FIFO used on the slave port for RW 0x0<br />
buffering the data received on the OCP slave port for the VC<br />
has overflowed.<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
2 PACKET_SENT_IRQ_EN Indicates that a packet has been sent. It is used when BTA RW 0x0<br />
manual mode is used.<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
1936 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
PP_BUSY_CHANGE_IRQ_EN<br />
FIFO_TX_UDF_IRQ_EN<br />
ECC_NO_CORRECTION_IRQ_EN<br />
BTA_IRQ_EN<br />
FIFO_RX_OVF_IRQ_EN<br />
FIFO_TX_OVF_IRQ_EN<br />
PACKET_SENT_IRQ_EN<br />
ECC_CORRECTION_IRQ_EN<br />
CS_IRQ_EN
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
1 ECC_CORRECTION_ Virtual channel - ECC has been used to correct the only 1-bit RW 0x0<br />
IRQ_EN error (short and long packet).<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
0 CS_IRQ_EN Virtual channel - Check-Sum of the payload mismatch RW 0x0<br />
detection<br />
0x0: Event is masked<br />
0x1: Event generates an interrupt when it occurs<br />
Table 7-435. Register Call Summary for Register DSI_VCn_IRQENABLE<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Command Mode: [0]<br />
• Bus Turnaround: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Interrupts: [2]<br />
• Command Mode Transfer Example 1: [3]<br />
• Command Mode Transfer Example 2: [4]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI Protocol Engine Register Mapping Summary: [5]<br />
7.7.2.6 DSI Complex I/O Registers<br />
NOTE: Copyright 2005-2008 MIPI Alliance, Inc. All rights reserved. MIPI Alliance Member<br />
Confidential.<br />
Address Offset 0x0000 0000<br />
Table 7-436. DSI_PHY_REGISTER0<br />
Physical Address 0x4804 FE00 Instance DSI_PHY<br />
Description Configuration register for HS mode timings<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
REG_THSPREPARE REG_THSPRPR_THSZERO REG_THSTRAIL REG_THSEXIT<br />
Bits Field Name Description Type Reset<br />
31:24 REG_THSPREPARE REG_THSPREPARE timing parameter in multiples of DDR clock RW 0x1E<br />
period. DDR clock = CLKIN4DDR/4.<br />
D-PHY specification: 40 ns + 4*UI ÷ 85 ns + 6*UI.<br />
UI = Unit Interval, equal to the duration of any HS state on the<br />
clock lane<br />
Default value is programmed for 400 MHz.<br />
23:16 REG_THSPRPR_THSZE REG_THSPRPR_THSZERO timing parameter in multiples of RW 0x48<br />
RO DDR clock period. DDR clock = CLKIN4DDR/4.<br />
D-PHY specification: 145 ns + 10*UI<br />
Default value is programmed for 400 MHz.<br />
15:8 REG_THSTRAIL REG_THSTRAIL timing parameter in multiples of DDR clock RW 0x1D<br />
period. DDR clock = CLKIN4DDR/4.<br />
D-PHY specification: 60 ns + 4*UI<br />
Default value is programmed for 400 MHz.<br />
7:0 REG_THSEXIT REG_THSEXIT timing parameter in multiples of DDR clock RW 0x3A<br />
period. DDR clock = CLKIN4DDR/4)<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1937
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
D-PHY specification: 100 ns<br />
Default value is programmed for 400 MHz.<br />
Table 7-437. Register Call Summary for Register DSI_PHY_REGISTER0<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Timing Parameters for an LP to HS Transaction: [0] [1] [2] [3]<br />
• Timing Parameters for an HS to LP Transaction: [4] [5] [6] [7]<br />
• Shadowing Register: [8]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• High-Speed Clock Transmission: [9] [10]<br />
• High-Speed Data Transmission: [11] [12] [13]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DSI_PHY: [14] [15] [16] [17]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [18] [19] [20] [21]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI_PHY Register Mapping Summary: [22]<br />
Address Offset 0x0000 0004<br />
Table 7-438. DSI_PHY_REGISTER1<br />
Physical Address 0x4804 FE04 Instance DSI_PHY<br />
Description Configuration register for LP mode and HS mode timings<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
REG_TTAGO<br />
REG_TTASURE<br />
REG_TTAGET<br />
RESERVED<br />
REG_TLPXBY2 REG_TCLKTRAIL REG_TCLK_ZERO<br />
Bits Field Name Description Type Reset<br />
31:29 REG_TTAGO TTA-GO timing in terms of number of TXCLKESC clocks RW 0x2<br />
0x0: 2 cycles<br />
0x1: 3 cycles<br />
0x2: 4 cycles<br />
0x3: 5 cycles<br />
0x4: 6 cycles<br />
0x5: 7 cycles<br />
0x6: 8 cycles<br />
0x7: 9 cycles<br />
Default value: 4 cycles<br />
28:27 REG_TTASURE TTA-SURE timing in terms of number of TXCLKESC clocks RW 0x0<br />
0x0: 2 cycles<br />
0x1: 1 cycle<br />
0x2: 3 cycles<br />
0x3: 4 cycles<br />
Default value: 2 cycles<br />
26:24 REG_TTAGET TTA-GET timing in terms of number of TXCLKESC clocks RW 0x2<br />
0x0: 3 cycles<br />
1938 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
0x1: 4 cycles<br />
0x2: 5 cycles<br />
0x3: 6 cycles<br />
0x4: 7 cycles<br />
0x5: 8 cycles<br />
0x6: 9 cycles<br />
0x7: 10 cycles<br />
Default value: 5 cycles<br />
23:21 RESERVED Reserved. R 0x0<br />
20:16 REG_TLPXBY2 (TLPX)/2 timing parameter in multiples of DDR clock frequency. DDR RW 0x0A<br />
clock = CLKIN4DDR/4.<br />
Default value is programmed for 400 MHz<br />
This is the internal timer value. The value seen on line will have variance<br />
due to rise/fall mismatch effects.<br />
Note: TLPX is used to define the length of LP-01 state in HS Start of<br />
Transmission sequences on clock and data lanes. For all other purposes<br />
TLPX is defined by the period of TxLPEsc clock.<br />
15:8 REG_TCLKTRAIL REG_TCLKTRAIL timing parameter in multiples of DDR clock frequency. RW 0x1A<br />
DDR clock = CLKIN4DDR/4.<br />
D-PHY specification: 60 ns<br />
Default value is programmed for 400 MHz.<br />
7:0 REG_TCLKZERO REG_TCLKZERO timing parameter in multiples of DDR clock period. DDR RW 0x6A<br />
clock = CLKIN4DDR/4.<br />
D-PHY specification: (REG_TCLKPREPARE + REG_TCLKZERO) 300 ns<br />
Derived specification for REG_TCLKZERO (Min REG_TCLKPREPARE =<br />
38 ns): REG_TCLKZERO 262 ns<br />
Default value is programmed for 400 MHz.<br />
Table 7-439. Register Call Summary for Register DSI_PHY_REGISTER1<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Timing Parameters for an LP to HS Transaction: [0] [1] [2] [3]<br />
• Timing Parameters for an HS to LP Transaction: [4] [5]<br />
• Shadowing Register: [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• High-Speed Clock Transmission: [7] [8] [9]<br />
• High-Speed Data Transmission: [10]<br />
• Turn-Around Request in Transmit Mode: [11]<br />
• Turn-Around Request in Receive Mode: [12]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DSI_PHY: [13] [14] [15] [16]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [17] [18] [19] [20]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI_PHY Register Mapping Summary: [21]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
1939
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Address Offset 0x0000 0008<br />
Table 7-440. DSI_PHY_REGISTER2<br />
Physical Address 0x4804 FE08 Instance DSI_PHY<br />
Description Sync pattern and reserved bits<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
HSSYNCPATTERN<br />
OVRRDULPMTX<br />
RESERVED REGULPMTX REG_TCLKPREPARE<br />
Bits Field Name Description Type Reset<br />
31:24 HSSYNCPATTERN Default : 184 (10111000). MSB (last received bit of sync pattern), RW 0xB8<br />
LSB (first received bit of sync pattern).<br />
23:17 RESERVED Reserved. Read returns zero. Write only zero for future R 0x00<br />
compatibility.<br />
16 OVRRDULPMTX Global enable of the weak pulldown on the DSI lanes, configured RW 0<br />
through the REGULPMTX [15:11] bit field:<br />
1: Enable weak pulldown on the DSI lanes.<br />
0: Disable weak pulldown on the DSI lanes (default).<br />
15:11 REGULPMTX Configuration of the weak pulldowns on the DSI lanes. RW 0x00<br />
For each bit, the following settings are applicable:<br />
1: Enable weak pulldown on the lane.<br />
0: Disable weak pulldown on the lane (default).<br />
Bit [15]: Reserved<br />
Bit [14]: Reserved<br />
Bit [13]: DSI lane 2<br />
Bit [12]: DSI lane 1<br />
Bit [11]: DSI lane 0<br />
10:8 RESERVED Reserved RW 0x0<br />
7:0 REG_TCLKPREPARE REG_TCLKPREPARE timing parameter in multiples of DDR clock RW 0x1A<br />
period. DDR clock = CLKIN4DDR/4.<br />
D-PHY specification: 38 ns ÷ 95 ns<br />
Default value is programmed for 400 MHz.<br />
Table 7-441. Register Call Summary for Register DSI_PHY_REGISTER2<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Timing Parameters for an LP to HS Transaction: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• High-Speed Data Transmission: [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Configure DSI_PHY: [3] [4]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI_PHY Register Mapping Summary: [7]<br />
1940<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
RESERVED
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x0000 000C<br />
Table 7-442. DSI_PHY_REGISTER3<br />
Physical Address 0x4804 FE0C Instance DSI_PHY<br />
Description Transmitted pattern in case of escape mode trigger command transmission<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
REG_TXTRIGGERESC3 REG_TXTRIGGERESC2 REG_TXTRIGGERESC1 REG_TXTRIGGERESC0<br />
Bits Field Name Description Type Reset<br />
31:24 REG_TXTRIGGERES Transmitted pattern when REG_TXTRIGGERESC3 is asserted (first RW 0x62<br />
C3 bit transmitted to last bit transmitted)<br />
Default: 01100010<br />
23:16 REG_TXTRIGGERES Default: 01011101 RW 0x5D<br />
C2<br />
15:8 REG_TXTRIGGERES Default: 00100001 RW 0x21<br />
C1<br />
7:0 REG_TXTRIGGERES Default: 10100000 RW 0xA0<br />
C0<br />
Table 7-443. Register Call Summary for Register DSI_PHY_REGISTER3<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• PHY Triggers: [0]<br />
• Reset: [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI_PHY Register Mapping Summary: [2]<br />
Address Offset 0x0000 0010<br />
Table 7-444. DSI_PHY_REGISTER4<br />
Physical Address 0x4804 FE10 Instance DSI_PHY<br />
Description Received pattern for low-power trigger reception<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
REG_RXTRIGGERESC3 REG_RXTRIGGERESC2 REG_RXTRIGGERESC1 REG_RXTRIGGERESC0<br />
Bits Field Name Description Type Reset<br />
31:24 REG_RXTRIGGERES Received pattern when REG_RXTRIGGERESC3 is asserted (first RW 0x62<br />
C3 bit transmitted to last bit transmitted)<br />
Default: 01100010<br />
23:16 REG_RXTRIGGERES Default: 01011101 RW 0x5D<br />
C2<br />
15:8 REG_RXTRIGGERES Default: 00100001 RW 0x21<br />
C1<br />
7:0 REG_RXTRIGGERES Default: 10100000 RW 0xA0<br />
C0<br />
Table 7-445. Register Call Summary for Register DSI_PHY_REGISTER4<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• PHY Triggers: [0]<br />
• Tearing Effect: [1]<br />
• Acknowledge: [2]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1941<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-445. Register Call Summary for Register DSI_PHY_REGISTER4 (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI_PHY Register Mapping Summary: [3]<br />
Address Offset 0x0000 0014<br />
Table 7-446. DSI_PHY_REGISTER5<br />
Physical Address 0x4804 FE14 Instance DSI_PHY<br />
Description Reset done bits<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESETDONETXBYTECLK<br />
RESETDONESCPCLK<br />
RESETDONEPWRCLK<br />
RESERVED<br />
RESETDONETXCLKESC2<br />
RESETDONETXCLKESC1<br />
RESETDONETXCLKESC0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31 RESETDONETXBYT RESETDONETXBYTECLK R 0<br />
ECLK<br />
0x0: No reset<br />
0x1: Reset done for the TXBYTECLK domain<br />
30 RESETDONESCPCL RESETDONESCPCLK R 0<br />
K<br />
0x0: No reset<br />
0x1: Reset done for the SCP clock domain<br />
29 RESETDONEPWRCL RESETDONEPWRCLK R 0<br />
K<br />
0x0: No reset<br />
0x1: Reset done for the PWR clock domain<br />
28:27 RESERVED Read-only register. Read returns 0. R 0<br />
26 RESETDONETXCLK RESETDONETXCLKESC2 R 0<br />
ESC2<br />
0x0: No reset<br />
0x1: Reset done for the TXCLKESC domain for lane 2<br />
25 RESETDONETXCLK RESETDONETXCLKESC1 R 0<br />
ESC1<br />
0x0: No reset<br />
0x1: Reset done for the TXCLKESC domain for lane 1<br />
24 RESETDONETXCLK RESETDONETXCLKESC0 R 0<br />
ESC0<br />
0x0: No reset<br />
0x1: Reset done for the TXCLKESC domain for lane 0<br />
23:0 RESERVED Read-only register. Read returns 0. R 0x000000<br />
1942 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Table 7-447. Register Call Summary for Register DSI_PHY_REGISTER5<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Reset-Done Bits: [0] [1] [2] [3] [4] [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI_PHY Register Mapping Summary: [7]<br />
7.7.2.7 DSI PLL Control Module Registers<br />
Address Offset 0x0000 0000<br />
Table 7-448. DSI_PLL_CONTROL<br />
Physical Address 0x4804 FF00 Instance DSI_PLL_CTRL<br />
Description This register controls the PLL reset/power and modes<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31:5 RESERVED Reserved. Write only zero for future compatibility. Reads return R 0x0000000<br />
zero.<br />
4 DSI_HSDIV_SYSRESET Force HSDIVIDER SYSRESET RW 0x0<br />
0x0: HSDIVIDER SYSRESET controlled by power FSM<br />
0x1: HSDIVIDER SYSRESET forced active<br />
3 DSI_PLL_SYSRESET Force ADPLLM SYSRESET RW 0x0<br />
0x0: PLL SYSRESET controlled by power FSM<br />
0x1: PLL SYSRESET forced active<br />
2 DSI_PLL_HALTMODE Allow PLL to be halted if no activity RW 0x0<br />
0x0: PLL will not be halted<br />
0x1: PLL will be halted based on activity<br />
1 DSI_PLL_GATEMODE Allow PLL clock gating for power saving RW 0x0<br />
0x0: CLKIN4DDR on<br />
0x1: CLKIN4DDR gated by DSI Protocol Engine activity<br />
0 DSI_PLL_AUTOMODE Automatic update mode. RW 0x0<br />
If this bit is set then the configuration updates will be<br />
synchronized to DISPC_UPDATE_SYNC.<br />
If this bit is clear configuration updates will be done immediately.<br />
0x0: Manual mode<br />
0x1: Automatic mode<br />
Table 7-449. Register Call Summary for Register DSI_PLL_CONTROL<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• DSI PLL Power Control Commands: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• DSI PLL Go Sequence: [2] [3] [4] [5]<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong>1943<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_HSDIV_SYSRESET<br />
DSI_PLL_SYSRESET<br />
DSI_PLL_HALTMODE<br />
DSI_PLL_GATEMODE<br />
DSI_PLL_AUTOMODE
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Table 7-449. Register Call Summary for Register DSI_PLL_CONTROL (continued)<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI DPLL: [6]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI PLL Controller Register Mapping Summary: [8]<br />
Address Offset 0x0000 0004<br />
Table 7-450. DSI_PLL_STATUS<br />
Physical Address 0x4804 FF04 Instance DSI_PLL_CTRL<br />
Description This register contains the status information<br />
Type R<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31:10 RESERVED Reserved. Reads return zero. R 0x000000<br />
9 DSI_BYPASSACKZ State of bypass mode on PHY and HSDIVIDER R 0x0<br />
0x0: DSI_PHY and HSDIVIDER have switched to using the bypass<br />
clocks.<br />
0x1: PLL outputs are still being used by DSI_PHY or HSDIVIDER<br />
8 DSIPROTO_ Acknowledge for enable of DSI Protocol Engine clock R 0x0<br />
CLOCK_ACK Verify the status before selecting this source in the DSI Protocol<br />
Engine clock mux<br />
0x0: DSI Protocol Engine clock inactive<br />
0x1: DSI Protocol Engine clock active<br />
7 DSS_CLOCK_ACK Acknowledge for enable of DSS clock R 0x0<br />
Verify the status before selecting this source in the DSS clock<br />
multiplexer<br />
0x0: DSS clock inactive<br />
0x1: DSS clock active<br />
6 DSI_PLL_BYPASS DSI PLL Bypass status R 0x0<br />
0x0: PLL not bypassing<br />
0x1: PLL bypass<br />
5 DSI_PLL_HIGHJITTER DSI PLL High Jitter status R 0x0<br />
0x0: PLL in normal jitter condition<br />
0x1: PLL in high jitter condition: Phase error 24%<br />
(TIGHTPHASELOCK = 0) Phase error 12%<br />
(TIGHTPHASELOCK = 1)<br />
4 DSI_PLL_LIMP DSI PLL Limp status R 0x0<br />
0x0: LIMP mode inactive<br />
0x1: LIMP mode active<br />
1944 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_BYPASSACKZ<br />
DSIPROTO_CLOCK_ACK<br />
DSS_CLOCK_ACK<br />
DSI_PLL_BYPASS<br />
DSI_PLL_HIGHJITTER<br />
DSI_PLL_LIMP<br />
DSI_PLL_LOSSREF<br />
DSI_PLL_RECAL<br />
DSI_PLL_LOCK<br />
DSI_PLLCTRL_RESET_DONE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Bits Field Name Description Type Reset<br />
3 DSI_PLL_LOSSREF DSI PLL Reference Loss status R 0x0<br />
0x0: Reference input active<br />
0x1: Reference input inactive<br />
2 DSI_PLL_RECAL DSI PLL re-calibration status R 0x0<br />
If this bit is active, the PLL must be recalibrated<br />
0x0: Recalibration is not required<br />
0x1: Recalibration is required<br />
1 DSI_PLL_LOCK DSI PLL Lock status R 0x0<br />
See the programming guide for the use of this bit<br />
0x0: PLL is not locked<br />
0x1: PLL is locked<br />
0 DSI_PLLCTRL_ DSI PLL Controller reset done status R 0x0<br />
RESET_DONE<br />
0x0: Reset is in progress<br />
0x1: Reset has completed<br />
Table 7-451. Register Call Summary for Register DSI_PLL_STATUS<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• Error Handling: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• Software Reset: [2]<br />
• DSI PLL Clock Gating Sequence: [3]<br />
• DSI PLL Error Handling: [4] [5] [6] [7]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI DPLL: [8]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [9]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI PLL Controller Register Mapping Summary: [10]<br />
Address Offset 0x0000 0008<br />
Table 7-452. DSI_PLL_GO<br />
Physical Address 0x4804 FF08 Instance DSI_PLL_CTRL<br />
Description This register contains the GO bit<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
RESERVED<br />
Bits Field Name Description Type Reset<br />
31:1 RESERVED Reserved. Write only zero for future compatibility. Reads R 0x00000000<br />
return zero.<br />
0 DSI_PLL_GO Request (re-)locking sequence of the PLL. RW 0x0<br />
If the AutoMode bit is set, then this will be deferred until<br />
DISPC_UPDATE_SYNC goes active<br />
0x0: No pending action<br />
0x1: Request PLL (re-)locking/locking pending<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_PLL_GO<br />
1945
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• DSI PLL Go Sequence: [0] [1]<br />
• DSI PLL Clock Gating Sequence: [2] [3]<br />
• DSI PLL Recommended Values: [4]<br />
Table 7-453. Register Call Summary for Register DSI_PLL_GO<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI DPLL: [5] [6] [7] [8] [9]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [10] [11] [12] [13] [14]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI PLL Controller Register Mapping Summary: [15]<br />
• DSI PLL Control Module Registers: [16]<br />
Address Offset 0x0000 000C<br />
Table 7-454. DSI_PLL_CONFIGURATION1<br />
Physical Address 0x4804 FF0C Instance DSI_PLL_CTRL<br />
Description This register contains the latched PLL and HSDIVDER configuration bits<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
DSIPROTO_CLOCK_DIV<br />
DSS_CLOCK_DIV<br />
RESERVED DSI_PLL_REGM DSI_PLL_REGN<br />
Bits Field Name Description Type Reset<br />
31:27 RESERVED Reserved. Write only zero for future compatibility. R 0x00<br />
Reads return zero.<br />
26:23 DSIPROTO_CLOCK_DIV Divider value for DSI Protocol Engine clock source RW 0x0<br />
REGM4<br />
22:19 DSS_CLOCK_DIV Divider value for DSS clock source RW 0x0<br />
REGM3<br />
18:8 DSI_PLL_REGM M Divider for PLL RW 0x000<br />
7:1 DSI_PLL_REGN N Divider for PLL (Reference) RW 0x00<br />
0 DSI_PLL_STOPMODE DSI PLL STOPMODE RW 0x0<br />
0x0: STOPMODE is not selected<br />
0x1: STOPMODE is selected<br />
Table 7-455. Register Call Summary for Register DSI_PLL_CONFIGURATION1<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• DSI PLL Operations: [0] [1] [2]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• DSI PLL Lock Sequence: [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]<br />
• DSI PLL Recommended Values: [15]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI DPLL: [16] [17] [18] [19] [20]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [21] [22] [23] [24] [25]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI PLL Controller Register Mapping Summary: [26]<br />
1946<strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_PLL_STOPMODE
Public Version<br />
www.ti.com <strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
Address Offset 0x0000 0010<br />
Table 7-456. DSI_PLL_CONFIGURATION2<br />
Physical Address 0x4804 FF10 Instance DSI_PLL_CTRL<br />
Description This register contains the unlatched PLL and HSDIVDER configuration bits These bits are "shadowed"<br />
when automatic mode is selected<br />
Type RW<br />
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />
DSI_HSDIVBYPASS<br />
DSI_PROTO_CLOCK_PWDN<br />
DSI_PROTO_CLOCK_EN<br />
DSS_CLOCK_PWDN<br />
DSS_CLOCK_EN<br />
DSI_BYPASSEN<br />
DSI_PHY_CLKINEN<br />
RESERVED RESERVED<br />
Bits Field Name Description Type Reset<br />
31:21 RESERVED Reserved. Write only zero for future compatibility. Reads return R 0x000<br />
zero.<br />
20 DSI_HSDIVBYPASS Forces HSDIVIDER to bypass mode RW 0x0<br />
0x0: HSDIVIDER in normal operation. Bypass controlled by PLL.<br />
DSI_PLL_REFEN<br />
0x1: HSDIVIDER forced to bypass mode.<br />
19 DSI_PROTO_CLOCK_ Power down for DSI Protocol Engine clock source RW 0x0<br />
PWDN<br />
0x0: DSI Protocol Engine clock divider is active<br />
DSI_PLL_HIGHFREQ<br />
DSI_PLL_CLKSEL<br />
0x1: DSI Protocol Engine clock divider is powered-down<br />
18 DSI_PROTO_CLOCK_ Enable for DSI Protocol Engine clock source RW 0x0<br />
EN<br />
0x0: DSI Protocol Engine clock divider is disabled<br />
0x1: DSI Protocol Engine clock divider is enabled<br />
17 DSS_CLOCK_PWDN Power down for DSS clock source RW 0x0<br />
0x0: DSS clock divider is active<br />
0x1: DSS clock divider is powered-down<br />
16 DSS_CLOCK_EN Enable for DSS clock source RW 0x0<br />
0x0: DSS clock divider is disabled<br />
0x1: DSS clock divider is enabled<br />
15 DSI_BYPASSEN Selects DSS functional clock as CLKIN4DDR source RW 0x0<br />
0x0: PLL controls CLKIN4DDR source: PLL DCO if PLL is locked<br />
DSS functional clock if not locked<br />
DSI_PLL_LOCKSEL<br />
0x1: Force DSS functional clock to be used as CLKIN4DDR<br />
source<br />
14 DSI_PHY_CLKINEN CLKIN4DDR control RW 0x0<br />
0x0: CLKIN4DDR is disabled<br />
0x1: CLKIN4DDR is enabled<br />
13 DSI_PLL_REFEN PLL reference clock control RW 0x0<br />
0x0: PLL reference clock disabled<br />
0x1: PLL reference clock enabled<br />
12 DSI_PLL_HIGHFREQ Enables a division of pixel clock by 2 before input to the PLL RW 0x0<br />
Required for pixel clock frequencies above 32 MHz (21 MHZ if N<br />
= 0)<br />
0x0: Pixel clock is not divided<br />
0x1: Pixel clock is divided by 2<br />
SPRUGN4L–May 2010–Revised June 2011 <strong>Display</strong> <strong>Subsystem</strong><br />
Copyright © 2010–2011, Texas Instruments Incorporated<br />
DSI_PLL_DRIFTGUARDEN<br />
DSI_PLL_TIGHTPHASELOCK<br />
DSI_PLL_LOWCURRSTBY<br />
DSI_PLL_PLLLPMODE<br />
DSI_PLL_IDLE<br />
1947
Public Version<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual www.ti.com<br />
Bits Field Name Description Type Reset<br />
11 DSI_PLL_CLKSEL Reference clock selection RW 0x0<br />
0x0: Selects DSS2_ALWON_FCLK as PLL reference clock<br />
0x1: Selects Pixel Clock (PCLKFREE) as PLL reference clock<br />
10:9 DSI_PLL_LOCKSEL Selects the lock criteria for the PLL RW 0x0<br />
0x0: Phase Lock criteria depends on setting of<br />
DSI_PLL_TIGHTPHASELOCK bit<br />
0x1: Frequency lock<br />
0x2: Spare<br />
8 DSI_PLL_ DSI PLL DRIFTGUARDEN RW 0x0<br />
DRIFTGUARDEN<br />
0x0: Only RECAL flag is asserted in case of temperature drift.<br />
The programmer should take appropriate action.<br />
0x1: Temperature drift will initiate automatic recalibration. RECAL<br />
flag will be asserted while this is taking place.<br />
7 DSI_PLL_ DSI PLL Phase Lock criteria RW 0x0<br />
TIGHTPHASELOCK If this bit is set, the phase lock tolerance is reduced<br />
0x0: Normal phase lock criteria Phase error lower than 6.4 %<br />
0x1: Tightened phase lock criteria Phase error lower than 3.2 %<br />
6 DSI_PLL_ PLL LOW CURRENT STANDBY RW 0x0<br />
LOWCURRSTBY<br />
0x0: LOWCURRSTBY is not selected<br />
0x1: LOWCURRSTBY is selected<br />
5 DSI_PLL_ Select the power/performance of the PLL RW 0x0<br />
PLLLPMODE<br />
0x0: Full performance, minimized jitter<br />
0x1: Reduced power, increased jitter<br />
4:1 RESERVED Reserved R 0x0<br />
0 DSI_PLL_IDLE DSI PLL IDLE: RW 0x0<br />
0x0: IDLE is not selected<br />
0x1: IDLE is selected<br />
Table 7-457. Register Call Summary for Register DSI_PLL_CONFIGURATION2<br />
<strong>Display</strong> <strong>Subsystem</strong> Integration<br />
• Clocks: [0] [1]<br />
<strong>Display</strong> <strong>Subsystem</strong> Functional Description<br />
• DSI PLL Controller Architecture: [2] [3]<br />
• DSI PLL Operations: [4] [5] [6]<br />
<strong>Display</strong> <strong>Subsystem</strong> Basic Programming Model<br />
• DSI PLL Go Sequence: [7] [8] [9]<br />
• DSI PLL Lock Sequence: [10] [11] [12] [13]<br />
<strong>Display</strong> <strong>Subsystem</strong> Use Cases and Tips<br />
• Set Up DSI DPLL: [14]<br />
• Configure DSI Protocol Engine, DSI PLL, and Complex I/O: [15] [16] [17] [18]<br />
<strong>Display</strong> <strong>Subsystem</strong> Register Manual<br />
• DSI PLL Controller Register Mapping Summary: [19]<br />
1948 <strong>Display</strong> <strong>Subsystem</strong> SPRUGN4L–May 2010–Revised June 2011<br />
Copyright © 2010–2011, Texas Instruments Incorporated