|  | /* | 
|  | * mcftimer.h -- ColdFire internal TIMER support defines. | 
|  | * | 
|  | * Based on mcftimer.h of uCLinux distribution: | 
|  | *      (C) Copyright 1999-2002, Greg Ungerer (gerg@snapgear.com) | 
|  | *      (C) Copyright 2000, Lineo Inc. (www.lineo.com) | 
|  | * | 
|  | * See file CREDITS for list of people who contributed to this | 
|  | * project. | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU General Public License as | 
|  | * published by the Free Software Foundation; either version 2 of | 
|  | * the License, or (at your option) any later version. | 
|  | * | 
|  | * This program is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | * GNU General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU General Public License | 
|  | * along with this program; if not, write to the Free Software | 
|  | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 
|  | * MA 02111-1307 USA | 
|  | */ | 
|  |  | 
|  | /****************************************************************************/ | 
|  | #ifndef	mcftimer_h | 
|  | #define	mcftimer_h | 
|  | /****************************************************************************/ | 
|  |  | 
|  | #include <linux/config.h> | 
|  |  | 
|  | /* | 
|  | *	Get address specific defines for this ColdFire member. | 
|  | */ | 
|  | #if defined(CONFIG_M5204) || defined(CONFIG_M5206) || defined(CONFIG_M5206e) | 
|  | #define	MCFTIMER_BASE1		0x100		/* Base address of TIMER1 */ | 
|  | #define	MCFTIMER_BASE2		0x120		/* Base address of TIMER2 */ | 
|  | #elif defined(CONFIG_M5272) | 
|  | #define MCFTIMER_BASE1		0x200           /* Base address of TIMER1 */ | 
|  | #define MCFTIMER_BASE2		0x220           /* Base address of TIMER2 */ | 
|  | #define MCFTIMER_BASE3		0x240           /* Base address of TIMER4 */ | 
|  | #define MCFTIMER_BASE4		0x260           /* Base address of TIMER3 */ | 
|  | #elif defined(CONFIG_M5249) || defined(CONFIG_M5307) || defined(CONFIG_M5407) | 
|  | #define MCFTIMER_BASE1		0x140           /* Base address of TIMER1 */ | 
|  | #define MCFTIMER_BASE2		0x180           /* Base address of TIMER2 */ | 
|  | #elif defined(CONFIG_M5282) | defined(CONFIG_M5271) | 
|  | #define MCFTIMER_BASE1		0x150000        /* Base address of TIMER1 */ | 
|  | #define MCFTIMER_BASE2		0x160000        /* Base address of TIMER2 */ | 
|  | #define MCFTIMER_BASE3		0x170000        /* Base address of TIMER4 */ | 
|  | #define MCFTIMER_BASE4		0x180000	/* Base address of TIMER3 */ | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | *	Define the TIMER register set addresses. | 
|  | */ | 
|  | #define	MCFTIMER_TMR		0x00		/* Timer Mode reg (r/w) */ | 
|  | #define	MCFTIMER_TRR		0x02		/* Timer Reference (r/w) */ | 
|  | #define	MCFTIMER_TCR		0x04		/* Timer Capture reg (r/w) */ | 
|  | #define	MCFTIMER_TCN		0x06		/* Timer Counter reg (r/w) */ | 
|  | #define	MCFTIMER_TER		0x11		/* Timer Event reg (r/w) */ | 
|  |  | 
|  |  | 
|  | /* | 
|  | *	Define the TIMER register set addresses for 5282. | 
|  | */ | 
|  | #define MCFTIMER_PCSR		0 | 
|  | #define MCFTIMER_PMR		1 | 
|  | #define MCFTIMER_PCNTR		2 | 
|  |  | 
|  | /* | 
|  | *	Bit definitions for the Timer Mode Register (TMR). | 
|  | *	Register bit flags are common accross ColdFires. | 
|  | */ | 
|  | #define	MCFTIMER_TMR_PREMASK	0xff00		/* Prescalar mask */ | 
|  | #define	MCFTIMER_TMR_DISCE	0x0000		/* Disable capture */ | 
|  | #define	MCFTIMER_TMR_ANYCE	0x00c0		/* Capture any edge */ | 
|  | #define	MCFTIMER_TMR_FALLCE	0x0080		/* Capture fallingedge */ | 
|  | #define	MCFTIMER_TMR_RISECE	0x0040		/* Capture rising edge */ | 
|  | #define	MCFTIMER_TMR_ENOM	0x0020		/* Enable output toggle */ | 
|  | #define	MCFTIMER_TMR_DISOM	0x0000		/* Do single output pulse  */ | 
|  | #define	MCFTIMER_TMR_ENORI	0x0010		/* Enable ref interrupt */ | 
|  | #define	MCFTIMER_TMR_DISORI	0x0000		/* Disable ref interrupt */ | 
|  | #define	MCFTIMER_TMR_RESTART	0x0008		/* Restart counter */ | 
|  | #define	MCFTIMER_TMR_FREERUN	0x0000		/* Free running counter */ | 
|  | #define	MCFTIMER_TMR_CLKTIN	0x0006		/* Input clock is TIN */ | 
|  | #define	MCFTIMER_TMR_CLK16	0x0004		/* Input clock is /16 */ | 
|  | #define	MCFTIMER_TMR_CLK1	0x0002		/* Input clock is /1 */ | 
|  | #define	MCFTIMER_TMR_CLKSTOP	0x0000		/* Stop counter */ | 
|  | #define	MCFTIMER_TMR_ENABLE	0x0001		/* Enable timer */ | 
|  | #define	MCFTIMER_TMR_DISABLE	0x0000		/* Disable timer */ | 
|  |  | 
|  | /* | 
|  | *	Bit definitions for the Timer Event Registers (TER). | 
|  | */ | 
|  | #define	MCFTIMER_TER_CAP	0x01		/* Capture event */ | 
|  | #define	MCFTIMER_TER_REF	0x02		/* Refernece event */ | 
|  |  | 
|  | /* | 
|  | *	Bit definitions for the 5282 PIT Control and Status Register (PCSR). | 
|  | */ | 
|  | #define MCFTIMER_PCSR_EN	0x0001 | 
|  | #define MCFTIMER_PCSR_RLD	0x0002 | 
|  | #define MCFTIMER_PCSR_PIF	0x0004 | 
|  | #define MCFTIMER_PCSR_PIE	0x0008 | 
|  | #define MCFTIMER_PCSR_OVW	0x0010 | 
|  | #define MCFTIMER_PCSR_HALTED	0x0020 | 
|  | #define MCFTIMER_PCSR_DOZE	0x0040 | 
|  |  | 
|  |  | 
|  | /****************************************************************************/ | 
|  | #endif	/* mcftimer_h */ |