1508a58faSSricharan /* 2508a58faSSricharan * (C) Copyright 2010 3508a58faSSricharan * Texas Instruments, <www.ti.com> 4508a58faSSricharan * 5508a58faSSricharan * Authors: 6508a58faSSricharan * Aneesh V <aneesh@ti.com> 7508a58faSSricharan * Sricharan R <r.sricharan@ti.com> 8508a58faSSricharan * 9508a58faSSricharan * See file CREDITS for list of people who contributed to this 10508a58faSSricharan * project. 11508a58faSSricharan * 12508a58faSSricharan * This program is free software; you can redistribute it and/or 13508a58faSSricharan * modify it under the terms of the GNU General Public License as 14508a58faSSricharan * published by the Free Software Foundation; either version 2 of 15508a58faSSricharan * the License, or (at your option) any later version. 16508a58faSSricharan * 17508a58faSSricharan * This program is distributed in the hope that it will be useful, 18508a58faSSricharan * but WITHOUT ANY WARRANTY; without even the implied warranty of 19508a58faSSricharan * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20508a58faSSricharan * GNU General Public License for more details. 21508a58faSSricharan * 22508a58faSSricharan * You should have received a copy of the GNU General Public License 23508a58faSSricharan * along with this program; if not, write to the Free Software 24508a58faSSricharan * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 25508a58faSSricharan * MA 02111-1307 USA 26508a58faSSricharan */ 27508a58faSSricharan 28508a58faSSricharan #ifndef _OMAP5_H_ 29508a58faSSricharan #define _OMAP5_H_ 30508a58faSSricharan 31508a58faSSricharan #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) 32508a58faSSricharan #include <asm/types.h> 33508a58faSSricharan #endif /* !(__KERNEL_STRICT_NAMES || __ASSEMBLY__) */ 34508a58faSSricharan 35508a58faSSricharan /* 36508a58faSSricharan * L4 Peripherals - L4 Wakeup and L4 Core now 37508a58faSSricharan */ 38508a58faSSricharan #define OMAP54XX_L4_CORE_BASE 0x4A000000 39508a58faSSricharan #define OMAP54XX_L4_WKUP_BASE 0x4Ae00000 40508a58faSSricharan #define OMAP54XX_L4_PER_BASE 0x48000000 41508a58faSSricharan 42508a58faSSricharan #define OMAP54XX_DRAM_ADDR_SPACE_START 0x80000000 43e843d0f7SSRICHARAN R #define OMAP54XX_DRAM_ADDR_SPACE_END 0xFFFFFFFF 44508a58faSSricharan #define DRAM_ADDR_SPACE_START OMAP54XX_DRAM_ADDR_SPACE_START 45508a58faSSricharan #define DRAM_ADDR_SPACE_END OMAP54XX_DRAM_ADDR_SPACE_END 46508a58faSSricharan 474de28d79SLokesh Vutla /* CONTROL ID CODE */ 484de28d79SLokesh Vutla #define CONTROL_CORE_ID_CODE 0x4A002204 494de28d79SLokesh Vutla #define CONTROL_WKUP_ID_CODE 0x4AE0C204 504de28d79SLokesh Vutla 514de28d79SLokesh Vutla #ifdef CONFIG_DRA7XX 524de28d79SLokesh Vutla #define CONTROL_ID_CODE CONTROL_WKUP_ID_CODE 534de28d79SLokesh Vutla #else 544de28d79SLokesh Vutla #define CONTROL_ID_CODE CONTROL_CORE_ID_CODE 554de28d79SLokesh Vutla #endif 56508a58faSSricharan 57508a58faSSricharan /* To be verified */ 580a0bf7b2SLokesh Vutla #define OMAP5430_CONTROL_ID_CODE_ES1_0 0x0B94202F 59eed7c0f7SSRICHARAN R #define OMAP5430_CONTROL_ID_CODE_ES2_0 0x1B94202F 600a0bf7b2SLokesh Vutla #define OMAP5432_CONTROL_ID_CODE_ES1_0 0x0B99802F 61eed7c0f7SSRICHARAN R #define OMAP5432_CONTROL_ID_CODE_ES2_0 0x1B99802F 62de62688bSLokesh Vutla #define DRA752_CONTROL_ID_CODE_ES1_0 0x0B99002F 63508a58faSSricharan 64508a58faSSricharan /* UART */ 65508a58faSSricharan #define UART1_BASE (OMAP54XX_L4_PER_BASE + 0x6a000) 66508a58faSSricharan #define UART2_BASE (OMAP54XX_L4_PER_BASE + 0x6c000) 67508a58faSSricharan #define UART3_BASE (OMAP54XX_L4_PER_BASE + 0x20000) 68508a58faSSricharan 69508a58faSSricharan /* General Purpose Timers */ 70508a58faSSricharan #define GPT1_BASE (OMAP54XX_L4_WKUP_BASE + 0x18000) 71508a58faSSricharan #define GPT2_BASE (OMAP54XX_L4_PER_BASE + 0x32000) 72508a58faSSricharan #define GPT3_BASE (OMAP54XX_L4_PER_BASE + 0x34000) 73508a58faSSricharan 74508a58faSSricharan /* Watchdog Timer2 - MPU watchdog */ 75508a58faSSricharan #define WDT2_BASE (OMAP54XX_L4_WKUP_BASE + 0x14000) 76508a58faSSricharan 77508a58faSSricharan /* GPMC */ 78508a58faSSricharan #define OMAP54XX_GPMC_BASE 0x50000000 79508a58faSSricharan 80508a58faSSricharan /* 81508a58faSSricharan * Hardware Register Details 82508a58faSSricharan */ 83508a58faSSricharan 84508a58faSSricharan /* Watchdog Timer */ 85508a58faSSricharan #define WD_UNLOCK1 0xAAAA 86508a58faSSricharan #define WD_UNLOCK2 0x5555 87508a58faSSricharan 88508a58faSSricharan /* GP Timer */ 89508a58faSSricharan #define TCLR_ST (0x1 << 0) 90508a58faSSricharan #define TCLR_AR (0x1 << 1) 91508a58faSSricharan #define TCLR_PRE (0x1 << 5) 92508a58faSSricharan 93508a58faSSricharan /* Control Module */ 94508a58faSSricharan #define LDOSRAM_ACTMODE_VSET_IN_MASK (0x1F << 5) 95508a58faSSricharan #define LDOSRAM_VOLT_CTRL_OVERRIDE 0x0401040f 96508a58faSSricharan #define CONTROL_EFUSE_1_OVERRIDE 0x1C4D0110 97508a58faSSricharan #define CONTROL_EFUSE_2_OVERRIDE 0x00084000 98508a58faSSricharan 99508a58faSSricharan /* LPDDR2 IO regs */ 100508a58faSSricharan #define CONTROL_LPDDR2IO_SLEW_125PS_DRV8_PULL_DOWN 0x1C1C1C1C 101508a58faSSricharan #define CONTROL_LPDDR2IO_SLEW_325PS_DRV8_GATE_KEEPER 0x9E9E9E9E 102508a58faSSricharan #define CONTROL_LPDDR2IO_SLEW_315PS_DRV12_PULL_DOWN 0x7C7C7C7C 103508a58faSSricharan #define LPDDR2IO_GR10_WD_MASK (3 << 17) 104508a58faSSricharan #define CONTROL_LPDDR2IO_3_VAL 0xA0888C00 105508a58faSSricharan 106508a58faSSricharan /* CONTROL_EFUSE_2 */ 107508a58faSSricharan #define CONTROL_EFUSE_2_NMOS_PMOS_PTV_CODE_1 0x00ffc000 108508a58faSSricharan 109*a5d439c2SBalaji T K #define SDCARD_BIAS_PWRDNZ (1 << 27) 110dd23e59dSBalaji T K #define SDCARD_PWRDNZ (1 << 26) 111dd23e59dSBalaji T K #define SDCARD_BIAS_HIZ_MODE (1 << 25) 112dd23e59dSBalaji T K #define SDCARD_PBIASLITE_VMODE (1 << 21) 113508a58faSSricharan 114508a58faSSricharan #ifndef __ASSEMBLY__ 115508a58faSSricharan 116508a58faSSricharan struct s32ktimer { 117508a58faSSricharan unsigned char res[0x10]; 118508a58faSSricharan unsigned int s32k_cr; /* 0x10 */ 119508a58faSSricharan }; 120508a58faSSricharan 121c1fa3c37SSRICHARAN R #define DEVICE_TYPE_SHIFT 0x6 122c1fa3c37SSRICHARAN R #define DEVICE_TYPE_MASK (0x7 << DEVICE_TYPE_SHIFT) 123c1fa3c37SSRICHARAN R #define DEVICE_GP 0x3 124c1fa3c37SSRICHARAN R 1256ad8d67dSSRICHARAN R /* Output impedance control */ 1266ad8d67dSSRICHARAN R #define ds_120_ohm 0x0 1276ad8d67dSSRICHARAN R #define ds_60_ohm 0x1 1286ad8d67dSSRICHARAN R #define ds_45_ohm 0x2 1296ad8d67dSSRICHARAN R #define ds_30_ohm 0x3 1306ad8d67dSSRICHARAN R #define ds_mask 0x3 1316ad8d67dSSRICHARAN R 1326ad8d67dSSRICHARAN R /* Slew rate control */ 1336ad8d67dSSRICHARAN R #define sc_slow 0x0 1346ad8d67dSSRICHARAN R #define sc_medium 0x1 1356ad8d67dSSRICHARAN R #define sc_fast 0x2 1366ad8d67dSSRICHARAN R #define sc_na 0x3 1376ad8d67dSSRICHARAN R #define sc_mask 0x3 1386ad8d67dSSRICHARAN R 1396ad8d67dSSRICHARAN R /* Target capacitance control */ 1406ad8d67dSSRICHARAN R #define lb_5_12_pf 0x0 1416ad8d67dSSRICHARAN R #define lb_12_25_pf 0x1 1426ad8d67dSSRICHARAN R #define lb_25_50_pf 0x2 1436ad8d67dSSRICHARAN R #define lb_50_80_pf 0x3 1446ad8d67dSSRICHARAN R #define lb_mask 0x3 1456ad8d67dSSRICHARAN R 1466ad8d67dSSRICHARAN R #define usb_i_mask 0x7 1476ad8d67dSSRICHARAN R 1486ad8d67dSSRICHARAN R #define DDR_IO_I_34OHM_SR_FASTEST_WD_DQ_NO_PULL_DQS_PULL_DOWN 0x80828082 1496ad8d67dSSRICHARAN R #define DDR_IO_I_34OHM_SR_FASTEST_WD_CK_CKE_NCS_CA_PULL_DOWN 0x82828200 1506ad8d67dSSRICHARAN R #define DDR_IO_0_DDR2_DQ_INT_EN_ALL_DDR3_CA_DIS_ALL 0x8421 1516ad8d67dSSRICHARAN R #define DDR_IO_1_DQ_OUT_EN_ALL_DQ_INT_EN_ALL 0x8421084 1526ad8d67dSSRICHARAN R #define DDR_IO_2_CA_OUT_EN_ALL_CA_INT_EN_ALL 0x8421000 1536ad8d67dSSRICHARAN R 154eb4e18e8SLokesh Vutla #define DDR_IO_I_40OHM_SR_SLOWEST_WD_DQ_NO_PULL_DQS_NO_PULL 0x7C7C7C6C 155eb4e18e8SLokesh Vutla #define DDR_IO_I_40OHM_SR_FAST_WD_DQ_NO_PULL_DQS_NO_PULL 0x64646464 156eb4e18e8SLokesh Vutla #define DDR_IO_0_VREF_CELLS_DDR3_VALUE 0xBAE8C631 157eb4e18e8SLokesh Vutla #define DDR_IO_1_VREF_CELLS_DDR3_VALUE 0xBC6318DC 158eb4e18e8SLokesh Vutla #define DDR_IO_2_VREF_CELLS_DDR3_VALUE 0x0 159eb4e18e8SLokesh Vutla 1609100edecSLokesh Vutla #define DDR_IO_I_40OHM_SR_SLOWEST_WD_DQ_NO_PULL_DQS_NO_PULL_ES2 0x7C7C7C7C 1619100edecSLokesh Vutla #define DDR_IO_I_40OHM_SR_FAST_WD_DQ_NO_PULL_DQS_NO_PULL_ES2 0x64656465 1629100edecSLokesh Vutla #define DDR_IO_0_VREF_CELLS_DDR3_VALUE_ES2 0xBAE8C631 1639100edecSLokesh Vutla #define DDR_IO_1_VREF_CELLS_DDR3_VALUE_ES2 0xB46318D8 1649100edecSLokesh Vutla #define DDR_IO_2_VREF_CELLS_DDR3_VALUE_ES2 0x84210000 1659100edecSLokesh Vutla 1666ad8d67dSSRICHARAN R #define EFUSE_1 0x45145100 1676ad8d67dSSRICHARAN R #define EFUSE_2 0x45145100 1686ad8d67dSSRICHARAN R #define EFUSE_3 0x45145100 1696ad8d67dSSRICHARAN R #define EFUSE_4 0x45145100 170508a58faSSricharan #endif /* __ASSEMBLY__ */ 171508a58faSSricharan 17281ede187SSricharan R #ifdef CONFIG_DRA7XX 17381ede187SSricharan R #define NON_SECURE_SRAM_START 0x40300000 17481ede187SSricharan R #define NON_SECURE_SRAM_END 0x40380000 /* Not inclusive */ 17581ede187SSricharan R #else 17647c50143SSRICHARAN R #define NON_SECURE_SRAM_START 0x40300000 177508a58faSSricharan #define NON_SECURE_SRAM_END 0x40320000 /* Not inclusive */ 17881ede187SSricharan R #endif 17981ede187SSricharan R 180508a58faSSricharan /* base address for indirect vectors (internal boot mode) */ 181508a58faSSricharan #define SRAM_ROM_VECT_BASE 0x4031F000 182508a58faSSricharan 183d4d986eeSLokesh Vutla /* CONTROL_SRCOMP_XXX_SIDE */ 184d4d986eeSLokesh Vutla #define OVERRIDE_XS_SHIFT 30 185d4d986eeSLokesh Vutla #define OVERRIDE_XS_MASK (1 << 30) 186d4d986eeSLokesh Vutla #define SRCODE_READ_XS_SHIFT 12 187d4d986eeSLokesh Vutla #define SRCODE_READ_XS_MASK (0xff << 12) 188d4d986eeSLokesh Vutla #define PWRDWN_XS_SHIFT 11 189d4d986eeSLokesh Vutla #define PWRDWN_XS_MASK (1 << 11) 190d4d986eeSLokesh Vutla #define DIVIDE_FACTOR_XS_SHIFT 4 191d4d986eeSLokesh Vutla #define DIVIDE_FACTOR_XS_MASK (0x7f << 4) 192d4d986eeSLokesh Vutla #define MULTIPLY_FACTOR_XS_SHIFT 1 193d4d986eeSLokesh Vutla #define MULTIPLY_FACTOR_XS_MASK (0x7 << 1) 194d4d986eeSLokesh Vutla #define SRCODE_OVERRIDE_SEL_XS_SHIFT 0 195d4d986eeSLokesh Vutla #define SRCODE_OVERRIDE_SEL_XS_MASK (1 << 0) 196d4d986eeSLokesh Vutla 1974d0df9c1SAndrii Tseglytskyi /* ABB settings */ 1984d0df9c1SAndrii Tseglytskyi #define OMAP_ABB_SETTLING_TIME 50 1994d0df9c1SAndrii Tseglytskyi #define OMAP_ABB_CLOCK_CYCLES 16 2004d0df9c1SAndrii Tseglytskyi 2014d0df9c1SAndrii Tseglytskyi /* ABB tranxdone mask */ 2024d0df9c1SAndrii Tseglytskyi #define OMAP_ABB_MPU_TXDONE_MASK (0x1 << 7) 2034d0df9c1SAndrii Tseglytskyi 2044d0df9c1SAndrii Tseglytskyi /* ABB efuse masks */ 2054d0df9c1SAndrii Tseglytskyi #define OMAP5_ABB_FUSE_VSET_MASK (0x1F << 24) 2064d0df9c1SAndrii Tseglytskyi #define OMAP5_ABB_FUSE_ENABLE_MASK (0x1 << 29) 2074d0df9c1SAndrii Tseglytskyi #define OMAP5_ABB_LDOVBBMPU_MUX_CTRL_MASK (0x1 << 10) 2084d0df9c1SAndrii Tseglytskyi #define OMAP5_ABB_LDOVBBMPU_VSET_OUT_MASK (0x1f << 0) 2094d0df9c1SAndrii Tseglytskyi 21078f455c0SSricharan #ifndef __ASSEMBLY__ 211d4d986eeSLokesh Vutla struct srcomp_params { 212d4d986eeSLokesh Vutla s8 divide_factor; 213d4d986eeSLokesh Vutla s8 multiply_factor; 214d4d986eeSLokesh Vutla }; 215d4d986eeSLokesh Vutla 216ef1697e9SLokesh Vutla struct ctrl_ioregs { 217ef1697e9SLokesh Vutla u32 ctrl_ddrch; 218ef1697e9SLokesh Vutla u32 ctrl_lpddr2ch; 219ef1697e9SLokesh Vutla u32 ctrl_ddr3ch; 220ef1697e9SLokesh Vutla u32 ctrl_ddrio_0; 221ef1697e9SLokesh Vutla u32 ctrl_ddrio_1; 222ef1697e9SLokesh Vutla u32 ctrl_ddrio_2; 223ef1697e9SLokesh Vutla u32 ctrl_emif_sdram_config_ext; 224ef1697e9SLokesh Vutla }; 22578f455c0SSricharan #endif /* __ASSEMBLY__ */ 226508a58faSSricharan #endif 227