![]() |
|
|||
0001 // SPDX-License-Identifier: GPL-2.0 0002 /* 0003 * OMAP2/3 clockdomain common data 0004 * 0005 * Copyright (C) 2008-2011 Texas Instruments, Inc. 0006 * Copyright (C) 2008-2010 Nokia Corporation 0007 * 0008 * Paul Walmsley, Jouni Högander 0009 * 0010 * This file contains clockdomains and clockdomain wakeup/sleep 0011 * dependencies for the OMAP2/3 chips. Some notes: 0012 * 0013 * A useful validation rule for struct clockdomain: Any clockdomain 0014 * referenced by a wkdep_srcs or sleepdep_srcs array must have a 0015 * dep_bit assigned. So wkdep_srcs/sleepdep_srcs are really just 0016 * software-controllable dependencies. Non-software-controllable 0017 * dependencies do exist, but they are not encoded below (yet). 0018 * 0019 * 24xx does not support programmable sleep dependencies (SLEEPDEP) 0020 * 0021 * The overly-specific dep_bit names are due to a bit name collision 0022 * with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift 0023 * value are the same for all powerdomains: 2 0024 * 0025 * XXX should dep_bit be a mask, so we can test to see if it is 0 as a 0026 * sanity check? 0027 * XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE 0028 */ 0029 0030 /* 0031 * To-Do List 0032 * -> Port the Sleep/Wakeup dependencies for the domains 0033 * from the Power domain framework 0034 */ 0035 0036 #include <linux/kernel.h> 0037 #include <linux/io.h> 0038 0039 #include "clockdomain.h" 0040 #include "prm2xxx_3xxx.h" 0041 #include "cm2xxx_3xxx.h" 0042 #include "cm-regbits-24xx.h" 0043 #include "cm-regbits-34xx.h" 0044 #include "cm-regbits-44xx.h" 0045 #include "prm-regbits-24xx.h" 0046 #include "prm-regbits-34xx.h" 0047 0048 /* 0049 * Clockdomain dependencies for wkdeps/sleepdeps 0050 * 0051 * XXX Hardware dependencies (e.g., dependencies that cannot be 0052 * changed in software) are not included here yet, but should be. 0053 */ 0054 0055 /* Wakeup dependency source arrays */ 0056 0057 /* 2xxx-specific possible dependencies */ 0058 0059 /* 2xxx PM_WKDEP_GFX: CORE, MPU, WKUP */ 0060 struct clkdm_dep gfx_24xx_wkdeps[] = { 0061 { .clkdm_name = "core_l3_clkdm" }, 0062 { .clkdm_name = "core_l4_clkdm" }, 0063 { .clkdm_name = "mpu_clkdm" }, 0064 { .clkdm_name = "wkup_clkdm" }, 0065 { NULL }, 0066 }; 0067 0068 /* 2xxx PM_WKDEP_DSP: CORE, MPU, WKUP */ 0069 struct clkdm_dep dsp_24xx_wkdeps[] = { 0070 { .clkdm_name = "core_l3_clkdm" }, 0071 { .clkdm_name = "core_l4_clkdm" }, 0072 { .clkdm_name = "mpu_clkdm" }, 0073 { .clkdm_name = "wkup_clkdm" }, 0074 { NULL }, 0075 }; 0076 0077 0078 /* 0079 * OMAP2/3-common clockdomains 0080 * 0081 * Even though the 2420 has a single PRCM module from the 0082 * interconnect's perspective, internally it does appear to have 0083 * separate PRM and CM clockdomains. The usual test case is 0084 * sys_clkout/sys_clkout2. 0085 */ 0086 0087 /* This is an implicit clockdomain - it is never defined as such in TRM */ 0088 struct clockdomain wkup_common_clkdm = { 0089 .name = "wkup_clkdm", 0090 .pwrdm = { .name = "wkup_pwrdm" }, 0091 .dep_bit = OMAP_EN_WKUP_SHIFT, 0092 .flags = CLKDM_ACTIVE_WITH_MPU, 0093 };
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |