xref: /netbsd-src/sys/arch/arm/marvell/kirkwoodreg.h (revision b45fa494daa2ba02187711d31a4144faf0993066)
1 /*	$NetBSD: kirkwoodreg.h,v 1.1 2010/10/03 05:49:24 kiyohara Exp $	*/
2 /*
3  * Copyright (c) 2007, 2008 KIYOHARA Takashi
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
24  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25  * POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 #ifndef _KIRKWOODREG_H_
29 #define _KIRKWOODREG_H_
30 
31 #include <arm/marvell/mvsocreg.h>
32 #include <dev/marvell/mvgbereg.h>
33 
34 /*
35  *                MHz TCLK  GbE SATA  TDMI Audio MTS GPIO
36  * 6180:     600/800, 166,  x1,   -,    -,   o,   -,  30
37  * 6190:         600, 166, *x2,  x1,    -,   -,   -,  36	* GbEx1+100BTx1
38  * 6192:         800, 166,  x2,  x2,    o,   o,   o,  36
39  * 6281: 1.0/1.2/1.5, 200,  x2,  x2,    o,   o,   o,  50
40  */
41 
42 #define KIRKWOOD_UNITID_DDR		MVSOC_UNITID_DDR
43 #define KIRKWOOD_UNITID_DEVBUS		MVSOC_UNITID_DEVBUS
44 #define KIRKWOOD_UNITID_MLMB		MVSOC_UNITID_MLMB
45 #define KIRKWOOD_UNITID_CRYPT		0x3	/* Cryptographic Engine reg */
46 #define KIRKWOOD_UNITID_SA		0x3	/* Security Accelelerator reg */
47 #define KIRKWOOD_UNITID_PEX		MVSOC_UNITID_PEX
48 #define KIRKWOOD_UNITID_USB		0x5	/* USB registers */
49 #define KIRKWOOD_UNITID_IDMA		0x6	/* IDMA registers */
50 #define KIRKWOOD_UNITID_XOR		0x6	/* XOR registers */
51 #define KIRKWOOD_UNITID_GBE		0x7	/* Gigabit Ethernet registers */
52 #define KIRKWOOD_UNITID_SATA		0x8	/* SATA registers */
53 #define KIRKWOOD_UNITID_SDIO		0x9	/* SDIO registers */
54 #define KIRKWOOD_UNITID_AUDIO		0xa	/* Audio registers */
55 #define KIRKWOOD_UNITID_MTS		0xb	/* MPEG Transport Stream reg */
56 #define KIRKWOOD_UNITID_TDM		0xd	/* TDM registers */
57 
58 #define KIRKWOOD_ATTR_NAND		0x2f
59 #define KIRKWOOD_ATTR_SPI		0x1e
60 #define KIRKWOOD_ATTR_BOOTROM		0x1d
61 #define KIRKWOOD_ATTR_PEX_MEM		0xe8
62 #define KIRKWOOD_ATTR_PEX_IO		0xe0
63 #define KIRKWOOD_ATTR_CRYPT		0x00
64 
65 #define KIRKWOOD_IRQ_HIGH		0	/* High interrupt */
66 #define KIRKWOOD_IRQ_BRIDGE		1	/* Mbus-L to Mbus Bridge */
67 #define KIRKWOOD_IRQ_H2CPUDB		2	/* Doorbell interrupt */
68 #define KIRKWOOD_IRQ_CPU2HDB		3	/* Doorbell interrupt */
69 #define KIRKWOOD_IRQ_XOR0CHAN0		5	/* Xor 0 Channel0 */
70 #define KIRKWOOD_IRQ_XOR0CHAN1		6	/* Xor 0 Channel1 */
71 #define KIRKWOOD_IRQ_XOR1CHAN0		7	/* Xor 1 Channel0 */
72 #define KIRKWOOD_IRQ_XOR1CHAN1		8	/* Xor 1 Channel1 */
73 #define KIRKWOOD_IRQ_PEX0INT		9	/* PCI Express port0 INT A-D */
74 #define KIRKWOOD_IRQ_GBE0SUM		11	/* GbE0 summary */
75 #define KIRKWOOD_IRQ_GBE0RX		12	/* GbE0 receive interrupt */
76 #define KIRKWOOD_IRQ_GBE0TX		13	/* GbE0 transmit interrupt */
77 #define KIRKWOOD_IRQ_GBE0MISC		14	/* GbE0 miscellaneous intr */
78 #define KIRKWOOD_IRQ_GBE1SUM		15	/* GbE1 summary */
79 #define KIRKWOOD_IRQ_GBE1RX		16	/* GbE1 receive interrupt */
80 #define KIRKWOOD_IRQ_GBE1TX		17	/* GbE1 transmit interrupt */
81 #define KIRKWOOD_IRQ_GBE1MISC		18	/* GbE1 miscellaneous intr */
82 #define KIRKWOOD_IRQ_USB0CNT		19	/* USB0 controller interrupt */
83 #define KIRKWOOD_IRQ_SATA		21	/*Sata ports interrupt summary*/
84 #define KIRKWOOD_IRQ_SECURITYINT	22	/* Security engine completion */
85 #define KIRKWOOD_IRQ_SPIINT		23	/* SPI Interrupt */
86 #define KIRKWOOD_IRQ_AUDIOINT		24	/* Audio interrupt */
87 #define KIRKWOOD_IRQ_TS0INT		26	/* TS0 Interrupt */
88 #define KIRKWOOD_IRQ_SDIOINT		28	/* SDIO Interrupt */
89 #define KIRKWOOD_IRQ_TWSI		29	/* TWSI interrupt */
90 #define KIRKWOOD_IRQ_AVBINT		30	/* AVB Interrupt */
91 #define KIRKWOOD_IRQ_TDMINT		31	/* TDM Interrupt */
92 #define KIRKWOOD_IRQ_UART0INT		33	/* UART0 */
93 #define KIRKWOOD_IRQ_UART1INT		34	/* UART1 */
94 #define KIRKWOOD_IRQ_GPIOLO7_0		35	/* GPIO Low[7:0] */
95 #define KIRKWOOD_IRQ_GPIOLO8_15		36	/* GPIO Low[15:8] */
96 #define KIRKWOOD_IRQ_GPIOLO16_23	37	/* GPIO Low[23:16] */
97 #define KIRKWOOD_IRQ_GPIOLO24_31	38	/* GPIO Low[31:24] */
98 #define KIRKWOOD_IRQ_GPIOHI7_0		39	/* GPIO High[7:0] */
99 #define KIRKWOOD_IRQ_GPIOHI8_15		40	/* GPIO High[15:8] */
100 #define KIRKWOOD_IRQ_GPIOHI16_23	41	/* GPIO High[23:16] */
101 #define KIRKWOOD_IRQ_XOR0ERR		42	/* XOR0 error */
102 #define KIRKWOOD_IRQ_XOR1ERR		43	/* XOR1 error */
103 #define KIRKWOOD_IRQ_PEX0ERR		44	/* PCI Express0 error */
104 #define KIRKWOOD_IRQ_GBE0ERR		46	/* GbE port0 error */
105 #define KIRKWOOD_IRQ_GBE1ERR		47	/* GbE port1 error */
106 #define KIRKWOOD_IRQ_USBERR		48	/* USB error */
107 #define KIRKWOOD_IRQ_SECURITYERR	49	/* Cryptographic engine error */
108 #define KIRKWOOD_IRQ_AUDIOERR		50	/* Audio error */
109 #define KIRKWOOD_IRQ_RTCINT		53	/* Real time clock interrupt */
110 
111 
112 /*
113  * Physical address of integrated peripherals
114  */
115 
116 #define KIRKWOOD_UNITID2PHYS(uid)	((KIRKWOOD_UNITID_ ## uid) << 16)
117 
118 /*
119  * Pin Multiplexing Interface Registers
120  */
121 #define KIRKWOOD_MPP_BASE		(MVSOC_DEVBUS_BASE + 0x0000)
122 #define KIRKWOOD_MPP_SIZE		   0x40		/* XXXX */
123 #define KIRKWOOD_MPP_MPPC0R		   0x00
124 #define KIRKWOOD_MPP_MPPC1R		   0x04
125 #define KIRKWOOD_MPP_MPPC2R		   0x08
126 #define KIRKWOOD_MPP_MPPC3R		   0x0c
127 #define KIRKWOOD_MPP_MPPC4R		   0x10
128 #define KIRKWOOD_MPP_MPPC5R		   0x14
129 #define KIRKWOOD_MPP_MPPC6R		   0x18
130 #define KIRKWOOD_MPP_SAMPLE_AT_RESET	   0x30
131 
132 /*
133  * Real-Time Clock Unit Registers
134  */
135 #define KIRKWOOD_RTC_BASE		(MVSOC_DEVBUS_BASE + 0x0300)
136 
137 /*
138  * Serial Peripheral Interface Registers
139  */
140 #define KIRKWOOD_SPI_BASE		(MVSOC_DEVBUS_BASE + 0x0600)
141 
142 /*
143  * Mbus-L to Mbus Bridge Registers
144  */
145 /* CPU Address Map Registers */
146 #define KIRKWOOD_MLMB_NWINDOW		8
147 #define KIRKWOOD_MLMB_NREMAP		4
148 
149 /* Main Interrupt Controller Registers */
150 #define KIRKWOOD_MLMB_MICLR		  0x200	/*Main Interrupt Cause Low reg*/
151 #define KIRKWOOD_MLMB_MIRQIMLR		  0x204	/*Main IRQ Interrupt Low Mask*/
152 #define KIRKWOOD_MLMB_MFIQIMLR		  0x208	/*Main FIQ Interrupt Low Mask*/
153 #define KIRKWOOD_MLMB_EIMLR		  0x20c	/*Endpoint Interrupt Low Mask*/
154 #define KIRKWOOD_MLMB_MICHR		  0x210	/*Main Intr Cause High reg*/
155 #define KIRKWOOD_MLMB_MIRQIMHR		  0x214	/*Main IRQ Interrupt High Mask*/
156 #define KIRKWOOD_MLMB_MFIQIMHR		  0x218	/*Main FIQ Interrupt High Mask*/
157 #define KIRKWOOD_MLMB_EIMHR		  0x21c	/*Endpoint Interrupt High Mask*/
158 
159 
160 /*
161  * Cryptographic Engine and Security Accelerator Registers
162  */
163 #define KIRKWOOD_CESA_BASE	(KIRKWOOD_UNITID2PHYS(CRYPT))	/* 0x30000 */
164 
165 /*
166  * USB 2.0 Interface Registers
167  */
168 #define KIRKWOOD_USB_BASE	(KIRKWOOD_UNITID2PHYS(USB))	/* 0x50000 */
169 
170 /*
171  * IDMA Controller and XOR Engine Registers
172  */
173 #define KIRKWOOD_IDMAC_BASE	(KIRKWOOD_UNITID2PHYS(IDMA))	/* 0x60000 */
174 
175 /*
176  * Gigabit Ethernet Registers
177  */
178 #define KIRKWOOD_GBE0_BASE	(KIRKWOOD_UNITID2PHYS(GBE))	/* 0x70000 */
179 #define KIRKWOOD_GBE1_BASE	(KIRKWOOD_GBE0_BASE + MVGBE_SIZE)
180 
181 /*
182  * Serial-ATA Host Controller (SATAHC) Registers
183  */
184 #define KIRKWOOD_SATAHC_BASE	(KIRKWOOD_UNITID2PHYS(SATA))	/* 0x80000 */
185 
186 /*
187  * Secure Digital Input/Output (SDIO) Interface Registers
188  */
189 #define KIRKWOOD_SDIO_BASE	(KIRKWOOD_UNITID2PHYS(SDIO))	/* 0x90000 */
190 
191 /*
192  * Audio (I2S/S/PDIF) Interface Registers
193  */
194 #define KIRKWOOD_AUDIO_BASE	(KIRKWOOD_UNITID2PHYS(AUDIOSDIO))/* 0xa0000 */
195 
196 /*
197  * MPEG-2 Transport Stream (TS) Interface Registers
198  */
199 #define KIRKWOOD_MTS_BASE	(KIRKWOOD_UNITID2PHYS(MTS))	/* 0xb0000 */
200 
201 /*
202  * Time Division Multiplexing (TDM) Unit Registers
203  */
204 #define KIRKWOOD_TDM_BASE	(KIRKWOOD_UNITID2PHYS(TDM))	/* 0xd0000 */
205 
206 #endif	/* _KIRKWOODREG_H_ */
207