root/sys/arch/arm/samsung/exynos5_reg.h
/*      $NetBSD: exynos5_reg.h,v 1.22 2018/07/04 23:06:05 jmcneill Exp $        */

/*-
 * Copyright (c) 2014 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Nick Hudson.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef _ARM_SAMSUNG_EXYNOS5_REG_H_
#define _ARM_SAMSUNG_EXYNOS5_REG_H_

/*
 * Physical memory layout of Exynos5 SoCs as per documentation
 *
 * Base Address Limit Address   Size    Description
 * 0x00000000   0x0000FFFF       64 KB  iROM/iRAM/SROM
 * 0x02000000   0x0200FFFF       64 KB  iROM (mirror of 0x0 to 0xFFFF)
 * 0x02020000   0x02077FFF      352 KB  iRAM
 * 0x03000000   0x03027FFF      160 KB  Data memory of SRP
 * 0x03028000   0x0303FFFF       96 KB  I-cache of SRP
 * 0x03040000   0x03048FFF       36 KB  Configuration memory of SRP (write-only)
 * 0x03800000   0x0386FFFF              SFR region of AudioSS
 * 0x04000000   0x04020000      128 KB  SROMC's Bank 0
 * 0x05000000   0x05020000      128 KB  SROMC's Bank 1
 * 0x06000000   0x06020000      128 KB  SROMC's Bank 2
 * 0x07000000   0x07020000      128 KB  SROMC's Bank 3
 * 0x10000000   0x1FFFFFFF              SFR region
 * 0x40000000   0xFFFFFFFF              DRAM
*/

/* MJF: The GPIO offset names made no sense and the values wer wrong. */
#define EXYNOS5_GPIO_MUXA_OFFSET                0x03400000
#define EXYNOS5_GPIO_MUXB_OFFSET                0x03410000
#define EXYNOS5_GPIO_MUXC_OFFSET                0x04000000
#define EXYNOS5_GPIO_MUXD_OFFSET                0x04010000
#define EXYNOS5_GPIO_MUXE_OFFSET                0x03860000

/* CORE */
#define EXYNOS5_CORE_SIZE                       0x0f000000
#define EXYNOS5_SDRAM_PBASE                     0x40000000

#define EXYNOS5_CMU_CORE_PART_OFFSET            0x00010000
#define   EXYNOS5_CMU_APLL                      0x00010000      /* ARM core clock */
#define   EXYNOS5_CMU_MPLL                      0x00014000      /* MEM cntr. clock */
#define EXYNOS5_CMU_TOP_PART_OFFSET             0x00020000
#define   EXYNOS5_CMU_CPLL                      0x00020020      /* Video hardware codec clock */
#define   EXYNOS5_CMU_DPLL                      0x00020030      /* Audio and ext. interf. clock */
#define   EXYNOS5_CMU_VPLL                      0x00020040      /* Dither PLL (EMI reduction) clock */
#define   EXYNOS5_CMU_GPLL                      0x00020050      /* Graphic 3D proc. clock */
#define EXYNOS5_CMU_MEM_PART_OFFSET             0x00030000
#define   EXYNOS5_CMU_BPLL                      0x00030010
#define   EXYNOS5_CMU_KPLL                      0x00038000
#define EXYNOS5_ALIVE_OFFSET                    0x00040000
#define EXYNOS5_PMU_OFFSET                      0x00040000      /* alias */
#define EXYNOS5_SYSREG_OFFSET                   0x00050000
#define EXYNOS5_TMU_OFFSET                      0x00060000
#define EXYNOS5_MONOTONIC_CNT_OFFSET            0x000C0000

#define EXYNOS5_HDMI_CEC_OFFSET                 0x001B0000
#define EXYNOS5_MCT_OFFSET                      0x001C0000
#define EXYNOS5_WDT_OFFSET                      0x001D0000
#define EXYNOS5_RTC_OFFSET                      0x001E0000

#define EXYNOS5_INT_COMB_CPU_OFFSET             0x00440000
#define EXYNOS5_INT_COMB_IOP_OFFSET             0x00450000
#define EXYNOS5_GIC_CPU_OFFSET                  0x00480000
#define EXYNOS5_GIC_IOP_DISTRIBUTOR_OFFSET      0x00481000
#define EXYNOS5_GIC_IOP_CONTROLLER_OFFSET       0x00482000
#define EXYNOS5_MPCORE PRIVATE REGION_OFFSET    0x00500000
#define EXYNOS5_NS MDMA0                        0x00800000
#define EXYNOS5_SSS_OFFSET                      0x00830000
#define EXYNOS5_SSS_KEY_OFFSET                  0x00840000
#define EXYNOS5_2D_OFFSET                       0x00850000
#define EXYNOS5_CSSYS_OFFSET                    0x00880000
#if 0
#define EXYNOS5_A15 (EAGLE)                     0x00890000
#define EXYNOS5_A5 (IOP)                        0x008A0000
#define EXYNOS5_A5 (ISP)                        0x008B0000
#endif
#define EXYNOS5_SYSMMU_MDMA_OFFSET              0x00A40000
#define EXYNOS5_SYSMMU_SSS_OFFSET               0x00A50000
#define EXYNOS5_SYSMMU_2D_OFFSET                0x00A60000
#define EXYNOS5_DREXII_PHY0_OFFSET              0x00C00000
#define EXYNOS5_DREXII_PHY1_OFFSET              0x00C10000
#define EXYNOS5_AS_A_3D_OFFSET                  0x00CC0000
#define EXYNOS5_AS_A_C2C_OFFSET                 0x00CD0000
#define EXYNOS5_AS_A_LEFT_BUS_OFFSET            0x00CE0000
#define EXYNOS5_AS_A_RIGHT0_BUS_OFFSET          0x00CF0000
#define EXYNOS5_AS_A_DISP1_BUS_OFFSET           0x00D00000
/*#define EXYNOS5_GPIO_C2C_OFFSET                       0x00D10000*/
#define EXYNOS5_DREXII_OFFSET                   0x00DD0000
#define EXYNOS5_AS_A_EFCON_OFFSET               0x00DE0000
#define EXYNOS5_AP_C2C_OFFSET                   0x00E00000
#define EXYNOS5_CP_C2C_OFFSET                   0x00E40000
#define EXYNOS5_AS_A_ACP_BLK_OFFSET             0x00E80000
#define EXYNOS5_AS_A_CPU_P_BLK_OFFSET           0x00E90000
#define EXYNOS5_AS_A_LBX_BUS_OFFSET             0x00F00000
#define EXYNOS5_AS_A_R1BX_BUS_OFFSET            0x00F10000
#define EXYNOS5_AS_A_R0BX_BUS_OFFSET            0x00F20000
#define EXYNOS5_AS_A_CPU_OFFSET                 0x00F30000
#define EXYNOS5_MFC_OFFSET                      0x01000000
#define EXYNOS5_SYSMMU_MFC0_R                   0x01200000
#define EXYNOS5_SYSMMU_MFC1_L                   0x01210000
/*#define EXYNOS5_GPIO_LEFT_OFFSET              0x04010000*/
#define EXYNOS5_AS_A_MFC_OFFSET                 0x01680000
#define EXYNOS5_AS_A_GENX_OFFSET                0x016A0000
#define EXYNOS5_3D ENGINE_OFFSET                0x01800000
#define EXYNOS5_ROTATOR_OFFSET                  0x01C00000
#define EXYNOS5_NS_MDMA1                        0x01C10000
#define EXYNOS5_SYSMMU_ROTATOR_OFFSET           0x01D40000
#define EXYNOS5_SYSMMU_MDMA1                    0x01D50000
#define EXYNOS5_AS_A_FILE_OFFSET                0x01DA0000
#define EXYNOS5_AS_A_GPS_OFFSET                 0x01DB0000
#define EXYNOS5_AS_A_JPEG_OFFSET                0x01DC0000
#define EXYNOS5_JPEG_OFFSET                     0x01E00000
#define EXYNOS5_SYSMMU_JPEG_OFFSET              0x01F20000

#define EXYNOS5_USB3_XHCI0_OFFSET               0x02000000
#define EXYNOS5_USB3_PHY0_OFFSET                0x02100000

#define EXYNOS5_USB2HOST_OFFSET                 0x02110000
#define EXYNOS5_USB2_HOST_EHCI_OFFSET           0x02110000
#define EXYNOS5_USB2_HOST_OHCI_OFFSET           0x02120000
#define EXYNOS5_USB2_HOST_PHYCTRL_OFFSET        0x02130000
#define EXYNOS5_USB2_DEVICE_LINK_OFFSET         0x02140000

#define EXYNOS5_MIPI_HSI_OFFSET                 0x02160000
#define EXYNOS5_SATA PHY CONTROL_OFFSET         0x02170000
#define EXYNOS5_MCUCTL_IOP_OFFSET               0x02180000      /* XXX unknown XXX */
#define EXYNOS5_WDT_IOP_OFFSET                  0x02190000
#define EXYNOS5_PDMA0                           0x021A0000
#define EXYNOS5_PDMA1                           0x021B0000
#define EXYNOS5_RTIC_OFFSET                     0x021C0000
#define EXYNOS5_SATA_I2C_PHY_CONTROL_OFFSET     0x021D0000
#define EXYNOS5_MSH0                            0x02200000
#define EXYNOS5_MSH1                            0x02210000
#define EXYNOS5_MSH2                            0x02220000
#define EXYNOS5_MSH3                            0x02230000
#define EXYNOS5_SROMC_OFFSET                    0x02250000
#define EXYNOS5_SATA_OFFSET                     0x022F0000
#if 0
#define EXYNOS5_AXI_FILE_D64 (GPV)              0x02300000
#define EXYNOS5_AXI_FILE_D64 (GPV)              0x02310000
#endif
#define EXYNOS5_AXI_USB_SATA_D64                0x02320000
#if 0
#define EXYNOS5_AXI_USB_SATA_D64                0x02330000
#endif
#define EXYNOS5_SYSMMU_IOPROCESSOR_OFFSET       0x02360000
#define EXYNOS5_SYSMMU_RTIC_OFFSET              0x02370000
#define EXYNOS5_AS_A_IOP_FD64X_OFFSET           0x02380000
#define EXYNOS5_AS_A_AUDIO_OFFSET               0x02390000

#define EXYNOS5_USB3_XHCI1_OFFSET               0x02400000
#define EXYNOS5_USB3_PHY1_OFFSET                0x02500000

#if 0
#define EXYNOS5_AXI_GPS (GPV)                   0x02600000
#define EXYNOS5_AXI_GPS (GPV)                   0x02610000
#endif
#define EXYNOS5_AS_A_GPSCPU_OFFSET              0x02620000
#define EXYNOS5_SYSMMU_GPS_OFFSET               0x02630000
#define EXYNOS5_UART0_OFFSET                    0x02C00000
#define EXYNOS5_UART1_OFFSET                    0x02C10000
#define EXYNOS5_UART2_OFFSET                    0x02C20000
#define EXYNOS5_UART3_OFFSET                    0x02C30000
#define EXYNOS5_USI0_OFFSET                     0x02C50000
#define EXYNOS5_I2C0_OFFSET                     0x02C60000
#define EXYNOS5_I2C1_OFFSET                     0x02C70000
#define EXYNOS5_I2C2_OFFSET                     0x02C80000
#define EXYNOS5_I2C3_OFFSET                     0x02C90000
#define EXYNOS5_I2C4_OFFSET                     0x02CA0000
#define EXYNOS5_I2C5_OFFSET                     0x02CB0000
#define EXYNOS5_I2C6_OFFSET                     0x02CC0000
#define EXYNOS5_I2C7_OFFSET                     0x02CD0000
#define EXYNOS5_I2CHDMI_OFFSET                  0x02CE0000
#define EXYNOS5_USI_OFFSET                      0x02D00000
#define EXYNOS5_TSADC_OFFSET                    0x02D10000
#define EXYNOS5_SPI0_OFFSET                     0x02D20000
#define EXYNOS5_SPI1_OFFSET                     0x02D30000
#define EXYNOS5_SPI2_OFFSET                     0x02D40000
#define EXYNOS5_USI2_OFFSET                     0x02D50000
#define EXYNOS5_I2S1_OFFSET                     0x02D60000
#define EXYNOS5_I2S2_OFFSET                     0x02D70000
#define EXYNOS5_PCM1_OFFSET                     0x02D80000
#define EXYNOS5_PCM2_OFFSET                     0x02D90000
#define EXYNOS5_AC97_OFFSET                     0x02DA0000
#define EXYNOS5_SPDIF_OFFSET                    0x02DB0000
#define EXYNOS5_PWM_OFFSET                      0x02DD0000
#define EXYNOS5_USI3_OFFSET                     0x02DE0000
#define EXYNOS5_FIMC_ISP_OFFSET                 0x03000000
#define EXYNOS5_FIMC_DRC_TOP_OFFSET             0x03010000
#define EXYNOS5_FIMC_SCALERC_OFFSET             0x03020000
#define EXYNOS5_FIMC_SCALERP_OFFSET             0x03030000
#define EXYNOS5_FIMC_FD_TOP_OFFSET              0x03040000
#define EXYNOS5_FIMC_ODC_OFFSET                 0x03050000
#define EXYNOS5_FIMC_DIS_OFFSET                 0x03060000
#define EXYNOS5_FIMC_3DNR_OFFSET                0x03070000
#define EXYNOS5_ASYNC_AXI_M_OFFSET              0x030F0000
#define EXYNOS5_MPWM_ISP_OFFSET                 0x03110000
#define EXYNOS5_I2C2_ISP_OFFSET                 0x03120000
#define EXYNOS5_I2C0_ISP_OFFSET                 0x03130000
#define EXYNOS5_I2C1_ISP_OFFSET                 0x03140000
#define EXYNOS5_MTCADC_ISP_OFFSET               0x03150000
#define EXYNOS5_PWM_ISP_OFFSET                  0x03160000
#define EXYNOS5_WDT_ISP_OFFSET                  0x03170000
#define EXYNOS5_MCUCTL_ISP_OFFSET               0x03180000
#define EXYNOS5_UART_ISP_OFFSET                 0x03190000
#define EXYNOS5_SPI0_ISP_OFFSET                 0x031A0000
#define EXYNOS5_SPI1_ISP_OFFSET                 0x031B0000
#define EXYNOS5_GIC_C_ISP_OFFSET                0x031E0000
#define EXYNOS5_GIC_D_ISP_OFFSET                0x031F0000
#define EXYNOS5_SYSMMU_FIMC_ISP_OFFSET          0x03260000
#define EXYNOS5_SYSMMU_FIMC_DRC_OFFSET          0x03270000
#define EXYNOS5_SYSMMU_FIMC_SCALERC_OFFSET      0x03280000
#define EXYNOS5_SYSMMU_FIMC_SCALERP_OFFSET      0x03290000
#define EXYNOS5_SYSMMU_FIMC_FD_OFFSET           0x032A0000
#define EXYNOS5_SYSMMU_ISPCPU_OFFSET            0x032B0000
#define EXYNOS5_SYSMMU_FIMC_ODC_OFFSET          0x032C0000
#define EXYNOS5_SYSMMU_FIMC_DIS0                0x032D0000
#define EXYNOS5_SYSMMU_FIMC_DIS1                0x032E0000
#define EXYNOS5_SYSMMU_FIMC_3DNR_OFFSET         0x032F0000
/*#define EXYNOS5_GPIO_RIGHT_OFFSET             0x04000000*/
#define EXYNOS5_AS_A_MFC0_OFFSET                0x03620000
#define EXYNOS5_AS_A_ISP0_OFFSET                0x03640000
#define EXYNOS5_AS_A_ISP1_OFFSET                0x03650000
#define EXYNOS5_AS_A_RIGHT1_OFFSET              0x03670000
#define EXYNOS5_FIMC_LITE0_OFFSET               0x03C00000
#define EXYNOS5_FIMC_LITE1_OFFSET               0x03C10000
#define EXYNOS5_MIPI_CSI0_OFFSET                0x03C20000
#define EXYNOS5_MIPI_CSI1_OFFSET                0x03C30000
#define EXYNOS5_SYSMMU_FIMC_LITE0_OFFSET        0x03C40000
#define EXYNOS5_SYSMMU_FIMC_LITE1_OFFSET        0x03C50000
#define EXYNOS5_FIMC_LITE2_OFFSET               0x03C90000
#define EXYNOS5_SYSMMU_FIMC_LITE2_OFFSET        0x03CA0000
#define EXYNOS5_GSCALER0_OFFSET                 0x03E00000
#define EXYNOS5_GSCALER1_OFFSET                 0x03E10000
#define EXYNOS5_GSCALER2_OFFSET                 0x03E20000
#define EXYNOS5_GSCALER3_OFFSET                 0x03E30000
#define EXYNOS5_AS_A_GS0_OFFSET                 0x03E40000
#define EXYNOS5_AS_A_GS1_OFFSET                 0x03E50000
#define EXYNOS5_AS_A_GS2_OFFSET                 0x03E60000
#define EXYNOS5_AS_A_GS3_OFFSET                 0x03E70000
#define EXYNOS5_SYSMMU_GSCALER0_OFFSET          0x03E80000
#define EXYNOS5_SYSMMU_GSCALER1_OFFSET          0x03E90000
#define EXYNOS5_SYSMMU_GSCALER2_OFFSET          0x03EA0000
#define EXYNOS5_SYSMMU_GSCALER3_OFFSET          0x03EB0000
#define EXYNOS5_GPIO_USB_OFFSET                 0x04000000
#define EXYNOS5_AS_A_GSCALER_OFFSET             0x04220000
#define EXYNOS5_DISP1_MIX_OFFSET                0x04400000
#define EXYNOS5_DISP1_ENH_OFFSET                0x04410000
#define EXYNOS5_DISP1_CTRL_OFFSET               0x04420000
#define EXYNOS5_MIE_OFFSET                      0x04430000
#define EXYNOS5_TV_MIXER_OFFSET                 0x04450000
#define EXYNOS5_MIPI_DSI1_OFFSET                0x04500000
#define EXYNOS5_DP1_OFFSET                      0x04510000
#define EXYNOS5_HDMI_0_OFFSET                   0x04530000
#define EXYNOS5_HDMI_1_OFFSET                   0x04540000
#define EXYNOS5_HDMI_2_OFFSET                   0x04550000
#define EXYNOS5_HDMI_3_OFFSET                   0x04560000
#define EXYNOS5_HDMI_4_OFFSET                   0x04570000
#define EXYNOS5_HDMI_5_OFFSET                   0x04580000
#define EXYNOS5_HDMI_6_OFFSET                   0x04590000
#define EXYNOS5_DP1_1_OFFSET                    0x045B0000
#define EXYNOS5_SYSMMU_DISP1_OFFSET             0x04640000
#define EXYNOS5_SYSMMU_TV_OFFSET                0x04650000
#define EXYNOS5_AS_A_TV_OFFSET                  0x046D0000
#if 0
#define EXYNOS5_AES0&EF0 (NEW)                  0x08000000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08010000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08020000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08030000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08040000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08050000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08060000
#define EXYNOS5_AES0&EF0 (NEW)                  0x08070000
#define EXYNOS5_AES0&EF0 (NER)                  0x08080000
#define EXYNOS5_AES0&EF0 (NER)                  0x08090000
#define EXYNOS5_AES0&EF0 (NER)                  0x080A0000
#define EXYNOS5_AES0&EF0 (NER)                  0x080B0000
#define EXYNOS5_AES0&EF0 (NER)                  0x080C0000
#define EXYNOS5_AES0&EF0 (NER)                  0x080D0000
#define EXYNOS5_AES0&EF0 (NER)                  0x080E0000
#define EXYNOS5_AES0&EF0 (NER)                  0x080F0000
#define EXYNOS5_AES0&EF0 (EW)                   0x08100000
#define EXYNOS5_AES0&EF0 (EW)                   0x08110000
#define EXYNOS5_AES0&EF0 (EW)                   0x08120000
#define EXYNOS5_AES0&EF0 (EW)                   0x08130000
#define EXYNOS5_AES0&EF0 (EW)                   0x08140000
#define EXYNOS5_AES0&EF0 (EW)                   0x08150000
#define EXYNOS5_AES0&EF0 (EW)                   0x08160000
#define EXYNOS5_AES0&EF0 (EW)                   0x08170000
#define EXYNOS5_AES0&EF0 (ER)                   0x08180000
#define EXYNOS5_AES0&EF0 (ER)                   0x08190000
#define EXYNOS5_AES0&EF0 (ER)                   0x081A0000
#define EXYNOS5_AES0&EF0 (ER)                   0x081B0000
#define EXYNOS5_AES0&EF0 (ER)                   0x081C0000
#define EXYNOS5_AES0&EF0 (ER)                   0x081D0000
#define EXYNOS5_AES0&EF0 (ER)                   0x081E0000
#define EXYNOS5_AES0&EF0 (ER)                   0x081F0000
#define EXYNOS5_EFCON0_OFFSET                   0x08200000
#define EXYNOS5_AES0 SFR_OFFSET                 0x08300000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08400000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08410000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08420000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08430000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08440000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08450000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08460000
#define EXYNOS5_AES1&EF1 (NEW)                  0x08470000
#define EXYNOS5_AES1&EF1 (NER)                  0x08480000
#define EXYNOS5_AES1&EF1 (NER)                  0x08490000
#define EXYNOS5_AES1&EF1 (NER)                  0x084A0000
#define EXYNOS5_AES1&EF1 (NER)                  0x084B0000
#define EXYNOS5_AES1&EF1 (NER)                  0x084C0000
#define EXYNOS5_AES1&EF1 (NER)                  0x084D0000
#define EXYNOS5_AES1&EF1 (NER)                  0x084E0000
#define EXYNOS5_AES1&EF1 (NER)                  0x084F0000
#define EXYNOS5_AES1&EF1 (EW)                   0x08500000
#define EXYNOS5_AES1&EF1 (EW)                   0x08510000
#define EXYNOS5_AES1&EF1 (EW)                   0x08520000
#define EXYNOS5_AES1&EF1 (EW)                   0x08530000
#define EXYNOS5_AES1&EF1 (EW)                   0x08540000
#define EXYNOS5_AES1&EF1 (EW)                   0x08550000
#define EXYNOS5_AES1&EF1 (EW)                   0x08560000
#define EXYNOS5_AES1&EF1 (EW)                   0x08570000
#define EXYNOS5_AES1&EF1 (ER)                   0x08580000
#define EXYNOS5_AES1&EF1 (ER)                   0x08590000
#define EXYNOS5_AES1&EF1 (ER)                   0x085A0000
#define EXYNOS5_AES1&EF1 (ER)                   0x085B0000
#define EXYNOS5_AES1&EF1 (ER)                   0x085C0000
#define EXYNOS5_AES1&EF1 (ER)                   0x085D0000
#define EXYNOS5_AES1&EF1 (ER)                   0x085E0000
#define EXYNOS5_AES1&EF1 (ER)                   0x085F0000
#endif
#define EXYNOS5_EFCON1_OFFSET                   0x08600000
#define EXYNOS5_NS_NDMA_OFFSET                  0x08680000
#define EXYNOS5_S_NDMA_OFFSET                   0x08690000
#define EXYNOS5_AES1_OFFSET                     0x08700000

/* AUDIOCORE */
#define EXYNOS5_AUDIOCORE_VBASE                 (EXYNOS_CORE_VBASE + EXYNOS5_CORE_SIZE)
#define EXYNOS5_AUDIOCORE_PBASE                 0x03800000      /* Audio SFR */
#define EXYNOS5_GPIO_I2S_OFFSET                 (EXYNOS5_CORE_SIZE + 0x00060000)
#define EXYNOS5_AUDIOCORE_SIZE                  0x00100000

#define EXYNOS5_SYSRAM_VBASE                    (EXYNOS5_AUDIOCORE_VBASE + EXYNOS5_AUDIOCORE_SIZE)
#define EXYNOS5_SYSRAM_PBASE                    0x02000000
#define EXYNOS5_SYSRAM_SIZE                     0x00100000


/* used Exynos5 USB PHY registers */
#define USB_PHY_HOST_CTRL0              0x00
#define  HOST_CTRL0_PHY_SWRST           __BIT(0)
#define  HOST_CTRL0_LINK_SWRST          __BIT(1)
#define  HOST_CTRL0_UTMI_SWRST          __BIT(2)
#define  HOST_CTRL0_WORDINTERFACE       __BIT(3)
#define  HOST_CTRL0_FORCESUSPEND        __BIT(4)
#define  HOST_CTRL0_FORCESLEEP          __BIT(5)
#define  HOST_CTRL0_SIDDQ               __BIT(6)
#define  HOST_CTRL0_COMMONON_N          __BIT(9)        /* common block configuration during suspend */
#define  HOST_CTRL0_RETENABLE           __BIT(10)
#define  HOST_CTRL0_TESTBURNIN          __BIT(11)
#define  HOST_CTRL0_FSEL_MASK           __BITS(16, 18)  /* holds FSEL_CLKSEL_ */
#define  HOST_CTRL0_REFCLKSEL_MASK      __BITS(19, 20)
#define   HOST_CTRL0_REFCLKSEL_XTAL     0
#define   HOST_CTRL0_REFCLKSEL_EXTL     1
#define   HOST_CTRL0_REFCLKSEL_CLKCORE  2
#define  HOST_CTRL0_PHY_SWRST_ALL     __BIT(31)

#define USB_PHY_HSIC_CTRL1              0x10
#define USB_PHY_HSIC_TUNE1              0x14
#define USB_PHY_HSIC_CTRL2              0x20
#define USB_PHY_HSIC_TUNE2              0x24

#define  HSIC_CTRL_PHY_SWRST            __BIT(0)
#define  HSIC_CTRL_UTMI_SWRST           __BIT(2)
#define  HSIC_CTRL_WORDINTERFACE        __BIT(3)
#define  HSIC_CTRL_FORCESUSPEND __BIT(4)
#define  HSIC_CTRL_FORCESLEEP           __BIT(5)
#define  HSIC_CTRL_SIDDQ                __BIT(6)
#define  HSIC_CTRL_REFCLKDIV_MASK       __BITS(16,22)
#define    HSIC_CTRL_REFCLKDIV_12               0x24
#define    HSIC_CTRL_REFCLKDIV_15               0x1c
#define    HSIC_CTRL_REFCLKDIV_16               0x1a
#define    HSIC_CTRL_REFCLKDIV_19_2             0x15
#define    HSIC_CTRL_REFCLKDIV_20               0x14
#define  HSIC_CTRL_REFCLKSEL_MASK       __BITS(23, 24)
#define    HSIC_CTRL_REFCLKSEL_DEFAULT  2

#define USB_PHY_HOST_EHCICTRL           0x30
#define   HOST_EHCICTRL_ENA_INCR16      __BIT(26)
#define   HOST_EHCICTRL_ENA_INCR8       __BIT(27)
#define   HOST_EHCICTRL_ENA_INCR4       __BIT(28)
#define   HOST_EHCICTRL_ENA_INCRXALIGN  __BIT(29)

#define USB_PHY_HOST_OHCICTRL           0x34
#define   HOST_OHCICTRL_CLKCK_RST       __BIT(0)
#define   HOST_OHCICTRL_CNTSEL          __BIT(1)
#define   HOST_OHCICTRL_APPSTARTCLK     __BIT(2)
#define   HOST_OHCICTRL_SUSPLGCY        __BIT(3)

#define USB_PHY_OTG_SYS                 0x38
#define   OTG_SYS_FORCESUSPEND          __BIT(0)
#define   OTG_SYS_SIDDQ_UOTG            __BIT(1)
#define   OTG_SYS_OTGDISABLE            __BIT(2)
#define   OTG_SYS_FORCESLEEP            __BIT(3)
#define   OTG_SYS_FSEL_MASK             __BITS(4, 6)    /* holds FSEL_CLKSEL_ */
#define   OTG_SYS_COMMON_ON             __BIT(7)
#define   OTG_SYS_IDPULLUP_UOTG         __BIT(8)
#define   OTG_SYS_REFCLKSEL_MASK        __BITS(9, 10)
#define   OTG_SYS_REFCLKSEL_XTAL        __SHIFTIN(OTG_SYS_REFCLKSEL_MASK, 0)
#define   OTG_SYS_REFCLKSEL_EXTL        __SHIFTIN(OTG_SYS_REFCLKSEL_MASK, 1)
#define   OTG_SYS_REFCLKSEL_CLKCORE     __SHIFTIN(OTG_SYS_REFCLKSEL_MASK, 2)
#define   OTG_SYS_PHY0_SWRST            __BIT(12)
#define   OTG_SYS_LINK_SWRST_UOTG       __BIT(13)
#define   OTG_SYS_PHYLINK_SWRST         __BIT(14)

#endif /* _ARM_SAMSUNG_EXYNOS5_REG_H_ */