| /* | |
| * Register definitions for the AMBA CLCD logic cell. | |
| * | |
| * derived from David A Rusling, although rearranged as a C structure | |
| * linux/include/asm-arm/hardware/amba_clcd.h -- Integrator LCD panel. | |
| * | |
| * Copyright (C) 2001 ARM Limited | |
| * | |
| * This file is subject to the terms and conditions of the GNU General Public | |
| * License. See the file COPYING in the main directory of this archive | |
| * for more details. | |
| */ | |
| /* | |
| * CLCD Controller Internal Register addresses | |
| */ | |
| struct clcd_registers { | |
| u32 tim0; /* 0x00 */ | |
| u32 tim1; | |
| u32 tim2; | |
| u32 tim3; | |
| u32 ubas; /* 0x10 */ | |
| u32 lbas; | |
| #if !defined(CONFIG_ARCH_VERSATILE) && !defined(CONFIG_ARCH_REALVIEW) | |
| u32 ienb; | |
| u32 cntl; | |
| #else /* Someone rearranged these two registers on the Versatile */ | |
| u32 cntl; | |
| u32 ienb; | |
| #endif | |
| u32 stat; /* 0x20 */ | |
| u32 intr; | |
| u32 ucur; | |
| u32 lcur; | |
| u32 unused[0x74]; /* 0x030..0x1ff */ | |
| u32 palette[0x80]; /* 0x200..0x3ff */ | |
| }; | |
| /* Bit definition for TIM2 */ | |
| #define TIM2_CLKSEL (1 << 5) | |
| #define TIM2_IVS (1 << 11) | |
| #define TIM2_IHS (1 << 12) | |
| #define TIM2_IPC (1 << 13) | |
| #define TIM2_IOE (1 << 14) | |
| #define TIM2_BCD (1 << 26) | |
| /* Bit definitions for control register */ | |
| #define CNTL_LCDEN (1 << 0) | |
| #define CNTL_LCDBPP1 (0 << 1) | |
| #define CNTL_LCDBPP2 (1 << 1) | |
| #define CNTL_LCDBPP4 (2 << 1) | |
| #define CNTL_LCDBPP8 (3 << 1) | |
| #define CNTL_LCDBPP16 (4 << 1) | |
| #define CNTL_LCDBPP16_565 (6 << 1) | |
| #define CNTL_LCDBPP24 (5 << 1) | |
| #define CNTL_LCDBW (1 << 4) | |
| #define CNTL_LCDTFT (1 << 5) | |
| #define CNTL_LCDMONO8 (1 << 6) | |
| #define CNTL_LCDDUAL (1 << 7) | |
| #define CNTL_BGR (1 << 8) | |
| #define CNTL_BEBO (1 << 9) | |
| #define CNTL_BEPO (1 << 10) | |
| #define CNTL_LCDPWR (1 << 11) | |
| #define CNTL_LCDVCOMP(x) ((x) << 12) | |
| #define CNTL_LDMAFIFOTIME (1 << 15) | |
| #define CNTL_WATERMARK (1 << 16) | |
| /* u-boot specific: information passed by the board file */ | |
| struct clcd_config { | |
| struct clcd_registers *address; | |
| u32 tim0; | |
| u32 tim1; | |
| u32 tim2; | |
| u32 tim3; | |
| u32 cntl; | |
| unsigned long pixclock; | |
| }; |