| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | /* * SA-1101.h * * Copyright (c) Peter Danielsson 1999 * * Definition of constants related to the sa1101 * support chip for the sa1100 * *//* Be sure that virtual mapping is defined right */#ifndef __ASM_ARCH_HARDWARE_H#error You must include hardware.h not SA-1101.h#endif#ifndef SA1101_BASE#error You must define SA-1101 physical base address#endif#ifndef LANGUAGE# ifdef __ASSEMBLY__#  define LANGUAGE Assembly# else#  define LANGUAGE C# endif#endif/* * We have mapped the sa1101 depending on the value of SA1101_BASE. * It then appears from 0xf4000000. */#define SA1101_p2v( x )         ((x) - SA1101_BASE + 0xf4000000)#define SA1101_v2p( x )         ((x) - 0xf4000000  + SA1101_BASE)#ifndef SA1101_p2v#define SA1101_p2v(PhAdd)  (PhAdd)#endif#include <mach/bitfield.h>#define C               0#define Assembly        1/* * Memory map */#define __SHMEM_CONTROL0	0x00000000#define __SYSTEM_CONTROL1	0x00000400#define __ARBITER		0x00020000#define __SYSTEM_CONTROL2	0x00040000#define __SYSTEM_CONTROL3	0x00060000#define __PARALLEL_PORT		0x00080000#define __VIDMEM_CONTROL	0x00100000#define __UPDATE_FIFO		0x00120000#define __SHMEM_CONTROL1	0x00140000#define __INTERRUPT_CONTROL	0x00160000#define __USB_CONTROL		0x00180000#define __TRACK_INTERFACE	0x001a0000#define __MOUSE_INTERFACE	0x001b0000#define __KEYPAD_INTERFACE	0x001c0000#define __PCMCIA_INTERFACE	0x001e0000#define	__VGA_CONTROL		0x00200000#define __GPIO_INTERFACE	0x00300000/* * Macro that calculates real address for registers in the SA-1101 */#define _SA1101( x )    ((x) + SA1101_BASE)/* * Interface and shared memory controller registers * * Registers *	SKCR		SA-1101 control register (read/write) *	SMCR		Shared Memory Controller Register *	SNPR		Snoop Register */#define _SKCR		_SA1101( 0x00000000 ) /* SA-1101 Control Reg. */#define _SMCR		_SA1101( 0x00140000 ) /* Shared Mem. Control Reg. */#define _SNPR		_SA1101( 0x00140400 ) /* Snoop Reg. */#if LANGUAGE == C#define SKCR		(*((volatile Word *) SA1101_p2v (_SKCR)))#define SMCR		(*((volatile Word *) SA1101_p2v (_SMCR)))#define SNPR		(*((volatile Word *) SA1101_p2v (_SNPR)))#define SKCR_PLLEn	  0x0001	  /* Enable On-Chip PLL */#define SKCR_BCLKEn	  0x0002	  /* Enables BCLK */#define SKCR_Sleep	  0x0004	  /* Sleep Mode */#define SKCR_IRefEn	  0x0008	  /* DAC Iref input enable */#define SKCR_VCOON	  0x0010	  /* VCO bias */#define SKCR_ScanTestEn	  0x0020	  /* Enables scan test */#define SKCR_ClockTestEn  0x0040	  /* Enables clock test */#define SMCR_DCAC	  Fld(2,0)	  /* Number of column address bits */#define SMCR_DRAC	  Fld(2,2)	  /* Number of row address bits */#define SMCR_ArbiterBias  0x0008	  /* favor video or USB */#define SMCR_TopVidMem	  Fld(4,5)	  /* Top 4 bits of vidmem addr. */#define SMCR_ColAdrBits( x )		  /* col. addr bits 8..11 */ \	(( (x) - 8 ) << FShft (SMCR_DCAC))#define SMCR_RowAdrBits( x )		  /* row addr bits 9..12 */\	(( (x) - 9 ) << FShft (SMCR_DRAC))#define SNPR_VFBstart	  Fld(12,0)	/* Video frame buffer addr */#define SNPR_VFBsize	  Fld(11,12)	/* Video frame buffer size */#define SNPR_WholeBank	  (1 << 23)	/* Whole bank bit */#define SNPR_BankSelect	  Fld(2,27)	/* Bank select */#define SNPR_SnoopEn	  (1 << 31)	/* Enable snoop operation */#define SNPR_Set_VFBsize( x )   /* set frame buffer size (in kb) */ \	( (x) << FShft (SNPR_VFBsize))#define SNPR_Select_Bank(x)     /* select bank 0 or 1 */  \	(( (x) + 1 ) << FShft (SNPR_BankSelect ))#endif /* LANGUAGE == C *//* * Video Memory Controller * * Registers *    VMCCR	Configuration register *    VMCAR	VMC address register *    VMCDR	VMC data register * */
 |