| /* |
| * AM33XX CM offset macros |
| * |
| * Copyright (C) 2011-2012 Texas Instruments Incorporated - https://www.ti.com/ |
| * Vaibhav Hiremath <hvaibhav@ti.com> |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License as |
| * published by the Free Software Foundation version 2. |
| * |
| * This program is distributed "as is" WITHOUT ANY WARRANTY of any |
| * kind, whether express or implied; without even the implied warranty |
| * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #ifndef __ARCH_ARM_MACH_OMAP2_CM_33XX_H |
| #define __ARCH_ARM_MACH_OMAP2_CM_33XX_H |
| |
| #include "cm.h" |
| #include "cm-regbits-33xx.h" |
| #include "prcm-common.h" |
| |
| /* CM base address */ |
| #define AM33XX_CM_BASE 0x44e00000 |
| |
| #define AM33XX_CM_REGADDR(inst, reg) \ |
| AM33XX_L4_WK_IO_ADDRESS(AM33XX_CM_BASE + (inst) + (reg)) |
| |
| /* CM instances */ |
| #define AM33XX_CM_PER_MOD 0x0000 |
| #define AM33XX_CM_WKUP_MOD 0x0400 |
| #define AM33XX_CM_DPLL_MOD 0x0500 |
| #define AM33XX_CM_MPU_MOD 0x0600 |
| #define AM33XX_CM_DEVICE_MOD 0x0700 |
| #define AM33XX_CM_RTC_MOD 0x0800 |
| #define AM33XX_CM_GFX_MOD 0x0900 |
| #define AM33XX_CM_CEFUSE_MOD 0x0A00 |
| |
| /* CM.PER_CM register offsets */ |
| #define AM33XX_CM_PER_L4LS_CLKSTCTRL_OFFSET 0x0000 |
| #define AM33XX_CM_PER_L4LS_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0000) |
| #define AM33XX_CM_PER_L3S_CLKSTCTRL_OFFSET 0x0004 |
| #define AM33XX_CM_PER_L3S_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0004) |
| #define AM33XX_CM_PER_L4FW_CLKSTCTRL_OFFSET 0x0008 |
| #define AM33XX_CM_PER_L4FW_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0008) |
| #define AM33XX_CM_PER_L3_CLKSTCTRL_OFFSET 0x000c |
| #define AM33XX_CM_PER_L3_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x000c) |
| #define AM33XX_CM_PER_EMIF_CLKCTRL_OFFSET 0x0028 |
| #define AM33XX_CM_PER_EMIF_CLKCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0028) |
| #define AM33XX_CM_PER_L4HS_CLKSTCTRL_OFFSET 0x011c |
| #define AM33XX_CM_PER_L4HS_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x011c) |
| #define AM33XX_CM_PER_OCPWP_L3_CLKSTCTRL_OFFSET 0x012c |
| #define AM33XX_CM_PER_OCPWP_L3_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x012c) |
| #define AM33XX_CM_PER_PRUSS_CLKSTCTRL_OFFSET 0x0140 |
| #define AM33XX_CM_PER_PRUSS_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0140) |
| #define AM33XX_CM_PER_CPSW_CLKSTCTRL_OFFSET 0x0144 |
| #define AM33XX_CM_PER_CPSW_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0144) |
| #define AM33XX_CM_PER_LCDC_CLKSTCTRL_OFFSET 0x0148 |
| #define AM33XX_CM_PER_LCDC_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0148) |
| #define AM33XX_CM_PER_CLK_24MHZ_CLKSTCTRL_OFFSET 0x0150 |
| #define AM33XX_CM_PER_CLK_24MHZ_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_PER_MOD, 0x0150) |
| |
| /* CM.WKUP_CM register offsets */ |
| #define AM33XX_CM_WKUP_CLKSTCTRL_OFFSET 0x0000 |
| #define AM33XX_CM_WKUP_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_WKUP_MOD, 0x0000) |
| #define AM33XX_CM_L3_AON_CLKSTCTRL_OFFSET 0x0018 |
| #define AM33XX_CM_L3_AON_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_WKUP_MOD, 0x0018) |
| #define AM33XX_CM_L4_WKUP_AON_CLKSTCTRL_OFFSET 0x00cc |
| #define AM33XX_CM_L4_WKUP_AON_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_WKUP_MOD, 0x00cc) |
| |
| /* CM.DPLL_CM register offsets */ |
| #define AM33XX_CLKSEL_GFX_FCLK AM33XX_CM_REGADDR(AM33XX_CM_DPLL_MOD, 0x002c) |
| |
| /* CM.MPU_CM register offsets */ |
| #define AM33XX_CM_MPU_CLKSTCTRL_OFFSET 0x0000 |
| #define AM33XX_CM_MPU_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_MPU_MOD, 0x0000) |
| #define AM33XX_CM_MPU_MPU_CLKCTRL AM33XX_CM_REGADDR(AM33XX_CM_MPU_MOD, 0x0004) |
| |
| /* CM.DEVICE_CM register offsets */ |
| |
| /* CM.RTC_CM register offsets */ |
| #define AM33XX_CM_RTC_CLKSTCTRL_OFFSET 0x0004 |
| #define AM33XX_CM_RTC_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_RTC_MOD, 0x0004) |
| |
| /* CM.GFX_CM register offsets */ |
| #define AM33XX_CM_GFX_L3_CLKSTCTRL_OFFSET 0x0000 |
| #define AM33XX_CM_GFX_L3_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_GFX_MOD, 0x0000) |
| #define AM33XX_CM_GFX_L4LS_GFX_CLKSTCTRL__1_OFFSET 0x000c |
| #define AM33XX_CM_GFX_L4LS_GFX_CLKSTCTRL__1 AM33XX_CM_REGADDR(AM33XX_CM_GFX_MOD, 0x000c) |
| |
| /* CM.CEFUSE_CM register offsets */ |
| #define AM33XX_CM_CEFUSE_CLKSTCTRL_OFFSET 0x0000 |
| #define AM33XX_CM_CEFUSE_CLKSTCTRL AM33XX_CM_REGADDR(AM33XX_CM_CEFUSE_MOD, 0x0000) |
| |
| |
| #ifndef __ASSEMBLER__ |
| int am33xx_cm_init(const struct omap_prcm_init_data *data); |
| #endif /* ASSEMBLER */ |
| #endif |