1*a582fe27Srin /* $NetBSD: dcr4xx.h,v 1.4 2021/04/02 03:20:53 rin Exp $ */ 22692e2e2Skiyohara 32692e2e2Skiyohara /* 42692e2e2Skiyohara * Copyright 2002 Wasabi Systems, Inc. 52692e2e2Skiyohara * All rights reserved. 62692e2e2Skiyohara * 72692e2e2Skiyohara * Written by Eduardo Horvath for Wasabi Systems, Inc. 82692e2e2Skiyohara * 92692e2e2Skiyohara * Redistribution and use in source and binary forms, with or without 102692e2e2Skiyohara * modification, are permitted provided that the following conditions 112692e2e2Skiyohara * are met: 122692e2e2Skiyohara * 1. Redistributions of source code must retain the above copyright 132692e2e2Skiyohara * notice, this list of conditions and the following disclaimer. 142692e2e2Skiyohara * 2. Redistributions in binary form must reproduce the above copyright 152692e2e2Skiyohara * notice, this list of conditions and the following disclaimer in the 162692e2e2Skiyohara * documentation and/or other materials provided with the distribution. 172692e2e2Skiyohara * 3. All advertising materials mentioning features or use of this software 182692e2e2Skiyohara * must display the following acknowledgement: 192692e2e2Skiyohara * This product includes software developed for the NetBSD Project by 202692e2e2Skiyohara * Wasabi Systems, Inc. 212692e2e2Skiyohara * 4. The name of Wasabi Systems, Inc. may not be used to endorse 222692e2e2Skiyohara * or promote products derived from this software without specific prior 232692e2e2Skiyohara * written permission. 242692e2e2Skiyohara * 252692e2e2Skiyohara * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND 262692e2e2Skiyohara * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 272692e2e2Skiyohara * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 282692e2e2Skiyohara * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC 292692e2e2Skiyohara * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 302692e2e2Skiyohara * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 312692e2e2Skiyohara * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 322692e2e2Skiyohara * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 332692e2e2Skiyohara * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 342692e2e2Skiyohara * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 352692e2e2Skiyohara * POSSIBILITY OF SUCH DAMAGE. 362692e2e2Skiyohara */ 372692e2e2Skiyohara 382692e2e2Skiyohara #ifndef _DCR405GP_H_ 392692e2e2Skiyohara #define _DCR405GP_H_ 402692e2e2Skiyohara 412692e2e2Skiyohara /* Device Control Register declarations */ 422692e2e2Skiyohara 432692e2e2Skiyohara /* DCRs used for indirect access */ 442692e2e2Skiyohara #define DCR_CPR0_CFGADDR 0x00c /* Clocking Configuration Address Register */ 452692e2e2Skiyohara #define DCR_CPR0_CFGDATA 0x00d /* Clocking Configuration Data Register */ 462692e2e2Skiyohara #define DCR_SDR0_CFGADDR 0x00e /* System DCR Configuration Address Register */ 472692e2e2Skiyohara #define DCR_SDR0_CFGDATA 0x00f /* System DCR Configuration Data Register */ 482692e2e2Skiyohara #define DCR_SDRAM0_CFGADDR 0x010 /* Memory Controller Address Register */ 492692e2e2Skiyohara #define DCR_SDRAM0_CFGDATA 0x011 /* Memory Controller Data Register */ 502692e2e2Skiyohara #define DCR_EBC0_CFGADDR 0x012 /* Peripheral Controller Address Register */ 512692e2e2Skiyohara #define DCR_EBC0_CFGDATA 0x013 /* Peripheral Controller Data Register */ 522692e2e2Skiyohara #define DCR_DCP0_CFGADDR 0x014 /* Decompression Controller Address Register */ 532692e2e2Skiyohara #define DCR_DCP0_CFGDATA 0x015 /* Decompression Controller Data Register */ 542692e2e2Skiyohara 552692e2e2Skiyohara /* On-Chip memory */ 562692e2e2Skiyohara #define DCR_OCM0_ISARC 0x018 /* OCM Instruction-Side Address Range Compare Register */ 572692e2e2Skiyohara #define DCR_OCM0_ISCNTL 0x019 /* OCM Instruction-Side Control Register */ 582692e2e2Skiyohara #define DCR_OCM0_DSARC 0x01a /* OCM Data-Side Address Range Compare Register */ 592692e2e2Skiyohara #define DCR_OCM0_DSCNTL 0x01b /* OCM Data-Side Control Register */ 602692e2e2Skiyohara 612692e2e2Skiyohara /* On-Chip busses */ 622692e2e2Skiyohara #define DCR_PLB0_BESR 0x084 /* PLB Bus Error Status Register */ 632692e2e2Skiyohara #define DCR_PLB0_BEAR 0x086 /* PLB Bus Error Address Register */ 642692e2e2Skiyohara #define DCR_PLB0_ACR 0x087 /* PLB Arbiter Control Register */ 652692e2e2Skiyohara #define DCR_POB0_BESR0 0x0a0 /* PLB to OPB Bus Error Status Register 0 */ 662692e2e2Skiyohara #define DCR_POB0_BEAR 0x0a2 /* PLB to OPB Bus Error Address Register */ 672692e2e2Skiyohara #define DCR_POB0_BESR1 0x0a4 /* PLB to OPB Bus Error Status Register 1 */ 682692e2e2Skiyohara 692692e2e2Skiyohara /* Clocking, Power management and Chip Control */ 702692e2e2Skiyohara #define DCR_CPC0_PLLMR 0x0b0 /* PLL Mode Register */ 712692e2e2Skiyohara #define CPC0_PLLMR_CBDV(pllmr) ((((pllmr) & 0x00060000) >> 17) + 1) 722692e2e2Skiyohara #define CPC0_PLLMR_OPDV(pllmr) ((((pllmr) & 0x00018000) >> 15) + 1) 732692e2e2Skiyohara #define DCR_CPC0_CR0 0x0b1 /* Chip Control Register 0 */ 742692e2e2Skiyohara #define DCR_CPC0_CR1 0x0b2 /* Chip Control Register 1 */ 752692e2e2Skiyohara #define CPC0_CR1_CETE 0x00800000 /* CPU External Timer Enable */ 762692e2e2Skiyohara #define DCR_CPC0_PSR 0x0b4 /* Chip Pin Strapping Register */ 772692e2e2Skiyohara #define DCR_CPC0_JTAGID 0x0b5 /* JTAG ID Register */ 782692e2e2Skiyohara #define DCR_CPC0_SR 0x0b8 /* CPM Status Register */ 792692e2e2Skiyohara #define DCR_CPC0_ER 0x0b9 /* CPM Enable Register */ 802692e2e2Skiyohara #define DCR_CPC0_FR 0x0ba /* CPM Force Register */ 812692e2e2Skiyohara 822692e2e2Skiyohara /* Universal Interrupt Controllers */ 832692e2e2Skiyohara #define DCR_UIC0_BASE 0x0c0 /* UIC0 Registers Base */ 842692e2e2Skiyohara #define DCR_UIC1_BASE 0x0d0 /* UIC1 Registers Base */ 852692e2e2Skiyohara #define DCR_UIC2_BASE 0x0e0 /* UIC2 Registers Base */ 862692e2e2Skiyohara #define DCR_UIC3_BASE 0x0f0 /* UIC3 Registers Base */ 872692e2e2Skiyohara #define DCR_UICB_BASE 0x200 /* UICB Registers Base */ 882692e2e2Skiyohara #define DCR_UIC2_BASE_440GX 0x210 /* UIC2 Registers Base (440GX only) */ 892692e2e2Skiyohara 902692e2e2Skiyohara #define DCR_UIC_SR 0x000 /* UIC Status Register */ 912692e2e2Skiyohara #define DCR_UIC_ER 0x002 /* UIC Enable Register */ 922692e2e2Skiyohara #define DCR_UIC_CR 0x003 /* UIC Critical Register */ 932692e2e2Skiyohara #define DCR_UIC_PR 0x004 /* UIC Polarity Register */ 942692e2e2Skiyohara #define DCR_UIC_TR 0x005 /* UIC Triggering Register */ 952692e2e2Skiyohara #define DCR_UIC_MSR 0x006 /* UIC Masked Status Register */ 962692e2e2Skiyohara #define DCR_UIC_VR 0x007 /* UIC Vector Register */ 972692e2e2Skiyohara #define DCR_UIC_VCR 0x008 /* UIC Vector Configuration Register */ 982692e2e2Skiyohara 992692e2e2Skiyohara /* Direct Memory Access */ 1002692e2e2Skiyohara #define DCR_DMA0_CR0 0x100 /* DMA Channel Control Register 0 */ 1012692e2e2Skiyohara #define DCR_DMA0_CT0 0x101 /* DMA Count Register 0 */ 1022692e2e2Skiyohara #define DCR_DMA0_DA0 0x102 /* DMA Destination Address Register 0 */ 1032692e2e2Skiyohara #define DCR_DMA0_SA0 0x103 /* DMA Source Address Register 0 */ 1042692e2e2Skiyohara #define DCR_DMA0_SG0 0x104 /* DMA Scatter/Gather Descriptor Address Register 0 */ 1052692e2e2Skiyohara 1062692e2e2Skiyohara #define DCR_DMA0_CR1 0x108 /* DMA Channel Control Register 1 */ 1072692e2e2Skiyohara #define DCR_DMA0_CT1 0x109 /* DMA Count Register 1 */ 1082692e2e2Skiyohara #define DCR_DMA0_DA1 0x10a /* DMA Destination Address Register 1 */ 1092692e2e2Skiyohara #define DCR_DMA0_SA1 0x10b /* DMA Source Address Register 1 */ 1102692e2e2Skiyohara #define DCR_DMA0_SG1 0x10c /* DMA Scatter/Gather Descriptor Address Register 1 */ 1112692e2e2Skiyohara 1122692e2e2Skiyohara #define DCR_DMA0_CR2 0x110 /* DMA Channel Control Register 2 */ 1132692e2e2Skiyohara #define DCR_DMA0_CT2 0x111 /* DMA Count Register 2 */ 1142692e2e2Skiyohara #define DCR_DMA0_DA2 0x112 /* DMA Destination Address Register 2 */ 1152692e2e2Skiyohara #define DCR_DMA0_SA2 0x113 /* DMA Source Address Register 2 */ 1162692e2e2Skiyohara #define DCR_DMA0_SG2 0x114 /* DMA Scatter/Gather Descriptor Address Register 2 */ 1172692e2e2Skiyohara 1182692e2e2Skiyohara #define DCR_DMA0_CR3 0x118 /* DMA Channel Control Register 3 */ 1192692e2e2Skiyohara #define DCR_DMA0_CT3 0x119 /* DMA Count Register 3 */ 1202692e2e2Skiyohara #define DCR_DMA0_DA3 0x11a /* DMA Destination Address Register 3 */ 1212692e2e2Skiyohara #define DCR_DMA0_SA3 0x11b /* DMA Source Address Register 3 */ 1222692e2e2Skiyohara #define DCR_DMA0_SG3 0x11c /* DMA Scatter/Gather Descriptor Address Register 3 */ 1232692e2e2Skiyohara 1242692e2e2Skiyohara #define DCR_DMA0_SR 0x120 /* DMA Status Register */ 1252692e2e2Skiyohara #define DCR_DMA0_SGC 0x123 /* DMA Scatter/Gather Control Register */ 1262692e2e2Skiyohara #define DCR_DMA0_SLP 0x125 /* DMA Sleep Mode Register */ 1272692e2e2Skiyohara #define DCR_DMA0_POL 0x126 /* DMA Polarity Configuration Register */ 1282692e2e2Skiyohara 1292692e2e2Skiyohara /* Memory Access Layer */ 1302692e2e2Skiyohara #define DCR_MAL0_CFG 0x180 /* MAL Configuration Register */ 1312692e2e2Skiyohara #define MAL0_CFG_SR 0x80000000 /* Software Reset */ 1322692e2e2Skiyohara #define MAL0_CFG_PLBP_MASK 0x00c00000 /* PLB priority mask */ 1332692e2e2Skiyohara #define MAL0_CFG_PLBP_0 0x00000000 /* PLB priority 0 */ 1342692e2e2Skiyohara #define MAL0_CFG_PLBP_1 0x00400000 /* PLB priority 1 */ 1352692e2e2Skiyohara #define MAL0_CFG_PLBP_2 0x00800000 /* PLB priority 2 */ 1362692e2e2Skiyohara #define MAL0_CFG_PLBP_3 0x00c00000 /* PLB priority 3 */ 1372692e2e2Skiyohara #define MAL0_CFG_GA 0x00200000 /* Guarded Active */ 1382692e2e2Skiyohara #define MAL0_CFG_OA 0x00100000 /* Ordered Active */ 1392692e2e2Skiyohara #define MAL0_CFG_PLBLE 0x00080000 /* PLB Lock Error */ 1402692e2e2Skiyohara #define MAL0_CFG_PLBLT 0x00078000 /* PLB Latency Timer */ 1412692e2e2Skiyohara #define MAL0_CFG_PLBLTSHIFT 15 /* PLB Latency Timer shift */ 1422692e2e2Skiyohara #define MAL0_CFG_PLBB 0x00004000 /* PLB Burst */ 1432692e2e2Skiyohara #define MAL0_CFG_OPBBL 0x00000080 /* OPB Bus Lock */ 1442692e2e2Skiyohara #define MAL0_CFG_EOPIE 0x00000004 /* End Of Packet Interrupt Enable */ 1452692e2e2Skiyohara #define MAL0_CFG_LEA 0x00000002 /* Locked Error Active */ 1462692e2e2Skiyohara #define MAL0_CFG_SD 0x00000001 /* MAL Scroll Descriptor */ 1472692e2e2Skiyohara 1482692e2e2Skiyohara #define MAL0_CFG_RPP_MASK 0x00c00000 /* Read priority mask */ 1492692e2e2Skiyohara #define MAL0_CFG_RPP_0 0x00000000 /* Lowest */ 1502692e2e2Skiyohara #define MAL0_CFG_RPP_1 0x00400000 1512692e2e2Skiyohara #define MAL0_CFG_RPP_2 0x00800000 1522692e2e2Skiyohara #define MAL0_CFG_RPP_3 0x00c00000 /* Highest */ 1532692e2e2Skiyohara #define MAL0_CFG_RMBS_MASK 0x00300000 /* Read Max Burst Size */ 1542692e2e2Skiyohara #define MAL0_CFG_RMBS_4 0x00000000 /* Max burst size of 4 */ 1552692e2e2Skiyohara #define MAL0_CFG_RMBS_8 0x00100000 /* Max burst size of 8 */ 1562692e2e2Skiyohara #define MAL0_CFG_RMBS_16 0x00200000 /* Max burst size of 16 */ 1572692e2e2Skiyohara #define MAL0_CFG_RMBS_32 0x00300000 /* Max burst size of 32 */ 1582692e2e2Skiyohara #define MAL0_CFG_WPP_MASK 0x000c0000 /* Write PLB Priority */ 1592692e2e2Skiyohara #define MAL0_CFG_WPP_0 0x00000000 /* Lowest */ 1602692e2e2Skiyohara #define MAL0_CFG_WPP_1 0x00040000 1612692e2e2Skiyohara #define MAL0_CFG_WPP_2 0x00080000 1622692e2e2Skiyohara #define MAL0_CFG_WPP_3 0x000c0000 /* Highest */ 1632692e2e2Skiyohara #define MAL0_CFG_WMBS_MASK 0x00030000 /* Write Max Burst Size */ 1642692e2e2Skiyohara #define MAL0_CFG_WMBS_4 0x00000000 /* Max burst size of 4 */ 1652692e2e2Skiyohara #define MAL0_CFG_WMBS_8 0x00010000 /* Max burst size of 8 */ 1662692e2e2Skiyohara #define MAL0_CFG_WMBS_16 0x00020000 /* Max burst size of 16 */ 1672692e2e2Skiyohara #define MAL0_CFG_WMBS_32 0x00030000 /* Max burst size of 32 */ 1682692e2e2Skiyohara #define MAL0_CFG_PLBLE__EX 0x00008000 /* PLB Lock Error */ 1692692e2e2Skiyohara 1702692e2e2Skiyohara #define DCR_MAL0_ESR 0x181 /* Error Status Register */ 1712692e2e2Skiyohara #define MAL0_ESR_EVB 0x80000000 /* Error Valid Bit */ 1722692e2e2Skiyohara #define MAL0_ESR_CID_RX 0x40000000 /* Receive Channel */ 1732692e2e2Skiyohara #define MAL0_ESR_CID_MASK 0x3e000000 /* Channel ID */ 1742692e2e2Skiyohara #define MAL0_ESR_CID_SHIFT 25 1752692e2e2Skiyohara #define MAL0_ESR_PTE 0x00800000 /* PLB Timeout Error */ 1762692e2e2Skiyohara #define MAL0_ESR_PRE 0x00400000 /* PLB Read Error */ 1772692e2e2Skiyohara #define MAL0_ESR_PWE 0x00200000 /* PLB Write Error */ 1782692e2e2Skiyohara #define MAL0_ESR_DE 0x00100000 /* Descriptor Error */ 1792692e2e2Skiyohara #define MAL0_ESR_ONE 0x00080000 /* OPB Non-fullword Error */ 1802692e2e2Skiyohara #define MAL0_ESR_OTE 0x00040000 /* OPB Timeout Error */ 1812692e2e2Skiyohara #define MAL0_ESR_OSE 0x00020000 /* OPB Slave Error */ 1822692e2e2Skiyohara #define MAL0_ESR_PEIN 0x00010000 /* PLB Bus Error Indication */ 1832692e2e2Skiyohara #define MAL0_ESR_PTEI 0x00000080 /* PLB Timeout Error Interrupt */ 1842692e2e2Skiyohara #define MAL0_ESR_PREI 0x00000040 /* PLB Read Error Interrupt */ 1852692e2e2Skiyohara #define MAL0_ESR_PWEI 0x00000020 /* PLB Write Error Interrupt */ 1862692e2e2Skiyohara #define MAL0_ESR_DEI 0x00000010 /* Descriptor Error Interrupt */ 1872692e2e2Skiyohara #define MAL0_ESR_ONEI 0x00000008 /* OPB Non-fullword Error Interrupt */ 1882692e2e2Skiyohara #define MAL0_ESR_OTEI 0x00000004 /* OPB Timeout Error Interrupt */ 1892692e2e2Skiyohara #define MAL0_ESR_OSEI 0x00000002 /* OPB Slave Error Interrupt */ 1902692e2e2Skiyohara #define MAL0_ESR_PBEI 0x00000001 /* PLB Bus Error Interrupt */ 1912692e2e2Skiyohara #define DCR_MAL0_IER 0x182 /* Interrupt Enable Register */ 1922692e2e2Skiyohara #define MAL0_IER_PT 0x00000080 /* PLB Timeout Interrupt */ 1932692e2e2Skiyohara #define MAL0_IER_PRE 0x00000040 /* PLB Read Interrupt */ 1942692e2e2Skiyohara #define MAL0_IER_PWE 0x00000020 /* PLB Write Interrupt */ 1952692e2e2Skiyohara #define MAL0_IER_DE 0x00000010 /* Descriptor Error Interrupt */ 1962692e2e2Skiyohara #define MAL0_IER_NWE 0x00000008 /* Non-Word Transfer Error Interrupt */ 1972692e2e2Skiyohara #define MAL0_IER_TO 0x00000004 /* Time Out Error Interrupt */ 1982692e2e2Skiyohara #define MAL0_IER_OPB 0x00000002 /* OPB Error Interrupt */ 1992692e2e2Skiyohara #define MAL0_IER_PLB 0x00000001 /* PLB Error Interrupt */ 2002692e2e2Skiyohara #define DCR_MALDBR 0x183 /* MAL Debug register */ 2012692e2e2Skiyohara #define DCR_MAL0_TXCASR 0x184 /* Tx Channel Active Register (Set) */ 2022692e2e2Skiyohara #define DCR_MAL0_TXCARR 0x185 /* Tx Channel Active Register (Reset) */ 2032692e2e2Skiyohara #define DCR_MAL0_TXEOBISR 0x186 /* Tx End of Buffer Interrupt Status Register */ 2042692e2e2Skiyohara #define DCR_MAL0_TXDEIR 0x187 /* Tx Descriptor Error Interrupt Register */ 2052692e2e2Skiyohara #define DCR_MAL0_RXCASR 0x190 /* Rx Channel Active Register (Set) */ 2062692e2e2Skiyohara #define DCR_MAL0_RXCARR 0x191 /* Rx Channel Active Register (Reset) */ 2072692e2e2Skiyohara #define DCR_MAL0_RXEOBISR 0x192 /* Rx End of Buffer Interrupt Status Register */ 2082692e2e2Skiyohara #define DCR_MAL0_RXDEIR 0x193 /* Rx Descriptor Error Interrupt Register */ 2092692e2e2Skiyohara #define MAL0__XCAR_CHAN(c) (0x80000000 >> (c)) 2102692e2e2Skiyohara #define DCR_MAL0_TXCTP0R 0x1a0 /* Channel Tx 0 Channel Table Pointer Register */ 2112692e2e2Skiyohara #define DCR_MAL0_TXCTP1R 0x1a1 /* Channel Tx 1 Channel Table Pointer Register */ 2122692e2e2Skiyohara #define DCR_MAL0_TXCTP2R 0x1a2 /* Channel Tx 2 Channel Table Pointer Register */ 2132692e2e2Skiyohara #define DCR_MAL0_TXCTP3R 0x1a3 /* Channel Tx 3 Channel Table Pointer Register */ 2142692e2e2Skiyohara #define DCR_MAL0_RXCTP0R 0x1c0 /* Channel Rx 0 Channel Table Pointer Register */ 2152692e2e2Skiyohara #define DCR_MAL0_RXCTP1R 0x1c1 /* Channel Rx 1 Channel Table Pointer Register */ 2162692e2e2Skiyohara #define DCR_MAL0_RXCTP2R 0x1c2 /* Channel Rx 2 Channel Table Pointer Register */ 2172692e2e2Skiyohara #define DCR_MAL0_RXCTP3R 0x1c3 /* Channel Rx 3 Channel Table Pointer Register */ 2182692e2e2Skiyohara #define DCR_MAL0_RCBS0 0x1e0 /* Channel Rx 0 Channel Buffer Size Register */ 2192692e2e2Skiyohara #define DCR_MAL0_RCBS1 0x1e1 /* Channel Rx 1 Channel Buffer Size Register */ 2202692e2e2Skiyohara #define DCR_MAL0_RCBS2 0x1e2 /* Channel Rx 2 Channel Buffer Size Register */ 2212692e2e2Skiyohara #define DCR_MAL0_RCBS3 0x1e3 /* Channel Rx 3 Channel Buffer Size Register */ 2222692e2e2Skiyohara 2232692e2e2Skiyohara 2242692e2e2Skiyohara /* Indirectly accessed Clocking Controller DCRs */ 2252692e2e2Skiyohara 2262692e2e2Skiyohara #define DCR_CPR0_CLKUPD 0x020 /* Clocking Update Register */ 2272692e2e2Skiyohara #define DCR_CPR0_PLLC 0x040 /* SYS_PLL Control Register */ 2282692e2e2Skiyohara #define DCR_CPR0_PLLD 0x060 /* SYS_PLL Divider Register */ 2292692e2e2Skiyohara #define DCR_CPR0_CPUD 0x080 /* CPU Clock Divider Register */ 2302692e2e2Skiyohara #define DCR_CPR0_PLBD 0x0a0 /* PLB Clock Divider Register */ 2312692e2e2Skiyohara #define CPR0_PLBDV0(x) \ 2322692e2e2Skiyohara ((((x) & 0x07000000) >> 24) == 0 ? 8 : (((x) & 0x07000000) >> 24)) 2332692e2e2Skiyohara #define DCR_CPR0_OPBD 0x0c0 /* OPB Clock Divider Register */ 2342692e2e2Skiyohara #define CPR0_OPBDV0(x) \ 2352692e2e2Skiyohara ((((x) & 0x03000000) >> 24) == 0 ? 4 : (((x) & 0x03000000) >> 24)) 2362692e2e2Skiyohara #define DCR_CPR0_PERD 0x0e0 /* Peripheral Clock Divider Register */ 2372692e2e2Skiyohara #define DCR_CPR0_AHBD 0x100 /* AHB Clock Divider Register */ 2382692e2e2Skiyohara #define DCR_CPR0_ICFG 0x140 /* Initial Configuration Register */ 2392692e2e2Skiyohara 2402692e2e2Skiyohara /* Indirectly accessed Clocking Controller DCRs */ 2412692e2e2Skiyohara 242964b567aSkiyohara #define DCR_SDR0_SRST0 0x0200 /* Soft Reset */ 243964b567aSkiyohara #define SDR0_SRST0_BGO (1 << 31) /* PLB4 to OPB bridge */ 244964b567aSkiyohara #define SDR0_SRST0_PLB4 (1 << 30) /* PLB4 arbiter */ 245964b567aSkiyohara #define SDR0_SRST0_EBC (1 << 29) /* External bus controller */ 246964b567aSkiyohara #define SDR0_SRST0_OPB (1 << 28) /* OPB arbiter */ 247964b567aSkiyohara #define SDR0_SRST0_UART0 (1 << 27) /* Universal asynchronous receiver/transmitter 0 */ 248964b567aSkiyohara #define SDR0_SRST0_UART1 (1 << 26) /* Universal asynchronous receiver/transmitter 1 */ 249964b567aSkiyohara #define SDR0_SRST0_IIC0 (1 << 25) /* Inter integrated circuit 0 */ 250964b567aSkiyohara #define SDR0_SRST0_BGI (1 << 24) /* OPB to PLB bridge */ 251964b567aSkiyohara #define SDR0_SRST0_GPIO (1 << 23) /* General purpose I/O */ 252964b567aSkiyohara #define SDR0_SRST0_GPT (1 << 22) /* General purpose timer */ 253964b567aSkiyohara #define SDR0_SRST0_DMC (1 << 21) /* DDR1/2 SDRAM memory controller */ 254964b567aSkiyohara #define SDR0_SRST0_RGMII (1 << 20) /* RGMII bridge */ 255964b567aSkiyohara #define SDR0_SRST0_EMAC0 (1 << 19) /* Ethernet media access controller 0 */ 256964b567aSkiyohara #define SDR0_SRST0_EMAC1 (1 << 18) /* Ethernet media access controller 1 */ 257964b567aSkiyohara #define SDR0_SRST0_CPM (1 << 17) /* Clock and power management */ 258964b567aSkiyohara #define SDR0_SRST0_EPLL (1 << 16) /* Ethernet PLL */ 259964b567aSkiyohara #define SDR0_SRST0_UIC (1 << 15) /* UIC0, UIC1, UIC2 */ 260964b567aSkiyohara #define SDR0_SRST0_UPRST (1 << 14) /* USB PRST */ 261964b567aSkiyohara #define SDR0_SRST0_IIC1 (1 << 13) /* Inter integrated circuit 1 */ 262964b567aSkiyohara #define SDR0_SRST0_SCP (1 << 12) /* Serial communications port */ 263964b567aSkiyohara #define SDR0_SRST0_UHRST (1 << 11) /* USB HRESET (AHB) */ 264964b567aSkiyohara #define SDR0_SRST0_DMA (1 << 10) /* Direct memory access controller */ 265964b567aSkiyohara #define SDR0_SRST0_DMAC (1 << 9) /* DMA channel */ 266964b567aSkiyohara #define SDR0_SRST0_MAL (1 << 8) /* Media access layer */ 267964b567aSkiyohara #define SDR0_SRST0_EBM (1 << 7) /* External bus master */ 268964b567aSkiyohara #define SDR0_SRST0_GPTR (1 << 6) /* General purpose timer */ 269964b567aSkiyohara #define SDR0_SRST0_PE0 (1 << 5) /* PCI Express 0 */ 270964b567aSkiyohara #define SDR0_SRST0_PE1 (1 << 4) /* PCI Express 1 */ 271964b567aSkiyohara #define SDR0_SRST0_CRYP (1 << 3) /* Security */ 272964b567aSkiyohara #define SDR0_SRST0_PKP (1 << 2) /* Public Key Accelerator and TRNG1 */ 273964b567aSkiyohara #define SDR0_SRST0_AHB (1 << 1) /* AHB to PLB bridge */ 274964b567aSkiyohara #define SDR0_SRST0_NDFC (1 << 0) /* NAND Flash controller */ 275964b567aSkiyohara #define DCR_SDR0_PFC1 0x4101 /* Pin Function Control Register 1 */ 276964b567aSkiyohara #define SDR0_PFC1_U1ME (1 << 25) /* UART1 Mode Enable */ 277964b567aSkiyohara #define SDR0_PFC1_U0ME (1 << 19) /* UART0 Mode Enable */ 278964b567aSkiyohara #define SDR0_PFC1_U0IM (1 << 18) /* UART0 Interface Mode */ 279964b567aSkiyohara #define SDR0_PFC1_SIS (1 << 17) /* SPI/IIC 1 Selection */ 280964b567aSkiyohara #define SDR0_PFC1_DMAAEN (1 << 16) /* DMA Channel A Enable */ 281964b567aSkiyohara #define SDR0_PFC1_DMADEN (1 << 15) /* DMA Channel D Enable */ 282964b567aSkiyohara #define SDR0_PFC1_USBEN (1 << 14) /* USB OTG Enable */ 283964b567aSkiyohara #define SDR0_PFC1_AHBSWAP (1 << 5) /* AHB Data Swap Enable */ 284964b567aSkiyohara #define SDR0_PFC1_USBBIGEN (1 << 4) /* USB OTG - AHB Interface Endian Mode */ 285964b567aSkiyohara #define SDR0_PFC1_GPTFREQ(x) ((x) & 0xf) /* GPT Variable Frequency Generator */ 2862692e2e2Skiyohara #define DCR_SDR0_MFR 0x4300 /* Miscellaneous Function Register */ 2872692e2e2Skiyohara #define SDR0_MFR_ECS(n) (1 << (27 - (n))) /* Ethernet n Clock Selection */ 2882692e2e2Skiyohara #define SDR0_MFR_ETXFL(n) (1 << (15 - ((n) << 2))) /* Force Parity Error EMACn Tx FIFO Bits 0:63 */ 2892692e2e2Skiyohara #define SDR0_MFR_ETXFH(n) (1 << (14 - ((n) << 2))) /* Force Parity Error EMACn Tx FIFO Bits 64:127 */ 2902692e2e2Skiyohara #define SDR0_MFR_ERXFL(n) (1 << (13 - ((n) << 2))) /* Force Parity Error EMACn Rx FIFO Bits 0:63 */ 2912692e2e2Skiyohara #define SDR0_MFR_ERXFH(n) (1 << (12 - ((n) << 2))) /* Force Parity Error EMACn Rx FIFO Bits 64:127 */ 2922692e2e2Skiyohara 2932692e2e2Skiyohara /* Indirectly accessed SDRAM Controller DCRs */ 2942692e2e2Skiyohara 2952692e2e2Skiyohara #define DCR_SDRAM0_BESR0 0x00 2962692e2e2Skiyohara #define DCR_SDRAM0_BESR1 0x08 2972692e2e2Skiyohara #define DCR_SDRAM0_BEAR 0x10 2982692e2e2Skiyohara #define DCR_SDRAM0_CFG 0x20 2992692e2e2Skiyohara #define DCR_SDRAM0_STATUS 0x24 3002692e2e2Skiyohara #define DCR_SDRAM0_RTR 0x30 3012692e2e2Skiyohara #define DCR_SDRAM0_PMIT 0x34 3022692e2e2Skiyohara #define DCR_SDRAM0_B0CR 0x40 3032692e2e2Skiyohara #define DCR_SDRAM0_B1CR 0x44 3042692e2e2Skiyohara #define DCR_SDRAM0_B2CR 0x48 3052692e2e2Skiyohara #define DCR_SDRAM0_B3CR 0x4c 306*a582fe27Srin #define SDRAM0_BnCR_EN 0x00000001 307*a582fe27Srin #define SDRAM0_BnCR_SZ(n) (1 << ((((n) >> 17) & 7) + 22)) 3082692e2e2Skiyohara #define DCR_SDRAM0_TR 0x80 3092692e2e2Skiyohara #define DCR_SDRAM0_ECCCFG 0x94 3102692e2e2Skiyohara #define DCR_SDRAM0_ECCESR 0x98 3112692e2e2Skiyohara #define SDRAM0_ECCESR_BLCE 0xf0000000 3122692e2e2Skiyohara #define SDRAM0_ECCESR_CBE 0x00c00000 3132692e2e2Skiyohara #define SDRAM0_ECCESR_CE 0x00200000 3142692e2e2Skiyohara #define SDRAM0_ECCESR_UE 0x00100000 3152692e2e2Skiyohara #define SDRAM0_ECCESR_BKE 0x0000f000 3162692e2e2Skiyohara 3172692e2e2Skiyohara #define SDRAM0_ECCESR_BLCEN(n) (0x80000000 >> (n)) 3182692e2e2Skiyohara #define SDRAM0_ECCESR_BKEN(n) (0x00008000 >> (n)) 3192692e2e2Skiyohara #define SDRAM0_ECCESR_CBEN(n) (0x00800000 >> (n)) 3202692e2e2Skiyohara 3219303196dSuebayasi /* Indirectly accessed External Bus Controller (EBC) DCRs */ 3229303196dSuebayasi 3239303196dSuebayasi #define DCR_EBC0_B0CR 0x00 3249303196dSuebayasi #define DCR_EBC0_B1CR 0x01 3259303196dSuebayasi #define DCR_EBC0_B2CR 0x02 3269303196dSuebayasi #define DCR_EBC0_B3CR 0x03 3279303196dSuebayasi #define DCR_EBC0_B4CR 0x04 3289303196dSuebayasi #define DCR_EBC0_B5CR 0x05 3299303196dSuebayasi #define DCR_EBC0_B6CR 0x06 3309303196dSuebayasi #define DCR_EBC0_B7CR 0x07 3319303196dSuebayasi #define DCR_EBC0_B0AP 0x10 3329303196dSuebayasi #define DCR_EBC0_B1AP 0x11 3339303196dSuebayasi #define DCR_EBC0_B2AP 0x12 3349303196dSuebayasi #define DCR_EBC0_B3AP 0x13 3359303196dSuebayasi #define DCR_EBC0_B4AP 0x14 3369303196dSuebayasi #define DCR_EBC0_B5AP 0x15 3379303196dSuebayasi #define DCR_EBC0_B6AP 0x16 3389303196dSuebayasi #define DCR_EBC0_B7AP 0x17 3399303196dSuebayasi #define DCR_EBC0_BEAR 0x20 3409303196dSuebayasi #define DCR_EBC0_BESR0 0x21 3419303196dSuebayasi #define DCR_EBC0_BESR1 0x22 3429303196dSuebayasi #define DCR_EBC0_CFG 0x23 3439303196dSuebayasi 3449303196dSuebayasi /* Indirectly accessed Decompression Controller DCRs */ 3459303196dSuebayasi 3469303196dSuebayasi #define DCR_DCP0_ITOR0 0x00 3479303196dSuebayasi #define DCR_DCP0_ITOR1 0x01 3489303196dSuebayasi #define DCR_DCP0_ITOR2 0x02 3499303196dSuebayasi #define DCR_DCP0_ITOR3 0x03 3509303196dSuebayasi #define DCR_DCP0_ADDR0 0x04 3519303196dSuebayasi #define DCR_DCP0_ADDR1 0x05 3529303196dSuebayasi #define DCR_DCP0_CFG 0x40 3539303196dSuebayasi #define DCR_DCP0_ID 0x41 3549303196dSuebayasi #define DCR_DCP0_VER 0x42 3559303196dSuebayasi #define DCR_DCP0_PLBBEAR 0x50 3569303196dSuebayasi #define DCR_DCP0_MEMBEAR 0x51 3579303196dSuebayasi #define DCR_DCP0_ESR 0x52 3589303196dSuebayasi #define DCR_DCP0_RAM0 0x400 3599303196dSuebayasi 3602692e2e2Skiyohara #endif /* _DCR405GP_H_ */ 361