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
- *
- */
|