at91sam9261_lcdc.h

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 307 行 · 第 1/2 页

H
307
字号
/* linux/include/asm-arm/arch-at91sam9261/at91sam9261_lcdc.h
 * 
 * Hardware definition for the lcdc peripheral in the ATMEL at91sam9261 processor
 * 
 * Generated  12/07/2006 (13:13:26) AT91 SW Application Group from LCDC_6063A V1.3
 * 
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.
 * 
 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * You should have received a copy of the  GNU General Public License along
 * with this program; if not, write  to the Free Software Foundation, Inc.,
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 */


#ifndef __AT91SAM9261_LCDC_H
#define __AT91SAM9261_LCDC_H

/* -------------------------------------------------------- */
/* LCDC ID definitions for  AT91SAM9261           */
/* -------------------------------------------------------- */
#ifndef AT91C_ID_LCDC
#define AT91C_ID_LCDC  	21 /**< LCD Controller id */
#endif /* AT91C_ID_LCDC */

/* -------------------------------------------------------- */
/* LCDC Base Address definitions for  AT91SAM9261   */
/* -------------------------------------------------------- */
#define AT91C_BASE_LCDC      	0x00600000 /**< LCDC base address */
#define AT91C_BASE_LCDC_16B_TFT 	0x00600000 /**< LCDC_16B_TFT base address */

/* -------------------------------------------------------- */
/* PIO definition for LCDC hardware peripheral */
/* -------------------------------------------------------- */
#define AT91C_PB4_LCDCC    	(1 << 4) /**< LCD Contrast Control */
#define AT91C_PB5_LCDD0    	(1 << 5) /**< LCD Data Bus Bit 0 */
#define AT91C_PB6_LCDD1    	(1 << 6) /**< LCD Data Bus Bit 1 */
#define AT91C_PB15_LCDD10   	(1 << 15) /**< LCD Data Bus Bit 10 */
#define AT91C_PB16_LCDD11   	(1 << 16) /**< LCD Data Bus Bit 11 */
#define AT91C_PB17_LCDD12   	(1 << 17) /**< LCD Data Bus Bit 12 */
#define AT91C_PB18_LCDD13   	(1 << 18) /**< LCD Data Bus Bit 13 */
#define AT91C_PB19_LCDD14   	(1 << 19) /**< LCD Data Bus Bit 14 */
#define AT91C_PB20_LCDD15   	(1 << 20) /**< LCD Data Bus Bit 15 */
#define AT91C_PB21_LCDD16   	(1 << 21) /**< LCD Data Bus Bit 16 */
#define AT91C_PB22_LCDD17   	(1 << 22) /**< LCD Data Bus Bit 17 */
#define AT91C_PB23_LCDD18   	(1 << 23) /**< LCD Data Bus Bit 18 */
#define AT91C_PB24_LCDD19   	(1 << 24) /**< LCD Data Bus Bit 19 */
#define AT91C_PB4_LCDD2    	(1 << 4) /**< LCD Data Bus Bit 2 */
#define AT91C_PB25_LCDD20   	(1 << 25) /**< LCD Data Bus Bit 20 */
#define AT91C_PB26_LCDD21   	(1 << 26) /**< LCD Data Bus Bit 21 */
#define AT91C_PB27_LCDD22   	(1 << 27) /**< LCD Data Bus Bit 22 */
#define AT91C_PB28_LCDD23   	(1 << 28) /**< LCD Data Bus Bit 23 */
#define AT91C_PB8_LCDD3    	(1 << 8) /**< LCD Data Bus Bit 3 */
#define AT91C_PB9_LCDD4    	(1 << 9) /**< LCD Data Bus Bit 4 */
#define AT91C_PB10_LCDD5    	(1 << 10) /**< LCD Data Bus Bit 5 */
#define AT91C_PB11_LCDD6    	(1 << 11) /**< LCD Data Bus Bit 6 */
#define AT91C_PB12_LCDD7    	(1 << 12) /**< LCD Data Bus Bit 7 */
#define AT91C_PB13_LCDD8    	(1 << 13) /**< LCD Data Bus Bit 8 */
#define AT91C_PB14_LCDD9    	(1 << 14) /**< LCD Data Bus Bit 9 */
#define AT91C_PB3_LCDDEN   	(1 << 3) /**< LCD Data Enable */
#define AT91C_PB2_LCDDOTCK 	(1 << 2) /**< LCD Dot Clock */
#define AT91C_PB1_LCDHSYNC 	(1 << 1) /**< LCD Horizontal Synchronization */
#define AT91C_PB0_LCDVSYNC 	(1 << 0) /**< LCD Vertical Synchronization */

#define AT91C_PB10_LCDD10   	(1 << 10) /**< LCD Data Bus Bit 10 */
#define AT91C_PB11_LCDD11   	(1 << 11) /**< LCD Data Bus Bit 11 */
#define AT91C_PB12_LCDD12   	(1 << 12) /**< LCD Data Bus Bit 12 */
#define AT91C_PB13_LCDD13   	(1 << 13) /**< LCD Data Bus Bit 13 */
#define AT91C_PB14_LCDD14   	(1 << 14) /**< LCD Data Bus Bit 14 */
#define AT91C_PB15_LCDD15   	(1 << 15) /**< LCD Data Bus Bit 15 */
#define AT91C_PB16_LCDD19   	(1 << 16) /**< LCD Data Bus Bit 19 */
#define AT91C_PB17_LCDD20   	(1 << 17) /**< LCD Data Bus Bit 20 */
#define AT91C_PB18_LCDD21   	(1 << 18) /**< LCD Data Bus Bit 21 */
#define AT91C_PB19_LCDD22   	(1 << 19) /**< LCD Data Bus Bit 22 */
#define AT91C_PB20_LCDD23   	(1 << 20) /**< LCD Data Bus Bit 23 */
#define AT91C_PB5_LCDD3    	(1 << 5) /**< LCD Data Bus Bit 3 */
#define AT91C_PB6_LCDD4    	(1 << 6) /**< LCD Data Bus Bit 4 */
#define AT91C_PB7_LCDD5    	(1 << 7) /**< LCD Data Bus Bit 5 */
#define AT91C_PB8_LCDD6    	(1 << 8) /**< LCD Data Bus Bit 6 */
#define AT91C_PB9_LCDD7    	(1 << 9) /**< LCD Data Bus Bit 7 */


/* -------------------------------------------------------- */
/* Register offset definition for LCDC hardware peripheral */
/* -------------------------------------------------------- */
#define LCDC_BA1 	(0x0000) 	/**< DMA Base Address Register 1 */
#define LCDC_BA2 	(0x0004) 	/**< DMA Base Address Register 2 */
#define LCDC_FRMP1 	(0x0008) 	/**< DMA Frame Pointer Register 1 */
#define LCDC_FRMP2 	(0x000C) 	/**< DMA Frame Pointer Register 2 */
#define LCDC_FRMA1 	(0x0010) 	/**< DMA Frame Address Register 1 */
#define LCDC_FRMA2 	(0x0014) 	/**< DMA Frame Address Register 2 */
#define LCDC_FRMCFG 	(0x0018) 	/**< DMA Frame Configuration Register */
#define LCDC_DMACON 	(0x001C) 	/**< DMA Control Register */
#define LCDC_DMA2DCFG 	(0x0020) 	/**< DMA 2D addressing configuration */
#define LCDC_LCDCON1 	(0x0800) 	/**< LCD Control 1 Register */
#define LCDC_LCDCON2 	(0x0804) 	/**< LCD Control 2 Register */
#define LCDC_TIM1 	(0x0808) 	/**< LCD Timing Config 1 Register */
#define LCDC_TIM2 	(0x080C) 	/**< LCD Timing Config 2 Register */
#define LCDC_LCDFRCFG 	(0x0810) 	/**< LCD Frame Config Register */
#define LCDC_FIFO 	(0x0814) 	/**< LCD FIFO Register */
#define LCDC_MVAL 	(0x0818) 	/**< LCD Mode Toggle Rate Value Register */
#define LCDC_DP1_2 	(0x081C) 	/**< Dithering Pattern DP1_2 Register */
#define LCDC_DP4_7 	(0x0820) 	/**< Dithering Pattern DP4_7 Register */
#define LCDC_DP3_5 	(0x0824) 	/**< Dithering Pattern DP3_5 Register */
#define LCDC_DP2_3 	(0x0828) 	/**< Dithering Pattern DP2_3 Register */
#define LCDC_DP5_7 	(0x082C) 	/**< Dithering Pattern DP5_7 Register */
#define LCDC_DP3_4 	(0x0830) 	/**< Dithering Pattern DP3_4 Register */
#define LCDC_DP4_5 	(0x0834) 	/**< Dithering Pattern DP4_5 Register */
#define LCDC_DP6_7 	(0x0838) 	/**< Dithering Pattern DP6_7 Register */
#define LCDC_PWRCON 	(0x083C) 	/**< Power Control Register */
#define LCDC_CTRSTCON 	(0x0840) 	/**< Contrast Control Register */
#define LCDC_CTRSTVAL 	(0x0844) 	/**< Contrast Value Register */
#define LCDC_IER 	(0x0848) 	/**< Interrupt Enable Register */
#define LCDC_IDR 	(0x084C) 	/**< Interrupt Disable Register */
#define LCDC_IMR 	(0x0850) 	/**< Interrupt Mask Register */
#define LCDC_ISR 	(0x0854) 	/**< Interrupt Enable Register */
#define LCDC_ICR 	(0x0858) 	/**< Interrupt Clear Register */
#define LCDC_GPR 	(0x085C) 	/**< General Purpose Register */
#define LCDC_ITR 	(0x0860) 	/**< Interrupts Test Register */
#define LCDC_IRR 	(0x0864) 	/**< Interrupts Raw Status Register */
#define LCDC_LUT_ENTRY 	(0x0C00) 	/**< LUT Entries Register */

/* -------------------------------------------------------- */
/* Bitfields definition for LCDC hardware peripheral */
/* -------------------------------------------------------- */
/* --- Register LCDC_FRMP1 */
#define AT91C_LCDC_FRMPT1     (0x3FFFFF << 0 ) /**< (LCDC) Frame Pointer Address 1 */
/* --- Register LCDC_FRMP2 */
#define AT91C_LCDC_FRMPT2     (0x1FFFFF << 0 ) /**< (LCDC) Frame Pointer Address 2 */
/* --- Register LCDC_FRMCFG */
#define AT91C_LCDC_FRSIZE     (0x3FFFFF << 0 ) /**< (LCDC) FRAME SIZE */
#define AT91C_LCDC_BLENGTH    (0xF << 24) /**< (LCDC) BURST LENGTH */
/* --- Register LCDC_DMACON */
#define AT91C_LCDC_DMAEN      (0x1 << 0 ) /**< (LCDC) DAM Enable */
#define AT91C_LCDC_DMARST     (0x1 << 1 ) /**< (LCDC) DMA Reset (WO) */
#define AT91C_LCDC_DMABUSY    (0x1 << 2 ) /**< (LCDC) DMA Reset (WO) */
#define AT91C_LCDC_DMAUPDT    (0x1 << 3 ) /**< (LCDC) DMA Configuration Update */
#define AT91C_LCDC_DMA2DEN    (0x1 << 4 ) /**< (LCDC) 2D Addressing Enable */
/* --- Register LCDC_DMA2DCFG */
#define AT91C_LCDC_ADDRINC    (0xFFFF << 0 ) /**< (LCDC) Number of 32b words that the DMA must jump when going to the next line */
#define AT91C_LCDC_PIXELOFF   (0x1F << 24) /**< (LCDC) Offset (in bits) of the first pixel of the screen in the memory word which contain it */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?