Linux Audio

Check our new training course

Loading...
v3.5.6
 
  1/*
  2 * OMAP2XXX powerdomain definitions
  3 *
  4 * Copyright (C) 2007-2008, 2011 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	.pwrsts		  = PWRSTS_OFF_RET_ON,
 32	.pwrsts_logic_ret = PWRSTS_RET,
 33	.banks		  = 1,
 34	.pwrsts_mem_ret	  = {
 35		[0] = PWRSTS_RET,
 36	},
 37	.pwrsts_mem_on	  = {
 38		[0] = PWRSTS_ON,
 39	},
 40	.voltdm           = { .name = "core" },
 41};
 42
 43static struct powerdomain mpu_24xx_pwrdm = {
 44	.name		  = "mpu_pwrdm",
 45	.prcm_offs	  = MPU_MOD,
 46	.pwrsts		  = PWRSTS_OFF_RET_ON,
 47	.pwrsts_logic_ret = PWRSTS_OFF_RET,
 48	.banks		  = 1,
 49	.pwrsts_mem_ret	  = {
 50		[0] = PWRSTS_RET,
 51	},
 52	.pwrsts_mem_on	  = {
 53		[0] = PWRSTS_ON,
 54	},
 55	.voltdm           = { .name = "core" },
 56};
 57
 58static struct powerdomain core_24xx_pwrdm = {
 59	.name		  = "core_pwrdm",
 60	.prcm_offs	  = CORE_MOD,
 61	.pwrsts		  = PWRSTS_OFF_RET_ON,
 
 62	.banks		  = 3,
 63	.pwrsts_mem_ret	  = {
 64		[0] = PWRSTS_OFF_RET,	 /* MEM1RETSTATE */
 65		[1] = PWRSTS_OFF_RET,	 /* MEM2RETSTATE */
 66		[2] = PWRSTS_OFF_RET,	 /* MEM3RETSTATE */
 67	},
 68	.pwrsts_mem_on	  = {
 69		[0] = PWRSTS_OFF_RET_ON, /* MEM1ONSTATE */
 70		[1] = PWRSTS_OFF_RET_ON, /* MEM2ONSTATE */
 71		[2] = PWRSTS_OFF_RET_ON, /* MEM3ONSTATE */
 72	},
 73	.voltdm           = { .name = "core" },
 74};
 75
 76
 77/*
 78 * 2430-specific powerdomains
 79 */
 80
 81/* XXX 2430 KILLDOMAINWKUP bit?  No current users apparently */
 82
 83static struct powerdomain mdm_pwrdm = {
 84	.name		  = "mdm_pwrdm",
 85	.prcm_offs	  = OMAP2430_MDM_MOD,
 86	.pwrsts		  = PWRSTS_OFF_RET_ON,
 87	.pwrsts_logic_ret = PWRSTS_RET,
 88	.banks		  = 1,
 89	.pwrsts_mem_ret	  = {
 90		[0] = PWRSTS_RET, /* MEMRETSTATE */
 91	},
 92	.pwrsts_mem_on	  = {
 93		[0] = PWRSTS_ON,  /* MEMONSTATE */
 94	},
 95	.voltdm           = { .name = "core" },
 96};
 97
 98/*
 99 *
100 */
101
102static struct powerdomain *powerdomains_omap24xx[] __initdata = {
103	&wkup_omap2_pwrdm,
104	&gfx_omap2_pwrdm,
105	&dsp_pwrdm,
106	&mpu_24xx_pwrdm,
107	&core_24xx_pwrdm,
108	NULL
109};
110
111static struct powerdomain *powerdomains_omap2430[] __initdata = {
112	&mdm_pwrdm,
113	NULL
114};
115
116void __init omap242x_powerdomains_init(void)
117{
118	if (!cpu_is_omap2420())
119		return;
120
121	pwrdm_register_platform_funcs(&omap2_pwrdm_operations);
122	pwrdm_register_pwrdms(powerdomains_omap24xx);
123	pwrdm_complete_init();
124}
125
126void __init omap243x_powerdomains_init(void)
127{
128	if (!cpu_is_omap2430())
129		return;
130
131	pwrdm_register_platform_funcs(&omap2_pwrdm_operations);
132	pwrdm_register_pwrdms(powerdomains_omap24xx);
133	pwrdm_register_pwrdms(powerdomains_omap2430);
134	pwrdm_complete_init();
135}
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}