Home | History | Annotate | Line # | Download | only in marvell
mv78xx0reg.h revision 1.1
      1  1.1  kiyohara /*	$NetBSD: mv78xx0reg.h,v 1.1 2010/10/03 05:49:24 kiyohara Exp $	*/
      2  1.1  kiyohara /*
      3  1.1  kiyohara  * Copyright (c) 2010 KIYOHARA Takashi
      4  1.1  kiyohara  * All rights reserved.
      5  1.1  kiyohara  *
      6  1.1  kiyohara  * Redistribution and use in source and binary forms, with or without
      7  1.1  kiyohara  * modification, are permitted provided that the following conditions
      8  1.1  kiyohara  * are met:
      9  1.1  kiyohara  * 1. Redistributions of source code must retain the above copyright
     10  1.1  kiyohara  *    notice, this list of conditions and the following disclaimer.
     11  1.1  kiyohara  * 2. Redistributions in binary form must reproduce the above copyright
     12  1.1  kiyohara  *    notice, this list of conditions and the following disclaimer in the
     13  1.1  kiyohara  *    documentation and/or other materials provided with the distribution.
     14  1.1  kiyohara  *
     15  1.1  kiyohara  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     16  1.1  kiyohara  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     17  1.1  kiyohara  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     18  1.1  kiyohara  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
     19  1.1  kiyohara  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     20  1.1  kiyohara  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
     21  1.1  kiyohara  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     22  1.1  kiyohara  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     23  1.1  kiyohara  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     24  1.1  kiyohara  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     25  1.1  kiyohara  * POSSIBILITY OF SUCH DAMAGE.
     26  1.1  kiyohara  */
     27  1.1  kiyohara 
     28  1.1  kiyohara #ifndef _MV78XX0REG_H_
     29  1.1  kiyohara #define _MV78XX0REG_H_
     30  1.1  kiyohara 
     31  1.1  kiyohara #include <arm/marvell/mvsocreg.h>
     32  1.1  kiyohara 
     33  1.1  kiyohara /*
     34  1.1  kiyohara  *              MHz  PCIe  GbE  SATA TDMI  COM
     35  1.1  kiyohara  * MV76100:    800, 2      x2,   x1,   -,  x3
     36  1.1  kiyohara  * MV78100:    1.2, 2 x4,  x2,   x2,  x2,  x4
     37  1.1  kiyohara  * MV78200: 1.0 x2, 2 x4,  x4,   x2,  x2,  x4
     38  1.1  kiyohara  */
     39  1.1  kiyohara 
     40  1.1  kiyohara #define MV78XX0_UNITID_DDR		MVSOC_UNITID_DDR
     41  1.1  kiyohara #define MV78XX0_UNITID_DEVBUS		MVSOC_UNITID_DEVBUS
     42  1.1  kiyohara #define MV78XX0_UNITID_LMB		MVSOC_UNITID_LMB
     43  1.1  kiyohara #define MV78XX0_UNITID_GBE23		0x3	/* Gigabit Ethernet registers */
     44  1.1  kiyohara #define MV78XX0_UNITID_PEX		MVSOC_UNITID_PEX
     45  1.1  kiyohara #define MV78XX0_UNITID_USB		0x5	/* USB registers */
     46  1.1  kiyohara #define MV78XX0_UNITID_IDMA		0x6	/* IDMA registers */
     47  1.1  kiyohara #define MV78XX0_UNITID_XOR		0x6	/* XOR registers */
     48  1.1  kiyohara #define MV78XX0_UNITID_GBE01		0x7	/* Gigabit Ethernet registers */
     49  1.1  kiyohara #define MV78XX0_UNITID_CRYPT		0x9	/* Cryptographic Engine reg */
     50  1.1  kiyohara #define MV78XX0_UNITID_SA		0x9	/* Security Accelelerator reg */
     51  1.1  kiyohara #define MV78XX0_UNITID_SATA		0xa	/* SATA registers */
     52  1.1  kiyohara #define MV78XX0_UNITID_TDM		0xb	/* TDM registers */
     53  1.1  kiyohara 
     54  1.1  kiyohara #define MV78XX0_ATTR_DEVICE_CS0		0x3e
     55  1.1  kiyohara #define MV78XX0_ATTR_DEVICE_CS1		0x3d
     56  1.1  kiyohara #define MV78XX0_ATTR_DEVICE_CS2		0x3b
     57  1.1  kiyohara #define MV78XX0_ATTR_DEVICE_CS2		0x37
     58  1.1  kiyohara #define MV78XX0_ATTR_BOOT_CS		0x2f
     59  1.1  kiyohara #define MV78XX0_ATTR_SPI		0x1f
     60  1.1  kiyohara #define MV78XX0_ATTR_PEX_IO		0xe0	/* PCIe x4 Port 0.0 */
     61  1.1  kiyohara #define MV78XX0_ATTR_PEX_MEM		0xe8
     62  1.1  kiyohara #define MV78XX0_ATTR_PEX1_IO		0xe0	/* PCIe x1 Port 1 */
     63  1.1  kiyohara #define MV78XX0_ATTR_PEX1_MEM		0xe8
     64  1.1  kiyohara #define MV78XX0_ATTR_PEX_0_IO		0xe0	/* PCIe x1 Port 0.0 */
     65  1.1  kiyohara #define MV78XX0_ATTR_PEX_0_MEM		0xe8
     66  1.1  kiyohara #define MV78XX0_ATTR_PEX_1_IO		0xd0	/* PCIe x1 Port 0.1 */
     67  1.1  kiyohara #define MV78XX0_ATTR_PEX_1_MEM		0xd8
     68  1.1  kiyohara #define MV78XX0_ATTR_PEX_2_IO		0xb0	/* PCIe x1 Port 0.2 */
     69  1.1  kiyohara #define MV78XX0_ATTR_PEX_2_MEM		0xb8
     70  1.1  kiyohara #define MV78XX0_ATTR_PEX_3_IO		0x70	/* PCIe x1 Port 0.3 */
     71  1.1  kiyohara #define MV78XX0_ATTR_PEX_3_MEM		0x78
     72  1.1  kiyohara 
     73  1.1  kiyohara #define MV78XX0_IRQ_ERRSUM		0	/* Sum of Main Intr Err Cause */
     74  1.1  kiyohara #define MV78XX0_IRQ_SPI			1	/* SPI */
     75  1.1  kiyohara #define MV78XX0_IRQ_TWSI0		2	/* TWSI0 */
     76  1.1  kiyohara #define MV78XX0_IRQ_TWSI1		3	/* TWSI1 */
     77  1.1  kiyohara #define MV78XX0_IRQ_IDMA0		4	/* IDMA Channel0 completion */
     78  1.1  kiyohara #define MV78XX0_IRQ_IDMA1		5	/* IDMA Channel1 completion */
     79  1.1  kiyohara #define MV78XX0_IRQ_IDMA2		6	/* IDMA Channel2 completion */
     80  1.1  kiyohara #define MV78XX0_IRQ_IDMA3		7	/* IDMA Channel3 completion */
     81  1.1  kiyohara #define MV78XX0_IRQ_TIMER0		8	/* Timer0 */
     82  1.1  kiyohara #define MV78XX0_IRQ_TIMER1		9	/* Timer1 */
     83  1.1  kiyohara #define MV78XX0_IRQ_TIMER2		10	/* Timer2 */
     84  1.1  kiyohara #define MV78XX0_IRQ_TIMER3		11	/* Timer3 */
     85  1.1  kiyohara #define MV78XX0_IRQ_UART0		12	/* UART0 */
     86  1.1  kiyohara #define MV78XX0_IRQ_UART1		13	/* UART1 */
     87  1.1  kiyohara #define MV78XX0_IRQ_UART2		14	/* UART2 */
     88  1.1  kiyohara #define MV78XX0_IRQ_UART3		15	/* UART3 */
     89  1.1  kiyohara #define MV78XX0_IRQ_USB0		16	/* USB0 */
     90  1.1  kiyohara #define MV78XX0_IRQ_USB1		17	/* USB1 */
     91  1.1  kiyohara #define MV78XX0_IRQ_USB2		18	/* USB2 */
     92  1.1  kiyohara #define MV78XX0_IRQ_CRYPTO		19	/* Crypto engine completion */
     93  1.1  kiyohara #define MV78XX0_IRQ_XOR0		22	/* XOR engine 0 completion */
     94  1.1  kiyohara #define MV78XX0_IRQ_XOR1		23	/* XOR engine 1 completion */
     95  1.1  kiyohara #define MV78XX0_IRQ_SATA		26	/* SATA ports */
     96  1.1  kiyohara #define MV78XX0_IRQ_TDMI_INT		27	/* TDM */
     97  1.1  kiyohara #define MV78XX0_IRQ_PEX00INTA		32	/* PCIe Port0.0 INTA/B/C/D */
     98  1.1  kiyohara #define MV78XX0_IRQ_PEX01INTA		33	/* PCIe Port0.1 INTA/B/C/D */
     99  1.1  kiyohara #define MV78XX0_IRQ_PEX02INTA		34	/* PCIe Port0.2 INTA/B/C/D */
    100  1.1  kiyohara #define MV78XX0_IRQ_PEX03INTA		35	/* PCIe Port0.3 INTA/B/C/D */
    101  1.1  kiyohara #define MV78XX0_IRQ_PEX10INTA		36	/* PCIe Port1.0 INTA/B/C/D */
    102  1.1  kiyohara #define MV78XX0_IRQ_PEX11INTA		37	/* PCIe Port1.1 INTA/B/C/D */
    103  1.1  kiyohara #define MV78XX0_IRQ_PEX12INTA		38	/* PCIe Port1.2 INTA/B/C/D */
    104  1.1  kiyohara #define MV78XX0_IRQ_PEX13INTA		39	/* PCIe Port1.3 INTA/B/C/D */
    105  1.1  kiyohara #define MV78XX0_IRQ_GE00SUM		40	/* Gigabit Ethernet Port0 sum */
    106  1.1  kiyohara #define MV78XX0_IRQ_GE00RX		41	/* Gigabit Ethernet Port0 Rx */
    107  1.1  kiyohara #define MV78XX0_IRQ_GE00TX		42	/* Gigabit Ethernet Port0 Tx */
    108  1.1  kiyohara #define MV78XX0_IRQ_GE00MISC		43	/* Gigabit Ethernet Port0 misc*/
    109  1.1  kiyohara #define MV78XX0_IRQ_GE01SUM		44	/* Gigabit Ethernet Port1 sum */
    110  1.1  kiyohara #define MV78XX0_IRQ_GE01RX		45	/* Gigabit Ethernet Port1 Rx */
    111  1.1  kiyohara #define MV78XX0_IRQ_GE01TX		46	/* Gigabit Ethernet Port1 Tx */
    112  1.1  kiyohara #define MV78XX0_IRQ_GE01MISC		47	/* Gigabit Ethernet Port1 misc*/
    113  1.1  kiyohara #define MV78XX0_IRQ_GE10SUM		48	/* Gigabit Ethernet Port2 sum */
    114  1.1  kiyohara #define MV78XX0_IRQ_GE10RX		49	/* Gigabit Ethernet Port2 Rx */
    115  1.1  kiyohara #define MV78XX0_IRQ_GE10TX		50	/* Gigabit Ethernet Port2 Tx */
    116  1.1  kiyohara #define MV78XX0_IRQ_GE10MISC		51	/* Gigabit Ethernet Port2 misc*/
    117  1.1  kiyohara #define MV78XX0_IRQ_GE11SUM		52	/* Gigabit Ethernet Port3 sum */
    118  1.1  kiyohara #define MV78XX0_IRQ_GE11RX		53	/* Gigabit Ethernet Port3 Rx */
    119  1.1  kiyohara #define MV78XX0_IRQ_GE11TX		54	/* Gigabit Ethernet Port3 Tx */
    120  1.1  kiyohara #define MV78XX0_IRQ_GE11MISC		55	/* Gigabit Ethernet Port3 misc*/
    121  1.1  kiyohara #define MV78XX0_IRQ_GPIO0_7		56	/* GPIO[7:0] */
    122  1.1  kiyohara #define MV78XX0_IRQ_GPIO8_15		57	/* GPIO[15:8] */
    123  1.1  kiyohara #define MV78XX0_IRQ_GPIO16_23		58	/* GPIO[23:16] */
    124  1.1  kiyohara #define MV78XX0_IRQ_GPIO24_31		59	/* GPIO[31:24] */
    125  1.1  kiyohara #define MV78XX0_IRQ_DB_IN		60 /*Summary of Inbound Doorbell Cause*/
    126  1.1  kiyohara #define MV78XX0_IRQ_DB_OUT		61/*Summary of Outbound Doorbell Cause*/
    127  1.1  kiyohara 
    128  1.1  kiyohara 
    129  1.1  kiyohara /*
    130  1.1  kiyohara  * Physical address of integrated peripherals
    131  1.1  kiyohara  */
    132  1.1  kiyohara 
    133  1.1  kiyohara #undef UNITID2PHYS
    134  1.1  kiyohara #define UNITID2PHYS(uid)	((MV78XX0_UNITID_ ## uid) << 16)
    135  1.1  kiyohara 
    136  1.1  kiyohara /*
    137  1.1  kiyohara  * General Purpose Port Registers
    138  1.1  kiyohara  */
    139  1.1  kiyohara #define MV78XX0_GPP_BASE		(MVSOC_DEVBUS_BASE + 0x0100)
    140  1.1  kiyohara #define MV78XX0_GPP_SIZE		  0x100
    141  1.1  kiyohara 
    142  1.1  kiyohara /*
    143  1.1  kiyohara  * UART Interface Registers
    144  1.1  kiyohara  */
    145  1.1  kiyohara 					/* NS16550 compatible */
    146  1.1  kiyohara #define MV78XX0_COM2_BASE		(MVSOC_DEVBUS_BASE + 0x2200)
    147  1.1  kiyohara #define MV78XX0_COM3_BASE		(MVSOC_DEVBUS_BASE + 0x2300)
    148  1.1  kiyohara 
    149  1.1  kiyohara /*
    150  1.1  kiyohara  * Mbus-L to Mbus Bridge Registers
    151  1.1  kiyohara  */
    152  1.1  kiyohara /* CPU Address Map Registers */
    153  1.1  kiyohara #define MV78XX0_MLMB_NWINDOW		14
    154  1.1  kiyohara #define MV78XX0_MLMB_NREMAP		8
    155  1.1  kiyohara 
    156  1.1  kiyohara /* Main Interrupt Controller Registers */
    157  1.1  kiyohara #define MV78XX0_MLMB_MICLR		  0x200	/*Main Interrupt Cause Low reg*/
    158  1.1  kiyohara #define MV78XX0_MLMB_MIRQIMLR		  0x204	/* Main IRQ Interrupt Mask */
    159  1.1  kiyohara #define MV78XX0_MLMB_MFIQIMLR		  0x208	/* Main FIQ Interrupt Mask */
    160  1.1  kiyohara #define MV78XX0_MLMB_EIMLR		  0x20c	/* Endpoint Interrupt Mask */
    161  1.1  kiyohara #define MV78XX0_MLMB_MICHR		  0x210	/* Main Intr Cause High reg */
    162  1.1  kiyohara #define MV78XX0_MLMB_MIRQIMHR		  0x214 /*Main IRQ Interrupt High Mask*/
    163  1.1  kiyohara #define MV78XX0_MLMB_MFIQIMHR		  0x218 /*Main FIQ Interrupt High Mask*/
    164  1.1  kiyohara #define MV78XX0_MLMB_EIMHR		  0x21c	/*Endpoint Interrupt High Mask*/
    165  1.1  kiyohara 
    166  1.1  kiyohara /* CPU Timers Registers */
    167  1.1  kiyohara /*   see oriontmrreg.h */
    168  1.1  kiyohara 
    169  1.1  kiyohara 
    170  1.1  kiyohara /*
    171  1.1  kiyohara  * PCI Express Interface Registers
    172  1.1  kiyohara  */
    173  1.1  kiyohara #define MV78XX0_PEX_BASE	(UNITID2PHYS(PEX))	/* 0x40000 */
    174  1.1  kiyohara 
    175  1.1  kiyohara /*
    176  1.1  kiyohara  * USB 2.0 Interface Registers
    177  1.1  kiyohara  */
    178  1.1  kiyohara #define MV78XX0_USB_BASE	(UNITID2PHYS(USB))	/* 0x50000 */
    179  1.1  kiyohara 
    180  1.1  kiyohara /*
    181  1.1  kiyohara  * IDMA Controller and XOR Engine Registers
    182  1.1  kiyohara  */
    183  1.1  kiyohara #define MV78XX0_IDMAC_BASE	(UNITID2PHYS(IDMA))	/* 0x60000 */
    184  1.1  kiyohara 
    185  1.1  kiyohara /*
    186  1.1  kiyohara  * Gigabit Ethernet Registers
    187  1.1  kiyohara  */
    188  1.1  kiyohara #define MV78XX0_GBE01_BASE	(UNITID2PHYS(GBE01))	/* 0x70000 */
    189  1.1  kiyohara #define MV78XX0_GBE23_BASE	(UNITID2PHYS(GBE23))	/* 0x30000 */
    190  1.1  kiyohara 
    191  1.1  kiyohara /*
    192  1.1  kiyohara  * Cryptographic Engine and Security Accelerator Registers
    193  1.1  kiyohara  */
    194  1.1  kiyohara #define MV78XX0_CESA_BASE	(UNITID2PHYS(CRYPT))	/* 0x90000 */
    195  1.1  kiyohara 
    196  1.1  kiyohara /*
    197  1.1  kiyohara  * Serial-ATA Host Controller (SATAHC) Registers
    198  1.1  kiyohara  */
    199  1.1  kiyohara #define MV78XX0_SATAHC_BASE	(UNITID2PHYS(SATA))	/* 0xa0000 */
    200  1.1  kiyohara 
    201  1.1  kiyohara /*
    202  1.1  kiyohara  * Time Division Multiplexing (TDM) Unit Registers
    203  1.1  kiyohara  */
    204  1.1  kiyohara #define MV78XX0_TDM_BASE	(UNITID2PHYS(TDM))	/* 0xb0000 */
    205  1.1  kiyohara 
    206  1.1  kiyohara #endif	/* _MV78XX0REG_H_ */
    207