/* Coldfire C Header File
 * Copyright Freescale Semiconductor Inc
 * All rights reserved.
 *
 * 2007/03/19 Revision: 0.9
 */

#ifndef __MCF5282_GPTB_H__
#define __MCF5282_GPTB_H__


/*********************************************************************
*
* General Purpose Timer Module (GPT)
*
*********************************************************************/

/* Register read/write macros */
#define MCF_GPTB_GPTIOS                      (*(vuint8 *)(&__IPSBAR[0x1B0000]))
#define MCF_GPTB_GPTCFORC                    (*(vuint8 *)(&__IPSBAR[0x1B0001]))
#define MCF_GPTB_GPTOC3M                     (*(vuint8 *)(&__IPSBAR[0x1B0002]))
#define MCF_GPTB_GPTOC3D                     (*(vuint8 *)(&__IPSBAR[0x1B0003]))
#define MCF_GPTB_GPTCNT                      (*(vuint16*)(&__IPSBAR[0x1B0004]))
#define MCF_GPTB_GPTSCR1                     (*(vuint8 *)(&__IPSBAR[0x1B0006]))
#define MCF_GPTB_GPTTOV                      (*(vuint8 *)(&__IPSBAR[0x1B0008]))
#define MCF_GPTB_GPTCTL1                     (*(vuint8 *)(&__IPSBAR[0x1B0009]))
#define MCF_GPTB_GPTCTL2                     (*(vuint8 *)(&__IPSBAR[0x1B000B]))
#define MCF_GPTB_GPTIE                       (*(vuint8 *)(&__IPSBAR[0x1B000C]))
#define MCF_GPTB_GPTSCR2                     (*(vuint8 *)(&__IPSBAR[0x1B000D]))
#define MCF_GPTB_GPTFLG1                     (*(vuint8 *)(&__IPSBAR[0x1B000E]))
#define MCF_GPTB_GPTFLG2                     (*(vuint8 *)(&__IPSBAR[0x1B000F]))
#define MCF_GPTB_GPTC0                       (*(vuint16*)(&__IPSBAR[0x1B0010]))
#define MCF_GPTB_GPTC1                       (*(vuint16*)(&__IPSBAR[0x1B0012]))
#define MCF_GPTB_GPTC2                       (*(vuint16*)(&__IPSBAR[0x1B0014]))
#define MCF_GPTB_GPTC3                       (*(vuint16*)(&__IPSBAR[0x1B0016]))
#define MCF_GPTB_GPTPACTL                    (*(vuint8 *)(&__IPSBAR[0x1B0018]))
#define MCF_GPTB_GPTPAFLG                    (*(vuint8 *)(&__IPSBAR[0x1B0019]))
#define MCF_GPTB_GPTPACNT                    (*(vuint16*)(&__IPSBAR[0x1B001A]))
#define MCF_GPTB_GPTPORT                     (*(vuint8 *)(&__IPSBAR[0x1B001D]))
#define MCF_GPTB_GPTDDR                      (*(vuint8 *)(&__IPSBAR[0x1B001E]))
#define MCF_GPTB_GPTC(x)                     (*(vuint16*)(&__IPSBAR[0x1B0010 + ((x)*0x2)]))


/* Bit definitions and macros for MCF_GPTB_GPTIOS */
#define MCF_GPTB_GPTIOS_IOS0                 (0x1)
#define MCF_GPTB_GPTIOS_IOS1                 (0x2)
#define MCF_GPTB_GPTIOS_IOS2                 (0x4)
#define MCF_GPTB_GPTIOS_IOS3                 (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTCFORC */
#define MCF_GPTB_GPTCFORC_FOC0               (0x1)
#define MCF_GPTB_GPTCFORC_FOC1               (0x2)
#define MCF_GPTB_GPTCFORC_FOC2               (0x4)
#define MCF_GPTB_GPTCFORC_FOC3               (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTOC3M */
#define MCF_GPTB_GPTOC3M_OC3M0               (0x1)
#define MCF_GPTB_GPTOC3M_OC3M1               (0x2)
#define MCF_GPTB_GPTOC3M_OC3M2               (0x4)
#define MCF_GPTB_GPTOC3M_OC3M3               (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTOC3D */
#define MCF_GPTB_GPTOC3D_OC3D0               (0x1)
#define MCF_GPTB_GPTOC3D_OC3D1               (0x2)
#define MCF_GPTB_GPTOC3D_OC3D2               (0x4)
#define MCF_GPTB_GPTOC3D_OC3D3               (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTCNT */
#define MCF_GPTB_GPTCNT_CNTR(x)              (((x)&0xFFFF)<<0)

/* Bit definitions and macros for MCF_GPTB_GPTSCR1 */
#define MCF_GPTB_GPTSCR1_TFFCA               (0x10)
#define MCF_GPTB_GPTSCR1_GPTEN               (0x80)

/* Bit definitions and macros for MCF_GPTB_GPTTOV */
#define MCF_GPTB_GPTTOV_TOV0                 (0x1)
#define MCF_GPTB_GPTTOV_TOV1                 (0x2)
#define MCF_GPTB_GPTTOV_TOV2                 (0x4)
#define MCF_GPTB_GPTTOV_TOV3                 (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTCTL1 */
#define MCF_GPTB_GPTCTL1_OL0                 (0x1)
#define MCF_GPTB_GPTCTL1_OM0                 (0x2)
#define MCF_GPTB_GPTCTL1_OL1                 (0x4)
#define MCF_GPTB_GPTCTL1_OM1                 (0x8)
#define MCF_GPTB_GPTCTL1_OL2                 (0x10)
#define MCF_GPTB_GPTCTL1_OM2                 (0x20)
#define MCF_GPTB_GPTCTL1_OL3                 (0x40)
#define MCF_GPTB_GPTCTL1_OM3                 (0x80)
#define MCF_GPTB_GPTCTL1_OUTPUT0_NOTHING     (0)
#define MCF_GPTB_GPTCTL1_OUTPUT0_TOGGLE      (0x1)
#define MCF_GPTB_GPTCTL1_OUTPUT0_CLEAR       (0x2)
#define MCF_GPTB_GPTCTL1_OUTPUT0_SET         (0x3)
#define MCF_GPTB_GPTCTL1_OUTPUT1_NOTHING     (0)
#define MCF_GPTB_GPTCTL1_OUTPUT1_TOGGLE      (0x4)
#define MCF_GPTB_GPTCTL1_OUTPUT1_CLEAR       (0x8)
#define MCF_GPTB_GPTCTL1_OUTPUT1_SET         (0xC)
#define MCF_GPTB_GPTCTL1_OUTPUT2_NOTHING     (0)
#define MCF_GPTB_GPTCTL1_OUTPUT2_TOGGLE      (0x10)
#define MCF_GPTB_GPTCTL1_OUTPUT2_CLEAR       (0x20)
#define MCF_GPTB_GPTCTL1_OUTPUT2_SET         (0x30)
#define MCF_GPTB_GPTCTL1_OUTPUT3_NOTHING     (0)
#define MCF_GPTB_GPTCTL1_OUTPUT3_TOGGLE      (0x40)
#define MCF_GPTB_GPTCTL1_OUTPUT3_CLEAR       (0x80)
#define MCF_GPTB_GPTCTL1_OUTPUT3_SET         (0xC0)

/* Bit definitions and macros for MCF_GPTB_GPTCTL2 */
#define MCF_GPTB_GPTCTL2_EDG0A               (0x1)
#define MCF_GPTB_GPTCTL2_EDG0B               (0x2)
#define MCF_GPTB_GPTCTL2_EDG1A               (0x4)
#define MCF_GPTB_GPTCTL2_EDG1B               (0x8)
#define MCF_GPTB_GPTCTL2_EDG2A               (0x10)
#define MCF_GPTB_GPTCTL2_EDG2B               (0x20)
#define MCF_GPTB_GPTCTL2_EDG3A               (0x40)
#define MCF_GPTB_GPTCTL2_EDG3B               (0x80)
#define MCF_GPTB_GPTCTL2_INPUT0_DISABLED     (0)
#define MCF_GPTB_GPTCTL2_INPUT0_RISING       (0x1)
#define MCF_GPTB_GPTCTL2_INPUT0_FALLING      (0x2)
#define MCF_GPTB_GPTCTL2_INPUT0_ANY          (0x3)
#define MCF_GPTB_GPTCTL2_INPUT1_DISABLED     (0)
#define MCF_GPTB_GPTCTL2_INPUT1_RISING       (0x4)
#define MCF_GPTB_GPTCTL2_INPUT1_FALLING      (0x8)
#define MCF_GPTB_GPTCTL2_INPUT1_ANY          (0xC)
#define MCF_GPTB_GPTCTL2_INPUT2_DISABLED     (0)
#define MCF_GPTB_GPTCTL2_INPUT2_RISING       (0x10)
#define MCF_GPTB_GPTCTL2_INPUT2_FALLING      (0x20)
#define MCF_GPTB_GPTCTL2_INPUT2_ANY          (0x30)
#define MCF_GPTB_GPTCTL2_INPUT3_DISABLED     (0)
#define MCF_GPTB_GPTCTL2_INPUT3_RISING       (0x40)
#define MCF_GPTB_GPTCTL2_INPUT3_FALLING      (0x80)
#define MCF_GPTB_GPTCTL2_INPUT3_ANY          (0xC0)

/* Bit definitions and macros for MCF_GPTB_GPTIE */
#define MCF_GPTB_GPTIE_CI0                   (0x1)
#define MCF_GPTB_GPTIE_CI1                   (0x2)
#define MCF_GPTB_GPTIE_CI2                   (0x4)
#define MCF_GPTB_GPTIE_CI3                   (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTSCR2 */
#define MCF_GPTB_GPTSCR2_PR(x)               (((x)&0x7)<<0)
#define MCF_GPTB_GPTSCR2_PR_1                (0)
#define MCF_GPTB_GPTSCR2_PR_2                (0x1)
#define MCF_GPTB_GPTSCR2_PR_4                (0x2)
#define MCF_GPTB_GPTSCR2_PR_8                (0x3)
#define MCF_GPTB_GPTSCR2_PR_16               (0x4)
#define MCF_GPTB_GPTSCR2_PR_32               (0x5)
#define MCF_GPTB_GPTSCR2_PR_64               (0x6)
#define MCF_GPTB_GPTSCR2_PR_128              (0x7)
#define MCF_GPTB_GPTSCR2_TCRE                (0x8)
#define MCF_GPTB_GPTSCR2_RDPT                (0x10)
#define MCF_GPTB_GPTSCR2_PUPT                (0x20)
#define MCF_GPTB_GPTSCR2_TOI                 (0x80)

/* Bit definitions and macros for MCF_GPTB_GPTFLG1 */
#define MCF_GPTB_GPTFLG1_CF0                 (0x1)
#define MCF_GPTB_GPTFLG1_CF1                 (0x2)
#define MCF_GPTB_GPTFLG1_CF2                 (0x4)
#define MCF_GPTB_GPTFLG1_CF3                 (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTFLG2 */
#define MCF_GPTB_GPTFLG2_TOF                 (0x80)

/* Bit definitions and macros for MCF_GPTB_GPTC */
#define MCF_GPTB_GPTC_CCNT(x)                (((x)&0xFFFF)<<0)

/* Bit definitions and macros for MCF_GPTB_GPTPACTL */
#define MCF_GPTB_GPTPACTL_PAI                (0x1)
#define MCF_GPTB_GPTPACTL_PAOVI              (0x2)
#define MCF_GPTB_GPTPACTL_CLK(x)             (((x)&0x3)<<0x2)
#define MCF_GPTB_GPTPACTL_CLK_GPTPR          (0)
#define MCF_GPTB_GPTPACTL_CLK_PACLK          (0x1)
#define MCF_GPTB_GPTPACTL_CLK_PACLK_256      (0x2)
#define MCF_GPTB_GPTPACTL_CLK_PACLK_65536    (0x3)
#define MCF_GPTB_GPTPACTL_PEDGE              (0x10)
#define MCF_GPTB_GPTPACTL_PAMOD              (0x20)
#define MCF_GPTB_GPTPACTL_PAE                (0x40)

/* Bit definitions and macros for MCF_GPTB_GPTPAFLG */
#define MCF_GPTB_GPTPAFLG_PAIF               (0x1)
#define MCF_GPTB_GPTPAFLG_PAOVF              (0x2)

/* Bit definitions and macros for MCF_GPTB_GPTPACNT */
#define MCF_GPTB_GPTPACNT_PACNT(x)           (((x)&0xFFFF)<<0)

/* Bit definitions and macros for MCF_GPTB_GPTPORT */
#define MCF_GPTB_GPTPORT_PORTT0              (0x1)
#define MCF_GPTB_GPTPORT_PORTT1              (0x2)
#define MCF_GPTB_GPTPORT_PORTT2              (0x4)
#define MCF_GPTB_GPTPORT_PORTT3              (0x8)

/* Bit definitions and macros for MCF_GPTB_GPTDDR */
#define MCF_GPTB_GPTDDR_DDRT0                (0x1)
#define MCF_GPTB_GPTDDR_DDRT1                (0x2)
#define MCF_GPTB_GPTDDR_DDRT2                (0x4)
#define MCF_GPTB_GPTDDR_DDRT3                (0x8)


#endif /* __MCF5282_GPTB_H__ */
