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