/****************************************************************************/

/*
 *	coldfire.h -- Motorola ColdFire CPU sepecific defines
 *
 *	(C) Copyright 1999-2002, Greg Ungerer (gerg@snapgear.com)
 *	(C) Copyright 2000, Lineo (www.lineo.com)
 */

/****************************************************************************/
#ifndef	coldfire_h
#define	coldfire_h
/****************************************************************************/

#include <linux/config.h>

/*
 *	Define the processor support peripherals base address.
 *	This is generally setup by the boards start up code.
 */
#define	MCF_MBAR	0x10000000
#define	MCF_MBAR2	0x80000000
#if defined(CONFIG_M520x)
#define	MCF_IPSBAR	0xFC000000
#else
#define	MCF_IPSBAR	0x40000000
#endif

#if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) || \
    defined(CONFIG_M520x)
#undef MCF_MBAR
#define	MCF_MBAR	MCF_IPSBAR
#endif

/*
 *	Define master clock frequency.
 */
#if defined(CONFIG_CLOCK_11MHz)
#define	MCF_CLK		11289600
#elif defined(CONFIG_CLOCK_16MHz)
#define	MCF_CLK		16000000
#elif defined(CONFIG_CLOCK_20MHz)
#define	MCF_CLK		20000000
#elif defined(CONFIG_CLOCK_24MHz)
#define	MCF_CLK		24000000
#elif defined(CONFIG_CLOCK_25MHz)
#define	MCF_CLK		25000000
#elif defined(CONFIG_CLOCK_33MHz)
#define	MCF_CLK		33000000
#elif defined(CONFIG_CLOCK_40MHz)
#define	MCF_CLK		40000000
#elif defined(CONFIG_CLOCK_45MHz)
#define	MCF_CLK		45000000
#elif defined(CONFIG_CLOCK_48MHz)
#define	MCF_CLK		48000000
#elif defined(CONFIG_CLOCK_50MHz)
#define	MCF_CLK		50000000
#elif defined(CONFIG_CLOCK_54MHz)
#define	MCF_CLK		54000000
#elif defined(CONFIG_CLOCK_60MHz)
#define	MCF_CLK		60000000
#elif defined(CONFIG_CLOCK_62_5MHz)
#define MCF_CLK		62500000
#elif defined(CONFIG_CLOCK_64MHz)
#define	MCF_CLK		64000000
#elif defined(CONFIG_CLOCK_66MHz)
#define	MCF_CLK		66000000
#elif defined(CONFIG_CLOCK_70MHz)
#define	MCF_CLK		70000000
#elif defined(CONFIG_CLOCK_100MHz)
#define	MCF_CLK		100000000
#elif defined(CONFIG_CLOCK_140MHz)
#define	MCF_CLK		140000000
#elif defined(CONFIG_CLOCK_150MHz)
#define	MCF_CLK		150000000
#elif defined(CONFIG_CLOCK_166MHz)
#define	MCF_CLK		166000000
#else
#error "Don't know what your ColdFire CPU clock frequency is??"
#endif

/*
 *	One some ColdFire family members the bus clock (used by internal
 *	peripherals) is not the same as the CPU clock.
 */
#if defined(CONFIG_M523x) || defined(CONFIG_M5249) || defined(CONFIG_M527x) || \
    defined(CONFIG_M520x)
#define	MCF_BUSCLK	(MCF_CLK / 2)
#else
#define	MCF_BUSCLK	MCF_CLK
#endif

/****************************************************************************/
#endif	/* coldfire_h */
