Linux Audio

Check our new training course

Loading...
v6.13.7
  1// SPDX-License-Identifier: GPL-2.0-only
  2/*
  3 * OMAP2XXX powerdomain definitions
  4 *
  5 * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc.
  6 * Copyright (C) 2007-2011 Nokia Corporation
  7 *
  8 * Paul Walmsley, Jouni Högander
 
 
 
 
  9 */
 10
 11#include <linux/kernel.h>
 12#include <linux/init.h>
 13
 14#include "soc.h"
 15#include "powerdomain.h"
 16#include "powerdomains2xxx_3xxx_data.h"
 17
 18#include "prcm-common.h"
 19#include "prm2xxx_3xxx.h"
 20#include "prm-regbits-24xx.h"
 21
 22/* 24XX powerdomains and dependencies */
 23
 24/* Powerdomains */
 25
 26static struct powerdomain dsp_pwrdm = {
 27	.name		  = "dsp_pwrdm",
 28	.prcm_offs	  = OMAP24XX_DSP_MOD,
 
 29	.pwrsts		  = PWRSTS_OFF_RET_ON,
 30	.pwrsts_logic_ret = PWRSTS_RET,
 31	.banks		  = 1,
 32	.pwrsts_mem_ret	  = {
 33		[0] = PWRSTS_RET,
 34	},
 35	.pwrsts_mem_on	  = {
 36		[0] = PWRSTS_ON,
 37	},
 38	.voltdm		  = { .name = "core" },
 39};
 40
 41static struct powerdomain mpu_24xx_pwrdm = {
 42	.name		  = "mpu_pwrdm",
 43	.prcm_offs	  = MPU_MOD,
 
 44	.pwrsts		  = PWRSTS_OFF_RET_ON,
 45	.pwrsts_logic_ret = PWRSTS_OFF_RET,
 46	.banks		  = 1,
 47	.pwrsts_mem_ret	  = {
 48		[0] = PWRSTS_RET,
 49	},
 50	.pwrsts_mem_on	  = {
 51		[0] = PWRSTS_ON,
 52	},
 53	.voltdm		  = { .name = "core" },
 54};
 55
 56static struct powerdomain core_24xx_pwrdm = {
 57	.name		  = "core_pwrdm",
 58	.prcm_offs	  = CORE_MOD,
 
 59	.pwrsts		  = PWRSTS_OFF_RET_ON,
 60	.pwrsts_logic_ret = PWRSTS_RET,
 61	.banks		  = 3,
 62	.pwrsts_mem_ret	  = {
 63		[0] = PWRSTS_OFF_RET,	 /* MEM1RETSTATE */
 64		[1] = PWRSTS_OFF_RET,	 /* MEM2RETSTATE */
 65		[2] = PWRSTS_OFF_RET,	 /* MEM3RETSTATE */
 66	},
 67	.pwrsts_mem_on	  = {
 68		[0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
 69		[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
 70		[2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
 71	},
 72	.voltdm		  = { .name = "core" },
 73};
 74
 75
 76/*
 77 * 2430-specific powerdomains
 78 */
 79
 
 
 80/* XXX 2430 KILLDOMAINWKUP bit?  No current users apparently */
 81
 82static struct powerdomain mdm_pwrdm = {
 83	.name		  = "mdm_pwrdm",
 84	.prcm_offs	  = OMAP2430_MDM_MOD,
 
 85	.pwrsts		  = PWRSTS_OFF_RET_ON,
 86	.pwrsts_logic_ret = PWRSTS_RET,
 87	.banks		  = 1,
 88	.pwrsts_mem_ret	  = {
 89		[0] = PWRSTS_RET, /* MEMRETSTATE */
 90	},
 91	.pwrsts_mem_on	  = {
 92		[0] = PWRSTS_ON,  /* MEMONSTATE */
 93	},
 94	.voltdm		  = { .name = "core" },
 95};
 96
 97/*
 98 *
 99 */
 
100
101static struct powerdomain *powerdomains_omap24xx[] __initdata = {
102	&wkup_omap2_pwrdm,
103	&gfx_omap2_pwrdm,
 
 
104	&dsp_pwrdm,
105	&mpu_24xx_pwrdm,
106	&core_24xx_pwrdm,
107	NULL
108};
109
110static struct powerdomain *powerdomains_omap2430[] __initdata = {
111	&mdm_pwrdm,
 
112	NULL
113};
114
115void __init omap242x_powerdomains_init(void)
116{
117	if (!cpu_is_omap2420())
118		return;
119
120	pwrdm_register_platform_funcs(&omap2_pwrdm_operations);
121	pwrdm_register_pwrdms(powerdomains_omap24xx);
122	pwrdm_complete_init();
123}
124
125void __init omap243x_powerdomains_init(void)
126{
127	if (!cpu_is_omap2430())
128		return;
129
130	pwrdm_register_platform_funcs(&omap2_pwrdm_operations);
131	pwrdm_register_pwrdms(powerdomains_omap24xx);
132	pwrdm_register_pwrdms(powerdomains_omap2430);
133	pwrdm_complete_init();
134}
v3.1
 
  1/*
  2 * OMAP2XXX powerdomain definitions
  3 *
  4 * Copyright (C) 2007-2008 Texas Instruments, Inc.
  5 * Copyright (C) 2007-2011 Nokia Corporation
  6 *
  7 * Paul Walmsley, Jouni Högander
  8 *
  9 * This program is free software; you can redistribute it and/or modify
 10 * it under the terms of the GNU General Public License version 2 as
 11 * published by the Free Software Foundation.
 12 */
 13
 14#include <linux/kernel.h>
 15#include <linux/init.h>
 16
 
 17#include "powerdomain.h"
 18#include "powerdomains2xxx_3xxx_data.h"
 19
 20#include "prcm-common.h"
 21#include "prm2xxx_3xxx.h"
 22#include "prm-regbits-24xx.h"
 23
 24/* 24XX powerdomains and dependencies */
 25
 26/* Powerdomains */
 27
 28static struct powerdomain dsp_pwrdm = {
 29	.name		  = "dsp_pwrdm",
 30	.prcm_offs	  = OMAP24XX_DSP_MOD,
 31	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
 32	.pwrsts		  = PWRSTS_OFF_RET_ON,
 33	.pwrsts_logic_ret = PWRSTS_RET,
 34	.banks		  = 1,
 35	.pwrsts_mem_ret	  = {
 36		[0] = PWRSTS_RET,
 37	},
 38	.pwrsts_mem_on	  = {
 39		[0] = PWRSTS_ON,
 40	},
 
 41};
 42
 43static struct powerdomain mpu_24xx_pwrdm = {
 44	.name		  = "mpu_pwrdm",
 45	.prcm_offs	  = MPU_MOD,
 46	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
 47	.pwrsts		  = PWRSTS_OFF_RET_ON,
 48	.pwrsts_logic_ret = PWRSTS_OFF_RET,
 49	.banks		  = 1,
 50	.pwrsts_mem_ret	  = {
 51		[0] = PWRSTS_RET,
 52	},
 53	.pwrsts_mem_on	  = {
 54		[0] = PWRSTS_ON,
 55	},
 
 56};
 57
 58static struct powerdomain core_24xx_pwrdm = {
 59	.name		  = "core_pwrdm",
 60	.prcm_offs	  = CORE_MOD,
 61	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX),
 62	.pwrsts		  = PWRSTS_OFF_RET_ON,
 
 63	.banks		  = 3,
 64	.pwrsts_mem_ret	  = {
 65		[0] = PWRSTS_OFF_RET,	 /* MEM1RETSTATE */
 66		[1] = PWRSTS_OFF_RET,	 /* MEM2RETSTATE */
 67		[2] = PWRSTS_OFF_RET,	 /* MEM3RETSTATE */
 68	},
 69	.pwrsts_mem_on	  = {
 70		[0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
 71		[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
 72		[2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
 73	},
 
 74};
 75
 76
 77/*
 78 * 2430-specific powerdomains
 79 */
 80
 81#ifdef CONFIG_SOC_OMAP2430
 82
 83/* XXX 2430 KILLDOMAINWKUP bit?  No current users apparently */
 84
 85static struct powerdomain mdm_pwrdm = {
 86	.name		  = "mdm_pwrdm",
 87	.prcm_offs	  = OMAP2430_MDM_MOD,
 88	.omap_chip	  = OMAP_CHIP_INIT(CHIP_IS_OMAP2430),
 89	.pwrsts		  = PWRSTS_OFF_RET_ON,
 90	.pwrsts_logic_ret = PWRSTS_RET,
 91	.banks		  = 1,
 92	.pwrsts_mem_ret	  = {
 93		[0] = PWRSTS_RET, /* MEMRETSTATE */
 94	},
 95	.pwrsts_mem_on	  = {
 96		[0] = PWRSTS_ON,  /* MEMONSTATE */
 97	},
 
 98};
 99
100#endif     /* CONFIG_SOC_OMAP2430 */
101
102/* As powerdomains are added or removed above, this list must also be changed */
103static struct powerdomain *powerdomains_omap2xxx[] __initdata = {
104
 
105	&wkup_omap2_pwrdm,
106	&gfx_omap2_pwrdm,
107
108#ifdef CONFIG_ARCH_OMAP2
109	&dsp_pwrdm,
110	&mpu_24xx_pwrdm,
111	&core_24xx_pwrdm,
112#endif
 
113
114#ifdef CONFIG_SOC_OMAP2430
115	&mdm_pwrdm,
116#endif
117	NULL
118};
119
120void __init omap2xxx_powerdomains_init(void)
121{
122	pwrdm_init(powerdomains_omap2xxx, &omap2_pwrdm_operations);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123}