OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [rc203soc/] [sw/] [uClinux/] [include/] [asm-armnommu/] [arch-trio/] [hardware.h] - Diff between revs 1765 and 1782

Only display areas with differences | Details | Blame | View Log

Rev 1765 Rev 1782
/*
/*
 * linux/include/asm-arm/arch-trio/hardware.h
 * linux/include/asm-arm/arch-trio/hardware.h
 *
 *
 * Copyright (C) 1996 Russell King.
 * Copyright (C) 1996 Russell King.
 *
 *
 * This file contains the hardware definitions of the APLIO TRIO series machines.
 * This file contains the hardware definitions of the APLIO TRIO series machines.
 */
 */
 
 
#ifndef __ASM_ARCH_HARDWARE_H
#ifndef __ASM_ARCH_HARDWARE_H
#define __ASM_ARCH_HARDWARE_H
#define __ASM_ARCH_HARDWARE_H
 
 
/*
/*
 * What hardware must be present
 * What hardware must be present
 */
 */
#ifndef __ASSEMBLER__
#ifndef __ASSEMBLER__
 
 
typedef unsigned long u_32;
typedef unsigned long u_32;
/* ARM asynchronous clock */
/* ARM asynchronous clock */
#define ARM_CLK         ((u_32)(24000000))
#define ARM_CLK         ((u_32)(24000000))
/* ARM synchronous with OAK clock */
/* ARM synchronous with OAK clock */
#define A_O_CLK         ((u_32)(20000000))
#define A_O_CLK         ((u_32)(20000000))
 
 
#else
#else
 
 
#define ARM_CLK 24000000
#define ARM_CLK 24000000
#define A_O_CLK 20000000
#define A_O_CLK 20000000
 
 
#endif
#endif
 
 
#ifndef __ASSEMBLER__
#ifndef __ASSEMBLER__
/*
/*
 * RAM definitions
 * RAM definitions
 */
 */
#define MAPTOPHYS(a)            ((unsigned long)a)
#define MAPTOPHYS(a)            ((unsigned long)a)
#define KERNTOPHYS(a)           ((unsigned long)(&a))
#define KERNTOPHYS(a)           ((unsigned long)(&a))
#define GET_MEMORY_END(p)       ((p->u1.s.page_size) * (p->u1.s.nr_pages))
#define GET_MEMORY_END(p)       ((p->u1.s.page_size) * (p->u1.s.nr_pages))
#define PARAMS_BASE                     0x1000
#define PARAMS_BASE                     0x1000
//#define KERNEL_BASE           (PAGE_OFFSET + 0x80000)
//#define KERNEL_BASE           (PAGE_OFFSET + 0x80000)
#endif
#endif
 
 
#define IO_BASE         0
#define IO_BASE         0
#define PERIPH_BASE 0xff000000
#define PERIPH_BASE 0xff000000
#define OAKA_PRAM       0xfd000000
#define OAKA_PRAM       0xfd000000
#define OAKB_PRAM       0xfe000000
#define OAKB_PRAM       0xfe000000
 
 
#define SRAM_BASE       0xfc000000
#define SRAM_BASE       0xfc000000
#define SRAM_SIZE       0x1000
#define SRAM_SIZE       0x1000
 
 
#define DPMBA_BASE  0xfa000000
#define DPMBA_BASE  0xfa000000
#define DPMBB_BASE  0xfb000000
#define DPMBB_BASE  0xfb000000
#define DPMB_SIZE       0x800
#define DPMB_SIZE       0x800
 
 
#define BOOTROM_BASE 0xfb000000
#define BOOTROM_BASE 0xfb000000
#define BOOTROM_SIZE 0x400
#define BOOTROM_SIZE 0x400
 
 
/*
/*
        Peripherials
        Peripherials
*/
*/
#define SIAP_BASE       (PERIPH_BASE+0)
#define SIAP_BASE       (PERIPH_BASE+0)
#define SMC_BASE        (PERIPH_BASE+0x4000)
#define SMC_BASE        (PERIPH_BASE+0x4000)
#define DMC_BASE        (PERIPH_BASE+0x8000)
#define DMC_BASE        (PERIPH_BASE+0x8000)
#define PIOA_BASE       (PERIPH_BASE+0xc000)
#define PIOA_BASE       (PERIPH_BASE+0xc000)
#define PIOB_BASE       (PERIPH_BASE+0x10000)
#define PIOB_BASE       (PERIPH_BASE+0x10000)
#define KB_BASE         (PERIPH_BASE+0x10000)
#define KB_BASE         (PERIPH_BASE+0x10000)
#define TMC_BASE        (PERIPH_BASE+0x14000)
#define TMC_BASE        (PERIPH_BASE+0x14000)
#define USARTA_BASE     (PERIPH_BASE+0x18000)
#define USARTA_BASE     (PERIPH_BASE+0x18000)
#define USARTB_BASE     (PERIPH_BASE+0x1c000)
#define USARTB_BASE     (PERIPH_BASE+0x1c000)
#define SPI_BASE        (PERIPH_BASE+0x20000)
#define SPI_BASE        (PERIPH_BASE+0x20000)
#define WDG_BASE        (PERIPH_BASE+0x28000)
#define WDG_BASE        (PERIPH_BASE+0x28000)
#define AIC_BASE        (PERIPH_BASE+0x30000)
#define AIC_BASE        (PERIPH_BASE+0x30000)
/*
/*
        SIAP registers
        SIAP registers
*/
*/
#define SIAP_MD   (SIAP_BASE)
#define SIAP_MD   (SIAP_BASE)
#define SIAP_ID   (SIAP_BASE+4)
#define SIAP_ID   (SIAP_BASE+4)
#define SIAP_RST   (SIAP_BASE+8)
#define SIAP_RST   (SIAP_BASE+8)
 
 
/* SIAP mode register */
/* SIAP mode register */
#define SIAP_SW2        (1<<11)
#define SIAP_SW2        (1<<11)
#define SIAP_SW1        (1<<10)
#define SIAP_SW1        (1<<10)
#define SIAP_LPCS(x)(x<<8 & 0x300)
#define SIAP_LPCS(x)(x<<8 & 0x300)
#define SIAP_LP         (1<<6)
#define SIAP_LP         (1<<6)
#define SIAP_CS         (1<<5)
#define SIAP_CS         (1<<5)
#define SIAP_IB         (1<<4)
#define SIAP_IB         (1<<4)
#define SIAP_IA         (1<<3)
#define SIAP_IA         (1<<3)
#define SIAP_RB         (1<<2)
#define SIAP_RB         (1<<2)
#define SIAP_RA         (1<<1)
#define SIAP_RA         (1<<1)
#define SIAP_RM         (1)
#define SIAP_RM         (1)
 
 
/* SIAP ID register */
/* SIAP ID register */
#define SIAP_PKG        (1<<31)
#define SIAP_PKG        (1<<31)
#define SIAP_VERS       (1)     
#define SIAP_VERS       (1)     
 
 
/* SIAP reset register */
/* SIAP reset register */
#define SIAP_RESET      (7)     
#define SIAP_RESET      (7)     
 
 
/*
/*
        DRAM Memory controller registers
        DRAM Memory controller registers
*/
*/
#define DMR0    (DMC_BASE + 0)          
#define DMR0    (DMC_BASE + 0)          
#define DMR1    (DMC_BASE + 4)
#define DMR1    (DMC_BASE + 4)
#define DMC_CR  (DMC_BASE + 8)
#define DMC_CR  (DMC_BASE + 8)
 
 
/* DMRx registers */
/* DMRx registers */
#define DMR_EMR         1
#define DMR_EMR         1
#define DMR_PS(x)       (x<<1 & 6)
#define DMR_PS(x)       (x<<1 & 6)
#define DMR_SZ(x)       (x<<3 & 0x18)
#define DMR_SZ(x)       (x<<3 & 0x18)
 
 
/* DMR memory control register */
/* DMR memory control register */
#define DMR_ROR         (1<<2)
#define DMR_ROR         (1<<2)
#define DMR_BBR         (1<<1)
#define DMR_BBR         (1<<1)
#define DMR_DBW         1
#define DMR_DBW         1
 
 
/*
/*
        Static Memory controller registers
        Static Memory controller registers
*/
*/
#define SMC_CSR0        (SMC_BASE + 0)          
#define SMC_CSR0        (SMC_BASE + 0)          
#define SMC_CSR1        (SMC_BASE + 4)          
#define SMC_CSR1        (SMC_BASE + 4)          
#define SMC_CSR2        (SMC_BASE + 8)          
#define SMC_CSR2        (SMC_BASE + 8)          
#define SMC_CSR3        (SMC_BASE + 0xc)                
#define SMC_CSR3        (SMC_BASE + 0xc)                
#define SMC_MCR         (SMC_BASE + 0x24)               
#define SMC_MCR         (SMC_BASE + 0x24)               
 
 
/* SMC chip select registers */
/* SMC chip select registers */
#define SMC_CSEN        (1<<13)
#define SMC_CSEN        (1<<13)
#define SMC_BAT         (1<<12)
#define SMC_BAT         (1<<12)
#define SMC_TDF(x)      (x<<9 & 0xe000)
#define SMC_TDF(x)      (x<<9 & 0xe000)
#define SMC_PGS(x)      (x<<7 & 0x1800)
#define SMC_PGS(x)      (x<<7 & 0x1800)
#define SMC_WSE         (1<<5)
#define SMC_WSE         (1<<5)
#define SMC_NWS(x)      (x<<2 & 0x1c)
#define SMC_NWS(x)      (x<<2 & 0x1c)
#define SMC_DBW(x)      (x & 3)
#define SMC_DBW(x)      (x & 3)
 
 
/* SMC memory control register */
/* SMC memory control register */
#define SMC_DRP         (1<<4)
#define SMC_DRP         (1<<4)
 
 
/*
/*
        Dual Port Memory A
        Dual Port Memory A
*/
*/
#define DPMBA_S0        (DPMBA_BASE + 0x200)
#define DPMBA_S0        (DPMBA_BASE + 0x200)
#define DPMBA_S1        (DPMBA_BASE + 0x204)
#define DPMBA_S1        (DPMBA_BASE + 0x204)
#define DPMBA_S2        (DPMBA_BASE + 0x208)
#define DPMBA_S2        (DPMBA_BASE + 0x208)
#define DPMBA_S3        (DPMBA_BASE + 0x20c)
#define DPMBA_S3        (DPMBA_BASE + 0x20c)
#define DPMBA_S4        (DPMBA_BASE + 0x210)
#define DPMBA_S4        (DPMBA_BASE + 0x210)
#define DPMBA_S5        (DPMBA_BASE + 0x214)
#define DPMBA_S5        (DPMBA_BASE + 0x214)
#define DPMBA_S6        (DPMBA_BASE + 0x218)
#define DPMBA_S6        (DPMBA_BASE + 0x218)
#define DPMBA_S7        (DPMBA_BASE + 0x21c)
#define DPMBA_S7        (DPMBA_BASE + 0x21c)
#define DPMBA_CC        (DPMBA_BASE + 0x220)
#define DPMBA_CC        (DPMBA_BASE + 0x220)
/*
/*
        Dual Port Memory B
        Dual Port Memory B
*/
*/
#define DPMBB_S0        (DPMBB_BASE + 0x200)
#define DPMBB_S0        (DPMBB_BASE + 0x200)
#define DPMBB_S1        (DPMBB_BASE + 0x204)
#define DPMBB_S1        (DPMBB_BASE + 0x204)
#define DPMBB_S2        (DPMBB_BASE + 0x208)
#define DPMBB_S2        (DPMBB_BASE + 0x208)
#define DPMBB_S3        (DPMBB_BASE + 0x20c)
#define DPMBB_S3        (DPMBB_BASE + 0x20c)
#define DPMBB_S4        (DPMBB_BASE + 0x210)
#define DPMBB_S4        (DPMBB_BASE + 0x210)
#define DPMBB_S5        (DPMBB_BASE + 0x214)
#define DPMBB_S5        (DPMBB_BASE + 0x214)
#define DPMBB_S6        (DPMBB_BASE + 0x218)
#define DPMBB_S6        (DPMBB_BASE + 0x218)
#define DPMBB_S7        (DPMBB_BASE + 0x21c)
#define DPMBB_S7        (DPMBB_BASE + 0x21c)
#define DPMBB_CC        (DPMBB_BASE + 0x220)
#define DPMBB_CC        (DPMBB_BASE + 0x220)
/*
/*
        Timer  registers
        Timer  registers
*/
*/
#define TC0_BASE        (TMC_BASE + 0)
#define TC0_BASE        (TMC_BASE + 0)
#define TC1_BASE        (TMC_BASE + 0x40)
#define TC1_BASE        (TMC_BASE + 0x40)
#define TC2_BASE        (TMC_BASE + 0x80)
#define TC2_BASE        (TMC_BASE + 0x80)
 
 
#define TC_OFFSET 0x14000
#define TC_OFFSET 0x14000
#define TC_BASE(i) (PERIPH_BASE+TC_OFFSET+(i)*0x40)
#define TC_BASE(i) (PERIPH_BASE+TC_OFFSET+(i)*0x40)
 
 
#define TC_BCR          (TMC_BASE + 0xC0)
#define TC_BCR          (TMC_BASE + 0xC0)
#define TC_BMR          (TMC_BASE + 0xC4)
#define TC_BMR          (TMC_BASE + 0xC4)
 
 
#ifndef __ASSEMBLER__
#ifndef __ASSEMBLER__
struct trio_timer_channel
struct trio_timer_channel
{
{
        unsigned long ccr;                              // channel control register             (WO)
        unsigned long ccr;                              // channel control register             (WO)
        unsigned long cmr;                              // channel mode register                (RW)
        unsigned long cmr;                              // channel mode register                (RW)
        unsigned long reserved[2];
        unsigned long reserved[2];
        unsigned long cv;                               // counter value                                (RW)
        unsigned long cv;                               // counter value                                (RW)
        unsigned long ra;                               // register A                                   (RW)
        unsigned long ra;                               // register A                                   (RW)
        unsigned long rb;                               // register B                                   (RW)
        unsigned long rb;                               // register B                                   (RW)
        unsigned long rc;                               // register C                                   (RW)
        unsigned long rc;                               // register C                                   (RW)
        unsigned long sr;                               // status register                              (RO)
        unsigned long sr;                               // status register                              (RO)
        unsigned long ier;                              // interrupt enable register    (WO)
        unsigned long ier;                              // interrupt enable register    (WO)
        unsigned long idr;                              // interrupt disable register   (WO)
        unsigned long idr;                              // interrupt disable register   (WO)
        unsigned long imr;                              // interrupt mask register              (RO)
        unsigned long imr;                              // interrupt mask register              (RO)
};
};
 
 
struct trio_timers
struct trio_timers
{
{
        struct {
        struct {
                struct trio_timer_channel ch;
                struct trio_timer_channel ch;
                unsigned char padding[0x40-sizeof(struct trio_timer_channel)];
                unsigned char padding[0x40-sizeof(struct trio_timer_channel)];
        } chans[3];
        } chans[3];
        unsigned  long bcr;                             // block control register               (WO)
        unsigned  long bcr;                             // block control register               (WO)
        unsigned  long bmr;                             // block mode    register               (RW)
        unsigned  long bmr;                             // block mode    register               (RW)
};
};
 
 
#endif
#endif
 
 
/*  TC control register */
/*  TC control register */
#define TC_SYNC (1)
#define TC_SYNC (1)
 
 
/*  TC mode register */
/*  TC mode register */
#define TC2XC2S(x)      (x & 0x3)
#define TC2XC2S(x)      (x & 0x3)
#define TC1XC1S(x)      (x<<2 & 0xc)
#define TC1XC1S(x)      (x<<2 & 0xc)
#define TC0XC0S(x)      (x<<4 & 0x30)
#define TC0XC0S(x)      (x<<4 & 0x30)
 
 
/* TC channel control */
/* TC channel control */
#define TC_CLKEN        (1)                     
#define TC_CLKEN        (1)                     
#define TC_CLKDIS       (1<<1)                  
#define TC_CLKDIS       (1<<1)                  
#define TC_SWTRG        (1<<2)                  
#define TC_SWTRG        (1<<2)                  
 
 
/* TC interrupts enable/disable/mask and status registers */
/* TC interrupts enable/disable/mask and status registers */
#define TC_MTIOB        (1<<18)
#define TC_MTIOB        (1<<18)
#define TC_MTIOA        (1<<17)
#define TC_MTIOA        (1<<17)
#define TC_CLKSTA       (1<<16)
#define TC_CLKSTA       (1<<16)
 
 
#define TC_ETRGS        (1<<7)
#define TC_ETRGS        (1<<7)
#define TC_LDRBS        (1<<6)
#define TC_LDRBS        (1<<6)
#define TC_LDRAS        (1<<5)
#define TC_LDRAS        (1<<5)
#define TC_CPCS         (1<<4)
#define TC_CPCS         (1<<4)
#define TC_CPBS         (1<<3)
#define TC_CPBS         (1<<3)
#define TC_CPAS         (1<<2)
#define TC_CPAS         (1<<2)
#define TC_LOVRS        (1<<1)
#define TC_LOVRS        (1<<1)
#define TC_COVFS        (1)
#define TC_COVFS        (1)
 
 
#ifndef __ASSEMBLER__
#ifndef __ASSEMBLER__
/*
/*
        UART registers
        UART registers
*/
*/
struct uart_regs{
struct uart_regs{
        u_32 cr;                // control 
        u_32 cr;                // control 
        u_32 mr;                // mode
        u_32 mr;                // mode
        u_32 ier;               // interrupt enable
        u_32 ier;               // interrupt enable
        u_32 idr;               // interrupt disable
        u_32 idr;               // interrupt disable
        u_32 imr;               // interrupt mask
        u_32 imr;               // interrupt mask
        u_32 csr;               // channel status
        u_32 csr;               // channel status
        u_32 rhr;               // receive holding 
        u_32 rhr;               // receive holding 
        u_32 thr;               // tramsmit holding             
        u_32 thr;               // tramsmit holding             
        u_32 brgr;              // baud rate generator          
        u_32 brgr;              // baud rate generator          
        u_32 rtor;              // rx time-out
        u_32 rtor;              // rx time-out
        u_32 ttgr;              // tx time-guard
        u_32 ttgr;              // tx time-guard
        u_32 res1;
        u_32 res1;
        u_32 rpr;               // rx pointer
        u_32 rpr;               // rx pointer
        u_32 rcr;               // rx counter
        u_32 rcr;               // rx counter
        u_32 tpr;               // tx pointer
        u_32 tpr;               // tx pointer
        u_32 tcr;               // tx counter
        u_32 tcr;               // tx counter
        u_32 mc;                // modem control
        u_32 mc;                // modem control
        u_32 ms;                // modem status
        u_32 ms;                // modem status
};
};
#endif
#endif
 
 
/*  US control register */
/*  US control register */
#define US_SENDA        (1<<12)
#define US_SENDA        (1<<12)
#define US_STTO         (1<<11)
#define US_STTO         (1<<11)
#define US_STPBRK       (1<<10)
#define US_STPBRK       (1<<10)
#define US_STTBRK       (1<<9)
#define US_STTBRK       (1<<9)
#define US_RSTSTA       (1<<8)
#define US_RSTSTA       (1<<8)
#define US_TXDIS        (1<<7)
#define US_TXDIS        (1<<7)
#define US_TXEN         (1<<6)
#define US_TXEN         (1<<6)
#define US_RXDIS        (1<<5)
#define US_RXDIS        (1<<5)
#define US_RXEN         (1<<4)
#define US_RXEN         (1<<4)
#define US_RSTTX        (1<<3)
#define US_RSTTX        (1<<3)
#define US_RSTRX        (1<<2)
#define US_RSTRX        (1<<2)
 
 
/* US mode register */
/* US mode register */
#define US_CLK0         (1<<18)
#define US_CLK0         (1<<18)
#define US_MODE9        (1<<17)
#define US_MODE9        (1<<17)
#define US_CHMODE(x)(x<<14 & 0xc000)
#define US_CHMODE(x)(x<<14 & 0xc000)
#define US_NBSTOP(x)(x<<12 & 0x3000)
#define US_NBSTOP(x)(x<<12 & 0x3000)
#define US_PAR(x)       (x<<9 & 0xe00)
#define US_PAR(x)       (x<<9 & 0xe00)
#define US_SYNC         (1<<8)
#define US_SYNC         (1<<8)
#define US_CHRL(x)      (x<<6 & 0xc0)
#define US_CHRL(x)      (x<<6 & 0xc0)
#define US_USCLKS(x)(x<<4 & 0x30)
#define US_USCLKS(x)(x<<4 & 0x30)
 
 
/* US interrupts enable/disable/mask and status register */
/* US interrupts enable/disable/mask and status register */
#define US_DMSI         (1<<10)
#define US_DMSI         (1<<10)
#define US_TXEMPTY      (1<<9)
#define US_TXEMPTY      (1<<9)
#define US_TIMEOUT      (1<<8)
#define US_TIMEOUT      (1<<8)
#define US_PARE         (1<<7)
#define US_PARE         (1<<7)
#define US_FRAME        (1<<6)
#define US_FRAME        (1<<6)
#define US_OVRE         (1<<5)
#define US_OVRE         (1<<5)
#define US_ENDTX        (1<<4)
#define US_ENDTX        (1<<4)
#define US_ENDRX        (1<<3)
#define US_ENDRX        (1<<3)
#define US_RXBRK        (1<<2)
#define US_RXBRK        (1<<2)
#define US_TXRDY        (1<<1)
#define US_TXRDY        (1<<1)
#define US_RXRDY        (1)
#define US_RXRDY        (1)
 
 
#define US_ALL_INTS (US_DMSI|US_TXEMPTY|US_TIMEOUT|US_PARE|US_FRAME|US_OVRE|US_ENDTX|US_ENDRX|US_RXBRK|US_TXRDY|US_RXRDY)
#define US_ALL_INTS (US_DMSI|US_TXEMPTY|US_TIMEOUT|US_PARE|US_FRAME|US_OVRE|US_ENDTX|US_ENDRX|US_RXBRK|US_TXRDY|US_RXRDY)
 
 
 
 
/* US modem control register */
/* US modem control register */
#define US_FCM  (1<<5)
#define US_FCM  (1<<5)
#define US_RTS  (1<<1)
#define US_RTS  (1<<1)
#define US_DTR  (1)
#define US_DTR  (1)
 
 
/* US modem status register */
/* US modem status register */
#define US_FCMS (1<<8)
#define US_FCMS (1<<8)
#define US_DCD  (1<<7)
#define US_DCD  (1<<7)
#define US_RI   (1<<6)
#define US_RI   (1<<6)
#define US_DSR  (1<<5)
#define US_DSR  (1<<5)
#define US_CTS  (1<<4)
#define US_CTS  (1<<4)
#define US_DDCD (1<<3)
#define US_DDCD (1<<3)
#define US_TERI (1<<2)
#define US_TERI (1<<2)
#define US_DDSR (1<<1)
#define US_DDSR (1<<1)
#define US_DCTS (1)
#define US_DCTS (1)
 
 
/*
/*
        Advanced Interrupt Controller registers
        Advanced Interrupt Controller registers
*/
*/
#define AIC_SMR(i)  (AIC_BASE+i*4)
#define AIC_SMR(i)  (AIC_BASE+i*4)
#define AIC_IVR     (AIC_BASE+0x100)
#define AIC_IVR     (AIC_BASE+0x100)
#define AIC_FVR     (AIC_BASE+0x104)
#define AIC_FVR     (AIC_BASE+0x104)
#define AIC_ISR     (AIC_BASE+0x108)
#define AIC_ISR     (AIC_BASE+0x108)
#define AIC_IPR     (AIC_BASE+0x10C)
#define AIC_IPR     (AIC_BASE+0x10C)
#define AIC_IMR     (AIC_BASE+0x110)
#define AIC_IMR     (AIC_BASE+0x110)
#define AIC_CISR        (AIC_BASE+0x114)
#define AIC_CISR        (AIC_BASE+0x114)
#define AIC_IECR        (AIC_BASE+0x120)
#define AIC_IECR        (AIC_BASE+0x120)
#define AIC_IDCR        (AIC_BASE+0x124)
#define AIC_IDCR        (AIC_BASE+0x124)
#define AIC_ICCR        (AIC_BASE+0x128)
#define AIC_ICCR        (AIC_BASE+0x128)
#define AIC_ISCR        (AIC_BASE+0x12C)
#define AIC_ISCR        (AIC_BASE+0x12C)
#define AIC_EOICR   (AIC_BASE+0x130)
#define AIC_EOICR   (AIC_BASE+0x130)
 
 
/* AIC enable/disable/mask/pending registers */
/* AIC enable/disable/mask/pending registers */
 
 
#define AIC_PIOB        (1<<15)
#define AIC_PIOB        (1<<15)
#define AIC_UB          (1<<14)
#define AIC_UB          (1<<14)
#define AIC_OAKB        (1<<13)
#define AIC_OAKB        (1<<13)
#define AIC_OAKA        (1<<12)
#define AIC_OAKA        (1<<12)
#define AIC_IRQ1        (1<<11)
#define AIC_IRQ1        (1<<11)
#define AIC_IRQ0        (1<<10)
#define AIC_IRQ0        (1<<10)
#define AIC_SPI         (1<<9)
#define AIC_SPI         (1<<9)
#define AIC_LCD         (1<<8)
#define AIC_LCD         (1<<8)
#define AIC_PIOA        (1<<7)
#define AIC_PIOA        (1<<7)
#define AIC_TC2         (1<<6)
#define AIC_TC2         (1<<6)
#define AIC_TC1         (1<<5)
#define AIC_TC1         (1<<5)
#define AIC_TC0         (1<<4)
#define AIC_TC0         (1<<4)
#define AIC_UA          (1<<3)
#define AIC_UA          (1<<3)
#define AIC_SWI         (1<<2)
#define AIC_SWI         (1<<2)
#define AIC_WD          (1<<1)
#define AIC_WD          (1<<1)
#define AIC_FIQ         (1)
#define AIC_FIQ         (1)
/*
/*
        PIOA registers
        PIOA registers
*/
*/
#define PIOA_PER        (PIOA_BASE+0)                   
#define PIOA_PER        (PIOA_BASE+0)                   
#define PIOA_PDR        (PIOA_BASE+0x4)                 
#define PIOA_PDR        (PIOA_BASE+0x4)                 
#define PIOA_PSR        (PIOA_BASE+0x8)                 
#define PIOA_PSR        (PIOA_BASE+0x8)                 
 
 
#define PIOA_OER        (PIOA_BASE+0x10)                
#define PIOA_OER        (PIOA_BASE+0x10)                
#define PIOA_ODR        (PIOA_BASE+0x14)                
#define PIOA_ODR        (PIOA_BASE+0x14)                
#define PIOA_OSR        (PIOA_BASE+0x18)                
#define PIOA_OSR        (PIOA_BASE+0x18)                
 
 
#define PIOA_IFER       (PIOA_BASE+0x20)                
#define PIOA_IFER       (PIOA_BASE+0x20)                
#define PIOA_IFDR       (PIOA_BASE+0x24)                
#define PIOA_IFDR       (PIOA_BASE+0x24)                
#define PIOA_IFSR       (PIOA_BASE+0x28)                
#define PIOA_IFSR       (PIOA_BASE+0x28)                
 
 
#define PIOA_SODR       (PIOA_BASE+0x30)                
#define PIOA_SODR       (PIOA_BASE+0x30)                
#define PIOA_CODR       (PIOA_BASE+0x34)                
#define PIOA_CODR       (PIOA_BASE+0x34)                
#define PIOA_ODSR       (PIOA_BASE+0x38)                
#define PIOA_ODSR       (PIOA_BASE+0x38)                
 
 
#define PIOA_PDSR       (PIOA_BASE+0x3C)                
#define PIOA_PDSR       (PIOA_BASE+0x3C)                
 
 
#define PIOA_IER        (PIOA_BASE+0x40)                
#define PIOA_IER        (PIOA_BASE+0x40)                
#define PIOA_IDR        (PIOA_BASE+0x44)                
#define PIOA_IDR        (PIOA_BASE+0x44)                
#define PIOA_IMR        (PIOA_BASE+0x48)                
#define PIOA_IMR        (PIOA_BASE+0x48)                
#define PIOA_ISR        (PIOA_BASE+0x4C)                
#define PIOA_ISR        (PIOA_BASE+0x4C)                
 
 
/* PIOA bit allocation */
/* PIOA bit allocation */
#define PIOA_TCLK0      (1<<8)                                  
#define PIOA_TCLK0      (1<<8)                                  
#define PIOA_TI0A0      (1<<9)                                  
#define PIOA_TI0A0      (1<<9)                                  
#define PIOA_TI0B0      (1<<10)                                 
#define PIOA_TI0B0      (1<<10)                                 
#define PIOA_SCLKA      (1<<11)                                 
#define PIOA_SCLKA      (1<<11)                                 
#define PIOA_NPCS1      (1<<12)                                 
#define PIOA_NPCS1      (1<<12)                                 
#define PIOA_SCLKB      (1<<13)                                 
#define PIOA_SCLKB      (1<<13)                                 
#define PIOA_NPCS2      (1<<14)                                 
#define PIOA_NPCS2      (1<<14)                                 
#define PIOA_NPCS3      (1<<15)                                 
#define PIOA_NPCS3      (1<<15)                                 
#define PIOA_TCLK2      (1<<16)                                 
#define PIOA_TCLK2      (1<<16)                                 
#define PIOA_TIOA2      (1<<17)                                 
#define PIOA_TIOA2      (1<<17)                                 
#define PIOA_TIOB2      (1<<18)                                 
#define PIOA_TIOB2      (1<<18)                                 
#define PIOA_ACLK       (1<<19)                                 
#define PIOA_ACLK       (1<<19)                                 
 
 
/*
/*
        PIOB registers
        PIOB registers
*/
*/
#define PIOB_PER        (PIOB_BASE+0)                   
#define PIOB_PER        (PIOB_BASE+0)                   
#define PIOB_PDR        (PIOB_BASE+0x4)                 
#define PIOB_PDR        (PIOB_BASE+0x4)                 
#define PIOB_PSR        (PIOB_BASE+0x8)                 
#define PIOB_PSR        (PIOB_BASE+0x8)                 
 
 
#define PIOB_OER        (PIOB_BASE+0x10)                
#define PIOB_OER        (PIOB_BASE+0x10)                
#define PIOB_ODR        (PIOB_BASE+0x14)                
#define PIOB_ODR        (PIOB_BASE+0x14)                
#define PIOB_OSR        (PIOB_BASE+0x18)                
#define PIOB_OSR        (PIOB_BASE+0x18)                
 
 
#define PIOB_IFER       (PIOB_BASE+0x20)                
#define PIOB_IFER       (PIOB_BASE+0x20)                
#define PIOB_IFDR       (PIOB_BASE+0x24)                
#define PIOB_IFDR       (PIOB_BASE+0x24)                
#define PIOB_IFSR       (PIOB_BASE+0x28)                
#define PIOB_IFSR       (PIOB_BASE+0x28)                
 
 
#define PIOB_SODR       (PIOB_BASE+0x30)                
#define PIOB_SODR       (PIOB_BASE+0x30)                
#define PIOB_CODR       (PIOB_BASE+0x34)                
#define PIOB_CODR       (PIOB_BASE+0x34)                
#define PIOB_ODSR       (PIOB_BASE+0x38)                
#define PIOB_ODSR       (PIOB_BASE+0x38)                
 
 
#define PIOB_PDSR       (PIOB_BASE+0x3C)                
#define PIOB_PDSR       (PIOB_BASE+0x3C)                
 
 
#define PIOB_IER        (PIOB_BASE+0x40)                
#define PIOB_IER        (PIOB_BASE+0x40)                
#define PIOB_IDR        (PIOB_BASE+0x44)                
#define PIOB_IDR        (PIOB_BASE+0x44)                
#define PIOB_IMR        (PIOB_BASE+0x48)                
#define PIOB_IMR        (PIOB_BASE+0x48)                
#define PIOB_ISR        (PIOB_BASE+0x4C)                
#define PIOB_ISR        (PIOB_BASE+0x4C)                
 
 
/* PIOB bit allocation */
/* PIOB bit allocation */
#define PIOB_TCLK1      (1)                                     
#define PIOB_TCLK1      (1)                                     
#define PIOB_TIOA1      (1<<1)                          
#define PIOB_TIOA1      (1<<1)                          
#define PIOB_TIOB1      (1<<2)                          
#define PIOB_TIOB1      (1<<2)                          
#define PIOB_NCTSA      (1<<3)                          
#define PIOB_NCTSA      (1<<3)                          
 
 
#define PIOB_NRIA       (1<<5)                          
#define PIOB_NRIA       (1<<5)                          
#define PIOB_NWDOVF     (1<<6)                          
#define PIOB_NWDOVF     (1<<6)                          
#define PIOB_NCE1       (1<<7)                          
#define PIOB_NCE1       (1<<7)                          
#define PIOB_NCE2       (1<<8)                          
#define PIOB_NCE2       (1<<8)                          
 
 
#ifndef __ASSEMBLER__
#ifndef __ASSEMBLER__
struct pio_regs{
struct pio_regs{
        u_32 per;
        u_32 per;
        u_32 pdr;
        u_32 pdr;
        u_32 psr;
        u_32 psr;
        u_32 res1;
        u_32 res1;
        u_32 oer;
        u_32 oer;
        u_32 odr;
        u_32 odr;
        u_32 osr;
        u_32 osr;
        u_32 res2;
        u_32 res2;
        u_32 ifer;
        u_32 ifer;
        u_32 ifdr;
        u_32 ifdr;
        u_32 ifsr;
        u_32 ifsr;
        u_32 res3;
        u_32 res3;
        u_32 sodr;
        u_32 sodr;
        u_32 codr;
        u_32 codr;
        u_32 odsr;
        u_32 odsr;
        u_32 pdsr;
        u_32 pdsr;
        u_32 ier;
        u_32 ier;
        u_32 idr;
        u_32 idr;
        u_32 imr;
        u_32 imr;
        u_32 isr;
        u_32 isr;
};
};
#endif
#endif
 
 
/*
/*
        Serial Peripheral Interface
        Serial Peripheral Interface
*/
*/
#define SP_CR           (SPI_BASE + 0)
#define SP_CR           (SPI_BASE + 0)
#define SP_MR           (SPI_BASE + 4)
#define SP_MR           (SPI_BASE + 4)
#define SP_RDR          (SPI_BASE + 8)
#define SP_RDR          (SPI_BASE + 8)
#define SP_TDR          (SPI_BASE + 0xC)
#define SP_TDR          (SPI_BASE + 0xC)
#define SP_SR           (SPI_BASE + 0x10)
#define SP_SR           (SPI_BASE + 0x10)
#define SP_IER          (SPI_BASE + 0x14)
#define SP_IER          (SPI_BASE + 0x14)
#define SP_IDR          (SPI_BASE + 0x18)
#define SP_IDR          (SPI_BASE + 0x18)
#define SP_IMR          (SPI_BASE + 0x1C)
#define SP_IMR          (SPI_BASE + 0x1C)
#define SP_CSR0         (SPI_BASE + 0x30)
#define SP_CSR0         (SPI_BASE + 0x30)
#define SP_CSR1         (SPI_BASE + 0x34)
#define SP_CSR1         (SPI_BASE + 0x34)
#define SP_CSR2         (SPI_BASE + 0x38)
#define SP_CSR2         (SPI_BASE + 0x38)
#define SP_CSR3         (SPI_BASE + 0x3C)
#define SP_CSR3         (SPI_BASE + 0x3C)
 
 
#ifndef __ASSEMBLER__
#ifndef __ASSEMBLER__
struct spi_regs{
struct spi_regs{
        u_32 cr;
        u_32 cr;
        u_32 mr;
        u_32 mr;
        u_32 rdr;
        u_32 rdr;
        u_32 tdr;
        u_32 tdr;
        u_32 sr;
        u_32 sr;
        u_32 ier;
        u_32 ier;
        u_32 idr;
        u_32 idr;
        u_32 imr;
        u_32 imr;
        u_32 res1;
        u_32 res1;
        u_32 res2;
        u_32 res2;
        u_32 res3;
        u_32 res3;
        u_32 res4;
        u_32 res4;
        u_32 csr0;
        u_32 csr0;
        u_32 csr1;
        u_32 csr1;
        u_32 csr2;
        u_32 csr2;
        u_32 csr3;
        u_32 csr3;
};
};
#endif
#endif
 
 
/* SPI control register */
/* SPI control register */
#define SPI_SWRST               (1<<7)
#define SPI_SWRST               (1<<7)
#define SPI_SPIDIS              (1<<1)
#define SPI_SPIDIS              (1<<1)
#define SPI_SPIEN               (1)
#define SPI_SPIEN               (1)
 
 
/* SPI mode register */
/* SPI mode register */
#define SPI_MSTR                (1)
#define SPI_MSTR                (1)
#define SPI_PS                  (1<<1)
#define SPI_PS                  (1<<1)
#define SPI_PCSDEC              (1<<2)
#define SPI_PCSDEC              (1<<2)
#define SPI_MCSK32              (1<<3)
#define SPI_MCSK32              (1<<3)
#define SPI_LLB                 (1<<7)
#define SPI_LLB                 (1<<7)
#define SPI_PCS(x)              (x<<16 & 0xF0000)
#define SPI_PCS(x)              (x<<16 & 0xF0000)
#define SPI_DLYBCS(x)   (x<<24 & 0xFF000000)
#define SPI_DLYBCS(x)   (x<<24 & 0xFF000000)
 
 
/* SPI Receive/Transmit Data Register */
/* SPI Receive/Transmit Data Register */
#define SPI_PCS_MASK    (0xF0000)
#define SPI_PCS_MASK    (0xF0000)
 
 
/* SPI Interrupt enable/disable and Status registers */
/* SPI Interrupt enable/disable and Status registers */
#define SPI_OVRES               (1<<3)
#define SPI_OVRES               (1<<3)
#define SPI_MODF                (1<<2)
#define SPI_MODF                (1<<2)
#define SPI_TDRE                (1<<1)
#define SPI_TDRE                (1<<1)
#define SPI_RDRF                (1)
#define SPI_RDRF                (1)
 
 
/* SPI chip selects registers */
/* SPI chip selects registers */
#define SPI_CPOL                (1)
#define SPI_CPOL                (1)
#define SPI_NCPHA               (1<<1)
#define SPI_NCPHA               (1<<1)
 
 
#define SPI_BITS_MASK   0xF0
#define SPI_BITS_MASK   0xF0
#define SPI_SCBR_MASK   0xF00
#define SPI_SCBR_MASK   0xF00
#define SPI_DLYBS_MASK  0xF0000
#define SPI_DLYBS_MASK  0xF0000
#define SPI_DLYBCT_MASK 0xF000000
#define SPI_DLYBCT_MASK 0xF000000
 
 
#define SPI_BITS(x)             (x<<4 & SPI_BITS_MASK)
#define SPI_BITS(x)             (x<<4 & SPI_BITS_MASK)
#define SPI_SCBR(x)             (x<<8 & SPI_SCBR_MASK)
#define SPI_SCBR(x)             (x<<8 & SPI_SCBR_MASK)
#define SPI_DLYBS(x)    (x<<16 & SPI_DLYBS_MASK)
#define SPI_DLYBS(x)    (x<<16 & SPI_DLYBS_MASK)
#define SPI_DLYBCT(x)   (x<<24 & SPI_DLYBCT_MASK)
#define SPI_DLYBCT(x)   (x<<24 & SPI_DLYBCT_MASK)
 
 
/*
/*
        Watchdog registers
        Watchdog registers
*/
*/
#define WDG_OMR         (WD_BASE + 0)
#define WDG_OMR         (WD_BASE + 0)
#define WDG_CMR         (WD_BASE + 4)
#define WDG_CMR         (WD_BASE + 4)
#define WDG_CR          (WD_BASE + 8)
#define WDG_CR          (WD_BASE + 8)
#define WDG_SR          (WD_BASE + 0xC)
#define WDG_SR          (WD_BASE + 0xC)
 
 
/* Overflow Mode Register */
/* Overflow Mode Register */
#define WDG_OKEY_MASK   0xFFF0
#define WDG_OKEY_MASK   0xFFF0
#define WDG_OKEY(x)             (x<<4 & WDG_OKEY_MASK)
#define WDG_OKEY(x)             (x<<4 & WDG_OKEY_MASK)
#define WDG_EXTEN               (1<<3)
#define WDG_EXTEN               (1<<3)
#define WDG_IRQEN               (1<<2)
#define WDG_IRQEN               (1<<2)
#define WDG_RSTEN               (1<<1)
#define WDG_RSTEN               (1<<1)
#define WDG_WDEN                (1)
#define WDG_WDEN                (1)
 
 
/* Clock Mode Register */
/* Clock Mode Register */
#define WDG_CKEY_MASK   0xFF80
#define WDG_CKEY_MASK   0xFF80
#define WDG_HPCV_MASK   0x3C
#define WDG_HPCV_MASK   0x3C
#define WDG_WDCLKS_MASK 0x3
#define WDG_WDCLKS_MASK 0x3
#define WDG_CKEY(x)             (x<<7 & WDG_CKEY_MASK)
#define WDG_CKEY(x)             (x<<7 & WDG_CKEY_MASK)
#define WDG_HPCV(x)             (x<<2 & WDG_HPCV_MASK)
#define WDG_HPCV(x)             (x<<2 & WDG_HPCV_MASK)
#define WDG_WDCLKS(x)   (x & WDG_WDCLKS_MASK)
#define WDG_WDCLKS(x)   (x & WDG_WDCLKS_MASK)
 
 
/* Control Register */
/* Control Register */
#define WDG_RESTART_KEY         0xC071
#define WDG_RESTART_KEY         0xC071
 
 
/* Status Register */
/* Status Register */
#define WDG_WDOVF               (1)
#define WDG_WDOVF               (1)
 
 
 
 
#endif
#endif
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.