1 /** @file HDLcd.h 2 3 Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR> 4 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _HDLCD_H_ 16 #define _HDLCD_H_ 17 18 // 19 // HDLCD Controller Register Offsets 20 // 21 22 #define HDLCD_REG_VERSION ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x000) 23 #define HDLCD_REG_INT_RAWSTAT ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x010) 24 #define HDLCD_REG_INT_CLEAR ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x014) 25 #define HDLCD_REG_INT_MASK ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x018) 26 #define HDLCD_REG_INT_STATUS ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x01C) 27 #define HDLCD_REG_FB_BASE ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x100) 28 #define HDLCD_REG_FB_LINE_LENGTH ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x104) 29 #define HDLCD_REG_FB_LINE_COUNT ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x108) 30 #define HDLCD_REG_FB_LINE_PITCH ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x10C) 31 #define HDLCD_REG_BUS_OPTIONS ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x110) 32 #define HDLCD_REG_V_SYNC ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x200) 33 #define HDLCD_REG_V_BACK_PORCH ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x204) 34 #define HDLCD_REG_V_DATA ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x208) 35 #define HDLCD_REG_V_FRONT_PORCH ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x20C) 36 #define HDLCD_REG_H_SYNC ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x210) 37 #define HDLCD_REG_H_BACK_PORCH ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x214) 38 #define HDLCD_REG_H_DATA ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x218) 39 #define HDLCD_REG_H_FRONT_PORCH ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x21C) 40 #define HDLCD_REG_POLARITIES ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x220) 41 #define HDLCD_REG_COMMAND ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x230) 42 #define HDLCD_REG_PIXEL_FORMAT ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x240) 43 #define HDLCD_REG_RED_SELECT ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x244) 44 #define HDLCD_REG_GREEN_SELECT ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x248) 45 #define HDLCD_REG_BLUE_SELECT ((UINTN)PcdGet32 (PcdArmHdLcdBase) + 0x24C) 46 47 48 // 49 // HDLCD Values of registers 50 // 51 52 // HDLCD Interrupt mask, clear and status register 53 #define HDLCD_DMA_END BIT0 /* DMA has finished reading a frame */ 54 #define HDLCD_BUS_ERROR BIT1 /* DMA bus error */ 55 #define HDLCD_SYNC BIT2 /* Vertical sync */ 56 #define HDLCD_UNDERRUN BIT3 /* No Data available while DATAEN active */ 57 58 // CLCD_CONTROL Control register 59 #define HDLCD_DISABLE 0 60 #define HDLCD_ENABLE BIT0 61 62 // Bus Options 63 #define HDLCD_BURST_1 BIT0 64 #define HDLCD_BURST_2 BIT1 65 #define HDLCD_BURST_4 BIT2 66 #define HDLCD_BURST_8 BIT3 67 #define HDLCD_BURST_16 BIT4 68 69 // Polarities - HIGH 70 #define HDLCD_VSYNC_HIGH BIT0 71 #define HDLCD_HSYNC_HIGH BIT1 72 #define HDLCD_DATEN_HIGH BIT2 73 #define HDLCD_DATA_HIGH BIT3 74 #define HDLCD_PXCLK_HIGH BIT4 75 // Polarities - LOW (for completion and for ease of understanding the hardware settings) 76 #define HDLCD_VSYNC_LOW 0 77 #define HDLCD_HSYNC_LOW 0 78 #define HDLCD_DATEN_LOW 0 79 #define HDLCD_DATA_LOW 0 80 #define HDLCD_PXCLK_LOW 0 81 82 // Pixel Format 83 #define HDLCD_LITTLE_ENDIAN (0 << 31) 84 #define HDLCD_BIG_ENDIAN (1 << 31) 85 86 // Number of bytes per pixel 87 #define HDLCD_4BYTES_PER_PIXEL ((4 - 1) << 3) 88 89 #endif /* _HDLCD_H_ */ 90