cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

au1200fb.h (9352B)


      1/*
      2 * BRIEF MODULE DESCRIPTION
      3 *	Hardware definitions for the Au1200 LCD controller
      4 *
      5 * Copyright 2004 AMD
      6 * Author:	AMD
      7 *
      8 *  This program is free software; you can redistribute	 it and/or modify it
      9 *  under  the terms of	 the GNU General  Public License as published by the
     10 *  Free Software Foundation;  either version 2 of the	License, or (at your
     11 *  option) any later version.
     12 *
     13 *  THIS  SOFTWARE  IS PROVIDED	  ``AS	IS'' AND   ANY	EXPRESS OR IMPLIED
     14 *  WARRANTIES,	  INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF
     15 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
     16 *  NO	EVENT  SHALL   THE AUTHOR  BE	 LIABLE FOR ANY	  DIRECT, INDIRECT,
     17 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     18 *  NOT LIMITED	  TO, PROCUREMENT OF  SUBSTITUTE GOODS	OR SERVICES; LOSS OF
     19 *  USE, DATA,	OR PROFITS; OR	BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
     20 *  ANY THEORY OF LIABILITY, WHETHER IN	 CONTRACT, STRICT LIABILITY, OR TORT
     21 *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     22 *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     23 *
     24 *  You should have received a copy of the  GNU General Public License along
     25 *  with this program; if not, write  to the Free Software Foundation, Inc.,
     26 *  675 Mass Ave, Cambridge, MA 02139, USA.
     27 */
     28
     29#ifndef _AU1200LCD_H
     30#define _AU1200LCD_H
     31
     32/********************************************************************/
     33#define AU1200_LCD_ADDR		0xB5000000
     34
     35#define uint8 unsigned char
     36#define uint32 unsigned int
     37
     38struct au1200_lcd {
     39	volatile uint32	reserved0;
     40	volatile uint32	screen;
     41	volatile uint32	backcolor;
     42	volatile uint32	horztiming;
     43	volatile uint32	verttiming;
     44	volatile uint32	clkcontrol;
     45	volatile uint32	pwmdiv;
     46	volatile uint32	pwmhi;
     47	volatile uint32	reserved1;
     48	volatile uint32	winenable;
     49	volatile uint32	colorkey;
     50	volatile uint32	colorkeymsk;
     51	struct
     52	{
     53		volatile uint32	cursorctrl;
     54		volatile uint32	cursorpos;
     55		volatile uint32	cursorcolor0;
     56		volatile uint32	cursorcolor1;
     57		volatile uint32	cursorcolor2;
     58		uint32	cursorcolor3;
     59	} hwc;
     60	volatile uint32	intstatus;
     61	volatile uint32	intenable;
     62	volatile uint32	outmask;
     63	volatile uint32	fifoctrl;
     64	uint32	reserved2[(0x0100-0x0058)/4];
     65	struct
     66	{
     67		volatile uint32	winctrl0;
     68		volatile uint32	winctrl1;
     69		volatile uint32	winctrl2;
     70		volatile uint32	winbuf0;
     71		volatile uint32	winbuf1;
     72		volatile uint32	winbufctrl;
     73		uint32	winreserved0;
     74		uint32	winreserved1;
     75	} window[4];
     76
     77	uint32	reserved3[(0x0400-0x0180)/4];
     78
     79	volatile uint32	palette[(0x0800-0x0400)/4];
     80
     81	volatile uint8	cursorpattern[256];
     82};
     83
     84/* lcd_screen */
     85#define LCD_SCREEN_SEN		(1<<31)
     86#define LCD_SCREEN_SX		(0x07FF<<19)
     87#define LCD_SCREEN_SY		(0x07FF<< 8)
     88#define LCD_SCREEN_SWP		(1<<7)
     89#define LCD_SCREEN_SWD		(1<<6)
     90#define LCD_SCREEN_PT		(7<<0)
     91#define LCD_SCREEN_PT_TFT	(0<<0)
     92#define LCD_SCREEN_SX_N(WIDTH)	((WIDTH-1)<<19)
     93#define LCD_SCREEN_SY_N(HEIGHT)	((HEIGHT-1)<<8)
     94#define LCD_SCREEN_PT_CSTN	(1<<0)
     95#define LCD_SCREEN_PT_CDSTN	(2<<0)
     96#define LCD_SCREEN_PT_M8STN	(3<<0)
     97#define LCD_SCREEN_PT_M4STN	(4<<0)
     98
     99/* lcd_backcolor */
    100#define LCD_BACKCOLOR_SBGR		(0xFF<<16)
    101#define LCD_BACKCOLOR_SBGG		(0xFF<<8)
    102#define LCD_BACKCOLOR_SBGB		(0xFF<<0)
    103#define LCD_BACKCOLOR_SBGR_N(N)	((N)<<16)
    104#define LCD_BACKCOLOR_SBGG_N(N)	((N)<<8)
    105#define LCD_BACKCOLOR_SBGB_N(N)	((N)<<0)
    106
    107/* lcd_winenable */
    108#define LCD_WINENABLE_WEN3		(1<<3)
    109#define LCD_WINENABLE_WEN2		(1<<2)
    110#define LCD_WINENABLE_WEN1		(1<<1)
    111#define LCD_WINENABLE_WEN0		(1<<0)
    112
    113/* lcd_colorkey */
    114#define LCD_COLORKEY_CKR		(0xFF<<16)
    115#define LCD_COLORKEY_CKG		(0xFF<<8)
    116#define LCD_COLORKEY_CKB		(0xFF<<0)
    117#define LCD_COLORKEY_CKR_N(N)	((N)<<16)
    118#define LCD_COLORKEY_CKG_N(N)	((N)<<8)
    119#define LCD_COLORKEY_CKB_N(N)	((N)<<0)
    120
    121/* lcd_colorkeymsk */
    122#define LCD_COLORKEYMSK_CKMR		(0xFF<<16)
    123#define LCD_COLORKEYMSK_CKMG		(0xFF<<8)
    124#define LCD_COLORKEYMSK_CKMB		(0xFF<<0)
    125#define LCD_COLORKEYMSK_CKMR_N(N)	((N)<<16)
    126#define LCD_COLORKEYMSK_CKMG_N(N)	((N)<<8)
    127#define LCD_COLORKEYMSK_CKMB_N(N)	((N)<<0)
    128
    129/* lcd windows control 0 */
    130#define LCD_WINCTRL0_OX		(0x07FF<<21)
    131#define LCD_WINCTRL0_OY		(0x07FF<<10)
    132#define LCD_WINCTRL0_A		(0x00FF<<2)
    133#define LCD_WINCTRL0_AEN	(1<<1)
    134#define LCD_WINCTRL0_OX_N(N) ((N)<<21)
    135#define LCD_WINCTRL0_OY_N(N) ((N)<<10)
    136#define LCD_WINCTRL0_A_N(N) ((N)<<2)
    137
    138/* lcd windows control 1 */
    139#define LCD_WINCTRL1_PRI	(3<<30)
    140#define LCD_WINCTRL1_PIPE	(1<<29)
    141#define LCD_WINCTRL1_FRM	(0xF<<25)
    142#define LCD_WINCTRL1_CCO	(1<<24)
    143#define LCD_WINCTRL1_PO		(3<<22)
    144#define LCD_WINCTRL1_SZX	(0x07FF<<11)
    145#define LCD_WINCTRL1_SZY	(0x07FF<<0)
    146#define LCD_WINCTRL1_FRM_1BPP	(0<<25)
    147#define LCD_WINCTRL1_FRM_2BPP	(1<<25)
    148#define LCD_WINCTRL1_FRM_4BPP	(2<<25)
    149#define LCD_WINCTRL1_FRM_8BPP	(3<<25)
    150#define LCD_WINCTRL1_FRM_12BPP	(4<<25)
    151#define LCD_WINCTRL1_FRM_16BPP655	(5<<25)
    152#define LCD_WINCTRL1_FRM_16BPP565	(6<<25)
    153#define LCD_WINCTRL1_FRM_16BPP556	(7<<25)
    154#define LCD_WINCTRL1_FRM_16BPPI1555	(8<<25)
    155#define LCD_WINCTRL1_FRM_16BPPI5551	(9<<25)
    156#define LCD_WINCTRL1_FRM_16BPPA1555	(10<<25)
    157#define LCD_WINCTRL1_FRM_16BPPA5551	(11<<25)
    158#define LCD_WINCTRL1_FRM_24BPP		(12<<25)
    159#define LCD_WINCTRL1_FRM_32BPP		(13<<25)
    160#define LCD_WINCTRL1_PRI_N(N)	((N)<<30)
    161#define LCD_WINCTRL1_PO_00		(0<<22)
    162#define LCD_WINCTRL1_PO_01		(1<<22)
    163#define LCD_WINCTRL1_PO_10		(2<<22)
    164#define LCD_WINCTRL1_PO_11		(3<<22)
    165#define LCD_WINCTRL1_SZX_N(N)	((N-1)<<11)
    166#define LCD_WINCTRL1_SZY_N(N)	((N-1)<<0)
    167
    168/* lcd windows control 2 */
    169#define LCD_WINCTRL2_CKMODE		(3<<24)
    170#define LCD_WINCTRL2_DBM		(1<<23)
    171#define LCD_WINCTRL2_RAM		(3<<21)
    172#define LCD_WINCTRL2_BX			(0x1FFF<<8)
    173#define LCD_WINCTRL2_SCX		(0xF<<4)
    174#define LCD_WINCTRL2_SCY		(0xF<<0)
    175#define LCD_WINCTRL2_CKMODE_00		(0<<24)
    176#define LCD_WINCTRL2_CKMODE_01		(1<<24)
    177#define LCD_WINCTRL2_CKMODE_10		(2<<24)
    178#define LCD_WINCTRL2_CKMODE_11		(3<<24)
    179#define LCD_WINCTRL2_RAM_NONE		(0<<21)
    180#define LCD_WINCTRL2_RAM_PALETTE	(1<<21)
    181#define LCD_WINCTRL2_RAM_GAMMA		(2<<21)
    182#define LCD_WINCTRL2_RAM_BUFFER		(3<<21)
    183#define LCD_WINCTRL2_BX_N(N)	((N)<<8)
    184#define LCD_WINCTRL2_SCX_1		(0<<4)
    185#define LCD_WINCTRL2_SCX_2		(1<<4)
    186#define LCD_WINCTRL2_SCX_4		(2<<4)
    187#define LCD_WINCTRL2_SCY_1		(0<<0)
    188#define LCD_WINCTRL2_SCY_2		(1<<0)
    189#define LCD_WINCTRL2_SCY_4		(2<<0)
    190
    191/* lcd windows buffer control */
    192#define LCD_WINBUFCTRL_DB		(1<<1)
    193#define LCD_WINBUFCTRL_DBN		(1<<0)
    194
    195/* lcd_intstatus, lcd_intenable */
    196#define LCD_INT_IFO				(0xF<<14)
    197#define LCD_INT_IFU				(0xF<<10)
    198#define LCD_INT_OFO				(1<<9)
    199#define LCD_INT_OFU				(1<<8)
    200#define LCD_INT_WAIT			(1<<3)
    201#define LCD_INT_SD				(1<<2)
    202#define LCD_INT_SA				(1<<1)
    203#define LCD_INT_SS				(1<<0)
    204
    205/* lcd_horztiming */
    206#define LCD_HORZTIMING_HND2		(0x1FF<<18)
    207#define LCD_HORZTIMING_HND1		(0x1FF<<9)
    208#define LCD_HORZTIMING_HPW		(0x1FF<<0)
    209#define LCD_HORZTIMING_HND2_N(N)(((N)-1)<<18)
    210#define LCD_HORZTIMING_HND1_N(N)(((N)-1)<<9)
    211#define LCD_HORZTIMING_HPW_N(N)	(((N)-1)<<0)
    212
    213/* lcd_verttiming */
    214#define LCD_VERTTIMING_VND2		(0x1FF<<18)
    215#define LCD_VERTTIMING_VND1		(0x1FF<<9)
    216#define LCD_VERTTIMING_VPW		(0x1FF<<0)
    217#define LCD_VERTTIMING_VND2_N(N)(((N)-1)<<18)
    218#define LCD_VERTTIMING_VND1_N(N)(((N)-1)<<9)
    219#define LCD_VERTTIMING_VPW_N(N)	(((N)-1)<<0)
    220
    221/* lcd_clkcontrol */
    222#define LCD_CLKCONTROL_EXT		(1<<22)
    223#define LCD_CLKCONTROL_DELAY	(3<<20)
    224#define LCD_CLKCONTROL_CDD		(1<<19)
    225#define LCD_CLKCONTROL_IB		(1<<18)
    226#define LCD_CLKCONTROL_IC		(1<<17)
    227#define LCD_CLKCONTROL_IH		(1<<16)
    228#define LCD_CLKCONTROL_IV		(1<<15)
    229#define LCD_CLKCONTROL_BF		(0x1F<<10)
    230#define LCD_CLKCONTROL_PCD		(0x3FF<<0)
    231#define LCD_CLKCONTROL_BF_N(N)	(((N)-1)<<10)
    232#define LCD_CLKCONTROL_PCD_N(N)	((N)<<0)
    233
    234/* lcd_pwmdiv */
    235#define LCD_PWMDIV_EN			(1<<31)
    236#define LCD_PWMDIV_PWMDIV		(0x1FFFF<<0)
    237#define LCD_PWMDIV_PWMDIV_N(N)	((N)<<0)
    238
    239/* lcd_pwmhi */
    240#define LCD_PWMHI_PWMHI1		(0xFFFF<<16)
    241#define LCD_PWMHI_PWMHI0		(0xFFFF<<0)
    242#define LCD_PWMHI_PWMHI1_N(N)	((N)<<16)
    243#define LCD_PWMHI_PWMHI0_N(N)	((N)<<0)
    244
    245/* lcd_hwccon */
    246#define LCD_HWCCON_EN			(1<<0)
    247
    248/* lcd_cursorpos */
    249#define LCD_CURSORPOS_HWCXOFF		(0x1F<<27)
    250#define LCD_CURSORPOS_HWCXPOS		(0x07FF<<16)
    251#define LCD_CURSORPOS_HWCYOFF		(0x1F<<11)
    252#define LCD_CURSORPOS_HWCYPOS		(0x07FF<<0)
    253#define LCD_CURSORPOS_HWCXOFF_N(N)	((N)<<27)
    254#define LCD_CURSORPOS_HWCXPOS_N(N)	((N)<<16)
    255#define LCD_CURSORPOS_HWCYOFF_N(N)	((N)<<11)
    256#define LCD_CURSORPOS_HWCYPOS_N(N)	((N)<<0)
    257
    258/* lcd_cursorcolor */
    259#define LCD_CURSORCOLOR_HWCA		(0xFF<<24)
    260#define LCD_CURSORCOLOR_HWCR		(0xFF<<16)
    261#define LCD_CURSORCOLOR_HWCG		(0xFF<<8)
    262#define LCD_CURSORCOLOR_HWCB		(0xFF<<0)
    263#define LCD_CURSORCOLOR_HWCA_N(N)	((N)<<24)
    264#define LCD_CURSORCOLOR_HWCR_N(N)	((N)<<16)
    265#define LCD_CURSORCOLOR_HWCG_N(N)	((N)<<8)
    266#define LCD_CURSORCOLOR_HWCB_N(N)	((N)<<0)
    267
    268/* lcd_fifoctrl */
    269#define LCD_FIFOCTRL_F3IF		(1<<29)
    270#define LCD_FIFOCTRL_F3REQ		(0x1F<<24)
    271#define LCD_FIFOCTRL_F2IF		(1<<29)
    272#define LCD_FIFOCTRL_F2REQ		(0x1F<<16)
    273#define LCD_FIFOCTRL_F1IF		(1<<29)
    274#define LCD_FIFOCTRL_F1REQ		(0x1F<<8)
    275#define LCD_FIFOCTRL_F0IF		(1<<29)
    276#define LCD_FIFOCTRL_F0REQ		(0x1F<<0)
    277#define LCD_FIFOCTRL_F3REQ_N(N)	((N-1)<<24)
    278#define LCD_FIFOCTRL_F2REQ_N(N)	((N-1)<<16)
    279#define LCD_FIFOCTRL_F1REQ_N(N)	((N-1)<<8)
    280#define LCD_FIFOCTRL_F0REQ_N(N)	((N-1)<<0)
    281
    282/* lcd_outmask */
    283#define LCD_OUTMASK_MASK		(0x00FFFFFF)
    284
    285/********************************************************************/
    286#endif /* _AU1200LCD_H */