blob: da323e85280030a0b22cb3e6acea00b3b4ccf65a [file] [log] [blame]
wdenk9c53f402003-10-15 23:53:47 +00001/*
Andy Flemingf08233c2007-08-14 01:34:21 -05002 * Copyright 2004, 2007 Freescale Semiconductor.
wdenk9c53f402003-10-15 23:53:47 +00003 * Copyright(c) 2003 Motorola Inc.
wdenk9c53f402003-10-15 23:53:47 +00004 */
5
6#ifndef __MPC85xx_H__
7#define __MPC85xx_H__
8
Anton Vorontsov056b2c92008-05-28 18:20:15 +04009#include <asm/fsl_lbc.h>
10
Andy Flemingf08233c2007-08-14 01:34:21 -050011/* define for common ppc_asm.tmpl */
12#define EXC_OFF_SYS_RESET 0x100 /* System reset */
13#define _START_OFFSET 0
wdenk9c53f402003-10-15 23:53:47 +000014
15#if defined(CONFIG_E500)
16#include <e500.h>
17#endif
18
wdenk13eb2212004-07-09 23:27:13 +000019/*
20 * SCCR - System Clock Control Register, 9-8
wdenk9c53f402003-10-15 23:53:47 +000021 */
wdenk13eb2212004-07-09 23:27:13 +000022#define SCCR_CLPD 0x00000004 /* CPM Low Power Disable */
23#define SCCR_DFBRG_MSK 0x00000003 /* Division by BRGCLK Mask */
wdenk9c53f402003-10-15 23:53:47 +000024#define SCCR_DFBRG_SHIFT 0
25
wdenk13eb2212004-07-09 23:27:13 +000026#define SCCR_DFBRG00 0x00000000 /* BRGCLK division by 4 */
27#define SCCR_DFBRG01 0x00000001 /* BRGCLK div by 16 (normal) */
28#define SCCR_DFBRG10 0x00000002 /* BRGCLK division by 64 */
29#define SCCR_DFBRG11 0x00000003 /* BRGCLK division by 256 */
wdenk9c53f402003-10-15 23:53:47 +000030
Wolfgang Denkd3cc6c22006-03-12 22:45:47 +010031/*
32 * Local Bus Controller - memory controller registers
33 */
34#define BRx_V 0x00000001 /* Bank Valid */
35#define BRx_MS_GPCM 0x00000000 /* G.P.C.M. Machine Select */
36#define BRx_MS_SDRAM 0x00000000 /* SDRAM Machine Select */
37#define BRx_MS_UPMA 0x00000080 /* U.P.M.A Machine Select */
38#define BRx_MS_UPMB 0x000000a0 /* U.P.M.B Machine Select */
39#define BRx_MS_UPMC 0x000000c0 /* U.P.M.C Machine Select */
40#define BRx_PS_8 0x00000800 /* 8 bit port size */
41#define BRx_PS_32 0x00001800 /* 32 bit port size */
42#define BRx_BA_MSK 0xffff8000 /* Base Address Mask */
43
44#define ORxG_EAD 0x00000001 /* External addr latch delay */
45#define ORxG_EHTR 0x00000002 /* Extended hold time on read */
46#define ORxG_TRLX 0x00000004 /* Timing relaxed */
47#define ORxG_SETA 0x00000008 /* External address termination */
48#define ORxG_SCY_10_CLK 0x000000a0 /* 10 clock cycles wait states */
49#define ORxG_SCY_15_CLK 0x000000f0 /* 15 clock cycles wait states */
50#define ORxG_XACS 0x00000100 /* Extra addr to CS setup */
51#define ORxG_ACS_DIV2 0x00000600 /* CS is output 1/2 a clock later*/
52#define ORxG_CSNT 0x00000800 /* Chip Select Negation Time */
53
54#define ORxU_BI 0x00000100 /* Burst Inhibit */
55#define ORxU_AM_MSK 0xffff8000 /* Address Mask Mask */
56
57#define MxMR_OP_NORM 0x00000000 /* Normal Operation */
58#define MxMR_DSx_2_CYCL 0x00400000 /* 2 cycle Disable Period */
59#define MxMR_OP_WARR 0x10000000 /* Write to Array */
60#define MxMR_BSEL 0x80000000 /* Bus Select */
61
62/* helpers to convert values into an OR address mask (GPCM mode) */
63#define P2SZ_TO_AM(s) ((~((s) - 1)) & 0xffff8000) /* must be pow of 2 */
64#define MEG_TO_AM(m) P2SZ_TO_AM((m) << 20)
65
wdenk9c53f402003-10-15 23:53:47 +000066#endif /* __MPC85xx_H__ */