11394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*
296f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * SYSTEM MMR REGISTER AND MEMORY MAP FOR ADSP-BF561
31394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu *
496f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Copyright 2005-2008 Analog Devices Inc.
51394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu *
696f1050d3df105c9ae6c6ac224f370199ea82fcdRobin Getz * Licensed under the GPL-2 or later.
71394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
81394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
91394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifndef __MACH_BF561_H__
101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define __MACH_BF561_H__
111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define OFFSET_(x) ((x) & 0x0000FFFF)
131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/*some misc defines*/
151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG15		0x8000
161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG14		0x4000
171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG13		0x2000
181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG12		0x1000
191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG11		0x0800
211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG10		0x0400
221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG9		0x0200
231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG8		0x0100
241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVG7		0x0080
261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVGTMR		0x0040
271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMASK_IVGHW		0x0020
281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/***************************
301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu * Blackfin Cache setup
311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu */
321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
343bebca2d20796dd3dc62c5d3e74148087c7ce5bdRobin Getz#define BFIN_ISUBBANKS	4
353bebca2d20796dd3dc62c5d3e74148087c7ce5bdRobin Getz#define BFIN_IWAYS		4
363bebca2d20796dd3dc62c5d3e74148087c7ce5bdRobin Getz#define BFIN_ILINES		32
371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
383bebca2d20796dd3dc62c5d3e74148087c7ce5bdRobin Getz#define BFIN_DSUBBANKS	4
393bebca2d20796dd3dc62c5d3e74148087c7ce5bdRobin Getz#define BFIN_DWAYS		2
403bebca2d20796dd3dc62c5d3e74148087c7ce5bdRobin Getz#define BFIN_DLINES		64
411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define WAY0_L			0x1
431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define WAY1_L			0x2
441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define WAY01_L			0x3
451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define WAY2_L			0x4
461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define WAY02_L			0x5
471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY12_L			0x6
481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY012_L		0x7
491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY3_L			0x8
511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY03_L			0x9
521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY13_L			0xA
531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY013_L		0xB
541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY32_L			0xC
561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY320_L		0xD
571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAY321_L		0xE
581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WAYALL_L		0xF
591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define DMC_ENABLE (2<<2)	/*yes, 2, not 1 */
611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR0 BIT FIELDS */
631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PLL_WAKEUP_BIT		0xFFFFFFFF
641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_ERROR_BIT		0xFFFFFF0F
651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_ERROR_BIT		0xFFFFF0FF
661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMDMA_ERROR_BIT		0xFFFF0FFF
671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PPI1_ERROR_BIT		0xFFF0FFFF
681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PPI2_ERROR_BIT		0xFF0FFFFF
691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	SPORT0_ERROR_BIT	0xF0FFFFFF
701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	SPORT1_ERROR_BIT	0x0FFFFFFF
711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR1 BIT FIELDS */
721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	SPI_ERROR_BIT		0xFFFFFFFF
731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	UART_ERROR_BIT		0xFFFFFF0F
741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define RESERVED_ERROR_BIT	0xFFFFF0FF
751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_0_BIT		0xFFFF0FFF
761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_1_BIT		0xFFF0FFFF
771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_2_BIT		0xFF0FFFFF
781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_3_BIT		0xF0FFFFFF
791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_4_BIT		0x0FFFFFFF
801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR2 BIT FIELDS */
811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_5_BIT		0xFFFFFFFF
821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_6_BIT		0xFFFFFF0F
831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_7_BIT		0xFFFFF0FF
841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_8_BIT		0xFFFF0FFF
851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_9_BIT		0xFFF0FFFF
861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_10_BIT		0xFF0FFFFF
871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA1_11_BIT		0xF0FFFFFF
881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_0_BIT		0x0FFFFFFF
891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR3 BIT FIELDS */
901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_1_BIT		0xFFFFFFFF
911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_2_BIT		0xFFFFFF0F
921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_3_BIT		0xFFFFF0FF
931394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_4_BIT		0xFFFF0FFF
941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_5_BIT		0xFFF0FFFF
951394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_6_BIT		0xFF0FFFFF
961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_7_BIT		0xF0FFFFFF
971394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_8_BIT		0x0FFFFFFF
981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR4 BIT FIELDS */
991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_9_BIT		0xFFFFFFFF
1001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_10_BIT             0xFFFFFF0F
1011394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	DMA2_11_BIT             0xFFFFF0FF
1021394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER0_BIT	        0xFFFF0FFF
1031394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER1_BIT              0xFFF0FFFF
1041394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER2_BIT              0xFF0FFFFF
1051394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER3_BIT              0xF0FFFFFF
1061394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER4_BIT              0x0FFFFFFF
1071394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR5 BIT FIELDS */
1081394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER5_BIT		0xFFFFFFFF
1091394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER6_BIT              0xFFFFFF0F
1101394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER7_BIT              0xFFFFF0FF
1111394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER8_BIT              0xFFFF0FFF
1121394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER9_BIT              0xFFF0FFFF
1131394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER10_BIT             0xFF0FFFFF
1141394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define TIMER11_BIT             0xF0FFFFFF
1151394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PROG0_INTA_BIT	        0x0FFFFFFF
1161394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR6 BIT FIELDS */
1171394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PROG0_INTB_BIT		0xFFFFFFFF
1181394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PROG1_INTA_BIT          0xFFFFFF0F
1191394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PROG1_INTB_BIT          0xFFFFF0FF
1201394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PROG2_INTA_BIT          0xFFFF0FFF
1211394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	PROG2_INTB_BIT          0xFFF0FFFF
1221394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define DMA1_WRRD0_BIT          0xFF0FFFFF
1231394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define DMA1_WRRD1_BIT          0xF0FFFFFF
1241394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define DMA2_WRRD0_BIT          0x0FFFFFFF
1251394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* IAR7 BIT FIELDS */
1261394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define DMA2_WRRD1_BIT		0xFFFFFFFF
1271394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMDMA_WRRD0_BIT         0xFFFFFF0F
1281394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define IMDMA_WRRD1_BIT         0xFFFFF0FF
1291394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define	WATCH_BIT	        0xFFFF0FFF
1301394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define RESERVED_1_BIT	        0xFFF0FFFF
1311394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define RESERVED_2_BIT	        0xFF0FFFFF
1321394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define SUPPLE_0_BIT	        0xF0FFFFFF
1331394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define SUPPLE_1_BIT	        0x0FFFFFFF
1341394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1351394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/* Miscellaneous Values */
1361394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1371394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu/****************************** EBIU Settings ********************************/
1381394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define AMBCTL0VAL	((CONFIG_BANK_1 << 16) | CONFIG_BANK_0)
1391394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define AMBCTL1VAL	((CONFIG_BANK_3 << 16) | CONFIG_BANK_2)
1401394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1411394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#if defined(CONFIG_C_AMBEN_ALL)
1421394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMBEN AMBEN_ALL
1431394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#elif defined(CONFIG_C_AMBEN)
1441394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMBEN 0x0
1451394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#elif defined(CONFIG_C_AMBEN_B0)
1461394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMBEN AMBEN_B0
1471394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#elif defined(CONFIG_C_AMBEN_B0_B1)
1481394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMBEN AMBEN_B0_B1
1491394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#elif defined(CONFIG_C_AMBEN_B0_B1_B2)
1501394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMBEN AMBEN_B0_B1_B2
1511394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1521394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1531394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_C_AMCKEN
1541394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMCKEN AMCKEN
1551394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#else
1561394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_AMCKEN 0x0
1571394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1581394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1591394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_C_B0PEN
1601394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B0PEN 0x10
1611394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#else
1621394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B0PEN 0x00
1631394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1641394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1651394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_C_B1PEN
1661394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B1PEN 0x20
1671394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#else
1681394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B1PEN 0x00
1691394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1701394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1711394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_C_B2PEN
1721394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B2PEN 0x40
1731394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#else
1741394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B2PEN 0x00
1751394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1761394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1771394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_C_B3PEN
1781394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B3PEN 0x80
1791394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#else
1801394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_B3PEN 0x00
1811394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1821394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1831394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_C_CDPRIO
1841394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_CDPRIO 0x100
1851394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#else
1861394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define V_CDPRIO 0x0
1871394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1881394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1891394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define AMGCTLVAL	(V_AMBEN | V_AMCKEN | V_CDPRIO | V_B0PEN | V_B1PEN | V_B2PEN | V_B3PEN | 0x0002)
1901394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
1911394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifdef CONFIG_BF561
1921394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#define CPU "BF561"
193e482cad241c0b7108cbc94959307a73d19ba17d5Robin Getz#define CPUID 0x27bb
1941394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
195e482cad241c0b7108cbc94959307a73d19ba17d5Robin Getz
1961394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#ifndef CPU
1972563265bdb5fb21396cdc2125c8260e57f7c3991Mike Frysinger#error "Unknown CPU type - This kernel doesn't seem to be configured properly"
1981394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif
1991394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu
2001394f03221790a988afc3e4b3cb79f2e477246a9Bryan Wu#endif				/* __MACH_BF561_H__  */
201