1 1.7 andvar /* $NetBSD: kirkwoodreg.h,v 1.7 2022/10/31 20:30:22 andvar Exp $ */ 2 1.1 kiyohara /* 3 1.1 kiyohara * Copyright (c) 2007, 2008 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 _KIRKWOODREG_H_ 29 1.1 kiyohara #define _KIRKWOODREG_H_ 30 1.1 kiyohara 31 1.1 kiyohara #include <arm/marvell/mvsocreg.h> 32 1.1 kiyohara #include <dev/marvell/mvgbereg.h> 33 1.1 kiyohara 34 1.1 kiyohara /* 35 1.3 kiyohara * MHz TCLK GbE SATA TDMI Audio MTS GPIO TSens TWSI 36 1.3 kiyohara * 6180: 600/800, 166, x1, -, -, o, -, 30, -, x1 37 1.3 kiyohara * 6190: 600, 166, *x2, x1, -, -, -, 36, -, x1 38 1.3 kiyohara * 6192: 800, 166, x2, x2, o, o, o, 36, -, x1 39 1.3 kiyohara * 6281: 1.0/1.2/1.5, 200, x2, x2, o, o, o, 50, -, x1 40 1.3 kiyohara * 6282: ?-2.0, 200, x2, x2, o, o, o, 50, o, x2 41 1.3 kiyohara * 42 1.3 kiyohara * * GbE x1 + 100BT x1 43 1.1 kiyohara */ 44 1.1 kiyohara 45 1.1 kiyohara #define KIRKWOOD_UNITID_DDR MVSOC_UNITID_DDR 46 1.1 kiyohara #define KIRKWOOD_UNITID_DEVBUS MVSOC_UNITID_DEVBUS 47 1.1 kiyohara #define KIRKWOOD_UNITID_MLMB MVSOC_UNITID_MLMB 48 1.1 kiyohara #define KIRKWOOD_UNITID_CRYPT 0x3 /* Cryptographic Engine reg */ 49 1.7 andvar #define KIRKWOOD_UNITID_SA 0x3 /* Security Accelerator reg */ 50 1.1 kiyohara #define KIRKWOOD_UNITID_PEX MVSOC_UNITID_PEX 51 1.1 kiyohara #define KIRKWOOD_UNITID_USB 0x5 /* USB registers */ 52 1.1 kiyohara #define KIRKWOOD_UNITID_IDMA 0x6 /* IDMA registers */ 53 1.1 kiyohara #define KIRKWOOD_UNITID_XOR 0x6 /* XOR registers */ 54 1.1 kiyohara #define KIRKWOOD_UNITID_GBE 0x7 /* Gigabit Ethernet registers */ 55 1.1 kiyohara #define KIRKWOOD_UNITID_SATA 0x8 /* SATA registers */ 56 1.1 kiyohara #define KIRKWOOD_UNITID_SDIO 0x9 /* SDIO registers */ 57 1.1 kiyohara #define KIRKWOOD_UNITID_AUDIO 0xa /* Audio registers */ 58 1.1 kiyohara #define KIRKWOOD_UNITID_MTS 0xb /* MPEG Transport Stream reg */ 59 1.1 kiyohara #define KIRKWOOD_UNITID_TDM 0xd /* TDM registers */ 60 1.1 kiyohara 61 1.1 kiyohara #define KIRKWOOD_ATTR_NAND 0x2f 62 1.1 kiyohara #define KIRKWOOD_ATTR_SPI 0x1e 63 1.1 kiyohara #define KIRKWOOD_ATTR_BOOTROM 0x1d 64 1.1 kiyohara #define KIRKWOOD_ATTR_PEX_MEM 0xe8 65 1.1 kiyohara #define KIRKWOOD_ATTR_PEX_IO 0xe0 66 1.2 kiyohara #define KIRKWOOD_ATTR_PEX1_MEM 0xd8 67 1.2 kiyohara #define KIRKWOOD_ATTR_PEX1_IO 0xd0 68 1.1 kiyohara #define KIRKWOOD_ATTR_CRYPT 0x00 69 1.1 kiyohara 70 1.1 kiyohara #define KIRKWOOD_IRQ_HIGH 0 /* High interrupt */ 71 1.1 kiyohara #define KIRKWOOD_IRQ_BRIDGE 1 /* Mbus-L to Mbus Bridge */ 72 1.1 kiyohara #define KIRKWOOD_IRQ_H2CPUDB 2 /* Doorbell interrupt */ 73 1.1 kiyohara #define KIRKWOOD_IRQ_CPU2HDB 3 /* Doorbell interrupt */ 74 1.1 kiyohara #define KIRKWOOD_IRQ_XOR0CHAN0 5 /* Xor 0 Channel0 */ 75 1.1 kiyohara #define KIRKWOOD_IRQ_XOR0CHAN1 6 /* Xor 0 Channel1 */ 76 1.1 kiyohara #define KIRKWOOD_IRQ_XOR1CHAN0 7 /* Xor 1 Channel0 */ 77 1.1 kiyohara #define KIRKWOOD_IRQ_XOR1CHAN1 8 /* Xor 1 Channel1 */ 78 1.1 kiyohara #define KIRKWOOD_IRQ_PEX0INT 9 /* PCI Express port0 INT A-D */ 79 1.2 kiyohara #define KIRKWOOD_IRQ_PEX1INT 10 /* PCI Express port1 INT A-D */ 80 1.1 kiyohara #define KIRKWOOD_IRQ_GBE0SUM 11 /* GbE0 summary */ 81 1.1 kiyohara #define KIRKWOOD_IRQ_GBE0RX 12 /* GbE0 receive interrupt */ 82 1.1 kiyohara #define KIRKWOOD_IRQ_GBE0TX 13 /* GbE0 transmit interrupt */ 83 1.1 kiyohara #define KIRKWOOD_IRQ_GBE0MISC 14 /* GbE0 miscellaneous intr */ 84 1.1 kiyohara #define KIRKWOOD_IRQ_GBE1SUM 15 /* GbE1 summary */ 85 1.1 kiyohara #define KIRKWOOD_IRQ_GBE1RX 16 /* GbE1 receive interrupt */ 86 1.1 kiyohara #define KIRKWOOD_IRQ_GBE1TX 17 /* GbE1 transmit interrupt */ 87 1.1 kiyohara #define KIRKWOOD_IRQ_GBE1MISC 18 /* GbE1 miscellaneous intr */ 88 1.1 kiyohara #define KIRKWOOD_IRQ_USB0CNT 19 /* USB0 controller interrupt */ 89 1.1 kiyohara #define KIRKWOOD_IRQ_SATA 21 /*Sata ports interrupt summary*/ 90 1.1 kiyohara #define KIRKWOOD_IRQ_SECURITYINT 22 /* Security engine completion */ 91 1.1 kiyohara #define KIRKWOOD_IRQ_SPIINT 23 /* SPI Interrupt */ 92 1.1 kiyohara #define KIRKWOOD_IRQ_AUDIOINT 24 /* Audio interrupt */ 93 1.1 kiyohara #define KIRKWOOD_IRQ_TS0INT 26 /* TS0 Interrupt */ 94 1.1 kiyohara #define KIRKWOOD_IRQ_SDIOINT 28 /* SDIO Interrupt */ 95 1.1 kiyohara #define KIRKWOOD_IRQ_TWSI 29 /* TWSI interrupt */ 96 1.1 kiyohara #define KIRKWOOD_IRQ_AVBINT 30 /* AVB Interrupt */ 97 1.1 kiyohara #define KIRKWOOD_IRQ_TDMINT 31 /* TDM Interrupt */ 98 1.3 kiyohara #define KIRKWOOD_IRQ_TWSI1 32 /* TWSI1 interrupt */ 99 1.1 kiyohara #define KIRKWOOD_IRQ_UART0INT 33 /* UART0 */ 100 1.1 kiyohara #define KIRKWOOD_IRQ_UART1INT 34 /* UART1 */ 101 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOLO7_0 35 /* GPIO Low[7:0] */ 102 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOLO8_15 36 /* GPIO Low[15:8] */ 103 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOLO16_23 37 /* GPIO Low[23:16] */ 104 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOLO24_31 38 /* GPIO Low[31:24] */ 105 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOHI7_0 39 /* GPIO High[7:0] */ 106 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOHI8_15 40 /* GPIO High[15:8] */ 107 1.1 kiyohara #define KIRKWOOD_IRQ_GPIOHI16_23 41 /* GPIO High[23:16] */ 108 1.1 kiyohara #define KIRKWOOD_IRQ_XOR0ERR 42 /* XOR0 error */ 109 1.1 kiyohara #define KIRKWOOD_IRQ_XOR1ERR 43 /* XOR1 error */ 110 1.1 kiyohara #define KIRKWOOD_IRQ_PEX0ERR 44 /* PCI Express0 error */ 111 1.2 kiyohara #define KIRKWOOD_IRQ_PEX1ERR 45 /* PCI Express1 error */ 112 1.1 kiyohara #define KIRKWOOD_IRQ_GBE0ERR 46 /* GbE port0 error */ 113 1.1 kiyohara #define KIRKWOOD_IRQ_GBE1ERR 47 /* GbE port1 error */ 114 1.1 kiyohara #define KIRKWOOD_IRQ_USBERR 48 /* USB error */ 115 1.1 kiyohara #define KIRKWOOD_IRQ_SECURITYERR 49 /* Cryptographic engine error */ 116 1.1 kiyohara #define KIRKWOOD_IRQ_AUDIOERR 50 /* Audio error */ 117 1.1 kiyohara #define KIRKWOOD_IRQ_RTCINT 53 /* Real time clock interrupt */ 118 1.1 kiyohara 119 1.1 kiyohara 120 1.1 kiyohara /* 121 1.1 kiyohara * Physical address of integrated peripherals 122 1.1 kiyohara */ 123 1.1 kiyohara 124 1.1 kiyohara #define KIRKWOOD_UNITID2PHYS(uid) ((KIRKWOOD_UNITID_ ## uid) << 16) 125 1.1 kiyohara 126 1.1 kiyohara /* 127 1.1 kiyohara * Pin Multiplexing Interface Registers 128 1.1 kiyohara */ 129 1.1 kiyohara #define KIRKWOOD_MPP_BASE (MVSOC_DEVBUS_BASE + 0x0000) 130 1.1 kiyohara #define KIRKWOOD_MPP_MPPC0R 0x00 131 1.1 kiyohara #define KIRKWOOD_MPP_MPPC1R 0x04 132 1.1 kiyohara #define KIRKWOOD_MPP_MPPC2R 0x08 133 1.1 kiyohara #define KIRKWOOD_MPP_MPPC3R 0x0c 134 1.1 kiyohara #define KIRKWOOD_MPP_MPPC4R 0x10 135 1.1 kiyohara #define KIRKWOOD_MPP_MPPC5R 0x14 136 1.1 kiyohara #define KIRKWOOD_MPP_MPPC6R 0x18 137 1.1 kiyohara #define KIRKWOOD_MPP_SAMPLE_AT_RESET 0x30 138 1.1 kiyohara 139 1.1 kiyohara /* 140 1.6 kiyohara * Miscellaneous Registers 141 1.6 kiyohara */ 142 1.6 kiyohara #define KIRKWOOD_MISC_BASE (MVSOC_DEVBUS_BASE + 0x0000) 143 1.6 kiyohara #define KIRKWOOD_MISC_DEVICEID 0x34 144 1.6 kiyohara #define KIRKWOOD_MISC_CLOCKCONTROL 0x4c 145 1.6 kiyohara #define KIRKWOOD_MISC_SYSRSTLC 0x50 /* SYSRSTn Length Counter */ 146 1.6 kiyohara #define KIRKWOOD_MISC_AGC 0x7c /* Analog Group Configuration */ 147 1.6 kiyohara #define KIRKWOOD_MISC_SSCGC 0xd8 /* SSCG Configuration */ 148 1.6 kiyohara #define KIRKWOOD_MISC_PTPCC 0xdc /* PTP Clock Configuration */ 149 1.6 kiyohara #define KIRKWOOD_MISC_IOC0 0xe0 /* IO Configuration 0 */ 150 1.6 kiyohara 151 1.6 kiyohara /* 152 1.1 kiyohara * Real-Time Clock Unit Registers 153 1.1 kiyohara */ 154 1.1 kiyohara #define KIRKWOOD_RTC_BASE (MVSOC_DEVBUS_BASE + 0x0300) 155 1.1 kiyohara 156 1.1 kiyohara /* 157 1.1 kiyohara * Serial Peripheral Interface Registers 158 1.1 kiyohara */ 159 1.1 kiyohara #define KIRKWOOD_SPI_BASE (MVSOC_DEVBUS_BASE + 0x0600) 160 1.1 kiyohara 161 1.1 kiyohara /* 162 1.1 kiyohara * Mbus-L to Mbus Bridge Registers 163 1.1 kiyohara */ 164 1.1 kiyohara /* CPU Address Map Registers */ 165 1.1 kiyohara #define KIRKWOOD_MLMB_NWINDOW 8 166 1.1 kiyohara #define KIRKWOOD_MLMB_NREMAP 4 167 1.1 kiyohara 168 1.1 kiyohara /* Main Interrupt Controller Registers */ 169 1.1 kiyohara #define KIRKWOOD_MLMB_MICLR 0x200 /*Main Interrupt Cause Low reg*/ 170 1.1 kiyohara #define KIRKWOOD_MLMB_MIRQIMLR 0x204 /*Main IRQ Interrupt Low Mask*/ 171 1.1 kiyohara #define KIRKWOOD_MLMB_MFIQIMLR 0x208 /*Main FIQ Interrupt Low Mask*/ 172 1.1 kiyohara #define KIRKWOOD_MLMB_EIMLR 0x20c /*Endpoint Interrupt Low Mask*/ 173 1.1 kiyohara #define KIRKWOOD_MLMB_MICHR 0x210 /*Main Intr Cause High reg*/ 174 1.1 kiyohara #define KIRKWOOD_MLMB_MIRQIMHR 0x214 /*Main IRQ Interrupt High Mask*/ 175 1.1 kiyohara #define KIRKWOOD_MLMB_MFIQIMHR 0x218 /*Main FIQ Interrupt High Mask*/ 176 1.1 kiyohara #define KIRKWOOD_MLMB_EIMHR 0x21c /*Endpoint Interrupt High Mask*/ 177 1.1 kiyohara 178 1.1 kiyohara 179 1.1 kiyohara /* 180 1.4 kiyohara * Kirkwood Thermal Sensor(6282 only) 181 1.4 kiyohara */ 182 1.4 kiyohara #define KIRKWOOD_TS_BASE (MVSOC_DEVBUS_BASE + 0x0078) /* XXXX: ??? */ 183 1.4 kiyohara 184 1.4 kiyohara /* 185 1.3 kiyohara * Two-Wire Serial Interface Registers 186 1.3 kiyohara */ 187 1.3 kiyohara #define KIRKWOOD_TWSI1_BASE (MVSOC_TWSI_BASE + 0x0100) 188 1.3 kiyohara 189 1.3 kiyohara /* 190 1.2 kiyohara * PCI-Express Interface Registers 191 1.2 kiyohara */ 192 1.2 kiyohara #define KIRKWOOD_PEX1_BASE (MVSOC_PEX_BASE + 0x4000) 193 1.2 kiyohara 194 1.2 kiyohara /* 195 1.1 kiyohara * Cryptographic Engine and Security Accelerator Registers 196 1.5 kiyohara */ /* 0x3d000 */ 197 1.5 kiyohara #define KIRKWOOD_CESA_BASE (KIRKWOOD_UNITID2PHYS(CRYPT) + 0xd000) 198 1.1 kiyohara 199 1.1 kiyohara /* 200 1.1 kiyohara * USB 2.0 Interface Registers 201 1.1 kiyohara */ 202 1.1 kiyohara #define KIRKWOOD_USB_BASE (KIRKWOOD_UNITID2PHYS(USB)) /* 0x50000 */ 203 1.1 kiyohara 204 1.1 kiyohara /* 205 1.1 kiyohara * IDMA Controller and XOR Engine Registers 206 1.1 kiyohara */ 207 1.1 kiyohara #define KIRKWOOD_IDMAC_BASE (KIRKWOOD_UNITID2PHYS(IDMA)) /* 0x60000 */ 208 1.1 kiyohara 209 1.1 kiyohara /* 210 1.1 kiyohara * Gigabit Ethernet Registers 211 1.1 kiyohara */ 212 1.1 kiyohara #define KIRKWOOD_GBE0_BASE (KIRKWOOD_UNITID2PHYS(GBE)) /* 0x70000 */ 213 1.1 kiyohara #define KIRKWOOD_GBE1_BASE (KIRKWOOD_GBE0_BASE + MVGBE_SIZE) 214 1.1 kiyohara 215 1.1 kiyohara /* 216 1.1 kiyohara * Serial-ATA Host Controller (SATAHC) Registers 217 1.1 kiyohara */ 218 1.1 kiyohara #define KIRKWOOD_SATAHC_BASE (KIRKWOOD_UNITID2PHYS(SATA)) /* 0x80000 */ 219 1.1 kiyohara 220 1.1 kiyohara /* 221 1.1 kiyohara * Secure Digital Input/Output (SDIO) Interface Registers 222 1.1 kiyohara */ 223 1.1 kiyohara #define KIRKWOOD_SDIO_BASE (KIRKWOOD_UNITID2PHYS(SDIO)) /* 0x90000 */ 224 1.1 kiyohara 225 1.1 kiyohara /* 226 1.1 kiyohara * Audio (I2S/S/PDIF) Interface Registers 227 1.1 kiyohara */ 228 1.6 kiyohara #define KIRKWOOD_AUDIO_BASE (KIRKWOOD_UNITID2PHYS(AUDIO)) /* 0xa0000 */ 229 1.1 kiyohara 230 1.1 kiyohara /* 231 1.1 kiyohara * MPEG-2 Transport Stream (TS) Interface Registers 232 1.1 kiyohara */ 233 1.1 kiyohara #define KIRKWOOD_MTS_BASE (KIRKWOOD_UNITID2PHYS(MTS)) /* 0xb0000 */ 234 1.1 kiyohara 235 1.1 kiyohara /* 236 1.1 kiyohara * Time Division Multiplexing (TDM) Unit Registers 237 1.1 kiyohara */ 238 1.1 kiyohara #define KIRKWOOD_TDM_BASE (KIRKWOOD_UNITID2PHYS(TDM)) /* 0xd0000 */ 239 1.1 kiyohara 240 1.1 kiyohara #endif /* _KIRKWOODREG_H_ */ 241