etisserant@0: /*
etisserant@0: This file is part of CanFestival, a library implementing CanOpen Stack. 
etisserant@0: 
etisserant@0: Copyright (C): Edouard TISSERANT and Francis DUPIN
etisserant@0: 
etisserant@0: See COPYING file for copyrights details.
etisserant@0: 
etisserant@0: This library is free software; you can redistribute it and/or
etisserant@0: modify it under the terms of the GNU Lesser General Public
etisserant@0: License as published by the Free Software Foundation; either
etisserant@0: version 2.1 of the License, or (at your option) any later version.
etisserant@0: 
etisserant@0: This library is distributed in the hope that it will be useful,
etisserant@0: but WITHOUT ANY WARRANTY; without even the implied warranty of
etisserant@0: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
etisserant@0: Lesser General Public License for more details.
etisserant@0: 
etisserant@0: You should have received a copy of the GNU Lesser General Public
etisserant@0: License along with this library; if not, write to the Free Software
etisserant@0: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
etisserant@0: */
etisserant@0: /*
etisserant@0: Definition of the i/o ports of the Motorola HCS12
etisserant@0: */
etisserant@0: 
etisserant@0: /*
etisserant@0: On HCS12, ports are maped by default at 0X0000. (see ports.s)
etisserant@0: It can also be done at link stage with an option in
etisserant@0: command line : for example to map at 0X8000
etisserant@0: --defsym _io_ports8=0X8000 --defsym _io_ports16=0X8000
etisserant@0: Or in the file memory.x :
etisserant@0: PROVIDE (_io_ports8 = 0X8000);
etisserant@0: PROVIDE (_io_ports16 = 0X8000);
etisserant@0: (see portsaccess.h)
etisserant@0: I wonder if the value in INITRG must not be changed too 
etisserant@0: at run time.
etisserant@0: */
etisserant@0: 
etisserant@0: #ifndef __HCS12_PORTS__
etisserant@0: #define __HCS12_PORTS__
etisserant@0: 
etisserant@0: #define  PORTA     0x0000        
etisserant@0: #define  PORTB     0x0001    
etisserant@0: #define  DDRA      0x0002    
etisserant@0: #define  DDRB      0x0003    
etisserant@0: 
etisserant@0: #define  PORTE     0x0008    
etisserant@0: #define  DDRE      0x0009    
etisserant@0: #define  PEAR      0x000A    
etisserant@0: #define  MODE      0x000B    
etisserant@0: #define  PUCR      0x000C    
etisserant@0: #define  RDRIV     0x000D    
etisserant@0: #define  EBICTL    0x000E    
etisserant@0: 
etisserant@0: #define  INITRM    0x0010    
etisserant@0: #define  INITRG    0x0011    
etisserant@0: #define  INITEE    0x0012    
etisserant@0: #define  MISC      0x0013    
etisserant@0: #define  MTST0     0x0014    
etisserant@0: #define  ITCR      0x0015    
etisserant@0: #define  ITEST     0x0016    
etisserant@0: #define  MTST1     0x0017    
etisserant@0: 
etisserant@0: #define  PARTIDH   0x001A    
etisserant@0: #define  PARTIDL   0x001B    
etisserant@0: #define  MEMSIZ0   0x001C    
etisserant@0: #define  MEMSIZ1   0x001D    
etisserant@0: #define  INTCR     0x001E    
etisserant@0: #define  HPRIO     0x001F    
etisserant@0: 
etisserant@0: #define  BKPCT0    0x0028    
etisserant@0: #define  BKPCT1    0x0029    
etisserant@0: #define  BKP0X     0x002A    
etisserant@0: #define  BKP0H     0x002B    
etisserant@0: #define  BKP0L     0x002C    
etisserant@0: #define  BKP1X     0x002D    
etisserant@0: #define  BKP1H     0x002E    
etisserant@0: #define  BKP1L     0x002F    
etisserant@0: #define  PPAGE     0x0030    
etisserant@0: 
etisserant@0: #define  PORTK     0x0032    
etisserant@0: #define  DDRK      0x0033    
etisserant@0: #define  SYNR      0x0034    
etisserant@0: #define  REFDV     0x0035    
etisserant@0: #define  CTFLG     0x0036    
etisserant@0: #define  CRGFLG    0x0037    
etisserant@0: #define  CRGINT    0x0038    
etisserant@0: #define  CLKSEL    0x0039    
etisserant@0: #define  PLLCTL    0x003A    
etisserant@0: #define  RTICTL    0x003B    
etisserant@0: #define  COPCTL    0x003C    
etisserant@0: #define  FORBYP    0x003D    
etisserant@0: #define  CTCTL     0x003E 
etisserant@0: #define  ARMCOP    0x003F    
etisserant@0: #define  TIOS      0x0040    
etisserant@0: #define  TCFORC    0x0041    
etisserant@0: #define  TOC7M     0x0042    
etisserant@0: #define  TOC7D     0x0043    
etisserant@0: #define  TCNTH     0x0044
etisserant@0: #define  TCNTL     0x0045
etisserant@0: #define  TSCR1     0x0046    
etisserant@0: #define  TTOV      0x0047    
etisserant@0: #define  TCTL1     0x0048    
etisserant@0: #define  TCTL2     0x0049    
etisserant@0: #define  TCTL3     0x004A    
etisserant@0: #define  TCTL4     0x004B    
etisserant@0: #define  TIE       0x004C    
etisserant@0: #define  TSCR2     0x004D    
etisserant@0: #define  TFLG1     0x004E    
etisserant@0: #define  TFLG2     0x004F    
etisserant@0: #define  TC0H      0x0050
etisserant@0: #define  TC0L      0x0051
etisserant@0: #define  TC1H      0x0052
etisserant@0: #define  TC1L      0x0053
etisserant@0: #define  TC2H      0x0054
etisserant@0: #define  TC2L      0x0055
etisserant@0: #define  TC3H      0x0056
etisserant@0: #define  TC3L      0x0057
etisserant@0: #define  TC4H      0x0058
etisserant@0: #define  TC4L      0x0059
etisserant@0: #define  TC5H      0x005A
etisserant@0: #define  TC5L      0x005B
etisserant@0: #define  TC6H      0x005C
etisserant@0: #define  TC6L      0x005D
etisserant@0: #define  TC7H      0x005E
etisserant@0: #define  TC7L      0x005F
etisserant@0: #define  PACTL     0x0060    
etisserant@0: #define  PAFLG     0x0061    
etisserant@0: #define  PACN3H    0x0062
etisserant@0: #define  PACN2L    0x0063
etisserant@0: #define  PACN1H    0x0064
etisserant@0: #define  PACN0L    0x0065
etisserant@0: #define  MCCTL     0x0066    
etisserant@0: #define  MCFLG     0x0067    
etisserant@0: #define  ICPAR     0x0068    
etisserant@0: #define  DLYCT     0x0069    
etisserant@0: #define  ICOVW     0x006A    
etisserant@0: #define  ICSYS     0x006B    
etisserant@0: 
etisserant@0: #define  TIMTST    0x006D    
etisserant@0: 
etisserant@0: #define  PBCTL     0x0070    
etisserant@0: #define  PBFLG     0x0071    
etisserant@0: #define  PA3H      0x0072    
etisserant@0: #define  PA2H      0x0073    
etisserant@0: #define  PA1H      0x0074    
etisserant@0: #define  PA0H      0x0075    
etisserant@0: #define  MCCNTH    0x0076
etisserant@0: #define  MCCNTL    0x0077
etisserant@0: #define  TC0HH     0x0078
etisserant@0: #define  TC0HL     0x0079
etisserant@0: #define  TC1HH     0x007A
etisserant@0: #define  TC1HL     0x007B
etisserant@0: #define  TC2HH     0x007C
etisserant@0: #define  TC2HL     0x007D
etisserant@0: #define  TC3HH     0x007E
etisserant@0: 
etisserant@0: #define  ATD0CTL0  0x0080    
etisserant@0: #define  ATD00CTL1 0x0081     
etisserant@0: #define  ATD0CTL2  0x0082     
etisserant@0: #define  ATD0CTL3  0x0083    
etisserant@0: #define  ATD0CTL4  0x0084    
etisserant@0: #define  ATD0CTL5  0x0085    
etisserant@0: #define  ATD0STAT0 0x0086    
etisserant@0: #define  ATD0STAT1 0x0087    
etisserant@0: #define  ATD0TEST0 0x0088    
etisserant@0: #define  ATD0TEST1 0x0089    
etisserant@0: 
etisserant@0: #define  ATD0DIEN  0x008D    
etisserant@0: 
etisserant@0: #define  PORTAD0   0x008F    
etisserant@0: #define  ATD0DR0H  0x0090    
etisserant@0: #define  ATD0DR0L  0x0091    
etisserant@0: #define  ATD0DR1H  0x0092    
etisserant@0: #define  ATD0DR1L  0x0093    
etisserant@0: #define  ATD0DR2H  0x0094    
etisserant@0: #define  ATD0DR2L  0x0095    
etisserant@0: #define  ATD0DR3H  0x0096   
etisserant@0: #define  ATD0DR3L  0x0097    
etisserant@0: #define  ATD0DR4H  0x0098    
etisserant@0: #define  ATD0DR4L  0x0099    
etisserant@0: #define  ATD0DR5H  0x009A    
etisserant@0: #define  ATD0DR5L  0x009B    
etisserant@0: #define  ATD0DR6H  0x009C    
etisserant@0: #define  ATD0DR6L  0x009D    
etisserant@0: #define  ATD0DR7H  0x009E    
etisserant@0: #define  ATD0DR7L  0x009F    
etisserant@0: #define  PWME      0x00A0    
etisserant@0: #define  PWMPOL    0x00A1    
etisserant@0: #define  PWMCLK    0x00A2    
etisserant@0: #define  PWMPRCLK  0x00A3    
etisserant@0: #define  PWMCAE    0x00A4    
etisserant@0: #define  PWMCTL    0x00A5    
etisserant@0: #define  PWMTST    0x00A6    
etisserant@0: #define  PWMPRSC   0x00A7    
etisserant@0: #define  PWMSCLA   0x00A8    
etisserant@0: #define  PWMSCLB   0x00A9    
etisserant@0: #define  PWMSCNTA  0x00AA    
etisserant@0: #define  PWMSCNTB  0x00AB    
etisserant@0: #define  PWMCNT0   0x00AC    
etisserant@0: #define  PWMCNT1   0x00AD    
etisserant@0: #define  PWMCNT2   0x00AE    
etisserant@0: #define  PWMCNT3   0x00AF    
etisserant@0: #define  PWMCNT4   0x00B0    
etisserant@0: #define  PWMCNT5   0x00B1    
etisserant@0: #define  PWMCNT6   0x00B2    
etisserant@0: #define  PWMCNT7   0x00B3    
etisserant@0: #define  PWMPER0   0x00B4    
etisserant@0: #define  PWMPER1   0x00B5    
etisserant@0: #define  PWMPER2   0x00B6    
etisserant@0: #define  PWMPER3   0x00B7    
etisserant@0: #define  PWMPER4   0x00B8    
etisserant@0: #define  PWMPER5   0x00B9    
etisserant@0: #define  PWMPER6   0x00BA    
etisserant@0: #define  PWMPER7   0x00BB    
etisserant@0: #define  PWMDTY0   0x00BC    
etisserant@0: #define  PWMDTY1   0x00BD    
etisserant@0: #define  PWMDTY2   0x00BE    
etisserant@0: #define  PWMDTY3   0x00BF    
etisserant@0: #define  PWMDTY4   0x00C0    
etisserant@0: #define  PWMDTY5   0x00C1    
etisserant@0: #define  PWMDTY6   0x00C2    
etisserant@0: #define  PWMDTY7   0x00C3    
etisserant@0: #define  PWMSDN    0x00C4   
etisserant@0: 
etisserant@0: #define  SCI0BDH   0x00C8    
etisserant@0: #define  SCI0BDL   0x00C9    
etisserant@0: #define  SC0CR1    0x00CA    
etisserant@0: #define  SCI0CR2   0x00CB    
etisserant@0: #define  SCI0SR1   0x00CC    
etisserant@0: #define  SC0SR2    0x00CD    
etisserant@0: #define  SCI0DRH   0x00CE    
etisserant@0: #define  SCI0DRL   0x00CF    
etisserant@0: #define  SCI1BDH   0x00D0    
etisserant@0: #define  SCI1BDL   0x00D1    
etisserant@0: #define  SC1CR1    0x00D2    
etisserant@0: #define  SCI1CR2   0x00D3    
etisserant@0: #define  SCI1SR1   0x00D4    
etisserant@0: #define  SC1SR2    0x00D5    
etisserant@0: #define  SCI1DRH   0x00D6    
etisserant@0: #define  SCI1DRL   0x00D7    
etisserant@0: #define  SPI0CR1   0x00D8    
etisserant@0: #define  SPI0CR2   0x00D9    
etisserant@0: #define  SPI0BR    0x00DA    
etisserant@0: #define  SPI0SR    0x00DB   
etisserant@0: 
etisserant@0: #define  SPI0DR    0x00DD    
etisserant@0: 
etisserant@0: #define  IBAD      0x00E0    
etisserant@0: #define  IBFD      0x00E1    
etisserant@0: #define  IBCR      0x00E2    
etisserant@0: #define  IBSR      0x00E3    
etisserant@0: #define  IICDR     0x00E4    
etisserant@0: 
etisserant@0: #define  DLCBCR1   0x00E8    
etisserant@0: #define  DLCBSVR   0x00E9    
etisserant@0: #define  DLCBCR2   0x00EA    
etisserant@0: #define  DLCBDR    0x00EB    
etisserant@0: #define  DLCBARD   0x00EC    
etisserant@0: #define  DLCBRSR   0x00ED    
etisserant@0: #define  DLCSCR    0x00EE    
etisserant@0: #define  DLCBSTAT  0x00EF    
etisserant@0: #define  SPI1CR1   0x00F0    
etisserant@0: #define  SPI1CR2   0x00F1    
etisserant@0: #define  SPI1BR    0x00F2  
etisserant@0: #define  SPI1SR    0x00F3    
etisserant@0: 
etisserant@0: #define  SPI1DR    0x00F5    
etisserant@0: 
etisserant@0: #define  SPI2CR1   0x00F8    
etisserant@0: #define  SPI2CR2   0x00F9    
etisserant@0: #define  SPI2BR    0x00FA    
etisserant@0: #define  SPI2SR    0x00FB    
etisserant@0: 
etisserant@0: #define  SPI2DR    0x00FD    
etisserant@0: 
etisserant@0: #define  FCLKDIV   0x0100     
etisserant@0: #define  FSEC      0x0101    
etisserant@0: 
etisserant@0: #define  FCNFG     0x0103    
etisserant@0: #define  FPROT     0x0104    
etisserant@0: #define  FSTAT     0x0105    
etisserant@0: #define  FCMD      0x0106    
etisserant@0: 
etisserant@0: #define  ECLKDIV   0x0110   
etisserant@0: 
etisserant@0: #define  ECNFG     0x0113    
etisserant@0: #define  EPROT     0x0114    
etisserant@0: #define  ESTAT     0x0115    
etisserant@0: #define  ECMD      0x0116    
etisserant@0: 
etisserant@0: #define  ATD1CTL0  0x0120    
etisserant@0: #define  ATD1CTL1  0x0121    
etisserant@0: #define  ATD1CTL2  0x0122    
etisserant@0: #define  ATD1CTL3  0x0123    
etisserant@0: #define  ATD1CTL4  0x0124    
etisserant@0: #define  ATD1CTL5  0x0125    
etisserant@0: #define  ATD1STAT0 0x0126    
etisserant@0: #define  ATD1STAT1 0x0127    
etisserant@0: #define  ATD1TEST0 0x0128    
etisserant@0: #define  ATD1TEST1 0x0129    
etisserant@0: 
etisserant@0: #define  ATDDIEN   0x012D    
etisserant@0: 
etisserant@0: #define  PORTAD1   0x012F    
etisserant@0: #define  ATD1DR0H  0x0130    
etisserant@0: #define  ATD1DR0L  0x0131    
etisserant@0: #define  ATD1DR1H  0x0132    
etisserant@0: #define  ATD1DR1L  0x0133    
etisserant@0: #define  ATD1DR2H  0x0134    
etisserant@0: #define  ATD1DR2L  0x0135    
etisserant@0: #define  ATD1DR3H  0x0136   
etisserant@0: #define  ATD1DR3L  0x0137    
etisserant@0: #define  ATD1DR4H  0x0138    
etisserant@0: #define  ATD1DR4L  0x0139    
etisserant@0: #define  ATD1DR5H  0x013A    
etisserant@0: #define  ATD1DR5L  0x013B    
etisserant@0: #define  ATD1DR6H  0x013C    
etisserant@0: #define  ATD1DR6L  0x013D    
etisserant@0: #define  ATD1DR7H  0x013E    
etisserant@0: #define  ATD1DR7L  0x013F    
etisserant@0: #define  CAN0CTL0  0x0140    
etisserant@0: #define  CAN0CTL1  0x0141    
etisserant@0: #define  CAN0BTR0  0x0142    
etisserant@0: #define  CAN0BTR1  0x0143    
etisserant@0: #define  CAN0RFLG  0x0144    
etisserant@0: #define  CAN0RIER  0x0145    
etisserant@0: #define  CAN0TFLG  0x0146    
etisserant@0: #define  CAN0TIER  0x0147    
etisserant@0: #define  CAN0TARQ  0x0148    
etisserant@0: #define  CAN0TAAK  0x0149    
etisserant@0: #define  CAN0TBSEL 0x014A    
etisserant@0: #define  CAN0IDAC  0x014B    
etisserant@0: 
etisserant@0: #define  CAN0RXERR 0x014E     
etisserant@0: #define  CAN0TXERR 0x014F    
etisserant@0: #define  CAN0IDAR0 0x0150    
etisserant@0: #define  CAN0IDAR1 0x0151    
etisserant@0: #define  CAN0IDAR2 0x0152    
etisserant@0: #define  CAN0IDAR3 0x0153    
etisserant@0: #define  CAN0IDMR0 0x0154    
etisserant@0: #define  CAN0IDMR1 0x0155    
etisserant@0: #define  CAN0IDMR2 0x0156    
etisserant@0: #define  CAN0IDMR3 0x0157    
etisserant@0: #define  CAN0IDAR4 0x0158    
etisserant@0: #define  CAN0IDAR5 0x0159    
etisserant@0: #define  CAN0IDAR6 0x015A    
etisserant@0: #define  CAN0IDAR7 0x015B    
etisserant@0: #define  CAN0IDMR4 0x015C    
etisserant@0: #define  CAN0IDMR5 0x015D    
etisserant@0: #define  CAN0IDMR6 0x015E    
etisserant@0: #define  CAN0IDMR7 0x015F 
etisserant@0: #define  CAN0RXFG0 0x0160
etisserant@0: #define  CAN0RXFG1 0x0161
etisserant@0: #define  CAN0RXFG2 0x0162
etisserant@0: #define  CAN0RXFG3 0x0163
etisserant@0: #define  CAN0RXFG4 0x0164
etisserant@0: #define  CAN0RXFG5 0x0165
etisserant@0: #define  CAN0RXFG6 0x0166
etisserant@0: #define  CAN0RXFG7 0x0167
etisserant@0: #define  CAN0RXFG8 0x0168
etisserant@0: #define  CAN0RXFG9 0x0169
etisserant@0: #define  CAN0RXFGA 0x016A
etisserant@0: #define  CAN0RXFGB 0x016B
etisserant@0: #define  CAN0RXFGC 0x016C
etisserant@0: #define  CAN0RXFGD 0x016D
etisserant@0: #define  CAN0RXFGE 0x016E
etisserant@0: #define  CAN0RXFGF 0x016F
etisserant@0: #define  CAN0TXFG0 0x0170
etisserant@0: #define  CAN0TXFG1 0x0171
etisserant@0: #define  CAN0TXFG2 0x0172
etisserant@0: #define  CAN0TXFG3 0x0173
etisserant@0: #define  CAN0TXFG4 0x0174
etisserant@0: #define  CAN0TXFG5 0x0175
etisserant@0: #define  CAN0TXFG6 0x0176
etisserant@0: #define  CAN0TXFG7 0x0177
etisserant@0: #define  CAN0TXFG8 0x0178
etisserant@0: #define  CAN0TXFG9 0x0179
etisserant@0: #define  CAN0TXFGA 0x017A
etisserant@0: #define  CAN0TXFGB 0x017B
etisserant@0: #define  CAN0TXFGC 0x017C
etisserant@0: #define  CAN0TXFGD 0x017D
etisserant@0: #define  CAN0TXFGE 0x017E
etisserant@0: #define  CAN0TXFGF 0x017F 
etisserant@0:    
etisserant@0: #define  CAN1CTL0  0x0180    
etisserant@0: #define  CAN1CTL1  0x0181    
etisserant@0: #define  CAN1BTR0  0x0182      
etisserant@0: #define  CAN1BTR1  0x0183    
etisserant@0: #define  CAN1RFLG  0x0184    
etisserant@0: #define  CAN1RIER  0x0185    
etisserant@0: #define  CAN1TFLG  0x0186    
etisserant@0: #define  CAN1TIER  0x0187    
etisserant@0: #define  CAN1TARQ  0x0188    
etisserant@0: #define  CAN1TAAK  0x0189    
etisserant@0: #define  CAN1TBSEL 0x018A    
etisserant@0: #define  CAN1IDAC  0x018B      
etisserant@0: #define  CAN1RXERR 0x018E    
etisserant@0: #define  CAN1TXERR 0x018F    
etisserant@0: #define  CAN1IDAR0 0x0190    
etisserant@0: #define  CAN1IDAR1 0x0191    
etisserant@0: #define  CAN1IDAR2 0x0192    
etisserant@0: #define  CAN1IDAR3 0x0193    
etisserant@0: #define  CAN1IDMR0 0x0194    
etisserant@0: #define  CAN1IDMR1 0x0195    
etisserant@0: #define  CAN1IDMR2 0x0196    
etisserant@0: #define  CAN1IDMR3 0x0197    
etisserant@0: #define  CAN1IDAR4 0x0198    
etisserant@0: #define  CAN1IDAR5 0x0199   
etisserant@0: #define  CAN1IDAR6 0x019A    
etisserant@0: #define  CAN1IDAR7 0x019B    
etisserant@0: #define  CAN1IDMR4 0x019C    
etisserant@0: #define  CAN1IDMR5 0x019D    
etisserant@0: #define  CAN1IDMR6 0x019E    
etisserant@0: #define  CAN1IDMR7 0x019F
etisserant@0: 
etisserant@0: #define  CAN1RXFG0 0x01A0
etisserant@0: #define  CAN1RXFG1 0x01A1
etisserant@0: #define  CAN1RXFG2 0x01A2
etisserant@0: #define  CAN1RXFG3 0x01A3
etisserant@0: #define  CAN1RXFG4 0x01A4
etisserant@0: #define  CAN1RXFG5 0x01A5
etisserant@0: #define  CAN1RXFG6 0x01A6
etisserant@0: #define  CAN1RXFG7 0x01A7
etisserant@0: #define  CAN1RXFG8 0x01A8
etisserant@0: #define  CAN1RXFG9 0x01A9
etisserant@0: #define  CAN1RXFGA 0x01AA
etisserant@0: #define  CAN1RXFGB 0x01AB
etisserant@0: #define  CAN1RXFGC 0x01AC
etisserant@0: #define  CAN1RXFGD 0x01AD
etisserant@0: #define  CAN1RXFGE 0x01AE
etisserant@0: #define  CAN1RXFGF 0x01AF
etisserant@0: #define  CAN1TXFG0 0x01B0
etisserant@0: #define  CAN1TXFG1 0x01B1
etisserant@0: #define  CAN1TXFG2 0x01B2
etisserant@0: #define  CAN1TXFG3 0x01B3
etisserant@0: #define  CAN1TXFG4 0x01B4
etisserant@0: #define  CAN1TXFG5 0x01B5
etisserant@0: #define  CAN1TXFG6 0x01B6
etisserant@0: #define  CAN1TXFG7 0x01B7
etisserant@0: #define  CAN1TXFG8 0x01B8
etisserant@0: #define  CAN1TXFG9 0x01B9
etisserant@0: #define  CAN1TXFGA 0x01BA
etisserant@0: #define  CAN1TXFGB 0x01BB
etisserant@0: #define  CAN1TXFGC 0x01BC
etisserant@0: #define  CAN1TXFGD 0x01BD
etisserant@0: #define  CAN1TXFGE 0x01BE
etisserant@0: #define  CAN1TXFGF 0x01BF   
etisserant@0: #define  CAN2CTL0  0x01C0    
etisserant@0: #define  CAN2CTL1  0x01C1    
etisserant@0: #define  CAN2BTR0  0x01C2    
etisserant@0: #define  CAN2BTR1  0x01C3    
etisserant@0: #define  CAN2RFLG  0x01C4    
etisserant@0: #define  CAN2RIER  0x01C5    
etisserant@0: #define  CAN2TFLG  0x01C6    
etisserant@0: #define  CAN2TIER  0x01C7    
etisserant@0: #define  CAN2TARQ  0x01C8    
etisserant@0: #define  CAN2TAAK  0x01C9    
etisserant@0: #define  CAN2TBSEL 0x01CA    
etisserant@0: #define  CAN2IDAC  0x01CB    
etisserant@0: 
etisserant@0: #define  CAN2RXERR 0x01CE   
etisserant@0: #define  CAN2TXERR 0x01CF     
etisserant@0: #define  CAN2IDAR0 0x01D0    
etisserant@0: #define  CAN2IDAR1 0x01D1    
etisserant@0: #define  CAN2IDAR2 0x01D2    
etisserant@0: #define  CAN2IDAR3 0x01D3    
etisserant@0: #define  CAN2IDMR0 0x01D4    
etisserant@0: #define  CAN2IDMR1 0x01D5    
etisserant@0: #define  CAN2IDMR2 0x01D6    
etisserant@0: #define  CAN2IDMR3 0x01D7    
etisserant@0: #define  CAN2IDAR4 0x01D8    
etisserant@0: #define  CAN2IDAR5 0x01D9    
etisserant@0: #define  CAN2IDAR6 0x01DA    
etisserant@0: #define  CAN2IDAR7 0x01DB    
etisserant@0: #define  CAN2IDMR4 0x01DC    
etisserant@0: #define  CAN2IDMR5 0x01DD    
etisserant@0: #define  CAN2IDMR6 0x01DE    
etisserant@0: #define  CAN2IDMR7 0x01DF
etisserant@0: #define  CAN2RXFG0 0x01E0
etisserant@0: #define  CAN2RXFG1 0x01E1
etisserant@0: #define  CAN2RXFG2 0x01E2
etisserant@0: #define  CAN2RXFG3 0x01E3
etisserant@0: #define  CAN2RXFG4 0x01E4
etisserant@0: #define  CAN2RXFG5 0x01E5
etisserant@0: #define  CAN2RXFG6 0x01E6
etisserant@0: #define  CAN2RXFG7 0x01E7
etisserant@0: #define  CAN2RXFG8 0x01E8
etisserant@0: #define  CAN2RXFG9 0x01E9
etisserant@0: #define  CAN2RXFGA 0x01EA
etisserant@0: #define  CAN2RXFGB 0x01EB
etisserant@0: #define  CAN2RXFGC 0x01EC
etisserant@0: #define  CAN2RXFGD 0x01ED
etisserant@0: #define  CAN2RXFGE 0x01EE
etisserant@0: #define  CAN2RXFGF 0x01EF
etisserant@0: #define  CAN2TXFG0 0x01F0
etisserant@0: #define  CAN2TXFG1 0x01F1
etisserant@0: #define  CAN2TXFG2 0x01F2
etisserant@0: #define  CAN2TXFG3 0x01F3
etisserant@0: #define  CAN2TXFG4 0x01F4
etisserant@0: #define  CAN2TXFG5 0x01F5
etisserant@0: #define  CAN2TXFG6 0x01F6
etisserant@0: #define  CAN2TXFG7 0x01F7
etisserant@0: #define  CAN2TXFG8 0x01F8
etisserant@0: #define  CAN2TXFG9 0x01F9
etisserant@0: #define  CAN2TXFGA 0x01FA
etisserant@0: #define  CAN2TXFGB 0x01FB
etisserant@0: #define  CAN2TXFGC 0x01FC
etisserant@0: #define  CAN2TXFGD 0x01FD
etisserant@0: #define  CAN2TXFGE 0x01FE
etisserant@0: #define  CAN2TXFGF 0x01FF
etisserant@0: 
etisserant@0: #define  CAN3CTL0  0x0200    
etisserant@0: #define  CAN3CTL1  0x0201    
etisserant@0: #define  CAN3BTR0  0x0202    
etisserant@0: #define  CAN3BTR1  0x0203   
etisserant@0: #define  CAN3RFLG  0x0204    
etisserant@0: #define  CAN3RIER  0x0205    
etisserant@0: #define  CAN3TFLG  0x0206    
etisserant@0: #define  CAN3TIER  0x0207    
etisserant@0: #define  CAN3TARQ  0x0208    
etisserant@0: #define  CAN3TAAK  0x0209    
etisserant@0: #define  CAN3TBSEL 0x020A    
etisserant@0: #define  CAN3IDAC  0x020B    
etisserant@0: 
etisserant@0: #define  CAN3RXERR 0x020E    
etisserant@0: #define  CAN3TXERR 0x020F    
etisserant@0: #define  CAN3IDAR0 0x0210    
etisserant@0: #define  CAN3IDAR1 0x0211    
etisserant@0: #define  CAN3IDAR2 0x0212    
etisserant@0: #define  CAN3IDAR3 0x0213    
etisserant@0: #define  CAN3IDMR0 0x0214    
etisserant@0: #define  CAN3IDMR1 0x0215    
etisserant@0: #define  CAN3IDMR2 0x0216    
etisserant@0: #define  CAN3IDMR3 0x0217    
etisserant@0: #define  CAN3IDAR4 0x0218    
etisserant@0: #define  CAN3IDAR5 0x0219    
etisserant@0: #define  CAN3IDAR6 0x021A    
etisserant@0: #define  CAN3IDAR7 0x021B    
etisserant@0: #define  CAN3IDMR4 0x021C    
etisserant@0: #define  CAN3IDMR5 0x021D    
etisserant@0: #define  CAN3IDMR6 0x021E    
etisserant@0: #define  CAN3IDMR7 0x021F 
etisserant@0: 
etisserant@0: #define  CAN3RXFG0 0x0220
etisserant@0: #define  CAN3RXFG1 0x0221
etisserant@0: #define  CAN3RXFG2 0x0222
etisserant@0: #define  CAN3RXFG3 0x0223
etisserant@0: #define  CAN3RXFG4 0x0224
etisserant@0: #define  CAN3RXFG5 0x0225
etisserant@0: #define  CAN3RXFG6 0x0226
etisserant@0: #define  CAN3RXFG7 0x0227
etisserant@0: #define  CAN3RXFG8 0x0228
etisserant@0: #define  CAN3RXFG9 0x0229
etisserant@0: #define  CAN3RXFGA 0x022A
etisserant@0: #define  CAN3RXFGB 0x022B
etisserant@0: #define  CAN3RXFGC 0x022C
etisserant@0: #define  CAN3RXFGD 0x022D
etisserant@0: #define  CAN3RXFGE 0x022E
etisserant@0: #define  CAN3RXFGF 0x022F
etisserant@0: #define  CAN3TXFG0 0x0230
etisserant@0: #define  CAN3TXFG1 0x0231
etisserant@0: #define  CAN3TXFG2 0x0232
etisserant@0: #define  CAN3TXFG3 0x0233
etisserant@0: #define  CAN3TXFG4 0x0234
etisserant@0: #define  CAN3TXFG5 0x0235
etisserant@0: #define  CAN3TXFG6 0x0236
etisserant@0: #define  CAN3TXFG7 0x0237
etisserant@0: #define  CAN3TXFG8 0x0238
etisserant@0: #define  CAN3TXFG9 0x0239
etisserant@0: #define  CAN3TXFGA 0x023A
etisserant@0: #define  CAN3TXFGB 0x023B
etisserant@0: #define  CAN3TXFGC 0x023C
etisserant@0: #define  CAN3TXFGD 0x023D
etisserant@0: #define  CAN3TXFGE 0x023E
etisserant@0: #define  CAN3TXFGF 0x023F
etisserant@0: 
etisserant@0: #define  PTT       0x0240    
etisserant@0: #define  PTIT      0x0241    
etisserant@0: #define  DDRT      0x0242    
etisserant@0: #define  RDRT      0x0243    
etisserant@0: #define  PERT      0x0244    
etisserant@0: #define  PPST      0x0245    
etisserant@0: 
etisserant@0: #define  PTS       0x0248    
etisserant@0: #define  PTIS      0x0249    
etisserant@0: #define  DDRS      0x024A    
etisserant@0: #define  RDRS      0x024B    
etisserant@0: #define  PERS      0x024C    
etisserant@0: #define  PPSS      0x024D    
etisserant@0: #define  WOMS      0x024E    
etisserant@0: 
etisserant@0: #define  PTM       0x0250    
etisserant@0: #define  PTIM      0x0251    
etisserant@0: #define  DDRM      0x0252    
etisserant@0: #define  RDRM      0x0253    
etisserant@0: #define  PERM      0x0254    
etisserant@0: #define  PPSM      0x0255    
etisserant@0: #define  WOMM      0x0256    
etisserant@0: 
etisserant@0: #define  PTP       0x0258    
etisserant@0: #define  PTIP      0x0259    
etisserant@0: #define  DDRP      0x025A    
etisserant@0: #define  RDRP      0x025B    
etisserant@0: #define  PERP      0x025C    
etisserant@0: #define  PPSP      0x025D    
etisserant@0: #define  PIEP      0x025E    
etisserant@0: #define  PIFP      0x025F    
etisserant@0: #define  PTH       0x0260    
etisserant@0: #define  PTIH      0x0261    
etisserant@0: #define  DDRH      0x0262    
etisserant@0: #define  RDRH      0x0263    
etisserant@0: #define  PERH      0x0264    
etisserant@0: #define  PPSH      0x0265    
etisserant@0: #define  PIEH      0x0266  
etisserant@0: #define  PIFH      0x0267    
etisserant@0: #define  PTJ       0x0268    
etisserant@0: #define  PTIJ      0x0269    
etisserant@0: #define  DDRJ      0x026A    
etisserant@0: #define  RDRJ      0x026B    
etisserant@0: #define  PERJ      0x026C    
etisserant@0: #define  PPSJ      0x026D    
etisserant@0: #define  PIEJ      0x026E    
etisserant@0: #define  PIFJ      0x026F    
etisserant@0: 
etisserant@0: #define  CAN4CTL0  0x0280    
etisserant@0: #define  CAN4CTL1  0x0281    
etisserant@0: #define  CAN4BTR0  0x0282    
etisserant@0: #define  CAN4BTR1  0x0283    
etisserant@0: #define  CAN4RFLG  0x0284    
etisserant@0: #define  CAN4RIER  0x0285    
etisserant@0: #define  CAN4TFLG  0x0286    
etisserant@0: #define  CAN4TIER  0x0287    
etisserant@0: #define  CAN4TARQ  0x0288    
etisserant@0: #define  CAN4TAAK  0x0289    
etisserant@0: #define  CAN4TBSEL 0x028A    
etisserant@0: #define  CAN4IDAC  0x028B    
etisserant@0: 
etisserant@0: #define  CAN4RXERR 0x028E    
etisserant@0: #define  CAN4TXERR 0x028F    
etisserant@0: #define  CAN4IDAR0 0x0290    
etisserant@0: #define  CAN4IDAR1 0x0291    
etisserant@0: #define  CAN4IDAR2 0x0292    
etisserant@0: #define  CAN4IDAR3 0x0293    
etisserant@0: #define  CAN4IDMR0 0x0294    
etisserant@0: #define  CAN4IDMR1 0x0295    
etisserant@0: #define  CAN4IDMR2 0x0296    
etisserant@0: #define  CAN4IDMR3 0x0297    
etisserant@0: #define  CAN4IDAR4 0x0298    
etisserant@0: #define  CAN4IDAR5 0x0299    
etisserant@0: #define  CAN4IDAR6 0x029A    
etisserant@0: #define  CAN4IDAR7 0x029B    
etisserant@0: #define  CAN4IDMR4 0x029C    
etisserant@0: #define  CAN4IDMR5 0x029D    
etisserant@0: #define  CAN4IDMR6 0x029E    
etisserant@0: #define  CAN4IDMR7 0x029F  
etisserant@0: 
etisserant@0: #define  CAN4RXFG0 0x02A0
etisserant@0: #define  CAN4RXFG1 0x02A1
etisserant@0: #define  CAN4RXFG2 0x02A2
etisserant@0: #define  CAN4RXFG3 0x02A3
etisserant@0: #define  CAN4RXFG4 0x02A4
etisserant@0: #define  CAN4RXFG5 0x02A5
etisserant@0: #define  CAN4RXFG6 0x02A6
etisserant@0: #define  CAN4RXFG7 0x02A7
etisserant@0: #define  CAN4RXFG8 0x02A8
etisserant@0: #define  CAN4RXFG9 0x02A9
etisserant@0: #define  CAN4RXFGA 0x02AA
etisserant@0: #define  CAN4RXFGB 0x02AB
etisserant@0: #define  CAN4RXFGC 0x02AC
etisserant@0: #define  CAN4RXFGD 0x02AD
etisserant@0: #define  CAN4RXFGE 0x02AE
etisserant@0: #define  CAN4RXFGF 0x02AF
etisserant@0: #define  CAN4TXFG0 0x02B0
etisserant@0: #define  CAN4TXFG1 0x02B1
etisserant@0: #define  CAN4TXFG2 0x02B2
etisserant@0: #define  CAN4TXFG3 0x02B3
etisserant@0: #define  CAN4TXFG4 0x02B4
etisserant@0: #define  CAN4TXFG5 0x02B5
etisserant@0: #define  CAN4TXFG6 0x02B6
etisserant@0: #define  CAN4TXFG7 0x02B7
etisserant@0: #define  CAN4TXFG8 0x02B8
etisserant@0: #define  CAN4TXFG9 0x02B9
etisserant@0: #define  CAN4TXFGA 0x02BA
etisserant@0: #define  CAN4TXFGB 0x02BB
etisserant@0: #define  CAN4TXFGC 0x02BC
etisserant@0: #define  CAN4TXFGD 0x02BD
etisserant@0: #define  CAN4TXFGE 0x02BE
etisserant@0: #define  CAN4TXFGF 0x02BF
etisserant@0: 
etisserant@0: 
etisserant@0: 
etisserant@0: /*********************************************** 
etisserant@0: Constants for MSCAN
etisserant@0: ************************************************
etisserant@0: */
etisserant@0: 
etisserant@0: #define CAN0      0x0140  /* First address for MSCAN0                    */
etisserant@0: #define CAN1      0x0180  /* First address for MSCAN1                    */
etisserant@0: #define CAN2      0x01C0  /* First address for MSCAN2                    */
etisserant@0: #define CAN3      0x0200  /* First address for MSCAN3                    */
etisserant@0: #define CAN4      0x0280  /* First address for MSCAN4                    */
etisserant@0: 
etisserant@0: #define CANCTL0   0X00    /* Control register 0                          */
etisserant@0: #define CANCTL1   0X01    /* Control register 1                          */
etisserant@0: #define CANBTR0   0X02    /* Bus timing register 0                       */
etisserant@0: #define CANBTR1   0X03    /* Bus timing register 1                       */
etisserant@0: #define CANRFLG   0X04    /* Receiver flag register                      */
etisserant@0: #define CANRIER   0X05		/* Enable interruptions when reception    		 */	 
etisserant@0: #define CANTFLG   0X06    /* Transmit flag register                      */
etisserant@0: #define CANTIER   0X07		/* Enable interruptions when transmission 		 */	 
etisserant@0: #define CANTBSEL  0X0A    /* Select foreground buffer for transmit       */
etisserant@0: #define CANIDAC   0x0B    /* Identifier acceptance control register      */
etisserant@0: #define CANIDAR0  0x10    
etisserant@0: #define CANIDAR1  0x11    
etisserant@0: #define CANIDAR2  0x12    
etisserant@0: #define CANIDAR3  0x13    
etisserant@0: #define CANIDMR0  0x14    
etisserant@0: #define CANIDMR1  0x15    
etisserant@0: #define CANIDMR2  0x16    
etisserant@0: #define CANIDMR3  0x17    
etisserant@0: #define CANIDAR4  0x18    
etisserant@0: #define CANIDAR5  0x19    
etisserant@0: #define CANIDAR6  0x1A    
etisserant@0: #define CANIDAR7  0x1B    
etisserant@0: #define CANIDMR4  0x1C    
etisserant@0: #define CANIDMR5  0x1D    
etisserant@0: #define CANIDMR6  0x1E    
etisserant@0: #define CANIDMR7  0x1F  
etisserant@0: 
etisserant@0: /* Received foreground buffer */
etisserant@0: #define CANRCVID  0x20    /* Base of identifier registers                */
etisserant@0: #define CANRCVDTA 0x24    /* Base of data       registers                */
etisserant@0: #define CANRCVLEN 0x2C    /* Data length        register                 */
etisserant@0: 
etisserant@0: /* Transmit foreground buffer */
etisserant@0: #define CANTRSID  0x30    /* Base of identifier registers                */
etisserant@0: #define CANTRSDTA 0x34    /* Base of data       registers                */
etisserant@0: #define CANTRSLEN 0x3C    /* Data length        register                 */
etisserant@0: #define CANTRSPRI 0x3D    /* Priority           register                 */    	
etisserant@0: 
etisserant@0: 
etisserant@0: /* Constants for serials port */
etisserant@0: #define  SCI0      0x00C8
etisserant@0: #define  SCI1      0x00D0 
etisserant@0: 
etisserant@0: #define  SCIBDH    0x00   
etisserant@0: #define  SCIBDL    0x01    
etisserant@0: #define  SCICR1    0x02    
etisserant@0: #define  SCICR2    0x03    
etisserant@0: #define  SCISR1    0x04    
etisserant@0: #define  SCISR2    0x05    
etisserant@0: #define  SCIDRH    0x06    
etisserant@0: #define  SCIDRL    0x07 
etisserant@0: 
etisserant@0: 	   
etisserant@0: #endif  /* __HCS12_PORTS__  */	   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: 		   
etisserant@0: