| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- /*
 
-  * 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 <linux/kernel.h>
 
- #include <linux/io.h>
 
- #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;
 
 
  |