/* * OMAP2/3 System Control Module register access * * Copyright (C) 2007, 2012 Texas Instruments, Inc. * Copyright (C) 2007 Nokia Corporation * * Written by Paul Walmsley * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #undef DEBUG #include #include #include "soc.h" #include "iomap.h" #include "common.h" #include "cm-regbits-34xx.h" #include "prm-regbits-34xx.h" #include "prm3xxx.h" #include "cm3xxx.h" #include "sdrc.h" #include "pm.h" #include "control.h" /* Used by omap3_ctrl_save_padconf() */ #define START_PADCONF_SAVE 0x2 #define PADCONF_SAVE_DONE 0x1 static void __iomem *omap2_ctrl_base; static void __iomem *omap4_ctrl_pad_base; #if defined(CONFIG_ARCH_OMAP3) && defined(CONFIG_PM) struct omap3_scratchpad { u32 boot_config_ptr; u32 public_restore_ptr; u32 secure_ram_restore_ptr; u32 sdrc_module_semaphore; u32 prcm_block_offset; u32 sdrc_block_offset; }; struct omap3_scratchpad_prcm_block { u32 prm_clksrc_ctrl; u32 prm_clksel; u32 cm_clksel_core; u32 cm_clksel_wkup; u32 cm_clken_pll; u32 cm_autoidle_pll; u32 cm_clksel1_pll; u32 cm_clksel2_pll; u32 cm_clksel3_pll; u32 cm_clken_pll_mpu; u32 cm_autoidle_pll_mpu; u32 cm_clksel1_pll_mpu; u32 cm_clksel2_pll_mpu; u32 prcm_block_size; }; struct omap3_scratchpad_sdrc_block { u16 sysconfig; u16 cs_cfg; u16 sharing; u16 err_type; u32 dll_a_ctrl; u32 dll_b_ctrl; u32 power; u32 cs_0; u32 mcfg_0; u16 mr_0; u16 emr_1_0; u16 emr_2_0; u16 emr_3_0; u32 actim_ctrla_0; u32 actim_ctrlb_0; u32 rfr_ctrl_0; u32 cs_1; u32 mcfg_1; u16 mr_1; u16 emr_1_1; u16 emr_2_1; u16 emr_3_1; u32 actim_ctrla_1; u32 actim_ctrlb_1; u32 rfr_ctrl_1; u16 dcdl_1_ctrl; u16 dcdl_2_ctrl; u32 flags; u32 block_size;