[BACK]Return to exynos4_reg.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / arm / samsung

Annotation of src/sys/arch/arm/samsung/exynos4_reg.h, Revision 1.3

1.1       matt        1: /* $NetBSD */
                      2: /*-
                      3:  * Copyright (c) 2014 The NetBSD Foundation, Inc.
                      4:  * All rights reserved.
                      5:  *
                      6:  * This code is derived from software contributed to The NetBSD Foundation
                      7:  * by Reinoud Zandijk.
                      8:  *
                      9:  * Redistribution and use in source and binary forms, with or without
                     10:  * modification, are permitted provided that the following conditions
                     11:  * are met:
                     12:  * 1. Redistributions of source code must retain the above copyright
                     13:  *    notice, this list of conditions and the following disclaimer.
                     14:  * 2. Redistributions in binary form must reproduce the above copyright
                     15:  *    notice, this list of conditions and the following disclaimer in the
                     16:  *    documentation and/or other materials provided with the distribution.
                     17:  *
                     18:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
                     19:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
                     20:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     21:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
                     22:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     23:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     24:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     25:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     26:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     27:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     28:  * POSSIBILITY OF SUCH DAMAGE.
                     29:  */
                     30:
                     31: #ifndef _ARM_SAMSUNG_EXYNOS4_REG_H_
                     32: #define _ARM_SAMSUNG_EXYNOS4_REG_H_
                     33:
                     34: /*
                     35:  * Physical memory layout of Exynos SoCs as per documentation
                     36:  *
                     37:  * Base Address Limit Address  Size  Description
                     38:  * 0x00000000   0x00010000    64 KB  iROM
                     39:  * 0x02000000   0x02010000    64 KB  iROM (mirror of 0x0 to 0x10000)
                     40:  * 0x02020000   0x02060000   256 KB  iRAM
                     41:  * 0x03000000   0x03020000   128 KB  Data memory or general purpose of Samsung
                     42:  *                                   Reconfigurable Processor SRP.
                     43:  * 0x03020000   0x03030000    64 KB  I-cache or general purpose of SRP.
                     44:  * 0x03030000   0x03039000    36 KB  Configuration memory (write only) of SRP
                     45:  * 0x03810000   0x03830000      ­    AudioSS's SFR region
                     46:  * 0x04000000   0x05000000    16 MB  Bank0 of Static ROM Controller (SMC)
                     47:  *                                   (16-bit only)
                     48:  * 0x05000000   0x06000000    16 MB  Bank1 of SMC
                     49:  * 0x06000000   0x07000000    16 MB  Bank2 of SMC
                     50:  * 0x07000000   0x08000000    16 MB  Bank3 of SMC
                     51:  * 0x08000000   0x0C000000    64 MB  Reserved
                     52:  * 0x0C000000   0x0CD00000       ­   Reserved
                     53:  * 0x0CE00000   0x0D000000       ­   SFR region of Nand Flash Contr. (NFCON)
                     54:  * 0x10000000   0x14000000       ­   SFR region
                     55:  * 0x40000000   0xA0000000   1.5 GB  Memory of Dynamic Memory Contr. (DMC)-0
                     56:  * 0xA0000000   0x00000000   1.5 GB  Memory of DMC-1
                     57: */
                     58:
                     59: /*
                     60:  *
                     61:  * The exynos can boot from its iROM or from an external Nand memory. Since
                     62:  * these are normally hardly used they are excluded from the normal register
                     63:  * space here.
                     64:  *
                     65:  * XXX What about the audio subsystem region. Where are the docs?
                     66:  *
                     67:  * EXYNOS_CORE_PBASE points to the main SFR region.
                     68:  *
                     69:  * Notes:
                     70:  *
                     71:  * SFR         Special Function Register
                     72:  * ISP         In-System Programming, like a JTAG
                     73:  * ACP         Accelerator Coherency Port
                     74:  * SSS         Security Sub System
                     75:  * GIC         Generic Interurrupt Controller
                     76:  * PMU         Power Management Unit
                     77:  * DMC         2D Graphics engine
                     78:  * LEFTBUS     Data bus / Peripheral bus
                     79:  * RIGHTBUS    ,,
                     80:  * G3D         3D Graphics engine
                     81:  * MFC         Multi-Format Codec
                     82:  * LCD0                LCD display
                     83:  * MCT         Multi Core Timer
                     84:  * CMU         Clock Management Unit
                     85:  * TMU         Thermal Management Unit
                     86:  * PPMU                Pin Parametric Measurement Unit (?)
                     87:  * MMU         Memory Management Unit
                     88:  * MCTimer     ?
                     89:  * WDT         Watch Dog Timer
                     90:  * RTC         Real Time Clock
                     91:  * KEYIF       Keypad interface
                     92:  * SECKEY      ?
                     93:  * TZPC                TrustZone Protection Controller
                     94:  * UART                Universal asynchronous receiver/transmitter
                     95:  * I2C         Inter IC Connect
                     96:  * SPI         Serial Peripheral Interface Bus
                     97:  * I2S         Inter-IC Sound, Integrated Interchip Sound, or IIS
                     98:  * PCM         Pulse-code modulation, audio stream at set fixed rate
                     99:  * SPDIF       Sony/Philips Digital Interface Format
                    100:  * Slimbus     Serial Low-power Inter-chip Media Bus
                    101:  * SMMU                System mmu. No idea as how its programmed (or not)
                    102:  * PERI-L      UART, I2C, SPI, I2S, PCM, SPDIF, PWM, I2CHDMI, Slimbus
                    103:  * PERI-R      CHIPID, SYSREG, PMU/CMU/TMU Bus I/F, MCTimer, WDT, RTC, KEYIF,
                    104:  *             SECKEY, TZPC
                    105:  */
                    106:
                    107: /*
                    108:  * Note that this table is not 80-char friendly, this is done to allow more
                    109:  * elaborate comments to clarify the register offsets use
                    110:  */
                    111:
                    112: #define EXYNOS4_CORE_SIZE              0x04000000
                    113: #define EXYNOS4_SDRAM_PBASE            0x40000000
                    114:
                    115: #define EXYNOS4_SYSREG_OFFSET          0x00010000
                    116: #define EXYNOS4_PMU_OFFSET             0x00020000      /* Power Management Unit */
                    117: #define EXYNOS4_CMU_TOP_PART_OFFSET    0x00030000      /* XXX unknown XXX */
                    118: #define EXYNOS4_CMU_CORE_ISP_PART_OFFSET       0x00040000      /* XXX unknown XXX */
                    119: #define EXYNOS4_MCT_OFFSET             0x00050000      /* Multi Core Timer */
                    120: #define EXYNOS4_WDT_OFFSET             0x00060000      /* Watch Dog Timer */
                    121: #define EXYNOS4_RTC_OFFSET             0x00070000      /* Real Time Clock */
                    122: #define EXYNOS4_KEYIF_OFFSET           0x000A0000      /* Keypad interface */
                    123: #define EXYNOS4_HDMI_CEC_OFFSET                0x000B0000      /* HDMI Consumer Electronic Control */
                    124: #define EXYNOS4_TMU_OFFSET             0x000C0000      /* Thermal Managment */
                    125: #define EXYNOS4_SECKEY_OFFSET          0x00100000      /* XXX unknown XXX */
                    126: #define EXYNOS4_TZPC0_OFFSET           0x00110000      /* ARM Trusted Zone Protection Controller */
                    127: #define EXYNOS4_TZPC1_OFFSET           0x00120000
                    128: #define EXYNOS4_TZPC2_OFFSET           0x00130000
                    129: #define EXYNOS4_TZPC3_OFFSET           0x00140000
                    130: #define EXYNOS4_TZPC4_OFFSET           0x00150000
                    131: #define EXYNOS4_TZPC5_OFFSET           0x00160000
                    132: #define EXYNOS4_INTCOMBINER_OFFSET     0x00440000      /* combines first 32 interrupt sources */
                    133: #define EXYNOS4_GIC_CNTR_OFFSET                0x00480000      /* generic interrupt controller offset */
                    134: #define EXYNOS4_GIC_DISTRIBUTOR_OFFSET 0x00490000
                    135: #define EXYNOS4_AP_C2C_OFFSET          0x00540000      /* Chip 2 Chip XXX doc? XXX */
                    136: #define EXYNOS4_CP_C2C_MODEM_OFFSET    0x00580000
                    137: #define EXYNOS4_DMC0_OFFSET            0x00600000      /* Dynamic Memory Controller */
                    138: #define EXYNOS4_DMC1_OFFSET            0x00610000
                    139: #define EXYNOS4_PPMU_DMC_L_OFFSET      0x006A0000      /* event counters XXX ? */
                    140: #define EXYNOS4_PPMU_DMC_R_OFFSET      0x006B0000
                    141: #define EXYNOS4_PPMU_CPU_OFFSET                0x006C0000
                    142: #define EXYNOS4_GPIO_C2C_OFFSET                0x006E0000
                    143: #define EXYNOS4_TZASC_LR_OFFSET                0x00700000      /* trust zone access control */
                    144: #define EXYNOS4_TZASC_LW_OFFSET                0x00710000
                    145: #define EXYNOS4_TZASC_RR_OFFSET                0x00720000
                    146: #define EXYNOS4_TZASC_RW_OFFSET                0x00730000
                    147: #define EXYNOS4_G2D_ACP_OFFSET         0x00800000      /* 2D graphics engine */
                    148: #define EXYNOS4_SSS_OFFSET             0x00830000      /* Security Sub System */
                    149: #define EXYNOS4_CORESIGHT_1_OFFSET     0x00880000      /* 1st region */
                    150: #define EXYNOS4_CORESIGHT_2_OFFSET     0x00890000      /* 2nd region */
                    151: #define EXYNOS4_CORESIGHT_3_OFFSET     0x008B0000      /* 3rd region */
                    152: #define EXYNOS4_SMMUG2D_ACP_OFFSET     0x00A40000      /* system mmu for 2D graphics engine */
                    153: #define EXYNOS4_SMMUSSS_OFFSET         0x00A50000      /* system mmu for SSS */
                    154: #define EXYNOS4_GPIO_RIGHT_OFFSET      0x01000000
                    155: #define EXYNOS4_GPIO_LEFT_OFFSET       0x01400000
                    156: #define EXYNOS4_FIMC0_OFFSET           0x01800000      /* image for display */
                    157: #define EXYNOS4_FIMC1_OFFSET           0x01810000
                    158: #define EXYNOS4_FIMC2_OFFSET           0x01820000
                    159: #define EXYNOS4_FIMC3_OFFSET           0x01830000
                    160: #define EXYNOS4_JPEG_OFFSET            0x01840000      /* JPEG Codec */
                    161: #define EXYNOS4_MIPI_CSI0_OFFSET       0x01880000      /* MIPI-Slim bus Interface */
                    162: #define EXYNOS4_MIPI_CSI1_OFFSET       0x01890000
                    163: #define EXYNOS4_SMMUFIMC0_OFFSET       0x01A20000      /* system mmus */
                    164: #define EXYNOS4_SMMUFIMC1_OFFSET       0x01A30000
                    165: #define EXYNOS4_SMMUFIMC2_OFFSET       0x01A40000
                    166: #define EXYNOS4_SMMUFIMC3_OFFSET       0x01A50000
                    167: #define EXYNOS4_SMMUJPEG_OFFSET                0x01A60000
                    168: #define EXYNOS4_FIMD0_OFFSET           0x01C00000      /* LCD0 */
                    169: #define EXYNOS4_MIPI_DSI0_OFFSET       0x01C80000      /* LCD0 */
                    170: #define EXYNOS4_SMMUFIMD0_OFFSET       0x01E20000      /* system mmus */
                    171: #define EXYNOS4_FIMC_ISP_OFFSET                0x02000000      /* (digital) camera video input */
                    172: #define EXYNOS4_FIMC_DRC_TOP_OFFSET    0x02010000
                    173: #define EXYNOS4_FIMC_FD_TOP_OFFSET     0x02040000
                    174: #define EXYNOS4_MPWM_ISP_OFFSET                0x02110000      /* (specialised?) PWM */
                    175: #define EXYNOS4_I2C0_ISP_OFFSET                0x02130000      /* I2C bus */
                    176: #define EXYNOS4_I2C1_ISP_OFFSET                0x02140000
                    177: #define EXYNOS4_MTCADC_ISP_OFFSET      0x02150000      /* (specialised?) AD Converter */
                    178: #define EXYNOS4_PWM_ISP_OFFSET         0x02160000      /* PWM */
                    179: #define EXYNOS4_WDT_ISP_OFFSET         0x02170000      /* Watch Dog Timer */
                    180: #define EXYNOS4_MCUCTL_ISP_OFFSET      0x02180000      /* XXX micro controller control unit? */
                    181: #define EXYNOS4_UART_ISP_OFFSET                0x02190000      /* uart base clock */
                    182: #define EXYNOS4_SPI0_ISP_OFFSET                0x021A0000
                    183: #define EXYNOS4_SPI1_ISP_OFFSET                0x021B0000
                    184: #define EXYNOS4_GIC_C_ISP_OFFSET               0x021E0000
                    185: #define EXYNOS4_GIC_D_ISP_OFFSET               0x021F0000
                    186: #define EXYNOS4_SYSMMU_FIMC_ISP_OFFSET 0x02260000
                    187: #define EXYNOS4_SYSMMU_FIMC_DRC_OFFSET 0x02270000
                    188: #define EXYNOS4_SYSMMU_FIMC_FD_OFFSET  0x022A0000
                    189: #define EXYNOS4_SYSMMU_ISPCPU_OFFSET   0x022B0000
                    190: #define EXYNOS4_FIMC_LITE0_OFFSET      0x02390000      /* external image input? */
                    191: #define EXYNOS4_FIMC_LITE1_OFFSET      0x023A0000
                    192: #define EXYNOS4_SYSMMU_FIMC_LITE0_OFFSET       0x023B0000
                    193: #define EXYNOS4_SYSMMU_FIMC_LITE1_OFFSET       0x023C0000
                    194: #define EXYNOS4_USBDEV0_OFFSET         0x02480000      /* XXX unknown XXX */
                    195: #define EXYNOS4_USBDEV0_1_OFFSET       0x02480000
                    196: #define EXYNOS4_USBDEV0_2_OFFSET       0x02490000
                    197: #define EXYNOS4_USBDEV0_3_OFFSET       0x024A0000
                    198: #define EXYNOS4_USBDEV0_4_OFFSET       0x024B0000
                    199: #define EXYNOS4_TSI_OFFSET             0x02500000      /* Transport Stream Interface */
                    200: #define EXYNOS4_SDMMC0_OFFSET          0x02510000      /* SD card interface */
                    201: #define EXYNOS4_SDMMC1_OFFSET          0x02520000
                    202: #define EXYNOS4_SDMMC2_OFFSET          0x02530000
                    203: #define EXYNOS4_SDMMC3_OFFSET          0x02540000
                    204: #define EXYNOS4_SDMMC4_OFFSET          0x02550000
                    205: #define EXYNOS4_MIPI_HSI_OFFSET                0x02560000      /* LCD0 */
                    206: #define EXYNOS4_SROMC_OFFSET           0x02570000
1.2       reinoud   207: #define EXYNOS4_USBHOST0_OFFSET                0x02580000      /* USB EHCI */
                    208: #define EXYNOS4_USBHOST1_OFFSET                0x02590000      /* USB OHCI companion to EHCI (paired) */
1.1       matt      209: #define EXYNOS4_USBOTG1_OFFSET         0x025B0000      /* USB On The Go interface */
                    210: #define EXYNOS4_PDMA0_OFFSET           0x02680000      /* Peripheral DMA */
                    211: #define EXYNOS4_PDMA1_OFFSET           0x02690000
                    212: #define EXYNOS4_GADC_OFFSET            0x026C0000      /* General AD Converter */
                    213: #define EXYNOS4_ROTATOR_OFFSET         0x02810000      /* Image rotator for video output */
                    214: #define EXYNOS4_SMDMA_OFFSET           0x02840000      /* (s) Memory DMA */
                    215: #define EXYNOS4_NSMDMA_OFFSET          0x02850000      /* (ns) Memory DMA */
                    216: #define EXYNOS4_SMMUROTATOR_OFFSET     0x02A30000      /* system mmu for rotator */
                    217: #define EXYNOS4_SMMUMDMA_OFFSET                0x02A40000
                    218: #define EXYNOS4_VP_OFFSET              0x02C00000      /* Video Processor */
                    219: #define EXYNOS4_MIXER_OFFSET           0x02C10000      /* Video mixer */
                    220: #define EXYNOS4_HDMI0_OFFSET           0x02D00000
                    221: #define EXYNOS4_HDMI1_OFFSET           0x02D10000
                    222: #define EXYNOS4_HDMI2_OFFSET           0x02D20000
                    223: #define EXYNOS4_HDMI3_OFFSET           0x02D30000
                    224: #define EXYNOS4_HDMI4_OFFSET           0x02D40000
                    225: #define EXYNOS4_HDMI5_OFFSET           0x02D50000
                    226: #define EXYNOS4_HDMI6_OFFSET           0x02D60000
                    227: #define EXYNOS4_SMMUTV_OFFSET          0x02E20000
                    228: #define EXYNOS4_G3D_OFFSET             0x03000000      /* 3D Graphics Accelerator */
                    229: #define EXYNOS4_PPMU_3D_OFFSET         0x03220000
                    230: #define EXYNOS4_MFC_OFFSET             0x03400000      /* Multi Format Codec */
                    231: #define EXYNOS4_SMMUMFC_L_OFFSET       0x03620000
                    232: #define EXYNOS4_SMMUMFC_R_OFFSET       0x03630000
                    233: #define EXYNOS4_PMMU_MFC_L_OFFSET      0x03660000      /* ? */
                    234: #define EXYNOS4_PMMU_MFC_R_OFFSET      0x03670000      /* ? */
                    235: #define EXYNOS4_UART0_OFFSET           0x03800000      /* serial port 0 */
                    236: #define EXYNOS4_UART1_OFFSET           0x03810000      /* serial port 1 */
                    237: #define EXYNOS4_UART2_OFFSET           0x03820000      /* serial port 2 */
                    238: #define EXYNOS4_UART3_OFFSET           0x03830000      /* serial port 3 */
                    239: #define EXYNOS4_UART4_OFFSET           0x03840000      /* serial port 4 */
1.3     ! reinoud   240: #define EXYNOS4_GPIO_I2C0_OFFSET       0x03860000      /* Inter Integrated Circuit (I2C) */
1.1       matt      241: #define EXYNOS4_I2C1_OFFSET            0x03870000      /* Inter Integrated Circuit (I2C) */
                    242: #define EXYNOS4_I2C2_OFFSET            0x03880000      /* Inter Integrated Circuit (I2C) */
                    243: #define EXYNOS4_I2C3_OFFSET            0x03890000      /* Inter Integrated Circuit (I2C) */
                    244: #define EXYNOS4_I2C4_OFFSET            0x038A0000      /* Inter Integrated Circuit (I2C) */
                    245: #define EXYNOS4_I2C5_OFFSET            0x038B0000      /* Inter Integrated Circuit (I2C) */
                    246: #define EXYNOS4_I2C6_OFFSET            0x038C0000      /* Inter Integrated Circuit (I2C) */
                    247: #define EXYNOS4_I2C7_OFFSET            0x038D0000      /* Inter Integrated Circuit (I2C) */
                    248: #define EXYNOS4_I2CHDMI_OFFSET         0x038E0000      /* I2C for HDMI */
                    249: #define EXYNOS4_SPI0_OFFSET            0x03920000      /* Serial Peripheral Interface0 */
                    250: #define EXYNOS4_SPI1_OFFSET            0x03930000      /* Serial Peripheral Interface0 */
                    251: #define EXYNOS4_SPI2_OFFSET            0x03940000      /* Serial Peripheral Interface0 */
                    252: #define EXYNOS4_I2S1_OFFSET            0x03960000      /* sound */
                    253: #define EXYNOS4_I2S2_OFFSET            0x03970000      /* sound */
                    254: #define EXYNOS4_PCM1_OFFSET            0x03980000      /* sound */
                    255: #define EXYNOS4_PCM2_OFFSET            0x03990000      /* sound */
                    256: #define EXYNOS4_AC97_OFFSET            0x039A0000      /* AC97 audio codec sound */
                    257: #define EXYNOS4_SPDIF_OFFSET           0x039B0000      /* SPDIF sound */
                    258: #define EXYNOS4_PWMTIMER_OFFSET                0x039D0000
                    259:
                    260: /* standard frequency settings */
                    261: #define EXYNOS4_ACLK_REF_FREQ          (200*1000*1000) /* 200 Mhz */
                    262: #define EXYNOS4_UART_FREQ              (109*1000*1000) /* should be EXYNOS_ACLK_REF_FREQ! */
                    263:
                    264: #endif /* _ARM_SAMSUNG_EXYNOS5_REG_H_ */
                    265:

CVSweb <webmaster@jp.NetBSD.org>