Blame view

arch/arm/mach-omap2/sdrc.h 1.89 KB
69d88a00a   Paul Walmsley   ARM: OMAP2: Add c...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  #ifndef __ARCH_ARM_MACH_OMAP2_SDRC_H
  #define __ARCH_ARM_MACH_OMAP2_SDRC_H
  
  /*
   * OMAP2 SDRC register definitions
   *
   * Copyright (C) 2007 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
ce491cf85   Tony Lindgren   omap: headers: Mo...
17
  #include <plat/sdrc.h>
69d88a00a   Paul Walmsley   ARM: OMAP2: Add c...
18
19
  
  #ifndef __ASSEMBLER__
d8a944582   Paul Walmsley   OMAP2 clock: conv...
20
21
  
  #include <linux/io.h>
a58caad11   Tony Lindgren   ARM: OMAP: Introd...
22
23
  extern void __iomem *omap2_sdrc_base;
  extern void __iomem *omap2_sms_base;
69d88a00a   Paul Walmsley   ARM: OMAP2: Add c...
24

a58caad11   Tony Lindgren   ARM: OMAP: Introd...
25
26
  #define OMAP_SDRC_REGADDR(reg)			(omap2_sdrc_base + (reg))
  #define OMAP_SMS_REGADDR(reg)			(omap2_sms_base + (reg))
69d88a00a   Paul Walmsley   ARM: OMAP2: Add c...
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  
  /* SDRC global register get/set */
  
  static inline void sdrc_write_reg(u32 val, u16 reg)
  {
  	__raw_writel(val, OMAP_SDRC_REGADDR(reg));
  }
  
  static inline u32 sdrc_read_reg(u16 reg)
  {
  	return __raw_readl(OMAP_SDRC_REGADDR(reg));
  }
  
  /* SMS global register get/set */
  
  static inline void sms_write_reg(u32 val, u16 reg)
  {
  	__raw_writel(val, OMAP_SMS_REGADDR(reg));
  }
  
  static inline u32 sms_read_reg(u16 reg)
  {
  	return __raw_readl(OMAP_SMS_REGADDR(reg));
  }
  #else
233fd64e7   Santosh Shilimkar   omap: Split OMAP2...
52
53
54
55
56
57
  #define OMAP242X_SDRC_REGADDR(reg)					\
  			OMAP2_L3_IO_ADDRESS(OMAP2420_SDRC_BASE + (reg))
  #define OMAP243X_SDRC_REGADDR(reg)					\
  			OMAP2_L3_IO_ADDRESS(OMAP243X_SDRC_BASE + (reg))
  #define OMAP34XX_SDRC_REGADDR(reg)					\
  			OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE + (reg))
69d88a00a   Paul Walmsley   ARM: OMAP2: Add c...
58
  #endif	/* __ASSEMBLER__ */
55d8a6530   Paul Walmsley   OMAP2/3: move SDR...
59
60
61
62
63
64
65
66
67
68
69
70
71
72
  /* Minimum frequency that the SDRC DLL can lock at */
  #define MIN_SDRC_DLL_LOCK_FREQ		83000000
  
  /* Scale factor for fixed-point arith in omap3_core_dpll_m2_set_rate() */
  #define SDRC_MPURATE_SCALE		8
  
  /* 2^SDRC_MPURATE_BASE_SHIFT: MPU MHz that SDRC_MPURATE_LOOPS is defined for */
  #define SDRC_MPURATE_BASE_SHIFT		9
  
  /*
   * SDRC_MPURATE_LOOPS: Number of MPU loops to execute at
   * 2^MPURATE_BASE_SHIFT MHz for SDRC to stabilize
   */
  #define SDRC_MPURATE_LOOPS		96
69d88a00a   Paul Walmsley   ARM: OMAP2: Add c...
73
  #endif