mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 03:13:59 +00:00 
			
		
		
		
	 49148020bc
			
		
	
	
		49148020bc
		
	
	
	
	
		
			
			Merge header files for m68k and m68knommu to the single location:
    arch/m68k/include/asm
The majority of this patch was the result of the
script that is included in the changelog below.
The script was originally written by Arnd Bergman and
exten by me to cover a few more files.
When the header files differed the script uses the following:
The original m68k file is named <file>_mm.h  [mm for memory manager]
The m68knommu file is named <file>_no.h [no for no memory manager]
The files uses the following include guard:
This include gaurd works as the m68knommu toolchain set
the __uClinux__ symbol - so this should work in userspace too.
Merging the header files for m68k and m68knommu exposes the
(unexpected?) ABI differences thus it is easier to actually
identify these and thus to fix them.
The commit has been build tested with both a m68k and
a m68knommu toolchain - with success.
The commit has also been tested with "make headers_check"
and this patch fixes make headers_check for m68knommu.
The script used:
TARGET=arch/m68k/include/asm
SOURCE=arch/m68knommu/include/asm
INCLUDE="cachectl.h errno.h fcntl.h hwtest.h ioctls.h ipcbuf.h \
linkage.h math-emu.h md.h mman.h movs.h msgbuf.h openprom.h \
oplib.h poll.h posix_types.h resource.h rtc.h sembuf.h shmbuf.h \
shm.h shmparam.h socket.h sockios.h spinlock.h statfs.h stat.h \
termbits.h termios.h tlb.h types.h user.h"
EQUAL="auxvec.h cputime.h device.h emergency-restart.h futex.h \
ioctl.h irq_regs.h kdebug.h local.h mutex.h percpu.h \
sections.h topology.h"
NOMUUFILES="anchor.h bootstd.h coldfire.h commproc.h dbg.h \
elia.h flat.h m5206sim.h m520xsim.h m523xsim.h m5249sim.h \
m5272sim.h m527xsim.h m528xsim.h m5307sim.h m532xsim.h \
m5407sim.h m68360_enet.h m68360.h m68360_pram.h m68360_quicc.h \
m68360_regs.h MC68328.h MC68332.h MC68EZ328.h MC68VZ328.h \
mcfcache.h mcfdma.h mcfmbus.h mcfne.h mcfpci.h mcfpit.h \
mcfsim.h mcfsmc.h mcftimer.h mcfuart.h mcfwdebug.h \
nettel.h quicc_simple.h smp.h"
FILES="atomic.h bitops.h bootinfo.h bug.h bugs.h byteorder.h cache.h \
cacheflush.h checksum.h current.h delay.h div64.h \
dma-mapping.h dma.h elf.h entry.h fb.h fpu.h hardirq.h hw_irq.h io.h \
irq.h kmap_types.h machdep.h mc146818rtc.h mmu.h mmu_context.h \
module.h page.h page_offset.h param.h pci.h pgalloc.h \
pgtable.h processor.h ptrace.h scatterlist.h segment.h \
setup.h sigcontext.h siginfo.h signal.h string.h system.h swab.h \
thread_info.h timex.h tlbflush.h traps.h uaccess.h ucontext.h \
unaligned.h unistd.h"
mergefile() {
	BASE=${1%.h}
	git mv ${SOURCE}/$1 ${TARGET}/${BASE}_no.h
	git mv ${TARGET}/$1 ${TARGET}/${BASE}_mm.h
cat << EOF > ${TARGET}/$1
EOF
	git add ${TARGET}/$1
}
set -e
mkdir -p ${TARGET}
git mv include/asm-m68k/* ${TARGET}
rmdir include/asm-m68k
git rm ${SOURCE}/Kbuild
for F in $INCLUDE $EQUAL; do
	git rm ${SOURCE}/$F
done
for F in $NOMUUFILES; do
	git mv ${SOURCE}/$F ${TARGET}/$F
done
for F in $FILES ; do
	mergefile $F
done
rmdir arch/m68knommu/include/asm
rmdir arch/m68knommu/include
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
		
	
			
		
			
				
	
	
		
			363 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			363 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /***********************************
 | |
|  * $Id: m68360_quicc.h,v 1.1 2002/03/02 15:01:07 gerg Exp $
 | |
|  ***********************************
 | |
|  *
 | |
|  ***************************************
 | |
|  * Definitions of QUICC memory structures
 | |
|  ***************************************
 | |
|  */
 | |
| 
 | |
| #ifndef __M68360_QUICC_H
 | |
| #define __M68360_QUICC_H
 | |
| 
 | |
| /*
 | |
|  * include registers and
 | |
|  * parameter ram definitions files
 | |
|  */
 | |
| #include <asm/m68360_regs.h>
 | |
| #include <asm/m68360_pram.h>
 | |
| 
 | |
| 
 | |
| 
 | |
| /* Buffer Descriptors */
 | |
| typedef struct quicc_bd {
 | |
|     volatile unsigned short     status;
 | |
|     volatile unsigned short     length;
 | |
|     volatile unsigned char      *buf;     /* WARNING: This is only true if *char is 32 bits */
 | |
| } QUICC_BD;
 | |
| 
 | |
| 
 | |
| #ifdef MOTOROLA_ORIGINAL
 | |
| struct user_data {
 | |
|     /* BASE + 0x000: user data memory */
 | |
|     volatile unsigned char      udata_bd_ucode[0x400]; /*user data bd's Ucode*/
 | |
|     volatile unsigned char      udata_bd[0x200];       /*user data Ucode     */
 | |
|     volatile unsigned char      ucode_ext[0x100];      /*Ucode Extention ram */
 | |
|     volatile unsigned char      RESERVED1[0x500];      /* Reserved area      */
 | |
| };
 | |
| #else
 | |
| struct user_data {
 | |
|     /* BASE + 0x000: user data memory */
 | |
|     volatile unsigned char      udata_bd_ucode[0x400]; /* user data, bds, Ucode*/
 | |
|     volatile unsigned char      udata_bd1[0x200];       /* user, bds */
 | |
|     volatile unsigned char      ucode_bd_scratch[0x100]; /* user, bds, ucode scratch */
 | |
|     volatile unsigned char      udata_bd2[0x100];       /* user, bds */
 | |
|     volatile unsigned char      RESERVED1[0x400];      /* Reserved area      */
 | |
| };
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * internal ram
 | |
|  */
 | |
| typedef struct quicc {
 | |
| 	union {
 | |
| 		struct quicc32_pram ch_pram_tbl[32];	/* 32*64(bytes) per channel */	
 | |
| 		struct user_data		u;
 | |
| 	}ch_or_u;	/* multipul or user space */
 | |
| 
 | |
|     /* BASE + 0xc00: PARAMETER RAM */
 | |
| 	union {
 | |
| 		struct scc_pram {
 | |
| 			union {
 | |
| 				struct hdlc_pram        h;
 | |
| 				struct uart_pram        u;
 | |
| 				struct bisync_pram      b;
 | |
| 				struct transparent_pram t;
 | |
| 				unsigned char   RESERVED66[0x70];
 | |
| 			} pscc;               /* scc parameter area (protocol dependent) */
 | |
| 			union {
 | |
| 				struct {
 | |
| 					unsigned char       RESERVED70[0x10];
 | |
| 					struct spi_pram     spi;
 | |
| 					unsigned char       RESERVED72[0x8];
 | |
| 					struct timer_pram   timer;
 | |
| 				} timer_spi;
 | |
| 				struct {
 | |
| 					struct idma_pram idma;
 | |
| 					unsigned char       RESERVED67[0x4];
 | |
| 					union {
 | |
| 						struct smc_uart_pram u;
 | |
| 						struct smc_trnsp_pram t;
 | |
| 					} psmc;
 | |
| 				} idma_smc;
 | |
| 			} pothers;
 | |
| 		} scc;
 | |
| 		struct ethernet_pram    enet_scc;
 | |
| 		struct global_multi_pram        m;
 | |
| 		unsigned char   pr[0x100];
 | |
| 	} pram[4];
 | |
| 
 | |
|     /* reserved */
 | |
| 
 | |
|     /* BASE + 0x1000: INTERNAL REGISTERS */
 | |
|     /* SIM */
 | |
|     volatile unsigned long      sim_mcr;        /* module configuration reg */
 | |
|     volatile unsigned short     sim_simtr;      /* module test register     */
 | |
|     volatile unsigned char      RESERVED2[0x2]; /* Reserved area            */
 | |
|     volatile unsigned char      sim_avr;        /* auto vector reg          */
 | |
|     volatile unsigned char      sim_rsr;        /* reset status reg         */
 | |
|     volatile unsigned char      RESERVED3[0x2]; /* Reserved area            */
 | |
|     volatile unsigned char      sim_clkocr;     /* CLCO control register    */
 | |
|     volatile unsigned char      RESERVED62[0x3];        /* Reserved area    */
 | |
|     volatile unsigned short     sim_pllcr;      /* PLL control register     */
 | |
|     volatile unsigned char      RESERVED63[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     sim_cdvcr;      /* Clock devider control register */
 | |
|     volatile unsigned short     sim_pepar;      /* Port E pin assignment register */
 | |
|     volatile unsigned char      RESERVED64[0xa];        /* Reserved area    */
 | |
|     volatile unsigned char      sim_sypcr;      /* system protection control*/
 | |
|     volatile unsigned char      sim_swiv;       /* software interrupt vector*/
 | |
|     volatile unsigned char      RESERVED6[0x2]; /* Reserved area            */
 | |
|     volatile unsigned short     sim_picr;       /* periodic interrupt control reg */
 | |
|     volatile unsigned char      RESERVED7[0x2]; /* Reserved area            */
 | |
|     volatile unsigned short     sim_pitr;       /* periodic interrupt timing reg */
 | |
|     volatile unsigned char      RESERVED8[0x3]; /* Reserved area            */
 | |
|     volatile unsigned char      sim_swsr;       /* software service         */
 | |
|     volatile unsigned long      sim_bkar;       /* breakpoint address register*/
 | |
|     volatile unsigned long      sim_bkcr;       /* breakpoint control register*/
 | |
|     volatile unsigned char      RESERVED10[0x8];        /* Reserved area    */
 | |
|     /* MEMC */
 | |
|     volatile unsigned long      memc_gmr;       /* Global memory register   */
 | |
|     volatile unsigned short     memc_mstat;     /* MEMC status register     */
 | |
|     volatile unsigned char      RESERVED11[0xa];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br0;       /* base register 0          */
 | |
|     volatile unsigned long      memc_or0;       /* option register 0        */
 | |
|     volatile unsigned char      RESERVED12[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br1;       /* base register 1          */
 | |
|     volatile unsigned long      memc_or1;       /* option register 1        */
 | |
|     volatile unsigned char      RESERVED13[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br2;       /* base register 2          */
 | |
|     volatile unsigned long      memc_or2;       /* option register 2        */
 | |
|     volatile unsigned char      RESERVED14[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br3;       /* base register 3          */
 | |
|     volatile unsigned long      memc_or3;       /* option register 3        */
 | |
|     volatile unsigned char      RESERVED15[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br4;       /* base register 3          */
 | |
|     volatile unsigned long      memc_or4;       /* option register 3        */
 | |
|     volatile unsigned char      RESERVED16[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br5;       /* base register 3          */
 | |
|     volatile unsigned long      memc_or5;       /* option register 3        */
 | |
|     volatile unsigned char      RESERVED17[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br6;       /* base register 3          */
 | |
|     volatile unsigned long      memc_or6;       /* option register 3        */
 | |
|     volatile unsigned char      RESERVED18[0x8];        /* Reserved area    */
 | |
|     volatile unsigned long      memc_br7;       /* base register 3          */
 | |
|     volatile unsigned long      memc_or7;       /* option register 3        */
 | |
|     volatile unsigned char      RESERVED9[0x28];        /* Reserved area    */
 | |
|     /* TEST */
 | |
|     volatile unsigned short     test_tstmra;    /* master shift a           */
 | |
|     volatile unsigned short     test_tstmrb;    /* master shift b           */
 | |
|     volatile unsigned short     test_tstsc;     /* shift count              */
 | |
|     volatile unsigned short     test_tstrc;     /* repetition counter       */
 | |
|     volatile unsigned short     test_creg;      /* control                  */
 | |
|     volatile unsigned short     test_dreg;      /* destributed register     */
 | |
|     volatile unsigned char      RESERVED58[0x404];      /* Reserved area    */
 | |
|     /* IDMA1 */
 | |
|     volatile unsigned short     idma_iccr;      /* channel configuration reg*/
 | |
|     volatile unsigned char      RESERVED19[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     idma1_cmr;      /* dma mode reg             */
 | |
|     volatile unsigned char      RESERVED68[0x2];        /* Reserved area    */
 | |
|     volatile unsigned long      idma1_sapr;     /* dma source addr ptr      */
 | |
|     volatile unsigned long      idma1_dapr;     /* dma destination addr ptr */
 | |
|     volatile unsigned long      idma1_bcr;      /* dma byte count reg       */
 | |
|     volatile unsigned char      idma1_fcr;      /* function code reg        */
 | |
|     volatile unsigned char      RESERVED20;     /* Reserved area            */
 | |
|     volatile unsigned char      idma1_cmar;     /* channel mask reg         */
 | |
|     volatile unsigned char      RESERVED21;     /* Reserved area            */
 | |
|     volatile unsigned char      idma1_csr;      /* channel status reg       */
 | |
|     volatile unsigned char      RESERVED22[0x3];        /* Reserved area    */
 | |
|     /* SDMA */
 | |
|     volatile unsigned char      sdma_sdsr;      /* status reg               */
 | |
|     volatile unsigned char      RESERVED23;     /* Reserved area            */
 | |
|     volatile unsigned short     sdma_sdcr;      /* configuration reg        */
 | |
|     volatile unsigned long      sdma_sdar;      /* address reg              */
 | |
|     /* IDMA2 */
 | |
|     volatile unsigned char      RESERVED69[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     idma2_cmr;      /* dma mode reg             */
 | |
|     volatile unsigned long      idma2_sapr;     /* dma source addr ptr      */
 | |
|     volatile unsigned long      idma2_dapr;     /* dma destination addr ptr */
 | |
|     volatile unsigned long      idma2_bcr;      /* dma byte count reg       */
 | |
|     volatile unsigned char      idma2_fcr;      /* function code reg        */
 | |
|     volatile unsigned char      RESERVED24;     /* Reserved area            */
 | |
|     volatile unsigned char      idma2_cmar;     /* channel mask reg         */
 | |
|     volatile unsigned char      RESERVED25;     /* Reserved area            */
 | |
|     volatile unsigned char      idma2_csr;      /* channel status reg       */
 | |
|     volatile unsigned char      RESERVED26[0x7];        /* Reserved area    */
 | |
|     /* Interrupt Controller */
 | |
|     volatile unsigned long      intr_cicr;      /* CP interrupt configuration reg*/
 | |
|     volatile unsigned long      intr_cipr;      /* CP interrupt pending reg */
 | |
|     volatile unsigned long      intr_cimr;      /* CP interrupt mask reg    */
 | |
|     volatile unsigned long      intr_cisr;      /* CP interrupt in service reg*/
 | |
|     /* Parallel I/O */
 | |
|     volatile unsigned short     pio_padir;      /* port A data direction reg */
 | |
|     volatile unsigned short     pio_papar;      /* port A pin assignment reg */
 | |
|     volatile unsigned short     pio_paodr;      /* port A open drain reg    */
 | |
|     volatile unsigned short     pio_padat;      /* port A data register     */
 | |
|     volatile unsigned char      RESERVED28[0x8];        /* Reserved area    */
 | |
|     volatile unsigned short     pio_pcdir;      /* port C data direction reg*/
 | |
|     volatile unsigned short     pio_pcpar;      /* port C pin assignment reg*/
 | |
|     volatile unsigned short     pio_pcso;       /* port C special options   */
 | |
|     volatile unsigned short     pio_pcdat;      /* port C data register     */
 | |
|     volatile unsigned short     pio_pcint;      /* port C interrupt cntrl reg */
 | |
|     volatile unsigned char      RESERVED29[0x16];       /* Reserved area    */
 | |
|     /* Timer */
 | |
|     volatile unsigned short     timer_tgcr;     /* timer global configuration reg */
 | |
|     volatile unsigned char      RESERVED30[0xe];        /* Reserved area    */
 | |
|     volatile unsigned short     timer_tmr1;     /* timer 1 mode reg         */
 | |
|     volatile unsigned short     timer_tmr2;     /* timer 2 mode reg         */
 | |
|     volatile unsigned short     timer_trr1;     /* timer 1 referance reg    */
 | |
|     volatile unsigned short     timer_trr2;     /* timer 2 referance reg    */
 | |
|     volatile unsigned short     timer_tcr1;     /* timer 1 capture reg      */
 | |
|     volatile unsigned short     timer_tcr2;     /* timer 2 capture reg      */
 | |
|     volatile unsigned short     timer_tcn1;     /* timer 1 counter reg      */
 | |
|     volatile unsigned short     timer_tcn2;     /* timer 2 counter reg      */
 | |
|     volatile unsigned short     timer_tmr3;     /* timer 3 mode reg         */
 | |
|     volatile unsigned short     timer_tmr4;     /* timer 4 mode reg         */
 | |
|     volatile unsigned short     timer_trr3;     /* timer 3 referance reg    */
 | |
|     volatile unsigned short     timer_trr4;     /* timer 4 referance reg    */
 | |
|     volatile unsigned short     timer_tcr3;     /* timer 3 capture reg      */
 | |
|     volatile unsigned short     timer_tcr4;     /* timer 4 capture reg      */
 | |
|     volatile unsigned short     timer_tcn3;     /* timer 3 counter reg      */
 | |
|     volatile unsigned short     timer_tcn4;     /* timer 4 counter reg      */
 | |
|     volatile unsigned short     timer_ter1;     /* timer 1 event reg        */
 | |
|     volatile unsigned short     timer_ter2;     /* timer 2 event reg        */
 | |
|     volatile unsigned short     timer_ter3;     /* timer 3 event reg        */
 | |
|     volatile unsigned short     timer_ter4;     /* timer 4 event reg        */
 | |
|     volatile unsigned char      RESERVED34[0x8];        /* Reserved area    */
 | |
|     /* CP */
 | |
|     volatile unsigned short     cp_cr;          /* command register         */
 | |
|     volatile unsigned char      RESERVED35[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     cp_rccr;        /* main configuration reg   */
 | |
|     volatile unsigned char      RESERVED37;     /* Reserved area            */
 | |
|     volatile unsigned char      cp_rmds;        /* development support status reg */
 | |
|     volatile unsigned long      cp_rmdr;        /* development support control reg */
 | |
|     volatile unsigned short     cp_rctr1;       /* ram break register 1     */
 | |
|     volatile unsigned short     cp_rctr2;       /* ram break register 2     */
 | |
|     volatile unsigned short     cp_rctr3;       /* ram break register 3     */
 | |
|     volatile unsigned short     cp_rctr4;       /* ram break register 4     */
 | |
|     volatile unsigned char      RESERVED59[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     cp_rter;        /* RISC timers event reg    */
 | |
|     volatile unsigned char      RESERVED38[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     cp_rtmr;        /* RISC timers mask reg     */
 | |
|     volatile unsigned char      RESERVED39[0x14];       /* Reserved area    */
 | |
|     /* BRG */
 | |
|     union {
 | |
|         volatile unsigned long l;
 | |
|         struct {
 | |
|             volatile unsigned short BRGC_RESERV:14;
 | |
|             volatile unsigned short rst:1;
 | |
|             volatile unsigned short en:1;
 | |
|             volatile unsigned short extc:2;
 | |
|             volatile unsigned short atb:1;
 | |
|             volatile unsigned short cd:12;
 | |
|             volatile unsigned short div16:1;
 | |
|         } b;
 | |
|     } brgc[4];                                  /* BRG1-BRG4 configuration regs*/
 | |
|     /* SCC registers */
 | |
|     struct scc_regs {
 | |
|         union {
 | |
|             struct {
 | |
|                 /* Low word. */
 | |
|                 volatile unsigned short GSMR_RESERV2:1;
 | |
|                 volatile unsigned short edge:2;
 | |
|                 volatile unsigned short tci:1;
 | |
|                 volatile unsigned short tsnc:2;
 | |
|                 volatile unsigned short rinv:1;
 | |
|                 volatile unsigned short tinv:1;
 | |
|                 volatile unsigned short tpl:3;
 | |
|                 volatile unsigned short tpp:2;
 | |
|                 volatile unsigned short tend:1;
 | |
|                 volatile unsigned short tdcr:2;
 | |
|                 volatile unsigned short rdcr:2;
 | |
|                 volatile unsigned short renc:3;
 | |
|                 volatile unsigned short tenc:3;
 | |
|                 volatile unsigned short diag:2;
 | |
|                 volatile unsigned short enr:1;
 | |
|                 volatile unsigned short ent:1;
 | |
|                 volatile unsigned short mode:4;
 | |
|                 /* High word. */
 | |
|                 volatile unsigned short GSMR_RESERV1:14;
 | |
|                 volatile unsigned short pri:1;
 | |
|                 volatile unsigned short gde:1;
 | |
|                 volatile unsigned short tcrc:2;
 | |
|                 volatile unsigned short revd:1;
 | |
|                 volatile unsigned short trx:1;
 | |
|                 volatile unsigned short ttx:1;
 | |
|                 volatile unsigned short cdp:1;
 | |
|                 volatile unsigned short ctsp:1;
 | |
|                 volatile unsigned short cds:1;
 | |
|                 volatile unsigned short ctss:1;
 | |
|                 volatile unsigned short tfl:1;
 | |
|                 volatile unsigned short rfw:1;
 | |
|                 volatile unsigned short txsy:1;
 | |
|                 volatile unsigned short synl:2;
 | |
|                 volatile unsigned short rtsm:1;
 | |
|                 volatile unsigned short rsyn:1;
 | |
|             } b;
 | |
|             struct {
 | |
|                 volatile unsigned long low;
 | |
|                 volatile unsigned long high;
 | |
|             } w;
 | |
|         } scc_gsmr;                         /* SCC general mode reg         */
 | |
|         volatile unsigned short scc_psmr;   /* protocol specific mode reg   */
 | |
|         volatile unsigned char  RESERVED42[0x2]; /* Reserved area           */
 | |
|         volatile unsigned short scc_todr; /* SCC transmit on demand         */
 | |
|         volatile unsigned short scc_dsr;        /* SCC data sync reg        */
 | |
|         volatile unsigned short scc_scce;       /* SCC event reg            */
 | |
|         volatile unsigned char  RESERVED43[0x2];/* Reserved area            */
 | |
|         volatile unsigned short scc_sccm;       /* SCC mask reg             */
 | |
|         volatile unsigned char  RESERVED44[0x1];/* Reserved area            */
 | |
|         volatile unsigned char  scc_sccs;       /* SCC status reg           */
 | |
|         volatile unsigned char  RESERVED45[0x8]; /* Reserved area           */
 | |
|     } scc_regs[4];
 | |
|     /* SMC */
 | |
|     struct smc_regs {
 | |
|         volatile unsigned char  RESERVED46[0x2]; /* Reserved area           */
 | |
|         volatile unsigned short smc_smcmr;       /* SMC mode reg            */
 | |
|         volatile unsigned char  RESERVED60[0x2]; /* Reserved area           */
 | |
|         volatile unsigned char  smc_smce;        /* SMC event reg           */
 | |
|         volatile unsigned char  RESERVED47[0x3]; /* Reserved area           */
 | |
|         volatile unsigned char  smc_smcm;        /* SMC mask reg            */
 | |
|         volatile unsigned char  RESERVED48[0x5]; /* Reserved area           */
 | |
|     } smc_regs[2];
 | |
|     /* SPI */
 | |
|     volatile unsigned short     spi_spmode;     /* SPI mode reg             */
 | |
|     volatile unsigned char      RESERVED51[0x4];        /* Reserved area    */
 | |
|     volatile unsigned char      spi_spie;       /* SPI event reg            */
 | |
|     volatile unsigned char      RESERVED52[0x3];        /* Reserved area    */
 | |
|     volatile unsigned char      spi_spim;       /* SPI mask reg             */
 | |
|     volatile unsigned char      RESERVED53[0x2];        /* Reserved area    */
 | |
|     volatile unsigned char      spi_spcom;      /* SPI command reg          */
 | |
|     volatile unsigned char      RESERVED54[0x4];        /* Reserved area    */
 | |
|     /* PIP */
 | |
|     volatile unsigned short     pip_pipc;       /* pip configuration reg    */
 | |
|     volatile unsigned char      RESERVED65[0x2];        /* Reserved area    */
 | |
|     volatile unsigned short     pip_ptpr;       /* pip timing parameters reg */
 | |
|     volatile unsigned long      pip_pbdir;      /* port b data direction reg */
 | |
|     volatile unsigned long      pip_pbpar;      /* port b pin assignment reg */
 | |
|     volatile unsigned long      pip_pbodr;      /* port b open drain reg    */
 | |
|     volatile unsigned long      pip_pbdat;      /* port b data reg          */
 | |
|     volatile unsigned char      RESERVED71[0x18];       /* Reserved area    */
 | |
|     /* Serial Interface */
 | |
|     volatile unsigned long      si_simode;      /* SI mode register         */
 | |
|     volatile unsigned char      si_sigmr;       /* SI global mode register  */
 | |
|     volatile unsigned char      RESERVED55;     /* Reserved area            */
 | |
|     volatile unsigned char      si_sistr;       /* SI status register       */
 | |
|     volatile unsigned char      si_sicmr;       /* SI command register      */
 | |
|     volatile unsigned char      RESERVED56[0x4]; /* Reserved area           */
 | |
|     volatile unsigned long      si_sicr;        /* SI clock routing         */
 | |
|     volatile unsigned long      si_sirp;        /* SI ram pointers          */
 | |
|     volatile unsigned char      RESERVED57[0xc]; /* Reserved area           */
 | |
|     volatile unsigned short     si_siram[0x80]; /* SI routing ram          */
 | |
| } QUICC;
 | |
| 
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Local variables:
 | |
|  *  c-indent-level: 4
 | |
|  *  c-basic-offset: 4
 | |
|  *  tab-width: 4
 | |
|  * End:
 | |
|  */
 |