Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Ralink RT3662/RT3883 SoC register definitions
0004  *
0005  * Copyright (C) 2011-2012 Gabor Juhos <juhosg@openwrt.org>
0006  */
0007 
0008 #ifndef _RT3883_REGS_H_
0009 #define _RT3883_REGS_H_
0010 
0011 #include <linux/bitops.h>
0012 
0013 #define RT3883_SDRAM_BASE   0x00000000
0014 #define RT3883_SYSC_BASE    0x10000000
0015 #define RT3883_TIMER_BASE   0x10000100
0016 #define RT3883_INTC_BASE    0x10000200
0017 #define RT3883_MEMC_BASE    0x10000300
0018 #define RT3883_UART0_BASE   0x10000500
0019 #define RT3883_PIO_BASE     0x10000600
0020 #define RT3883_FSCC_BASE    0x10000700
0021 #define RT3883_NANDC_BASE   0x10000810
0022 #define RT3883_I2C_BASE     0x10000900
0023 #define RT3883_I2S_BASE     0x10000a00
0024 #define RT3883_SPI_BASE     0x10000b00
0025 #define RT3883_UART1_BASE   0x10000c00
0026 #define RT3883_PCM_BASE     0x10002000
0027 #define RT3883_GDMA_BASE    0x10002800
0028 #define RT3883_CODEC1_BASE  0x10003000
0029 #define RT3883_CODEC2_BASE  0x10003800
0030 #define RT3883_FE_BASE      0x10100000
0031 #define RT3883_ROM_BASE     0x10118000
0032 #define RT3883_USBDEV_BASE  0x10112000
0033 #define RT3883_PCI_BASE     0x10140000
0034 #define RT3883_WLAN_BASE    0x10180000
0035 #define RT3883_USBHOST_BASE 0x101c0000
0036 #define RT3883_BOOT_BASE    0x1c000000
0037 #define RT3883_SRAM_BASE    0x1e000000
0038 #define RT3883_PCIMEM_BASE  0x20000000
0039 
0040 #define RT3883_EHCI_BASE    (RT3883_USBHOST_BASE)
0041 #define RT3883_OHCI_BASE    (RT3883_USBHOST_BASE + 0x1000)
0042 
0043 #define RT3883_SYSC_SIZE    0x100
0044 #define RT3883_TIMER_SIZE   0x100
0045 #define RT3883_INTC_SIZE    0x100
0046 #define RT3883_MEMC_SIZE    0x100
0047 #define RT3883_UART0_SIZE   0x100
0048 #define RT3883_UART1_SIZE   0x100
0049 #define RT3883_PIO_SIZE     0x100
0050 #define RT3883_FSCC_SIZE    0x100
0051 #define RT3883_NANDC_SIZE   0x0f0
0052 #define RT3883_I2C_SIZE     0x100
0053 #define RT3883_I2S_SIZE     0x100
0054 #define RT3883_SPI_SIZE     0x100
0055 #define RT3883_PCM_SIZE     0x800
0056 #define RT3883_GDMA_SIZE    0x800
0057 #define RT3883_CODEC1_SIZE  0x800
0058 #define RT3883_CODEC2_SIZE  0x800
0059 #define RT3883_FE_SIZE      0x10000
0060 #define RT3883_ROM_SIZE     0x4000
0061 #define RT3883_USBDEV_SIZE  0x4000
0062 #define RT3883_PCI_SIZE     0x40000
0063 #define RT3883_WLAN_SIZE    0x40000
0064 #define RT3883_USBHOST_SIZE 0x40000
0065 #define RT3883_BOOT_SIZE    (32 * 1024 * 1024)
0066 #define RT3883_SRAM_SIZE    (32 * 1024 * 1024)
0067 
0068 /* SYSC registers */
0069 #define RT3883_SYSC_REG_CHIPID0_3   0x00    /* Chip ID 0 */
0070 #define RT3883_SYSC_REG_CHIPID4_7   0x04    /* Chip ID 1 */
0071 #define RT3883_SYSC_REG_REVID       0x0c    /* Chip Revision Identification */
0072 #define RT3883_SYSC_REG_SYSCFG0     0x10    /* System Configuration 0 */
0073 #define RT3883_SYSC_REG_SYSCFG1     0x14    /* System Configuration 1 */
0074 #define RT3883_SYSC_REG_CLKCFG0     0x2c    /* Clock Configuration 0 */
0075 #define RT3883_SYSC_REG_CLKCFG1     0x30    /* Clock Configuration 1 */
0076 #define RT3883_SYSC_REG_RSTCTRL     0x34    /* Reset Control*/
0077 #define RT3883_SYSC_REG_RSTSTAT     0x38    /* Reset Status*/
0078 #define RT3883_SYSC_REG_USB_PS      0x5c    /* USB Power saving control */
0079 #define RT3883_SYSC_REG_GPIO_MODE   0x60    /* GPIO Purpose Select */
0080 #define RT3883_SYSC_REG_PCIE_CLK_GEN0   0x7c
0081 #define RT3883_SYSC_REG_PCIE_CLK_GEN1   0x80
0082 #define RT3883_SYSC_REG_PCIE_CLK_GEN2   0x84
0083 #define RT3883_SYSC_REG_PMU     0x88
0084 #define RT3883_SYSC_REG_PMU1        0x8c
0085 
0086 #define RT3883_CHIP_NAME0       0x38335452
0087 #define RT3883_CHIP_NAME1       0x20203338
0088 
0089 #define RT3883_REVID_VER_ID_MASK    0x0f
0090 #define RT3883_REVID_VER_ID_SHIFT   8
0091 #define RT3883_REVID_ECO_ID_MASK    0x0f
0092 
0093 #define RT3883_SYSCFG0_DRAM_TYPE_DDR2   BIT(17)
0094 #define RT3883_SYSCFG0_CPUCLK_SHIFT 8
0095 #define RT3883_SYSCFG0_CPUCLK_MASK  0x3
0096 #define RT3883_SYSCFG0_CPUCLK_250   0x0
0097 #define RT3883_SYSCFG0_CPUCLK_384   0x1
0098 #define RT3883_SYSCFG0_CPUCLK_480   0x2
0099 #define RT3883_SYSCFG0_CPUCLK_500   0x3
0100 
0101 #define RT3883_SYSCFG1_USB0_HOST_MODE   BIT(10)
0102 #define RT3883_SYSCFG1_PCIE_RC_MODE BIT(8)
0103 #define RT3883_SYSCFG1_PCI_HOST_MODE    BIT(7)
0104 #define RT3883_SYSCFG1_PCI_66M_MODE BIT(6)
0105 #define RT3883_SYSCFG1_GPIO2_AS_WDT_OUT BIT(2)
0106 
0107 #define RT3883_CLKCFG1_PCIE_CLK_EN  BIT(21)
0108 #define RT3883_CLKCFG1_UPHY1_CLK_EN BIT(20)
0109 #define RT3883_CLKCFG1_PCI_CLK_EN   BIT(19)
0110 #define RT3883_CLKCFG1_UPHY0_CLK_EN BIT(18)
0111 
0112 #define RT3883_GPIO_I2C_SD      1
0113 #define RT3883_GPIO_I2C_SCLK        2
0114 #define RT3883_GPIO_SPI_CS0     3
0115 #define RT3883_GPIO_SPI_CLK     4
0116 #define RT3883_GPIO_SPI_MOSI        5
0117 #define RT3883_GPIO_SPI_MISO        6
0118 #define RT3883_GPIO_7           7
0119 #define RT3883_GPIO_10          10
0120 #define RT3883_GPIO_11          11
0121 #define RT3883_GPIO_14          14
0122 #define RT3883_GPIO_UART1_TXD       15
0123 #define RT3883_GPIO_UART1_RXD       16
0124 #define RT3883_GPIO_JTAG_TDO        17
0125 #define RT3883_GPIO_JTAG_TDI        18
0126 #define RT3883_GPIO_JTAG_TMS        19
0127 #define RT3883_GPIO_JTAG_TCLK       20
0128 #define RT3883_GPIO_JTAG_TRST_N     21
0129 #define RT3883_GPIO_MDIO_MDC        22
0130 #define RT3883_GPIO_MDIO_MDIO       23
0131 #define RT3883_GPIO_LNA_PE_A0       32
0132 #define RT3883_GPIO_LNA_PE_A1       33
0133 #define RT3883_GPIO_LNA_PE_A2       34
0134 #define RT3883_GPIO_LNA_PE_G0       35
0135 #define RT3883_GPIO_LNA_PE_G1       36
0136 #define RT3883_GPIO_LNA_PE_G2       37
0137 #define RT3883_GPIO_PCI_AD0     40
0138 #define RT3883_GPIO_PCI_AD31        71
0139 #define RT3883_GPIO_GE2_TXD0        72
0140 #define RT3883_GPIO_GE2_TXD1        73
0141 #define RT3883_GPIO_GE2_TXD2        74
0142 #define RT3883_GPIO_GE2_TXD3        75
0143 #define RT3883_GPIO_GE2_TXEN        76
0144 #define RT3883_GPIO_GE2_TXCLK       77
0145 #define RT3883_GPIO_GE2_RXD0        78
0146 #define RT3883_GPIO_GE2_RXD1        79
0147 #define RT3883_GPIO_GE2_RXD2        80
0148 #define RT3883_GPIO_GE2_RXD3        81
0149 #define RT3883_GPIO_GE2_RXDV        82
0150 #define RT3883_GPIO_GE2_RXCLK       83
0151 #define RT3883_GPIO_GE1_TXD0        84
0152 #define RT3883_GPIO_GE1_TXD1        85
0153 #define RT3883_GPIO_GE1_TXD2        86
0154 #define RT3883_GPIO_GE1_TXD3        87
0155 #define RT3883_GPIO_GE1_TXEN        88
0156 #define RT3883_GPIO_GE1_TXCLK       89
0157 #define RT3883_GPIO_GE1_RXD0        90
0158 #define RT3883_GPIO_GE1_RXD1        91
0159 #define RT3883_GPIO_GE1_RXD2        92
0160 #define RT3883_GPIO_GE1_RXD3        93
0161 #define RT3883_GPIO_GE1_RXDV        94
0162 #define RT3883_GPIO_GE1_RXCLK   95
0163 
0164 #define RT3883_RSTCTRL_PCIE_PCI_PDM BIT(27)
0165 #define RT3883_RSTCTRL_FLASH        BIT(26)
0166 #define RT3883_RSTCTRL_UDEV     BIT(25)
0167 #define RT3883_RSTCTRL_PCI      BIT(24)
0168 #define RT3883_RSTCTRL_PCIE     BIT(23)
0169 #define RT3883_RSTCTRL_UHST     BIT(22)
0170 #define RT3883_RSTCTRL_FE       BIT(21)
0171 #define RT3883_RSTCTRL_WLAN     BIT(20)
0172 #define RT3883_RSTCTRL_UART1        BIT(29)
0173 #define RT3883_RSTCTRL_SPI      BIT(18)
0174 #define RT3883_RSTCTRL_I2S      BIT(17)
0175 #define RT3883_RSTCTRL_I2C      BIT(16)
0176 #define RT3883_RSTCTRL_NAND     BIT(15)
0177 #define RT3883_RSTCTRL_DMA      BIT(14)
0178 #define RT3883_RSTCTRL_PIO      BIT(13)
0179 #define RT3883_RSTCTRL_UART     BIT(12)
0180 #define RT3883_RSTCTRL_PCM      BIT(11)
0181 #define RT3883_RSTCTRL_MC       BIT(10)
0182 #define RT3883_RSTCTRL_INTC     BIT(9)
0183 #define RT3883_RSTCTRL_TIMER        BIT(8)
0184 #define RT3883_RSTCTRL_SYS      BIT(0)
0185 
0186 #define RT3883_INTC_INT_SYSCTL  BIT(0)
0187 #define RT3883_INTC_INT_TIMER0  BIT(1)
0188 #define RT3883_INTC_INT_TIMER1  BIT(2)
0189 #define RT3883_INTC_INT_IA  BIT(3)
0190 #define RT3883_INTC_INT_PCM BIT(4)
0191 #define RT3883_INTC_INT_UART0   BIT(5)
0192 #define RT3883_INTC_INT_PIO BIT(6)
0193 #define RT3883_INTC_INT_DMA BIT(7)
0194 #define RT3883_INTC_INT_NAND    BIT(8)
0195 #define RT3883_INTC_INT_PERFC   BIT(9)
0196 #define RT3883_INTC_INT_I2S BIT(10)
0197 #define RT3883_INTC_INT_UART1   BIT(12)
0198 #define RT3883_INTC_INT_UHST    BIT(18)
0199 #define RT3883_INTC_INT_UDEV    BIT(19)
0200 
0201 /* FLASH/SRAM/Codec Controller registers */
0202 #define RT3883_FSCC_REG_FLASH_CFG0  0x00
0203 #define RT3883_FSCC_REG_FLASH_CFG1  0x04
0204 #define RT3883_FSCC_REG_CODEC_CFG0  0x40
0205 #define RT3883_FSCC_REG_CODEC_CFG1  0x44
0206 
0207 #define RT3883_FLASH_CFG_WIDTH_SHIFT    26
0208 #define RT3883_FLASH_CFG_WIDTH_MASK 0x3
0209 #define RT3883_FLASH_CFG_WIDTH_8BIT 0x0
0210 #define RT3883_FLASH_CFG_WIDTH_16BIT    0x1
0211 #define RT3883_FLASH_CFG_WIDTH_32BIT    0x2
0212 
0213 #define RT3883_SDRAM_BASE       0x00000000
0214 #define RT3883_MEM_SIZE_MIN     2
0215 #define RT3883_MEM_SIZE_MAX     256
0216 
0217 #endif /* _RT3883_REGS_H_ */