162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * Copyright (C) 2013,2014 ARM Limited 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 562306a36Sopenharmony_ci * License. See the file COPYING in the main directory of this archive 662306a36Sopenharmony_ci * for more details. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * ARM HDLCD Controller register definition 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef __HDLCD_REGS_H__ 1262306a36Sopenharmony_ci#define __HDLCD_REGS_H__ 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/* register offsets */ 1562306a36Sopenharmony_ci#define HDLCD_REG_VERSION 0x0000 /* ro */ 1662306a36Sopenharmony_ci#define HDLCD_REG_INT_RAWSTAT 0x0010 /* rw */ 1762306a36Sopenharmony_ci#define HDLCD_REG_INT_CLEAR 0x0014 /* wo */ 1862306a36Sopenharmony_ci#define HDLCD_REG_INT_MASK 0x0018 /* rw */ 1962306a36Sopenharmony_ci#define HDLCD_REG_INT_STATUS 0x001c /* ro */ 2062306a36Sopenharmony_ci#define HDLCD_REG_FB_BASE 0x0100 /* rw */ 2162306a36Sopenharmony_ci#define HDLCD_REG_FB_LINE_LENGTH 0x0104 /* rw */ 2262306a36Sopenharmony_ci#define HDLCD_REG_FB_LINE_COUNT 0x0108 /* rw */ 2362306a36Sopenharmony_ci#define HDLCD_REG_FB_LINE_PITCH 0x010c /* rw */ 2462306a36Sopenharmony_ci#define HDLCD_REG_BUS_OPTIONS 0x0110 /* rw */ 2562306a36Sopenharmony_ci#define HDLCD_REG_V_SYNC 0x0200 /* rw */ 2662306a36Sopenharmony_ci#define HDLCD_REG_V_BACK_PORCH 0x0204 /* rw */ 2762306a36Sopenharmony_ci#define HDLCD_REG_V_DATA 0x0208 /* rw */ 2862306a36Sopenharmony_ci#define HDLCD_REG_V_FRONT_PORCH 0x020c /* rw */ 2962306a36Sopenharmony_ci#define HDLCD_REG_H_SYNC 0x0210 /* rw */ 3062306a36Sopenharmony_ci#define HDLCD_REG_H_BACK_PORCH 0x0214 /* rw */ 3162306a36Sopenharmony_ci#define HDLCD_REG_H_DATA 0x0218 /* rw */ 3262306a36Sopenharmony_ci#define HDLCD_REG_H_FRONT_PORCH 0x021c /* rw */ 3362306a36Sopenharmony_ci#define HDLCD_REG_POLARITIES 0x0220 /* rw */ 3462306a36Sopenharmony_ci#define HDLCD_REG_COMMAND 0x0230 /* rw */ 3562306a36Sopenharmony_ci#define HDLCD_REG_PIXEL_FORMAT 0x0240 /* rw */ 3662306a36Sopenharmony_ci#define HDLCD_REG_RED_SELECT 0x0244 /* rw */ 3762306a36Sopenharmony_ci#define HDLCD_REG_GREEN_SELECT 0x0248 /* rw */ 3862306a36Sopenharmony_ci#define HDLCD_REG_BLUE_SELECT 0x024c /* rw */ 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* version */ 4162306a36Sopenharmony_ci#define HDLCD_PRODUCT_ID 0x1CDC0000 4262306a36Sopenharmony_ci#define HDLCD_PRODUCT_MASK 0xFFFF0000 4362306a36Sopenharmony_ci#define HDLCD_VERSION_MAJOR_MASK 0x0000FF00 4462306a36Sopenharmony_ci#define HDLCD_VERSION_MINOR_MASK 0x000000FF 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci/* interrupts */ 4762306a36Sopenharmony_ci#define HDLCD_INTERRUPT_DMA_END (1 << 0) 4862306a36Sopenharmony_ci#define HDLCD_INTERRUPT_BUS_ERROR (1 << 1) 4962306a36Sopenharmony_ci#define HDLCD_INTERRUPT_VSYNC (1 << 2) 5062306a36Sopenharmony_ci#define HDLCD_INTERRUPT_UNDERRUN (1 << 3) 5162306a36Sopenharmony_ci#define HDLCD_DEBUG_INT_MASK (HDLCD_INTERRUPT_DMA_END | \ 5262306a36Sopenharmony_ci HDLCD_INTERRUPT_BUS_ERROR | \ 5362306a36Sopenharmony_ci HDLCD_INTERRUPT_UNDERRUN) 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci/* polarities */ 5662306a36Sopenharmony_ci#define HDLCD_POLARITY_VSYNC (1 << 0) 5762306a36Sopenharmony_ci#define HDLCD_POLARITY_HSYNC (1 << 1) 5862306a36Sopenharmony_ci#define HDLCD_POLARITY_DATAEN (1 << 2) 5962306a36Sopenharmony_ci#define HDLCD_POLARITY_DATA (1 << 3) 6062306a36Sopenharmony_ci#define HDLCD_POLARITY_PIXELCLK (1 << 4) 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci/* commands */ 6362306a36Sopenharmony_ci#define HDLCD_COMMAND_DISABLE (0 << 0) 6462306a36Sopenharmony_ci#define HDLCD_COMMAND_ENABLE (1 << 0) 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci/* pixel format */ 6762306a36Sopenharmony_ci#define HDLCD_PIXEL_FMT_LITTLE_ENDIAN (0 << 31) 6862306a36Sopenharmony_ci#define HDLCD_PIXEL_FMT_BIG_ENDIAN (1 << 31) 6962306a36Sopenharmony_ci#define HDLCD_BYTES_PER_PIXEL_MASK (3 << 3) 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci/* bus options */ 7262306a36Sopenharmony_ci#define HDLCD_BUS_BURST_MASK 0x01f 7362306a36Sopenharmony_ci#define HDLCD_BUS_MAX_OUTSTAND 0xf00 7462306a36Sopenharmony_ci#define HDLCD_BUS_BURST_NONE (0 << 0) 7562306a36Sopenharmony_ci#define HDLCD_BUS_BURST_1 (1 << 0) 7662306a36Sopenharmony_ci#define HDLCD_BUS_BURST_2 (1 << 1) 7762306a36Sopenharmony_ci#define HDLCD_BUS_BURST_4 (1 << 2) 7862306a36Sopenharmony_ci#define HDLCD_BUS_BURST_8 (1 << 3) 7962306a36Sopenharmony_ci#define HDLCD_BUS_BURST_16 (1 << 4) 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci/* Max resolution supported is 4096x4096, 32bpp */ 8262306a36Sopenharmony_ci#define HDLCD_MAX_XRES 4096 8362306a36Sopenharmony_ci#define HDLCD_MAX_YRES 4096 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci#define NR_PALETTE 256 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#endif /* __HDLCD_REGS_H__ */ 88