1 /* SPDX-License-Identifier: GPL-2.0-only */ 1 2 /* 3 * OMAP2/3 Clock Management (CM) register defi 4 * 5 * Copyright (C) 2007-2009 Texas Instruments, 6 * Copyright (C) 2007-2010 Nokia Corporation 7 * Paul Walmsley 8 * 9 * The CM hardware modules on the OMAP2/3 are 10 * other. The CM modules/instances on OMAP4 a 11 * they are handled in a separate file. 12 */ 13 #ifndef __ARCH_ASM_MACH_OMAP2_CM2XXX_3XXX_H 14 #define __ARCH_ASM_MACH_OMAP2_CM2XXX_3XXX_H 15 16 #include "cm.h" 17 18 /* 19 * Module specific CM register offsets from CM 20 * Use cm_{read,write}_mod_reg() with these re 21 * These register offsets generally appear in 22 */ 23 24 /* Common between OMAP2 and OMAP3 */ 25 26 #define CM_FCLKEN 27 #define CM_FCLKEN1 28 #define CM_CLKEN 29 #define CM_ICLKEN 30 #define CM_ICLKEN1 31 #define CM_ICLKEN2 32 #define CM_ICLKEN3 33 #define CM_IDLEST 34 #define CM_IDLEST1 35 #define CM_IDLEST2 36 #define OMAP2430_CM_IDLEST3 37 #define CM_AUTOIDLE 38 #define CM_AUTOIDLE1 39 #define CM_AUTOIDLE2 40 #define CM_AUTOIDLE3 41 #define CM_CLKSEL 42 #define CM_CLKSEL1 43 #define CM_CLKSEL2 44 #define OMAP2_CM_CLKSTCTRL 45 46 #ifndef __ASSEMBLER__ 47 48 #include <linux/io.h> 49 50 static inline u32 omap2_cm_read_mod_reg(s16 mo 51 { 52 return readl_relaxed(cm_base.va + modu 53 } 54 55 static inline void omap2_cm_write_mod_reg(u32 56 { 57 writel_relaxed(val, cm_base.va + modul 58 } 59 60 /* Read-modify-write a register in a CM module 61 static inline u32 omap2_cm_rmw_mod_reg_bits(u3 62 s1 63 { 64 u32 v; 65 66 v = omap2_cm_read_mod_reg(module, idx) 67 v &= ~mask; 68 v |= bits; 69 omap2_cm_write_mod_reg(v, module, idx) 70 71 return v; 72 } 73 74 /* Read a CM register, AND it, and shift the r 75 static inline u32 omap2_cm_read_mod_bits_shift 76 { 77 u32 v; 78 79 v = omap2_cm_read_mod_reg(domain, idx) 80 v &= mask; 81 v >>= __ffs(mask); 82 83 return v; 84 } 85 86 static inline u32 omap2_cm_set_mod_reg_bits(u3 87 { 88 return omap2_cm_rmw_mod_reg_bits(bits, 89 } 90 91 static inline u32 omap2_cm_clear_mod_reg_bits( 92 { 93 return omap2_cm_rmw_mod_reg_bits(bits, 94 } 95 96 #endif 97 98 /* CM register bits shared between 24XX and 34 99 100 /* CM_CLKSEL_GFX */ 101 #define OMAP_CLKSEL_GFX_SHIFT 102 #define OMAP_CLKSEL_GFX_MASK 103 #define OMAP_CLKSEL_GFX_WIDTH 104 105 /* CM_ICLKEN_GFX */ 106 #define OMAP_EN_GFX_SHIFT 107 #define OMAP_EN_GFX_MASK 108 109 /* CM_IDLEST_GFX */ 110 #define OMAP_ST_GFX_MASK 111 112 #endif 113
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.