* [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions
@ 2010-04-06 17:54 ` Guzman Lugo, Fernando
2010-05-01 15:27 ` Felipe Contreras
2010-05-19 0:34 ` Deepak Chitriki
0 siblings, 2 replies; 6+ messages in thread
From: Guzman Lugo, Fernando @ 2010-04-06 17:54 UTC (permalink / raw)
To: linux-omap@vger.kernel.org
Cc: Hiroshi DOYU, Ameya Palande, felipe.contreras@nokia.com
>From 4fb9fc015cea65dcd47172a8b180f380fe86be46 Mon Sep 17 00:00:00 2001
From: Fernando Guzman Lugo <x0095840@ti.com>
Date: Tue, 30 Mar 2010 21:37:21 -0600
Subject: [PATCH] DSPBRIDGE: remove hw_prcm module and related functions
This patches removes TI hw_prcm module and related functions
and replace them with kernel functions. As kernel functions
are exported, pointer function are used to build without
problem in case of building dspbridge as a module.
Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
---
arch/arm/mach-omap2/dspbridge.c | 9 +-
arch/arm/plat-omap/include/dspbridge/cfgdefs.h | 2 -
arch/arm/plat-omap/include/dspbridge/host_os.h | 8 +
drivers/dsp/bridge/Makefile | 2 +-
drivers/dsp/bridge/hw/PRCMAccInt.h | 303 ------------
drivers/dsp/bridge/hw/PRCMRegAcM.h | 615 ------------------------
drivers/dsp/bridge/hw/hw_prcm.c | 161 ------
drivers/dsp/bridge/hw/hw_prcm.h | 156 ------
drivers/dsp/bridge/rmgr/drv.c | 14 -
drivers/dsp/bridge/wmd/_tiomap.h | 4 +
drivers/dsp/bridge/wmd/tiomap3430.c | 149 ++----
drivers/dsp/bridge/wmd/tiomap3430_pwr.c | 56 +--
drivers/dsp/bridge/wmd/tiomap_io.c | 15 +-
13 files changed, 102 insertions(+), 1392 deletions(-)
delete mode 100644 drivers/dsp/bridge/hw/PRCMAccInt.h
delete mode 100644 drivers/dsp/bridge/hw/PRCMRegAcM.h
delete mode 100644 drivers/dsp/bridge/hw/hw_prcm.c
delete mode 100644 drivers/dsp/bridge/hw/hw_prcm.h
diff --git a/arch/arm/mach-omap2/dspbridge.c b/arch/arm/mach-omap2/dspbridge.c
index 4150896..8d6c122 100644
--- a/arch/arm/mach-omap2/dspbridge.c
+++ b/arch/arm/mach-omap2/dspbridge.c
@@ -12,7 +12,8 @@
*/
#include <linux/platform_device.h>
-
+#include "prm.h"
+#include "cm.h"
#ifdef CONFIG_BRIDGE_DVFS
#include <plat/omap-pm.h>
#endif
@@ -28,6 +29,12 @@ static struct dspbridge_platform_data dspbridge_pdata __initdata = {
.cpu_set_freq = omap_pm_cpu_set_freq,
.cpu_get_freq = omap_pm_cpu_get_freq,
#endif
+ .dsp_prm_read = prm_read_mod_reg,
+ .dsp_prm_write = prm_write_mod_reg,
+ .dsp_prm_rmw_bits = prm_rmw_mod_reg_bits,
+ .dsp_cm_read = cm_read_mod_reg,
+ .dsp_cm_write = cm_write_mod_reg,
+ .dsp_cm_rmw_bits = cm_rmw_mod_reg_bits,
};
static int __init dspbridge_init(void)
diff --git a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
index a71fc7b..8695fd3 100644
--- a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
+++ b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
@@ -65,8 +65,6 @@ struct cfg_hostres {
u32 dw_chnl_offset;
u32 dw_chnl_buf_size;
u32 dw_num_chnls;
- void __iomem *dw_prm_base;
- void __iomem *dw_cm_base;
void __iomem *dw_per_base;
u32 dw_per_pm_base;
u32 dw_core_pm_base;
diff --git a/arch/arm/plat-omap/include/dspbridge/host_os.h b/arch/arm/plat-omap/include/dspbridge/host_os.h
index a5d8caf..2834304 100644
--- a/arch/arm/plat-omap/include/dspbridge/host_os.h
+++ b/arch/arm/plat-omap/include/dspbridge/host_os.h
@@ -60,6 +60,14 @@ struct dspbridge_platform_data {
unsigned long (*cpu_get_freq) (void);
unsigned long mpu_speed[6];
+ /* functions to write and read PRCM registers */
+ void (*dsp_prm_write)(u32, s16 , u16);
+ u32 (*dsp_prm_read)(s16 , u16);
+ u32 (*dsp_prm_rmw_bits)(u32, u32, s16, s16);
+ void (*dsp_cm_write)(u32, s16 , u16);
+ u32 (*dsp_cm_read)(s16 , u16);
+ u32 (*dsp_cm_rmw_bits)(u32, u32, s16, s16);
+
u32 phys_mempool_base;
u32 phys_mempool_size;
};
diff --git a/drivers/dsp/bridge/Makefile b/drivers/dsp/bridge/Makefile
index 1350362..5a28374 100644
--- a/drivers/dsp/bridge/Makefile
+++ b/drivers/dsp/bridge/Makefile
@@ -15,7 +15,7 @@ librmgr = rmgr/dbdcd.o rmgr/disp.o rmgr/drv.o rmgr/mgr.o rmgr/node.o \
rmgr/nldr.o rmgr/drv_interface.o
libdload = dynload/cload.o dynload/getsection.o dynload/reloc.o \
dynload/tramp.o
-libhw = hw/hw_prcm.o hw/hw_mmu.o
+libhw = hw/hw_mmu.o
bridgedriver-objs = $(libgen) $(libservices) $(libwmd) $(libpmgr) $(librmgr) \
$(libdload) $(libhw)
diff --git a/drivers/dsp/bridge/hw/PRCMAccInt.h b/drivers/dsp/bridge/hw/PRCMAccInt.h
deleted file mode 100644
index 7a513b0..0000000
--- a/drivers/dsp/bridge/hw/PRCMAccInt.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * PRCMAccInt.h
- *
- * DSP-BIOS Bridge driver support functions for TI OMAP processors.
- *
- * Copyright (C) 2007 Texas Instruments, Inc.
- *
- * This package 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.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef _PRCM_ACC_INT_H
-#define _PRCM_ACC_INT_H
-
-/* Mappings of level 1 EASI function numbers to function names */
-
-#define EASIL1_PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_WRITE_CLK_VALID32 \
- (PRCM_BASE_EASIL1 + 349)
-#define EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32 (PRCM_BASE_EASIL1 + 743)
-#define EASIL1_PRCMCM_FCLKEN1_COREEN_GPT8_WRITE32 (PRCM_BASE_EASIL1 + 951)
-#define EASIL1_PRCMCM_FCLKEN1_COREEN_GPT7_WRITE32 (PRCM_BASE_EASIL1 + 961)
-#define EASIL1_PRCMCM_ICLKEN1_CORE_READ_REGISTER32 \
- (PRCM_BASE_EASIL1 + 1087)
-#define EASIL1_PRCMCM_ICLKEN1_COREEN_MAILBOXES_WRITE32 \
- (PRCM_BASE_EASIL1 + 1105)
-#define EASIL1_PRCMCM_ICLKEN1_COREEN_GPT8_WRITE32 \
- (PRCM_BASE_EASIL1 + 1305)
-#define EASIL1_PRCMCM_ICLKEN1_COREEN_GPT7_WRITE32 \
- (PRCM_BASE_EASIL1 + 1315)
-#define EASIL1_PRCMCM_CLKSEL1_CORECLKSEL_L3_READ_ISSEL132 \
- (PRCM_BASE_EASIL1 + 2261)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE32K32 \
- (PRCM_BASE_EASIL1 + 2364)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_SYS32 \
- (PRCM_BASE_EASIL1 + 2365)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_EXT32 \
- (PRCM_BASE_EASIL1 + 2366)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE32K32 \
- (PRCM_BASE_EASIL1 + 2380)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_SYS32 \
- (PRCM_BASE_EASIL1 + 2381)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_EXT32 \
- (PRCM_BASE_EASIL1 + 2382)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_SYS32 \
- (PRCM_BASE_EASIL1 + 2397)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_EXT32 \
- (PRCM_BASE_EASIL1 + 2398)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_SYS32 \
- (PRCM_BASE_EASIL1 + 2413)
-#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_EXT32 \
- (PRCM_BASE_EASIL1 + 2414)
-#define EASIL1_PRCMCM_CLKSEL1_PLLAPL_LS_CLKIN_READ32 \
- (PRCM_BASE_EASIL1 + 3747)
-#define EASIL1_PRCMCM_FCLKEN_DSPEN_DSP_WRITE32 (PRCM_BASE_EASIL1 + 3834)
-#define EASIL1_PRCMCM_ICLKEN_DSPEN_DSP_IPI_WRITE32 \
- (PRCM_BASE_EASIL1 + 3846)
-#define EASIL1_PRCMCM_IDLEST_DSP_READ_REGISTER32 \
- (PRCM_BASE_EASIL1 + 3850)
-#define EASIL1_PRCMCM_IDLEST_DSPST_IPI_READ32 (PRCM_BASE_EASIL1 + 3857)
-#define EASIL1_PRCMCM_IDLEST_DSPST_DSP_READ32 (PRCM_BASE_EASIL1 + 3863)
-#define EASIL1_PRCMCM_AUTOIDLE_DSPAUTO_DSP_IPI_WRITE32 \
- (PRCM_BASE_EASIL1 + 3877)
-#define EASIL1_PRCMCM_CLKSEL_DSPSYNC_DSP_WRITE32 \
- (PRCM_BASE_EASIL1 + 3927)
-#define EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_IF_WRITE32 \
- (PRCM_BASE_EASIL1 + 3941)
-#define EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_WRITE32 \
- (PRCM_BASE_EASIL1 + 3965)
-#define EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_READ32 \
- (PRCM_BASE_EASIL1 + 3987)
-#define EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_WRITE32 \
- (PRCM_BASE_EASIL1 + 3993)
-#define EASIL1_PRCMRM_RSTCTRL_DSP_READ_REGISTER32 \
- (PRCM_BASE_EASIL1 + 3997)
-#define EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32 \
- (PRCM_BASE_EASIL1 + 4025)
-#define EASIL1_PRCMRM_RSTST_DSP_READ_REGISTER32 (PRCM_BASE_EASIL1 + 4029)
-#define EASIL1_PRCMRM_RSTST_DSP_WRITE_REGISTER32 \
- (PRCM_BASE_EASIL1 + 4030)
-#define EASIL1_PRCMPM_PWSTCTRL_DSP_FORCE_STATE_WRITE32 \
- (PRCM_BASE_EASIL1 + 4165)
-#define EASIL1_PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32 \
- (PRCM_BASE_EASIL1 + 4193)
-#define EASIL1_PRCMPM_PWSTST_DSP_READ_REGISTER32 \
- (PRCM_BASE_EASIL1 + 4197)
-#define EASIL1_PRCMPM_PWSTST_DSP_IN_TRANSITION_READ32 \
- (PRCM_BASE_EASIL1 + 4198)
-#define EASIL1_PRCMPM_PWSTST_DSP_POWER_STATE_ST_GET32 \
- (PRCM_BASE_EASIL1 + 4235)
-#define EASIL1_CM_FCLKEN_PER_GPT5_WRITE_REGISTER32 \
- (PRCM_BASE_EASIL1 + 4368)
-#define EASIL1_CM_ICLKEN_PER_GPT5_WRITE_REGISTER32 \
- (PRCM_BASE_EASIL1 + 4370)
-#define EASIL1_CM_CLKSEL_PER_GPT5_WRITE32K32 (PRCM_BASE_EASIL1 + 4372)
-#define EASIL1_CM_CLKSEL_PER_GPT6_WRITE32K32 (PRCM_BASE_EASIL1 + 4373)
-#define EASIL1_PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32 \
- (PRCM_BASE_EASIL1 + 4374)
-#define EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32 \
- (PRCM_BASE_EASIL1 + 4375)
-#define EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32 \
- (PRCM_BASE_EASIL1 + 4376)
-#define EASIL1_PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32 \
- (PRCM_BASE_EASIL1 + 4377)
-#define EASIL1_PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32 \
- (PRCM_BASE_EASIL1 + 4378)
-#define EASIL1_PRCMPM_PWSTST_IVA2_READ_REGISTER32 \
- (PRCM_BASE_EASIL1 + 4379)
-
-/* Register offset address definitions */
-
-#define PRCM_PRCM_CLKCFG_CTRL_OFFSET (u32)(0x80)
-#define PRCM_CM_FCLKEN1_CORE_OFFSET (u32)(0x200)
-#define PRCM_CM_ICLKEN1_CORE_OFFSET (u32)(0x210)
-#define PRCM_CM_CLKSEL2_CORE_OFFSET (u32)(0x244)
-#define PRCM_CM_CLKSEL1_PLL_OFFSET (u32)(0x540)
-#define PRCM_CM_ICLKEN_DSP_OFFSET (u32)(0x810)
-#define PRCM_CM_IDLEST_DSP_OFFSET (u32)(0x820)
-#define PRCM_CM_AUTOIDLE_DSP_OFFSET (u32)(0x830)
-#define PRCM_CM_CLKSEL_DSP_OFFSET (u32)(0x840)
-#define PRCM_CM_CLKSTCTRL_DSP_OFFSET (u32)(0x848)
-#define PRCM_RM_RSTCTRL_DSP_OFFSET (u32)(0x050)
-#define PRCM_RM_RSTST_DSP_OFFSET (u32)(0x058)
-#define PRCM_PM_PWSTCTRL_DSP_OFFSET (u32)(0x8e0)
-#define PRCM_PM_PWSTST_DSP_OFFSET (u32)(0x8e4)
-#define PRCM_PM_PWSTST_IVA2_OFFSET (u32)(0xE4)
-#define PRCM_PM_PWSTCTRL_IVA2_OFFSET (u32)(0xE0)
-#define PRCM_CM_CLKSTCTRL_IVA2_OFFSET (u32)(0x48)
-#define CM_CLKSEL_PER_OFFSET (u32)(0x40)
-
-/* Bitfield mask and offset declarations */
-
-#define PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_MASK (u32)(0x1)
-#define PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_OFFSET (u32)(0)
-
-#define PRCM_CM_FCLKEN1_CORE_EN_GPT8_MASK (u32)(0x400)
-#define PRCM_CM_FCLKEN1_CORE_EN_GPT8_OFFSET (u32)(10)
-
-#define PRCM_CM_FCLKEN1_CORE_EN_GPT7_MASK (u32)(0x200)
-#define PRCM_CM_FCLKEN1_CORE_EN_GPT7_OFFSET (u32)(9)
-
-#define PRCM_CM_ICLKEN1_CORE_EN_GPT8_MASK (u32)(0x400)
-#define PRCM_CM_ICLKEN1_CORE_EN_GPT8_OFFSET (u32)(10)
-
-#define PRCM_CM_ICLKEN1_CORE_EN_GPT7_MASK (u32)(0x200)
-#define PRCM_CM_ICLKEN1_CORE_EN_GPT7_OFFSET (u32)(9)
-
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK (u32)(0xc000)
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET (u32)(14)
-
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK (u32)(0x3000)
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET (u32)(12)
-
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_MASK (u32)(0xc00)
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_OFFSET (u32)(10)
-
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_MASK (u32)(0x300)
-#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_OFFSET (u32)(8)
-
-#define PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_MASK (u32)(0x3800000)
-#define PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_OFFSET (u32)(23)
-
-#define PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_MASK (u32)(0x2)
-#define PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_OFFSET (u32)(1)
-
-#define PRCM_CM_IDLEST_DSP_ST_IPI_MASK (u32)(0x2)
-#define PRCM_CM_IDLEST_DSP_ST_IPI_OFFSET (u32)(1)
-
-#define PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_MASK (u32)(0x2)
-#define PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_OFFSET (u32)(1)
-
-#define PRCM_CM_CLKSEL_DSP_SYNC_DSP_MASK (u32)(0x80)
-#define PRCM_CM_CLKSEL_DSP_SYNC_DSP_OFFSET (u32)(7)
-
-#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_MASK (u32)(0x60)
-#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_OFFSET (u32)(5)
-
-#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_MASK (u32)(0x1f)
-#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_OFFSET (u32)(0)
-
-#define PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK (u32)(0x1)
-#define PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_OFFSET (u32)(0)
-
-#define PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_MASK (u32)(0x40000)
-#define PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_OFFSET (u32)(18)
-
-#define PRCM_PM_PWSTCTRL_DSP_POWER_STATE_MASK (u32)(0x3)
-#define PRCM_PM_PWSTCTRL_DSP_POWER_STATE_OFFSET (u32)(0)
-
-#define PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_MASK (u32)(0x3)
-#define PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_OFFSET (u32)(0)
-
-#define PRCM_PM_PWSTST_DSP_IN_TRANSITION_MASK (u32)(0x100000)
-#define PRCM_PM_PWSTST_DSP_IN_TRANSITION_OFFSET (u32)(20)
-
-#define PRCM_PM_PWSTST_IVA2_IN_TRANSITION_MASK (u32)(0x100000)
-#define PRCM_PM_PWSTST_IVA2_IN_TRANSITION_OFFSET (u32)(20)
-
-#define PRCM_PM_PWSTST_DSP_POWER_STATE_ST_MASK (u32)(0x3)
-#define PRCM_PM_PWSTST_DSP_POWER_STATE_ST_OFFSET (u32)(0)
-
-#define PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_MASK (u32)(0x3)
-#define PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_OFFSET (u32)(0)
-
-#define CM_FCLKEN_PER_OFFSET (u32)(0x0)
-#define CM_FCLKEN_PER_GPT5_OFFSET (u32)(6)
-#define CM_FCLKEN_PER_GPT5_MASK (u32)(0x40)
-
-#define CM_FCLKEN_PER_GPT6_OFFSET (u32)(7)
-#define CM_FCLKEN_PER_GPT6_MASK (u32)(0x80)
-
-#define CM_ICLKEN_PER_OFFSET (u32)(0x10)
-#define CM_ICLKEN_PER_GPT5_OFFSET (u32)(6)
-#define CM_ICLKEN_PER_GPT5_MASK (u32)(0x40)
-
-#define CM_ICLKEN_PER_GPT6_OFFSET (u32)(7)
-#define CM_ICLKEN_PER_GPT6_MASK (u32)(0x80)
-
-#define CM_CLKSEL_PER_GPT5_OFFSET (u32)(3)
-#define CM_CLKSEL_PER_GPT5_MASK (u32)(0x8)
-
-#define CM_CLKSEL_PER_GPT6_OFFSET (u32)(4)
-#define CM_CLKSEL_PER_GPT6_MASK (u32)(0x10)
-
-#define CM_FCLKEN_IVA2_OFFSET (u32)(0x0)
-#define CM_FCLKEN_IVA2_EN_MASK (u32)(0x1)
-#define CM_FCLKEN_IVA2_EN_OFFSET (u32)(0x0)
-
-#define CM_IDLEST_IVA2_OFFSET (u32)(0x20)
-#define CM_IDLEST_IVA2_ST_IVA2_MASK (u32) (0x01)
-#define CM_IDLEST_IVA2_ST_IVA2_OFFSET (u32) (0x00)
-
-#define CM_FCLKEN1_CORE_OFFSET (u32)(0xA00)
-
-#define CM_ICLKEN1_CORE_OFFSET (u32)(0xA10)
-#define CM_ICLKEN1_CORE_EN_MAILBOXES_MASK (u32)(0x00000080) /* bit 7 */
-#define CM_ICLKEN1_CORE_EN_MAILBOXES_OFFSET (u32)(7)
-
-#define CM_CLKSTCTRL_IVA2_OFFSET (u32)(0x0)
-#define CM_CLKSTCTRL_IVA2_MASK (u32)(0x3)
-
-#define PRM_RSTCTRL_IVA2_OFFSET (u32)(0x50)
-#define PRM_RSTCTRL_IVA2_RST1_MASK (u32)(0x1)
-#define PRM_RSTCTRL_IVA2_RST1_OFFSET (u32)(0x0)
-#define PRM_RSTCTRL_IVA2_RST2_MASK (u32)(0x2)
-#define PRM_RSTCTRL_IVA2_RST2_OFFSET (u32)(0x1)
-#define PRM_RSTCTRL_IVA2_RST3_MASK (u32)(0x4)
-#define PRM_RSTCTRL_IVA2_RST3_OFFSET (u32)(0x2)
-
-/* The following represent the enumerated values for each bitfield */
-
-enum prcmprcm_clkcfg_ctrl_valid_config_e {
- PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_UPDATED = 0x0000,
- PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_CLK_VALID = 0x0001
-};
-
-enum prcmcm_clksel2_coreclksel_gpt8e {
- PRCMCM_CLKSEL2_CORECLKSEL_GPT832K = 0x0000,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT8_SYS = 0x0001,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT8_EXT = 0x0002,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT8_RESERVED = 0x0003
-};
-
-enum prcmcm_clksel2_coreclksel_gpt7e {
- PRCMCM_CLKSEL2_CORECLKSEL_GPT732K = 0x0000,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT7_SYS = 0x0001,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT7_EXT = 0x0002,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT7_RESERVED = 0x0003
-};
-
-enum prcmcm_clksel2_coreclksel_gpt6e {
- PRCMCM_CLKSEL2_CORECLKSEL_GPT632K = 0x0000,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT6_SYS = 0x0001,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT6_EXT = 0x0002,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT6_RESERVED = 0x0003
-};
-
-enum prcmcm_clksel2_coreclksel_gpt5e {
- PRCMCM_CLKSEL2_CORECLKSEL_GPT532K = 0x0000,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT5_SYS = 0x0001,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT5_EXT = 0x0002,
- PRCMCM_CLKSEL2_CORECLKSEL_GPT5_RESERVED = 0x0003
-};
-
-enum prcmpm_pwstctrl_dsp_power_state_e {
- PRCMPM_PWSTCTRL_DSP_POWER_STATE_ON = 0x0000,
- PRCMPM_PWSTCTRL_DSP_POWER_STATE_RET = 0x0001,
- PRCMPM_PWSTCTRL_DSP_POWER_STATE_RESERVED = 0x0002,
- PRCMPM_PWSTCTRL_DSP_POWER_STATE_OFF = 0x0003
-};
-
-enum prcmpm_pwstctrl_iva2_power_state_e {
- PRCMPM_PWSTCTRL_IVA2_POWER_STATE_ON = 0x0003,
- PRCMPM_PWSTCTRL_IVA2_POWER_STATE_RET = 0x0001,
- PRCMPM_PWSTCTRL_IVA2_POWER_STATE_RESERVED = 0x0002,
- PRCMPM_PWSTCTRL_IVA2_POWER_STATE_OFF = 0x0000
-};
-
-#endif /* _PRCM_ACC_INT_H */
diff --git a/drivers/dsp/bridge/hw/PRCMRegAcM.h b/drivers/dsp/bridge/hw/PRCMRegAcM.h
deleted file mode 100644
index b941925..0000000
--- a/drivers/dsp/bridge/hw/PRCMRegAcM.h
+++ /dev/null
@@ -1,615 +0,0 @@
-/*
- * PRCMRegAcM.h
- *
- * DSP-BIOS Bridge driver support functions for TI OMAP processors.
- *
- * Copyright (C) 2007 Texas Instruments, Inc.
- *
- * This package 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.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef _PRCM_REG_ACM_H
-#define _PRCM_REG_ACM_H
-
-#include <GlobalTypes.h>
-#include <linux/io.h>
-
-#include <EasiGlobal.h>
-
-#include "PRCMAccInt.h"
-
-#if defined(USE_LEVEL_1_MACROS)
-
-#define PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_WRITE_CLK_VALID32(baseAddress)\
-{\
- const u32 offset = PRCM_PRCM_CLKCFG_CTRL_OFFSET;\
- const u32 newValue = \
- (u32)PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_CLK_VALID <<\
- PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(\
- EASIL1_PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_WRITE_CLK_VALID32);\
- data &= ~(PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define CM_FCLKEN_PER_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32),\
- __raw_readl(((u32)(baseAddress))+CM_FCLKEN_PER_OFFSET))
-
-#define CM_ICLKEN_PER_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32),\
- __raw_readl(((u32)(baseAddress))+CM_ICLKEN_PER_OFFSET))
-
-#define CM_FCLKEN_PER_GPT5_WRITE_REGISTER32(baseAddress, value)\
-{\
- const u32 offset = CM_FCLKEN_PER_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_CM_FCLKEN_PER_GPT5_WRITE_REGISTER32);\
- data &= ~(CM_FCLKEN_PER_GPT5_MASK);\
- newValue <<= CM_FCLKEN_PER_GPT5_OFFSET;\
- newValue &= CM_FCLKEN_PER_GPT5_MASK;\
- newValue |= data;\
- __raw_writel(newValue, ((u32)(baseAddress))+offset);\
-}
-
-#define CM_FCLKEN_PER_GPT6_WRITE_REGISTER32(baseAddress, value)\
-{\
- const u32 offset = CM_FCLKEN_PER_OFFSET;\
- register u32 data =\
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_CM_FCLKEN_PER_GPT5_WRITE_REGISTER32);\
- data &= ~(CM_FCLKEN_PER_GPT6_MASK);\
- newValue <<= CM_FCLKEN_PER_GPT6_OFFSET;\
- newValue &= CM_FCLKEN_PER_GPT6_MASK;\
- newValue |= data;\
- __raw_writel(newValue, ((u32)(baseAddress))+offset);\
-}
-
-#define CM_ICLKEN_PER_GPT5_WRITE_REGISTER32(baseAddress, value)\
-{\
- const u32 offset = CM_ICLKEN_PER_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_CM_ICLKEN_PER_GPT5_WRITE_REGISTER32);\
- data &= ~(CM_ICLKEN_PER_GPT5_MASK);\
- newValue <<= CM_ICLKEN_PER_GPT5_OFFSET;\
- newValue &= CM_ICLKEN_PER_GPT5_MASK;\
- newValue |= data;\
- __raw_writel(newValue, ((u32)(baseAddress))+offset);\
-}
-
-#define CM_ICLKEN_PER_GPT6_WRITE_REGISTER32(baseAddress, value)\
-{\
- const u32 offset = CM_ICLKEN_PER_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_CM_ICLKEN_PER_GPT5_WRITE_REGISTER32);\
- data &= ~(CM_ICLKEN_PER_GPT6_MASK);\
- newValue <<= CM_ICLKEN_PER_GPT6_OFFSET;\
- newValue &= CM_ICLKEN_PER_GPT6_MASK;\
- newValue |= data;\
- __raw_writel(newValue, ((u32)(baseAddress))+offset);\
-}
-
-#define CM_FCLKEN1_CORE_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32),\
- __raw_readl(((u32)(baseAddress))+CM_FCLKEN1_CORE_OFFSET))
-
-#define PRCMCM_FCLKEN1_COREEN_GPT8_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_FCLKEN1_CORE_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_COREEN_GPT8_WRITE32);\
- data &= ~(PRCM_CM_FCLKEN1_CORE_EN_GPT8_MASK);\
- newValue <<= PRCM_CM_FCLKEN1_CORE_EN_GPT8_OFFSET;\
- newValue &= PRCM_CM_FCLKEN1_CORE_EN_GPT8_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_FCLKEN1_COREEN_GPT7_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_FCLKEN1_CORE_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_COREEN_GPT7_WRITE32);\
- data &= ~(PRCM_CM_FCLKEN1_CORE_EN_GPT7_MASK);\
- newValue <<= PRCM_CM_FCLKEN1_CORE_EN_GPT7_OFFSET;\
- newValue &= PRCM_CM_FCLKEN1_CORE_EN_GPT7_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define CM_ICLKEN1_CORE_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_CORE_READ_REGISTER32),\
- __raw_readl(((u32)(baseAddress))+CM_ICLKEN1_CORE_OFFSET))
-
-#define CM_ICLKEN1_COREEN_MAILBOXES_WRITE32(baseAddress, value)\
-{\
- const u32 offset = CM_ICLKEN1_CORE_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_COREEN_MAILBOXES_WRITE32);\
- data &= ~(CM_ICLKEN1_CORE_EN_MAILBOXES_MASK);\
- newValue <<= CM_ICLKEN1_CORE_EN_MAILBOXES_OFFSET;\
- newValue &= CM_ICLKEN1_CORE_EN_MAILBOXES_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_ICLKEN1_COREEN_GPT8_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_ICLKEN1_CORE_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_COREEN_GPT8_WRITE32);\
- data &= ~(PRCM_CM_ICLKEN1_CORE_EN_GPT8_MASK);\
- newValue <<= PRCM_CM_ICLKEN1_CORE_EN_GPT8_OFFSET;\
- newValue &= PRCM_CM_ICLKEN1_CORE_EN_GPT8_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_ICLKEN1_COREEN_GPT7_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_ICLKEN1_CORE_OFFSET;\
- register u32 data =\
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_COREEN_GPT7_WRITE32);\
- data &= ~(PRCM_CM_ICLKEN1_CORE_EN_GPT7_MASK);\
- newValue <<= PRCM_CM_ICLKEN1_CORE_EN_GPT7_OFFSET;\
- newValue &= PRCM_CM_ICLKEN1_CORE_EN_GPT7_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE32K32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT832K <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE32K32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_SYS32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT8_SYS <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_SYS32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_EXT32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT8_EXT <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_EXT32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE32K32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT732K <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE32K32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_SYS32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT7_SYS <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_SYS32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_EXT32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT7_EXT <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_EXT32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_SYS32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT6_SYS <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_SYS32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_EXT32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT6_EXT <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_EXT32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define CM_CLKSEL_PER_GPT5_WRITE32K32(baseAddress)\
-{\
- const u32 offset = CM_CLKSEL_PER_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT532K <<\
- CM_CLKSEL_PER_GPT5_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_CM_CLKSEL_PER_GPT5_WRITE32K32);\
- data &= ~(CM_CLKSEL_PER_GPT5_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define CM_CLKSEL_PER_GPT6_WRITE32K32(baseAddress)\
-{\
- const u32 offset = CM_CLKSEL_PER_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT532K <<\
- CM_CLKSEL_PER_GPT6_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_CM_CLKSEL_PER_GPT6_WRITE32K32);\
- data &= ~(CM_CLKSEL_PER_GPT6_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_SYS32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT5_SYS <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_SYS32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_EXT32(baseAddress)\
-{\
- const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
- const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT5_EXT <<\
- PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_OFFSET;\
- register u32 data = __raw_readl((u32)(baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_EXT32);\
- data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_MASK);\
- data |= newValue;\
- __raw_writel(data, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL1_PLLAPL_LS_CLKIN_READ32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL1_PLLAPL_LS_CLKIN_READ32),\
- (((__raw_readl((((u32)(baseAddress))+\
- (PRCM_CM_CLKSEL1_PLL_OFFSET)))) &\
- PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_MASK) >>\
- PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_OFFSET))
-
-#define CM_FCLKEN_IVA2EN_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = CM_FCLKEN_IVA2_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN_DSPEN_DSP_WRITE32);\
- data &= ~(CM_FCLKEN_IVA2_EN_MASK);\
- newValue <<= CM_FCLKEN_IVA2_EN_OFFSET;\
- newValue &= CM_FCLKEN_IVA2_EN_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_ICLKEN_DSPEN_DSP_IPI_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_ICLKEN_DSP_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN_DSPEN_DSP_IPI_WRITE32);\
- data &= ~(PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_MASK);\
- newValue <<= PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_OFFSET;\
- newValue &= PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_IDLEST_DSP_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_IDLEST_DSP_READ_REGISTER32),\
- __raw_readl(((u32)(baseAddress))+PRCM_CM_IDLEST_DSP_OFFSET))
-
-#define PRCMCM_IDLEST_DSPST_IPI_READ32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_IDLEST_DSPST_IPI_READ32),\
- (((__raw_readl((((u32)(baseAddress))+\
- (PRCM_CM_IDLEST_DSP_OFFSET)))) &\
- PRCM_CM_IDLEST_DSP_ST_IPI_MASK) >>\
- PRCM_CM_IDLEST_DSP_ST_IPI_OFFSET))
-
-#define PRM_IDLEST_IVA2ST_IVA2_READ32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_IDLEST_DSPST_DSP_READ32),\
- (((__raw_readl((((u32)(baseAddress))+\
- (CM_IDLEST_IVA2_OFFSET)))) &\
- CM_IDLEST_IVA2_ST_IVA2_MASK) >>\
- CM_IDLEST_IVA2_ST_IVA2_OFFSET))
-
-#define PRCMCM_AUTOIDLE_DSPAUTO_DSP_IPI_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_AUTOIDLE_DSP_OFFSET;\
- register u32 data =\
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_AUTOIDLE_DSPAUTO_DSP_IPI_WRITE32);\
- data &= ~(PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_MASK);\
- newValue <<= PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_OFFSET;\
- newValue &= PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL_DSPSYNC_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_CLKSEL_DSP_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL_DSPSYNC_DSP_WRITE32);\
- data &= ~(PRCM_CM_CLKSEL_DSP_SYNC_DSP_MASK);\
- newValue <<= PRCM_CM_CLKSEL_DSP_SYNC_DSP_OFFSET;\
- newValue &= PRCM_CM_CLKSEL_DSP_SYNC_DSP_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL_DSPCLKSEL_DSP_IF_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_CLKSEL_DSP_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_IF_WRITE32);\
- data &= ~(PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_MASK);\
- newValue <<= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_OFFSET;\
- newValue &= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSEL_DSPCLKSEL_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_CLKSEL_DSP_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_WRITE32);\
- data &= ~(PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_MASK);\
- newValue <<= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_OFFSET;\
- newValue &= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_CLKSTCTRL_IVA2_OFFSET;\
- register u32 data = \
- __raw_readl(((baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32);\
- data &= ~(CM_CLKSTCTRL_IVA2_MASK);\
- newValue <<= CM_CLKSTCTRL_IVA2_OFFSET;\
- newValue &= CM_CLKSTCTRL_IVA2_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (baseAddress)+offset);\
-}
-
-#define PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_READ32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_READ32),\
- (((__raw_readl((((u32)(baseAddress))+\
- (PRCM_CM_CLKSTCTRL_DSP_OFFSET)))) &\
- PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK) >>\
- PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_OFFSET))
-
-#define PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_CM_CLKSTCTRL_DSP_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_WRITE32);\
- data &= ~(PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK);\
- newValue <<= PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_OFFSET;\
- newValue &= PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMRM_RSTCTRL_DSP_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSP_READ_REGISTER32),\
- __raw_readl(((baseAddress))+PRCM_RM_RSTCTRL_DSP_OFFSET))
-
-#define PRM_RSTCTRL_IVA2RST1_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRM_RSTCTRL_IVA2_OFFSET;\
- register u32 data =\
- __raw_readl(((baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32);\
- data &= ~(PRM_RSTCTRL_IVA2_RST1_MASK);\
- newValue <<= PRM_RSTCTRL_IVA2_RST1_OFFSET;\
- newValue &= PRM_RSTCTRL_IVA2_RST1_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (baseAddress)+offset);\
-}
-
-#define PRM_RSTCTRL_IVA2RST2_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRM_RSTCTRL_IVA2_OFFSET;\
- register u32 data =\
- __raw_readl(((baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32);\
- data &= ~(PRM_RSTCTRL_IVA2_RST2_MASK);\
- newValue <<= PRM_RSTCTRL_IVA2_RST2_OFFSET;\
- newValue &= PRM_RSTCTRL_IVA2_RST2_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (baseAddress)+offset);\
-}
-
-#define PRM_RSTCTRL_IVA2RST3_DSP_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRM_RSTCTRL_IVA2_OFFSET;\
- register u32 data =\
- __raw_readl(((baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32);\
- data &= ~(PRM_RSTCTRL_IVA2_RST3_MASK);\
- newValue <<= PRM_RSTCTRL_IVA2_RST3_OFFSET;\
- newValue &= PRM_RSTCTRL_IVA2_RST3_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (baseAddress)+offset);\
-}
-
-#define PRCMRM_RSTST_DSP_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTST_DSP_READ_REGISTER32),\
- __raw_readl(((baseAddress))+PRCM_RM_RSTST_DSP_OFFSET))
-
-#define PRCMRM_RSTST_DSP_WRITE_REGISTER32(baseAddress, value)\
-{\
- const u32 offset = PRCM_RM_RSTST_DSP_OFFSET;\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTST_DSP_WRITE_REGISTER32);\
- __raw_writel(newValue, ((u32)(baseAddress))+offset);\
-}
-
-#define PRCMPM_PWSTCTRL_DSP_FORCE_STATE_WRITE32(baseAddress, value)\
-{\
- const u32 offset = PRCM_PM_PWSTCTRL_DSP_OFFSET;\
- register u32 data = \
- __raw_readl(((u32)(baseAddress))+offset);\
- register u32 newValue = ((u32)(value));\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_DSP_FORCE_STATE_WRITE32);\
- data &= ~(PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_MASK);\
- newValue <<= PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_OFFSET;\
- newValue &= PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_MASK;\
- newValue |= data;\
- __raw_writel(newValue, (u32)(baseAddress)+offset);\
-}
-
-#define PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32(baseAddress)\
-{\
- const u32 offset = PRCM_PM_PWSTCTRL_IVA2_OFFSET;\
- const u32 newValue = (u32)PRCMPM_PWSTCTRL_IVA2_POWER_STATE_ON <<\
- PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_OFFSET;\
- register u32 data = __raw_readl((baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32);\
- data &= ~(PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_MASK);\
- data |= newValue;\
- __raw_writel(data, (baseAddress)+offset);\
-}
-
-#define PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32(baseAddress)\
-{\
- const u32 offset = PRCM_PM_PWSTCTRL_IVA2_OFFSET;\
- const u32 newValue = (u32)PRCMPM_PWSTCTRL_IVA2_POWER_STATE_OFF <<\
- PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_OFFSET;\
- register u32 data = __raw_readl((baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32);\
- data &= ~(PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_MASK);\
- data |= newValue;\
- __raw_writel(data, (baseAddress)+offset);\
-}
-
-#define PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32(baseAddress)\
-{\
- const u32 offset = PRCM_PM_PWSTCTRL_DSP_OFFSET;\
- const u32 newValue = (u32)PRCMPM_PWSTCTRL_DSP_POWER_STATE_RET <<\
- PRCM_PM_PWSTCTRL_DSP_POWER_STATE_OFFSET;\
- register u32 data = __raw_readl((baseAddress)+offset);\
- _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32);\
- data &= ~(PRCM_PM_PWSTCTRL_DSP_POWER_STATE_MASK);\
- data |= newValue;\
- __raw_writel(data, (baseAddress)+offset);\
-}
-
-#define PRCMPM_PWSTST_DSP_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_DSP_READ_REGISTER32),\
- __raw_readl(((u32)(baseAddress))+PRCM_PM_PWSTST_DSP_OFFSET))
-
-#define PRCMPM_PWSTST_IVA2_READ_REGISTER32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_IVA2_READ_REGISTER32),\
- __raw_readl((baseAddress) + PRCM_PM_PWSTST_IVA2_OFFSET))
-
-#define PRCMPM_PWSTST_DSP_IN_TRANSITION_READ32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_DSP_IN_TRANSITION_READ32),\
- (((__raw_readl((((u32)(baseAddress))+\
- (PRCM_PM_PWSTST_DSP_OFFSET)))) &\
- PRCM_PM_PWSTST_DSP_IN_TRANSITION_MASK) >>\
- PRCM_PM_PWSTST_DSP_IN_TRANSITION_OFFSET))
-
-#define PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32(baseAddress)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32),\
- (((__raw_readl((((baseAddress))+\
- (PRCM_PM_PWSTST_IVA2_OFFSET)))) &\
- PRCM_PM_PWSTST_IVA2_IN_TRANSITION_MASK) >>\
- PRCM_PM_PWSTST_IVA2_IN_TRANSITION_OFFSET))
-
-#define PRCMPM_PWSTST_DSP_POWER_STATE_ST_GET32(var)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_DSP_POWER_STATE_ST_GET32),\
- (u32)((((u32)(var)) & PRCM_PM_PWSTST_DSP_POWER_STATE_ST_MASK) >>\
- PRCM_PM_PWSTST_DSP_POWER_STATE_ST_OFFSET))
-
-#define PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32(var)\
- (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32),\
- (u32)((((u32)(var)) & PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_MASK) >>\
- PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_OFFSET))
-
-#endif /* USE_LEVEL_1_MACROS */
-
-#endif /* _PRCM_REG_ACM_H */
diff --git a/drivers/dsp/bridge/hw/hw_prcm.c b/drivers/dsp/bridge/hw/hw_prcm.c
deleted file mode 100644
index 8c95dac..0000000
--- a/drivers/dsp/bridge/hw/hw_prcm.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * hw_prcm.c
- *
- * DSP-BIOS Bridge driver support functions for TI OMAP processors.
- *
- * API definitions to configure PRCM (Power, Reset & Clocks Manager)
- *
- * Copyright (C) 2007 Texas Instruments, Inc.
- *
- * This package 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.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#include <GlobalTypes.h>
-#include "PRCMRegAcM.h"
-#include <hw_defs.h>
-#include <hw_prcm.h>
-
-static hw_status hw_rst_write_val(const void __iomem *baseAddress,
- enum hw_rst_module_t r, s8 val);
-
-hw_status hw_rst_reset(const void __iomem *baseAddress, enum hw_rst_module_t r)
-{
- return hw_rst_write_val(baseAddress, r, HW_SET);
-}
-
-hw_status hw_rst_un_reset(const void __iomem *baseAddress,
- enum hw_rst_module_t r)
-{
- return hw_rst_write_val(baseAddress, r, HW_CLEAR);
-}
-
-static hw_status hw_rst_write_val(const void __iomem *baseAddress,
- enum hw_rst_module_t r, s8 val)
-{
- hw_status status = RET_OK;
-
- switch (r) {
- case HW_RST1_IVA2:
- PRM_RSTCTRL_IVA2RST1_DSP_WRITE32(baseAddress, val);
- break;
- case HW_RST2_IVA2:
- PRM_RSTCTRL_IVA2RST2_DSP_WRITE32(baseAddress, val);
- break;
- case HW_RST3_IVA2:
- PRM_RSTCTRL_IVA2RST3_DSP_WRITE32(baseAddress, val);
- break;
- default:
- status = RET_FAIL;
- break;
- }
- return status;
-}
-
-hw_status hw_pwr_iva2_state_get(const void __iomem *baseAddress,
- enum hw_pwr_module_t p,
- enum hw_pwr_state_t *value)
-{
- hw_status status = RET_OK;
- u32 temp;
-
- switch (p) {
- case HW_PWR_DOMAIN_DSP:
- /* wait until Transition is complete */
- do {
- /* mdelay(1); */
- temp = PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32
- (baseAddress);
-
- } while (temp);
-
- temp = PRCMPM_PWSTST_IVA2_READ_REGISTER32(baseAddress);
- *value = PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32(temp);
- break;
-
- default:
- status = RET_FAIL;
- break;
- }
- return status;
-}
-
-hw_status hw_pwrst_iva2_reg_get(const void __iomem *baseAddress, u32 *value)
-{
- hw_status status = RET_OK;
-
- *value = PRCMPM_PWSTST_IVA2_READ_REGISTER32(baseAddress);
-
- return status;
-}
-
-hw_status hw_pwr_iva2_power_state_set(const void __iomem *baseAddress,
- enum hw_pwr_module_t p,
- enum hw_pwr_state_t value)
-{
- hw_status status = RET_OK;
-
- switch (p) {
- case HW_PWR_DOMAIN_DSP:
- switch (value) {
- case HW_PWR_STATE_ON:
- PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32
- (baseAddress);
- break;
- case HW_PWR_STATE_RET:
- PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32
- (baseAddress);
- break;
- case HW_PWR_STATE_OFF:
- PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32
- (baseAddress);
- break;
- default:
- status = RET_FAIL;
- break;
- }
- break;
-
- default:
- status = RET_FAIL;
- break;
- }
-
- return status;
-}
-
-hw_status hw_pwr_clkctrl_iva2_reg_set(const void __iomem *baseAddress,
- enum hw_transition_state_t val)
-{
- hw_status status = RET_OK;
-
- PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32(baseAddress, val);
-
- return status;
-
-}
-
-hw_status hw_rstst_reg_get(const void __iomem *baseAddress,
- enum hw_rst_module_t m, u32 *value)
-{
- hw_status status = RET_OK;
-
- *value = PRCMRM_RSTST_DSP_READ_REGISTER32(baseAddress);
-
- return status;
-}
-
-hw_status hw_rstctrl_reg_get(const void __iomem *baseAddress,
- enum hw_rst_module_t m, u32 *value)
-{
- hw_status status = RET_OK;
-
- *value = PRCMRM_RSTCTRL_DSP_READ_REGISTER32(baseAddress);
-
- return status;
-}
diff --git a/drivers/dsp/bridge/hw/hw_prcm.h b/drivers/dsp/bridge/hw/hw_prcm.h
deleted file mode 100644
index fd07f32..0000000
--- a/drivers/dsp/bridge/hw/hw_prcm.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * hw_prcm.h
- *
- * DSP-BIOS Bridge driver support functions for TI OMAP processors.
- *
- * PRCM types and API declarations
- *
- * Copyright (C) 2007 Texas Instruments, Inc.
- *
- * This package 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.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef _HW_PRCM_H
-#define _HW_PRCM_H
-
-/* HW_ClkModule: Enumerated Type used to specify the clock domain */
-
-enum hw_clk_module_t {
-/* DSP Domain */
- HW_CLK_DSP_CPU,
- HW_CLK_DSP_IPI_MMU,
- HW_CLK_IVA_ARM,
- HW_CLK_IVA_COP, /* IVA Coprocessor */
-
-/* Core Domain */
- HW_CLK_FN_WDT4, /* Functional Clock */
- HW_CLK_FN_WDT3,
- HW_CLK_FN_UART2,
- HW_CLK_FN_UART1,
- HW_CLK_GPT5,
- HW_CLK_GPT6,
- HW_CLK_GPT7,
- HW_CLK_GPT8,
-
- HW_CLK_IF_WDT4, /* Interface Clock */
- HW_CLK_IF_WDT3,
- HW_CLK_IF_UART2,
- HW_CLK_IF_UART1,
- HW_CLK_IF_MBOX
-};
-
-enum hw_clk_subsys_t {
- HW_CLK_DSPSS,
- HW_CLK_IVASS
-};
-
-/* HW_GPtimers: General purpose timers */
-enum hw_g_ptimer_t {
- HW_GPT5 = 5,
- HW_GPT6 = 6,
- HW_GPT7 = 7,
- HW_GPT8 = 8
-};
-
-/* GP timers Input clock type: General purpose timers */
-enum hw_clocktype_t {
- HW_CLK32K_HZ = 0,
- HW_CLK_SYS = 1,
- HW_CLK_EXT = 2
-};
-
-/* HW_ClkDiv: Clock divisors */
-enum hw_clk_div_t {
- HW_CLK_DIV1 = 0x1,
- HW_CLK_DIV2 = 0x2,
- HW_CLK_DIV3 = 0x3,
- HW_CLK_DIV4 = 0x4,
- HW_CLK_DIV6 = 0x6,
- HW_CLK_DIV8 = 0x8,
- HW_CLK_DIV12 = 0xC
-};
-
-/* HW_RstModule: Enumerated Type used to specify the module to be reset */
-enum hw_rst_module_t {
- HW_RST1_IVA2, /* Reset the DSP */
- HW_RST2_IVA2, /* Reset MMU and LEON HWa */
- HW_RST3_IVA2 /* Reset LEON sequencer */
-};
-
-/* HW_PwrModule: Enumerated Type used to specify the power domain */
-enum hw_pwr_module_t {
-/* Domains */
- HW_PWR_DOMAIN_CORE,
- HW_PWR_DOMAIN_MPU,
- HW_PWR_DOMAIN_WAKEUP,
- HW_PWR_DOMAIN_DSP,
-
-/* Sub-domains */
- HW_PWR_DSP_IPI, /* IPI = Intrusive Port Interface */
- HW_PWR_IVA_ISP /* ISP = Intrusive Slave Port */
-};
-
-enum hw_pwr_state_t {
- HW_PWR_STATE_OFF,
- HW_PWR_STATE_RET,
- HW_PWR_STATE_INACT,
- HW_PWR_STATE_ON = 3
-};
-
-enum hw_force_state_t {
- HW_FORCE_OFF,
- HW_FORCE_ON
-};
-
-enum hw_idle_state_t {
- HW_ACTIVE,
- HW_STANDBY
-};
-
-enum hw_transition_state_t {
- HW_AUTOTRANS_DIS,
- HW_SW_SUP_SLEEP,
- HW_SW_SUP_WAKEUP,
- HW_AUTOTRANS_EN
-};
-
-extern hw_status hw_rst_reset(const void __iomem *baseAddress,
- enum hw_rst_module_t r);
-
-extern hw_status hw_rst_un_reset(const void __iomem *baseAddress,
- enum hw_rst_module_t r);
-
-extern hw_status hw_rstctrl_reg_get(const void __iomem *baseAddress,
- enum hw_rst_module_t p, u32 *value);
-extern hw_status hw_rstst_reg_get(const void __iomem *baseAddress,
- enum hw_rst_module_t p, u32 *value);
-
-extern hw_status hw_pwr_power_state_set(const u32 baseAddress,
- enum hw_pwr_module_t p,
- enum hw_pwr_state_t value);
-
-extern hw_status hw_clk_set_input_clock(const u32 baseAddress,
- enum hw_g_ptimer_t gpt,
- enum hw_clocktype_t c);
-
-extern hw_status hw_pwr_iva2_state_get(const void __iomem *baseAddress,
- enum hw_pwr_module_t p,
- enum hw_pwr_state_t *value);
-
-extern hw_status hw_pwrst_iva2_reg_get(const void __iomem *baseAddress,
- u32 *value);
-
-extern hw_status hw_pwr_iva2_power_state_set(const void __iomem *baseAddress,
- enum hw_pwr_module_t p,
- enum hw_pwr_state_t value);
-
-extern hw_status hw_pwr_clkctrl_iva2_reg_set(const void __iomem *baseAddress,
- enum hw_transition_state_t val);
-
-#endif /* _HW_PRCM_H */
diff --git a/drivers/dsp/bridge/rmgr/drv.c b/drivers/dsp/bridge/rmgr/drv.c
index fe9ae06..3ab2e3c 100644
--- a/drivers/dsp/bridge/rmgr/drv.c
+++ b/drivers/dsp/bridge/rmgr/drv.c
@@ -892,10 +892,6 @@ static dsp_status request_bridge_resources(u32 dw_context, s32 bRequest)
host_res->dw_mem_base[1] = 0;
host_res->dw_mem_phys[1] = 0;
- if (host_res->dw_prm_base)
- iounmap(host_res->dw_prm_base);
- if (host_res->dw_cm_base)
- iounmap(host_res->dw_cm_base);
if (host_res->dw_mem_base[0])
iounmap((void *)host_res->dw_mem_base[0]);
if (host_res->dw_mem_base[2])
@@ -915,8 +911,6 @@ static dsp_status request_bridge_resources(u32 dw_context, s32 bRequest)
if (host_res->dw_sys_ctrl_base)
iounmap(host_res->dw_sys_ctrl_base);
- host_res->dw_prm_base = NULL;
- host_res->dw_cm_base = NULL;
host_res->dw_mem_base[0] = (u32) NULL;
host_res->dw_mem_base[2] = (u32) NULL;
host_res->dw_mem_base[3] = (u32) NULL;
@@ -941,18 +935,12 @@ static dsp_status request_bridge_resources(u32 dw_context, s32 bRequest)
host_res->num_mem_windows = 2;
/* First window is for DSP internal memory */
- host_res->dw_prm_base = ioremap(OMAP_IVA2_PRM_BASE,
- OMAP_IVA2_PRM_SIZE);
- host_res->dw_cm_base = ioremap(OMAP_IVA2_CM_BASE,
- OMAP_IVA2_CM_SIZE);
host_res->dw_sys_ctrl_base = ioremap(OMAP_SYSC_BASE,
OMAP_SYSC_SIZE);
dev_dbg(bridge, "dw_mem_base[0] 0x%x\n",
host_res->dw_mem_base[0]);
dev_dbg(bridge, "dw_mem_base[3] 0x%x\n",
host_res->dw_mem_base[3]);
- dev_dbg(bridge, "dw_prm_base %p\n", host_res->dw_prm_base);
- dev_dbg(bridge, "dw_cm_base %p\n", host_res->dw_cm_base);
dev_dbg(bridge, "dw_dmmu_base %p\n", host_res->dw_dmmu_base);
/* for 24xx base port is not mapping the mamory for DSP
@@ -1038,8 +1026,6 @@ static dsp_status request_bridge_resources_dsp(u32 dw_context, s32 bRequest)
host_res->dw_mem_base[3]);
dev_dbg(bridge, "dw_mem_base[4] 0x%x\n",
host_res->dw_mem_base[4]);
- dev_dbg(bridge, "dw_prm_base %p\n", host_res->dw_prm_base);
- dev_dbg(bridge, "dw_cm_base %p\n", host_res->dw_cm_base);
dev_dbg(bridge, "dw_dmmu_base %p\n", host_res->dw_dmmu_base);
dw_buff_size = sizeof(shm_size);
status =
diff --git a/drivers/dsp/bridge/wmd/_tiomap.h b/drivers/dsp/bridge/wmd/_tiomap.h
index 71ef731..a23c373 100644
--- a/drivers/dsp/bridge/wmd/_tiomap.h
+++ b/drivers/dsp/bridge/wmd/_tiomap.h
@@ -19,6 +19,10 @@
#ifndef _TIOMAP_
#define _TIOMAP_
+#include <plat/powerdomain.h>
+#include <plat/clockdomain.h>
+#include <mach-omap2/prm-regbits-34xx.h>
+#include <mach-omap2/cm-regbits-34xx.h>
#include <dspbridge/devdefs.h>
#include <hw_defs.h>
#include <dspbridge/wmdioctl.h> /* for wmdioctl_extproc defn */
diff --git a/drivers/dsp/bridge/wmd/tiomap3430.c b/drivers/dsp/bridge/wmd/tiomap3430.c
index ff47edb..9f3575f 100644
--- a/drivers/dsp/bridge/wmd/tiomap3430.c
+++ b/drivers/dsp/bridge/wmd/tiomap3430.c
@@ -20,10 +20,6 @@
#include <dspbridge/host_os.h>
#include <linux/mm.h>
#include <linux/mmzone.h>
-#include <mach-omap2/prm.h>
-#include <mach-omap2/cm.h>
-#include <mach-omap2/prm-regbits-34xx.h>
-#include <mach-omap2/cm-regbits-34xx.h>
#include <plat/control.h>
/* ----------------------------------- DSP/BIOS Bridge */
@@ -43,7 +39,6 @@
/* ------------------------------------ Hardware Abstraction Layer */
#include <hw_defs.h>
-#include <hw_prcm.h>
#include <hw_mmu.h>
/* ----------------------------------- Link Driver */
@@ -129,37 +124,6 @@ static dsp_status mem_map_vmalloc(struct wmd_dev_context *hDevContext,
u32 ul_num_bytes,
struct hw_mmu_map_attrs_t *hw_attrs);
-#ifdef CONFIG_BRIDGE_DEBUG
-static void get_hw_regs(void __iomem *prm_base, void __iomem *cm_base)
-{
- u32 temp;
- temp = __raw_readl((cm_base) + 0x00);
- dev_dbg(bridge, "CM_FCLKEN_IVA2 = 0x%x\n", temp);
- temp = __raw_readl((cm_base) + 0x10);
- dev_dbg(bridge, "CM_ICLKEN1_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((cm_base) + 0x20);
- dev_dbg(bridge, "CM_IDLEST_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((cm_base) + 0x48);
- dev_dbg(bridge, "CM_CLKSTCTRL_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((cm_base) + 0x4c);
- dev_dbg(bridge, "CM_CLKSTST_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((prm_base) + 0x50);
- dev_dbg(bridge, "RM_RSTCTRL_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((prm_base) + 0x58);
- dev_dbg(bridge, "RM_RSTST_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((prm_base) + 0xE0);
- dev_dbg(bridge, "PM_PWSTCTRL_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((prm_base) + 0xE4);
- dev_dbg(bridge, "PM_PWSTST_IVA2 = 0x%x \n", temp);
- temp = __raw_readl((cm_base) + 0xA10);
- dev_dbg(bridge, "CM_ICLKEN1_CORE = 0x%x \n", temp);
-}
-#else
-static inline void get_hw_regs(void __iomem *prm_base, void __iomem *cm_base)
-{
-}
-#endif
-
/* ----------------------------------- Globals */
/* Attributes of L2 page tables for DSP MMU */
@@ -319,44 +283,37 @@ static dsp_status bridge_brd_monitor(struct wmd_dev_context *hDevContext)
{
dsp_status status = DSP_SOK;
struct wmd_dev_context *dev_context = hDevContext;
- struct cfg_hostres resources;
u32 temp;
- enum hw_pwr_state_t pwr_state;
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
- status = cfg_get_host_resources((struct cfg_devnode *)
- drv_get_first_dev_extension(),
- &resources);
- if (DSP_FAILED(status))
- goto error_return;
-
- get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
- hw_pwrst_iva2_reg_get(resources.dw_prm_base, &temp);
- if ((temp & 0x03) != 0x03 || (temp & 0x03) != 0x02) {
+ temp = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
+ OMAP_POWERSTATEST_MASK;
+ if (!(temp & 0x02)) {
/* IVA2 is not in ON state */
/* Read and set PM_PWSTCTRL_IVA2 to ON */
- hw_pwr_iva2_power_state_set(resources.dw_prm_base,
- HW_PWR_DOMAIN_DSP, HW_PWR_STATE_ON);
+ (*pdata->dsp_prm_rmw_bits)(OMAP_POWERSTATEST_MASK,
+ PWRDM_POWER_ON, OMAP3430_IVA2_MOD, PM_PWSTCTRL);
/* Set the SW supervised state transition */
- hw_pwr_clkctrl_iva2_reg_set(resources.dw_cm_base,
- HW_SW_SUP_WAKEUP);
+ (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_FORCE_WAKEUP,
+ OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
+
/* Wait until the state has moved to ON */
- hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
- &pwr_state);
+ while ((*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
+ OMAP_INTRANSITION)
+ ;
/* Disable Automatic transition */
- hw_pwr_clkctrl_iva2_reg_set(resources.dw_cm_base,
- HW_AUTOTRANS_DIS);
+ (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_DISABLE_AUTO,
+ OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
}
-
- get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
- hw_rst_un_reset(resources.dw_prm_base, HW_RST2_IVA2);
+ (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2, 0,
+ OMAP3430_IVA2_MOD, RM_RSTCTRL);
services_clk_enable(SERVICESCLK_IVA2_CK);
if (DSP_SUCCEEDED(status)) {
/* set the device state to IDLE */
dev_context->dw_brd_state = BRD_IDLE;
}
-error_return:
- get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
return status;
}
@@ -441,6 +398,8 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
u32 ext_clk_id = 0;
u32 tmp_index;
u32 clk_id_index = MBX_PM_MAX_RESOURCES;
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
/* The device context contains all the mmu setup info from when the
* last dsp base image was loaded. The first entry is always
@@ -474,9 +433,10 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
drv_get_first_dev_extension(),
&resources);
/* Assert RST1 i.e only the RST only for DSP megacell */
- /* hw_rst_reset(resources.dwPrcmBase, HW_RST1_IVA2); */
if (DSP_SUCCEEDED(status)) {
- hw_rst_reset(resources.dw_prm_base, HW_RST1_IVA2);
+ (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2,
+ OMAP3430_RST1_IVA2, OMAP3430_IVA2_MOD,
+ RM_RSTCTRL);
/* Mask address with 1K for compatibility */
__raw_writel(dwDSPAddr & OMAP3_IVA2_BOOTADDR_MASK,
OMAP343X_CTRL_REGADDR(
@@ -492,12 +452,13 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
if (DSP_SUCCEEDED(status)) {
/* Reset and Unreset the RST2, so that BOOTADDR is copied to
* IVA2 SYSC register */
- hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
+ (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2,
+ OMAP3430_RST1_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
udelay(100);
- hw_rst_un_reset(resources.dw_prm_base, HW_RST2_IVA2);
+ (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2, 0,
+ OMAP3430_IVA2_MOD, RM_RSTCTRL);
udelay(100);
- get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
/* Disbale the DSP MMU */
hw_mmu_disable(resources.dw_dmmu_base);
/* Disable TWL */
@@ -643,11 +604,9 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
(void)dev_get_symbol(dev_context->hdev_obj,
"_BRIDGEINIT_DSP_FREQ", &ul_dsp_clk_addr);
/*Set Autoidle Mode for IVA2 PLL */
- temp = (u32) *((reg_uword32 *)
- ((u32) (resources.dw_cm_base) + 0x34));
- temp = (temp & 0xFFFFFFFE) | 0x1;
- *((reg_uword32 *) ((u32) (resources.dw_cm_base) + 0x34)) =
- (u32) temp;
+ (*pdata->dsp_cm_write)(1 << OMAP3430_AUTO_IVA2_DPLL_SHIFT,
+ OMAP3430_IVA2_MOD, OMAP3430_CM_AUTOIDLE_PLL);
+
if ((unsigned int *)ul_dsp_clk_addr != NULL) {
/* Get the clock rate */
status = services_clk_get_rate(SERVICESCLK_IVA2_CK,
@@ -695,11 +654,8 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
(u32) temp;
/*CM_CLKSTCTRL_IVA2 = 0x00000003 -To Allow automatic transitions */
- temp = (u32) *((reg_uword32 *)
- ((u32) (resources.dw_cm_base) + 0x48));
- temp = (temp & 0xFFFFFFFC) | 0x03;
- *((reg_uword32 *) ((u32) (resources.dw_cm_base) + 0x48)) =
- (u32) temp;
+ (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_ENABLE_AUTO,
+ OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
/* Let DSP go */
dev_dbg(bridge, "%s Unreset\n", __func__);
@@ -707,7 +663,8 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
hw_mmu_event_enable(resources.dw_dmmu_base,
HW_MMU_ALL_INTERRUPTS);
/* release the RST1, DSP starts executing now .. */
- hw_rst_un_reset(resources.dw_prm_base, HW_RST1_IVA2);
+ (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2, 0,
+ OMAP3430_IVA2_MOD, RM_RSTCTRL);
dev_dbg(bridge, "Waiting for Sync @ 0x%x\n", dw_sync_addr);
dev_dbg(bridge, "DSP c_int00 Address = 0x%x\n", dwDSPAddr);
@@ -754,10 +711,11 @@ static dsp_status bridge_brd_stop(struct wmd_dev_context *hDevContext)
{
dsp_status status = DSP_SOK;
struct wmd_dev_context *dev_context = hDevContext;
- struct cfg_hostres resources;
struct pg_table_attrs *pt_attrs;
u32 dsp_pwr_state;
dsp_status clk_status;
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
if (dev_context->dw_brd_state == BRD_STOPPED)
return status;
@@ -765,29 +723,22 @@ static dsp_status bridge_brd_stop(struct wmd_dev_context *hDevContext)
/* as per TRM, it is advised to first drive the IVA2 to 'Standby' mode,
* before turning off the clocks.. This is to ensure that there are no
* pending L3 or other transactons from IVA2 */
- status = cfg_get_host_resources((struct cfg_devnode *)
- drv_get_first_dev_extension(),
- &resources);
- if (DSP_FAILED(status))
- return DSP_EFAIL;
- hw_pwrst_iva2_reg_get(resources.dw_prm_base, &dsp_pwr_state);
- if (dsp_pwr_state != HW_PWR_STATE_OFF && dev_context->mbox) {
+ dsp_pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
+ OMAP_POWERSTATEST_MASK;
+ if (dsp_pwr_state != PWRDM_POWER_OFF) {
sm_interrupt_dsp(dev_context, MBX_PM_DSPIDLE);
mdelay(10);
- get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
- udelay(50);
clk_status = services_clk_disable(SERVICESCLK_IVA2_CK);
/* IVA2 is not in OFF state */
/* Set PM_PWSTCTRL_IVA2 to OFF */
- hw_pwr_iva2_power_state_set(resources.dw_prm_base,
- HW_PWR_DOMAIN_DSP,
- HW_PWR_STATE_OFF);
+ (*pdata->dsp_prm_rmw_bits)(OMAP_POWERSTATEST_MASK,
+ PWRDM_POWER_OFF, OMAP3430_IVA2_MOD, PM_PWSTCTRL);
/* Set the SW supervised state transition for Sleep */
- hw_pwr_clkctrl_iva2_reg_set(resources.dw_cm_base,
- HW_SW_SUP_SLEEP);
+ (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_FORCE_SLEEP,
+ OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
} else {
clk_status = services_clk_disable(SERVICESCLK_IVA2_CK);
}
@@ -815,10 +766,9 @@ static dsp_status bridge_brd_stop(struct wmd_dev_context *hDevContext)
omap_mbox_put(dev_context->mbox);
dev_context->mbox = NULL;
}
-
- hw_rst_reset(resources.dw_prm_base, HW_RST1_IVA2);
- hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
- hw_rst_reset(resources.dw_prm_base, HW_RST3_IVA2);
+ /* Reset IVA2 clocks*/
+ (*pdata->dsp_prm_write)(OMAP3430_RST1_IVA2 | OMAP3430_RST2_IVA2 |
+ OMAP3430_RST3_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
return status;
}
@@ -838,6 +788,8 @@ static dsp_status wmd_brd_delete(struct wmd_dev_context *hDevContext)
struct cfg_hostres resources;
struct pg_table_attrs *pt_attrs;
dsp_status clk_status;
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
if (dev_context->dw_brd_state == BRD_STOPPED)
return status;
@@ -876,10 +828,9 @@ static dsp_status wmd_brd_delete(struct wmd_dev_context *hDevContext)
omap_mbox_put(dev_context->mbox);
dev_context->mbox = NULL;
}
-
- hw_rst_reset(resources.dw_prm_base, HW_RST1_IVA2);
- hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
- hw_rst_reset(resources.dw_prm_base, HW_RST3_IVA2);
+ /* Reset IVA2 clocks*/
+ (*pdata->dsp_prm_write)(OMAP3430_RST1_IVA2 | OMAP3430_RST2_IVA2 |
+ OMAP3430_RST3_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
return status;
}
diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
index 56b9a38..c15f0c9 100644
--- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
+++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
@@ -33,7 +33,6 @@
/* ------------------------------------ Hardware Abstraction Layer */
#include <hw_defs.h>
-#include <hw_prcm.h>
#include <hw_mmu.h>
#include <dspbridge/pwr_sh.h>
@@ -87,31 +86,24 @@ dsp_status handle_hibernation_from_dsp(struct wmd_dev_context *dev_context)
dsp_status status = DSP_SOK;
#ifdef CONFIG_PM
u16 timeout = PWRSTST_TIMEOUT / 10;
- struct cfg_hostres resources;
- enum hw_pwr_state_t pwr_state;
+ u32 pwr_state;
#ifdef CONFIG_BRIDGE_DVFS
u32 opplevel;
struct io_mgr *hio_mgr;
- struct dspbridge_platform_data *pdata =
- omap_dspbridge_dev->dev.platform_data;
#endif
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
- status = cfg_get_host_resources((struct cfg_devnode *)
- drv_get_first_dev_extension(),
- &resources);
- if (DSP_FAILED(status))
- return status;
-
- hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
- &pwr_state);
+ pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
+ OMAP_POWERSTATEST_MASK;
/* Wait for DSP to move into OFF state */
- while ((pwr_state != HW_PWR_STATE_OFF) && --timeout) {
+ while ((pwr_state != PWRDM_POWER_OFF) && --timeout) {
if (msleep_interruptible(10)) {
pr_err("Waiting for DSP OFF mode interrupted\n");
return DSP_EFAIL;
}
- hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
- &pwr_state);
+ pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD,
+ PM_PWSTST) & OMAP_POWERSTATEST_MASK;
}
if (timeout == 0) {
pr_err("%s: Timed out waiting for DSP off mode\n", __func__);
@@ -161,41 +153,37 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
{
dsp_status status = DSP_SOK;
#ifdef CONFIG_PM
- struct cfg_hostres resources;
#ifdef CONFIG_BRIDGE_NTFY_PWRERR
struct deh_mgr *hdeh_mgr;
#endif /* CONFIG_BRIDGE_NTFY_PWRERR */
u16 timeout = PWRSTST_TIMEOUT / 10;
- enum hw_pwr_state_t pwr_state, target_pwr_state;
+ u32 pwr_state, target_pwr_state;
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
/* Check if sleep code is valid */
if ((dw_cmd != PWR_DEEPSLEEP) && (dw_cmd != PWR_EMERGENCYDEEPSLEEP))
return DSP_EINVALIDARG;
- status = cfg_get_host_resources((struct cfg_devnode *)
- drv_get_first_dev_extension(),
- &resources);
- if (DSP_FAILED(status))
- return status;
switch (dev_context->dw_brd_state) {
case BRD_RUNNING:
omap_mbox_save_ctx(dev_context->mbox);
- if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
+ if (dsp_test_sleepstate == PWRDM_POWER_OFF) {
sm_interrupt_dsp(dev_context, MBX_PM_DSPHIBERNATE);
dev_dbg(bridge, "PM: %s - sent hibernate cmd to DSP\n",
__func__);
- target_pwr_state = HW_PWR_STATE_OFF;
+ target_pwr_state = PWRDM_POWER_OFF;
} else {
sm_interrupt_dsp(dev_context, MBX_PM_DSPRETENTION);
- target_pwr_state = HW_PWR_STATE_RET;
+ target_pwr_state = PWRDM_POWER_RET;
}
break;
case BRD_RETENTION:
omap_mbox_save_ctx(dev_context->mbox);
- if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
+ if (dsp_test_sleepstate == PWRDM_POWER_OFF) {
sm_interrupt_dsp(dev_context, MBX_PM_DSPHIBERNATE);
- target_pwr_state = HW_PWR_STATE_OFF;
+ target_pwr_state = PWRDM_POWER_OFF;
} else
return DSP_SOK;
break;
@@ -214,8 +202,8 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
}
/* Get the PRCM DSP power domain status */
- hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
- &pwr_state);
+ pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
+ OMAP_POWERSTATEST_MASK;
/* Wait for DSP to move into target power state */
while ((pwr_state != target_pwr_state) && --timeout) {
@@ -223,8 +211,8 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
pr_err("Waiting for DSP to Suspend interrupted\n");
return DSP_EFAIL;
}
- hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
- &pwr_state);
+ pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD,
+ PM_PWSTST) & OMAP_POWERSTATEST_MASK;
}
if (!timeout) {
@@ -237,7 +225,7 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
return WMD_E_TIMEOUT;
} else {
/* Update the Bridger Driver state */
- if (dsp_test_sleepstate == HW_PWR_STATE_OFF)
+ if (dsp_test_sleepstate == PWRDM_POWER_OFF)
dev_context->dw_brd_state = BRD_HIBERNATION;
else
dev_context->dw_brd_state = BRD_RETENTION;
@@ -251,7 +239,7 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
return status;
}
#ifdef CONFIG_BRIDGE_DVFS
- else if (target_pwr_state == HW_PWR_STATE_OFF) {
+ else if (target_pwr_state == PWRDM_POWER_OFF) {
struct dspbridge_platform_data *pdata =
omap_dspbridge_dev->dev.platform_data;
/*
diff --git a/drivers/dsp/bridge/wmd/tiomap_io.c b/drivers/dsp/bridge/wmd/tiomap_io.c
index 728db33..0755ca7 100644
--- a/drivers/dsp/bridge/wmd/tiomap_io.c
+++ b/drivers/dsp/bridge/wmd/tiomap_io.c
@@ -398,10 +398,10 @@ dsp_status write_ext_dsp_data(struct wmd_dev_context *dev_context,
dsp_status sm_interrupt_dsp(struct wmd_dev_context *dev_context, u16 mb_val)
{
#ifdef CONFIG_BRIDGE_DVFS
- struct dspbridge_platform_data *pdata =
- omap_dspbridge_dev->dev.platform_data;
u32 opplevel = 0;
#endif
+ struct dspbridge_platform_data *pdata =
+ omap_dspbridge_dev->dev.platform_data;
struct cfg_hostres resources;
dsp_status status = DSP_SOK;
u32 temp;
@@ -433,16 +433,19 @@ dsp_status sm_interrupt_dsp(struct wmd_dev_context *dev_context, u16 mb_val)
* 2:0 AUTO_IVA2_DPLL - Enabling IVA2 DPLL auto control
* in CM_AUTOIDLE_PLL_IVA2 register
*/
- *(reg_uword32 *) (resources.dw_cm_base + 0x34) = 0x1;
+ (*pdata->dsp_cm_write)(1 << OMAP3430_AUTO_IVA2_DPLL_SHIFT,
+ OMAP3430_IVA2_MOD, OMAP3430_CM_AUTOIDLE_PLL);
/*
* 7:4 IVA2_DPLL_FREQSEL - IVA2 internal frq set to
* 0.75 MHz - 1.0 MHz
* 2:0 EN_IVA2_DPLL - Enable IVA2 DPLL in lock mode
*/
- temp = *(reg_uword32 *) (resources.dw_cm_base + 0x4);
- temp = (temp & 0xFFFFFF08) | 0x37;
- *(reg_uword32 *) (resources.dw_cm_base + 0x4) = temp;
+ (*pdata->dsp_cm_rmw_bits)(OMAP3430_IVA2_DPLL_FREQSEL_MASK |
+ OMAP3430_EN_IVA2_DPLL_MASK,
+ 0x3 << OMAP3430_IVA2_DPLL_FREQSEL_SHIFT |
+ 0x7 << OMAP3430_EN_IVA2_DPLL_SHIFT,
+ OMAP3430_IVA2_MOD, OMAP3430_CM_CLKEN_PLL);
/* Restore mailbox settings */
omap_mbox_restore_ctx(dev_context->mbox);
--
1.6.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions
2010-04-06 17:54 ` [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions Guzman Lugo, Fernando
@ 2010-05-01 15:27 ` Felipe Contreras
2010-05-01 15:34 ` Nishanth Menon
2010-05-19 0:34 ` Deepak Chitriki
1 sibling, 1 reply; 6+ messages in thread
From: Felipe Contreras @ 2010-05-01 15:27 UTC (permalink / raw)
To: Guzman Lugo, Fernando
Cc: linux-omap@vger.kernel.org, Hiroshi DOYU, Ameya Palande,
felipe.contreras@nokia.com
On Tue, Apr 6, 2010 at 8:54 PM, Guzman Lugo, Fernando <x0095840@ti.com> wrote:
> From 4fb9fc015cea65dcd47172a8b180f380fe86be46 Mon Sep 17 00:00:00 2001
> From: Fernando Guzman Lugo <x0095840@ti.com>
> Date: Tue, 30 Mar 2010 21:37:21 -0600
> Subject: [PATCH] DSPBRIDGE: remove hw_prcm module and related functions
>
> This patches removes TI hw_prcm module and related functions
> and replace them with kernel functions. As kernel functions
> are exported, pointer function are used to build without
> problem in case of building dspbridge as a module.
>
> Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
This is screwing things for me on a beagleboard:
mem_ext_phys_pool_init: external physical memory map failed
------------[ cut here ]------------
WARNING: at mm/page_alloc.c:1813 __alloc_pages_nodemask+0x144/0x514()
Modules linked in: bridgedriver(+) mailbox_mach mailbox
[<c002c3a0>] (unwind_backtrace+0x0/0xd4) from [<c004ce38>]
(warn_slowpath_common+0x48/0x60)
[<c004ce38>] (warn_slowpath_common+0x48/0x60) from [<c007cef0>]
(__alloc_pages_nodemask+0x144/0x514)
[<c007cef0>] (__alloc_pages_nodemask+0x144/0x514) from [<c002cafc>]
(__dma_alloc+0xc0/0x27c)
[<c002cafc>] (__dma_alloc+0xc0/0x27c) from [<c002cd30>]
(dma_alloc_coherent+0x54/0x60)
[<c002cd30>] (dma_alloc_coherent+0x54/0x60) from [<bf00d7f8>]
(mem_alloc_phys_mem+0xb0/0xcc [bridgedriver])
[<bf00d7f8>] (mem_alloc_phys_mem+0xb0/0xcc [bridgedriver]) from
[<bf01d530>] (drv_request_resources+0x1bc/0x260 [bridgedriver])
[<bf01d530>] (drv_request_resources+0x1bc/0x260 [bridgedriver]) from
[<bf023370>] (dsp_init+0x64/0xe8 [bridgedriver])
[<bf023370>] (dsp_init+0x64/0xe8 [bridgedriver]) from [<bf028da8>]
(omap34_xx_bridge_probe+0x208/0x2d0 [bridgedriver])
[<bf028da8>] (omap34_xx_bridge_probe+0x208/0x2d0 [bridgedriver]) from
[<c01b3550>] (platform_drv_probe+0x18/0x1c)
[<c01b3550>] (platform_drv_probe+0x18/0x1c) from [<c01b2748>]
(driver_probe_device+0xa0/0x14c)
[<c01b2748>] (driver_probe_device+0xa0/0x14c) from [<c01b2854>]
(__driver_attach+0x60/0x84)
[<c01b2854>] (__driver_attach+0x60/0x84) from [<c01b201c>]
(bus_for_each_dev+0x44/0x74)
[<c01b201c>] (bus_for_each_dev+0x44/0x74) from [<c01b1988>]
(bus_add_driver+0x9c/0x218)
[<c01b1988>] (bus_add_driver+0x9c/0x218) from [<c01b2b24>]
(driver_register+0xa8/0x134)
[<c01b2b24>] (driver_register+0xa8/0x134) from [<c0026330>]
(do_one_initcall+0x58/0x1a8)
[<c0026330>] (do_one_initcall+0x58/0x1a8) from [<c00713c8>]
(sys_init_module+0xb0/0x1dc)
[<c00713c8>] (sys_init_module+0xb0/0x1dc) from [<c0026dc0>]
(ret_fast_syscall+0x0/0x2c)
---[ end trace ec6c9b46b6f26ea2 ]---
shm reservation Failed
cfg_get_dev_object: Failed, status 0xffffffff
DSP Bridge driver initialization failed
--
Felipe Contreras
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions
2010-05-01 15:27 ` Felipe Contreras
@ 2010-05-01 15:34 ` Nishanth Menon
2010-05-01 16:06 ` Felipe Contreras
0 siblings, 1 reply; 6+ messages in thread
From: Nishanth Menon @ 2010-05-01 15:34 UTC (permalink / raw)
To: Felipe Contreras
Cc: Guzman Lugo, Fernando, linux-omap@vger.kernel.org, Hiroshi DOYU,
Ameya Palande, felipe.contreras@nokia.com
On 05/01/2010 10:27 AM, Felipe Contreras wrote:
> On Tue, Apr 6, 2010 at 8:54 PM, Guzman Lugo, Fernando<x0095840@ti.com> wrote:
>> From 4fb9fc015cea65dcd47172a8b180f380fe86be46 Mon Sep 17 00:00:00 2001
>> From: Fernando Guzman Lugo<x0095840@ti.com>
>> Date: Tue, 30 Mar 2010 21:37:21 -0600
>> Subject: [PATCH] DSPBRIDGE: remove hw_prcm module and related functions
>>
>> This patches removes TI hw_prcm module and related functions
>> and replace them with kernel functions. As kernel functions
>> are exported, pointer function are used to build without
>> problem in case of building dspbridge as a module.
>>
>> Signed-off-by: Fernando Guzman Lugo<x0095840@ti.com>
>
> This is screwing things for me on a beagleboard:
>
> mem_ext_phys_pool_init: external physical memory map failed
this is interesting -> we ran out of IOremap memory??
> ------------[ cut here ]------------
> WARNING: at mm/page_alloc.c:1813 __alloc_pages_nodemask+0x144/0x514()
> Modules linked in: bridgedriver(+) mailbox_mach mailbox
> [<c002c3a0>] (unwind_backtrace+0x0/0xd4) from [<c004ce38>]
> (warn_slowpath_common+0x48/0x60)
> [<c004ce38>] (warn_slowpath_common+0x48/0x60) from [<c007cef0>]
> (__alloc_pages_nodemask+0x144/0x514)
> [<c007cef0>] (__alloc_pages_nodemask+0x144/0x514) from [<c002cafc>]
> (__dma_alloc+0xc0/0x27c)
> [<c002cafc>] (__dma_alloc+0xc0/0x27c) from [<c002cd30>]
> (dma_alloc_coherent+0x54/0x60)
> [<c002cd30>] (dma_alloc_coherent+0x54/0x60) from [<bf00d7f8>]
> (mem_alloc_phys_mem+0xb0/0xcc [bridgedriver])
> [<bf00d7f8>] (mem_alloc_phys_mem+0xb0/0xcc [bridgedriver]) from
> [<bf01d530>] (drv_request_resources+0x1bc/0x260 [bridgedriver])
> [<bf01d530>] (drv_request_resources+0x1bc/0x260 [bridgedriver]) from
> [<bf023370>] (dsp_init+0x64/0xe8 [bridgedriver])
> [<bf023370>] (dsp_init+0x64/0xe8 [bridgedriver]) from [<bf028da8>]
> (omap34_xx_bridge_probe+0x208/0x2d0 [bridgedriver])
> [<bf028da8>] (omap34_xx_bridge_probe+0x208/0x2d0 [bridgedriver]) from
> [<c01b3550>] (platform_drv_probe+0x18/0x1c)
> [<c01b3550>] (platform_drv_probe+0x18/0x1c) from [<c01b2748>]
> (driver_probe_device+0xa0/0x14c)
> [<c01b2748>] (driver_probe_device+0xa0/0x14c) from [<c01b2854>]
> (__driver_attach+0x60/0x84)
> [<c01b2854>] (__driver_attach+0x60/0x84) from [<c01b201c>]
> (bus_for_each_dev+0x44/0x74)
> [<c01b201c>] (bus_for_each_dev+0x44/0x74) from [<c01b1988>]
> (bus_add_driver+0x9c/0x218)
> [<c01b1988>] (bus_add_driver+0x9c/0x218) from [<c01b2b24>]
> (driver_register+0xa8/0x134)
> [<c01b2b24>] (driver_register+0xa8/0x134) from [<c0026330>]
> (do_one_initcall+0x58/0x1a8)
> [<c0026330>] (do_one_initcall+0x58/0x1a8) from [<c00713c8>]
> (sys_init_module+0xb0/0x1dc)
> [<c00713c8>] (sys_init_module+0xb0/0x1dc) from [<c0026dc0>]
> (ret_fast_syscall+0x0/0x2c)
> ---[ end trace ec6c9b46b6f26ea2 ]---
> shm reservation Failed
> cfg_get_dev_object: Failed, status 0xffffffff
> DSP Bridge driver initialization failed
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions
2010-05-01 15:34 ` Nishanth Menon
@ 2010-05-01 16:06 ` Felipe Contreras
0 siblings, 0 replies; 6+ messages in thread
From: Felipe Contreras @ 2010-05-01 16:06 UTC (permalink / raw)
To: Nishanth Menon
Cc: Guzman Lugo, Fernando, linux-omap@vger.kernel.org, Hiroshi DOYU,
Ameya Palande, felipe.contreras@nokia.com
On Sat, May 1, 2010 at 6:34 PM, Nishanth Menon <menon.nishanth@gmail.com> wrote:
> On 05/01/2010 10:27 AM, Felipe Contreras wrote:
>>
>> On Tue, Apr 6, 2010 at 8:54 PM, Guzman Lugo, Fernando<x0095840@ti.com>
>> wrote:
>>>
>>> From 4fb9fc015cea65dcd47172a8b180f380fe86be46 Mon Sep 17 00:00:00 2001
>>> From: Fernando Guzman Lugo<x0095840@ti.com>
>>> Date: Tue, 30 Mar 2010 21:37:21 -0600
>>> Subject: [PATCH] DSPBRIDGE: remove hw_prcm module and related functions
>>>
>>> This patches removes TI hw_prcm module and related functions
>>> and replace them with kernel functions. As kernel functions
>>> are exported, pointer function are used to build without
>>> problem in case of building dspbridge as a module.
>>>
>>> Signed-off-by: Fernando Guzman Lugo<x0095840@ti.com>
>>
>> This is screwing things for me on a beagleboard:
>>
>> mem_ext_phys_pool_init: external physical memory map failed
>
> this is interesting -> we ran out of IOremap memory??
Disregard that. I tested by recompiling only the bridgedriver but this
patch has platform changes, so the whole kernel needs to be
recompiled.
Sorry about the noise.
--
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions
2010-04-06 17:54 ` [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions Guzman Lugo, Fernando
2010-05-01 15:27 ` Felipe Contreras
@ 2010-05-19 0:34 ` Deepak Chitriki
2010-05-19 1:08 ` Guzman Lugo, Fernando
1 sibling, 1 reply; 6+ messages in thread
From: Deepak Chitriki @ 2010-05-19 0:34 UTC (permalink / raw)
To: Guzman Lugo, Fernando
Cc: linux-omap@vger.kernel.org, Hiroshi DOYU, Ameya Palande,
felipe.contreras@nokia.com
Guzman Lugo, Fernando wrote:
> From 4fb9fc015cea65dcd47172a8b180f380fe86be46 Mon Sep 17 00:00:00 2001
> From: Fernando Guzman Lugo <x0095840@ti.com>
> Date: Tue, 30 Mar 2010 21:37:21 -0600
> Subject: [PATCH] DSPBRIDGE: remove hw_prcm module and related functions
>
> This patches removes TI hw_prcm module and related functions
> and replace them with kernel functions. As kernel functions
> are exported, pointer function are used to build without
> problem in case of building dspbridge as a module.
>
> Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
> ---
> arch/arm/mach-omap2/dspbridge.c | 9 +-
> arch/arm/plat-omap/include/dspbridge/cfgdefs.h | 2 -
> arch/arm/plat-omap/include/dspbridge/host_os.h | 8 +
> drivers/dsp/bridge/Makefile | 2 +-
> drivers/dsp/bridge/hw/PRCMAccInt.h | 303 ------------
> drivers/dsp/bridge/hw/PRCMRegAcM.h | 615 ------------------------
> drivers/dsp/bridge/hw/hw_prcm.c | 161 ------
> drivers/dsp/bridge/hw/hw_prcm.h | 156 ------
> drivers/dsp/bridge/rmgr/drv.c | 14 -
> drivers/dsp/bridge/wmd/_tiomap.h | 4 +
> drivers/dsp/bridge/wmd/tiomap3430.c | 149 ++----
> drivers/dsp/bridge/wmd/tiomap3430_pwr.c | 56 +--
> drivers/dsp/bridge/wmd/tiomap_io.c | 15 +-
> 13 files changed, 102 insertions(+), 1392 deletions(-)
> delete mode 100644 drivers/dsp/bridge/hw/PRCMAccInt.h
> delete mode 100644 drivers/dsp/bridge/hw/PRCMRegAcM.h
> delete mode 100644 drivers/dsp/bridge/hw/hw_prcm.c
> delete mode 100644 drivers/dsp/bridge/hw/hw_prcm.h
>
> diff --git a/arch/arm/mach-omap2/dspbridge.c b/arch/arm/mach-omap2/dspbridge.c
> index 4150896..8d6c122 100644
> --- a/arch/arm/mach-omap2/dspbridge.c
> +++ b/arch/arm/mach-omap2/dspbridge.c
> @@ -12,7 +12,8 @@
> */
>
> #include <linux/platform_device.h>
> -
> +#include "prm.h"
> +#include "cm.h"
> #ifdef CONFIG_BRIDGE_DVFS
> #include <plat/omap-pm.h>
> #endif
> @@ -28,6 +29,12 @@ static struct dspbridge_platform_data dspbridge_pdata __initdata = {
> .cpu_set_freq = omap_pm_cpu_set_freq,
> .cpu_get_freq = omap_pm_cpu_get_freq,
> #endif
> + .dsp_prm_read = prm_read_mod_reg,
> + .dsp_prm_write = prm_write_mod_reg,
> + .dsp_prm_rmw_bits = prm_rmw_mod_reg_bits,
> + .dsp_cm_read = cm_read_mod_reg,
> + .dsp_cm_write = cm_write_mod_reg,
> + .dsp_cm_rmw_bits = cm_rmw_mod_reg_bits,
> };
>
> static int __init dspbridge_init(void)
> diff --git a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
> index a71fc7b..8695fd3 100644
> --- a/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
> +++ b/arch/arm/plat-omap/include/dspbridge/cfgdefs.h
> @@ -65,8 +65,6 @@ struct cfg_hostres {
> u32 dw_chnl_offset;
> u32 dw_chnl_buf_size;
> u32 dw_num_chnls;
> - void __iomem *dw_prm_base;
> - void __iomem *dw_cm_base;
> void __iomem *dw_per_base;
> u32 dw_per_pm_base;
> u32 dw_core_pm_base;
> diff --git a/arch/arm/plat-omap/include/dspbridge/host_os.h b/arch/arm/plat-omap/include/dspbridge/host_os.h
> index a5d8caf..2834304 100644
> --- a/arch/arm/plat-omap/include/dspbridge/host_os.h
> +++ b/arch/arm/plat-omap/include/dspbridge/host_os.h
> @@ -60,6 +60,14 @@ struct dspbridge_platform_data {
> unsigned long (*cpu_get_freq) (void);
> unsigned long mpu_speed[6];
>
> + /* functions to write and read PRCM registers */
> + void (*dsp_prm_write)(u32, s16 , u16);
> + u32 (*dsp_prm_read)(s16 , u16);
> + u32 (*dsp_prm_rmw_bits)(u32, u32, s16, s16);
> + void (*dsp_cm_write)(u32, s16 , u16);
> + u32 (*dsp_cm_read)(s16 , u16);
> + u32 (*dsp_cm_rmw_bits)(u32, u32, s16, s16);
> +
> u32 phys_mempool_base;
> u32 phys_mempool_size;
> };
> diff --git a/drivers/dsp/bridge/Makefile b/drivers/dsp/bridge/Makefile
> index 1350362..5a28374 100644
> --- a/drivers/dsp/bridge/Makefile
> +++ b/drivers/dsp/bridge/Makefile
> @@ -15,7 +15,7 @@ librmgr = rmgr/dbdcd.o rmgr/disp.o rmgr/drv.o rmgr/mgr.o rmgr/node.o \
> rmgr/nldr.o rmgr/drv_interface.o
> libdload = dynload/cload.o dynload/getsection.o dynload/reloc.o \
> dynload/tramp.o
> -libhw = hw/hw_prcm.o hw/hw_mmu.o
> +libhw = hw/hw_mmu.o
>
> bridgedriver-objs = $(libgen) $(libservices) $(libwmd) $(libpmgr) $(librmgr) \
> $(libdload) $(libhw)
> diff --git a/drivers/dsp/bridge/hw/PRCMAccInt.h b/drivers/dsp/bridge/hw/PRCMAccInt.h
> deleted file mode 100644
> index 7a513b0..0000000
> --- a/drivers/dsp/bridge/hw/PRCMAccInt.h
> +++ /dev/null
> @@ -1,303 +0,0 @@
> -/*
> - * PRCMAccInt.h
> - *
> - * DSP-BIOS Bridge driver support functions for TI OMAP processors.
> - *
> - * Copyright (C) 2007 Texas Instruments, Inc.
> - *
> - * This package 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.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - */
> -
> -#ifndef _PRCM_ACC_INT_H
> -#define _PRCM_ACC_INT_H
> -
> -/* Mappings of level 1 EASI function numbers to function names */
> -
> -#define EASIL1_PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_WRITE_CLK_VALID32 \
> - (PRCM_BASE_EASIL1 + 349)
> -#define EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32 (PRCM_BASE_EASIL1 + 743)
> -#define EASIL1_PRCMCM_FCLKEN1_COREEN_GPT8_WRITE32 (PRCM_BASE_EASIL1 + 951)
> -#define EASIL1_PRCMCM_FCLKEN1_COREEN_GPT7_WRITE32 (PRCM_BASE_EASIL1 + 961)
> -#define EASIL1_PRCMCM_ICLKEN1_CORE_READ_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 1087)
> -#define EASIL1_PRCMCM_ICLKEN1_COREEN_MAILBOXES_WRITE32 \
> - (PRCM_BASE_EASIL1 + 1105)
> -#define EASIL1_PRCMCM_ICLKEN1_COREEN_GPT8_WRITE32 \
> - (PRCM_BASE_EASIL1 + 1305)
> -#define EASIL1_PRCMCM_ICLKEN1_COREEN_GPT7_WRITE32 \
> - (PRCM_BASE_EASIL1 + 1315)
> -#define EASIL1_PRCMCM_CLKSEL1_CORECLKSEL_L3_READ_ISSEL132 \
> - (PRCM_BASE_EASIL1 + 2261)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE32K32 \
> - (PRCM_BASE_EASIL1 + 2364)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_SYS32 \
> - (PRCM_BASE_EASIL1 + 2365)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_EXT32 \
> - (PRCM_BASE_EASIL1 + 2366)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE32K32 \
> - (PRCM_BASE_EASIL1 + 2380)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_SYS32 \
> - (PRCM_BASE_EASIL1 + 2381)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_EXT32 \
> - (PRCM_BASE_EASIL1 + 2382)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_SYS32 \
> - (PRCM_BASE_EASIL1 + 2397)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_EXT32 \
> - (PRCM_BASE_EASIL1 + 2398)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_SYS32 \
> - (PRCM_BASE_EASIL1 + 2413)
> -#define EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_EXT32 \
> - (PRCM_BASE_EASIL1 + 2414)
> -#define EASIL1_PRCMCM_CLKSEL1_PLLAPL_LS_CLKIN_READ32 \
> - (PRCM_BASE_EASIL1 + 3747)
> -#define EASIL1_PRCMCM_FCLKEN_DSPEN_DSP_WRITE32 (PRCM_BASE_EASIL1 + 3834)
> -#define EASIL1_PRCMCM_ICLKEN_DSPEN_DSP_IPI_WRITE32 \
> - (PRCM_BASE_EASIL1 + 3846)
> -#define EASIL1_PRCMCM_IDLEST_DSP_READ_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 3850)
> -#define EASIL1_PRCMCM_IDLEST_DSPST_IPI_READ32 (PRCM_BASE_EASIL1 + 3857)
> -#define EASIL1_PRCMCM_IDLEST_DSPST_DSP_READ32 (PRCM_BASE_EASIL1 + 3863)
> -#define EASIL1_PRCMCM_AUTOIDLE_DSPAUTO_DSP_IPI_WRITE32 \
> - (PRCM_BASE_EASIL1 + 3877)
> -#define EASIL1_PRCMCM_CLKSEL_DSPSYNC_DSP_WRITE32 \
> - (PRCM_BASE_EASIL1 + 3927)
> -#define EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_IF_WRITE32 \
> - (PRCM_BASE_EASIL1 + 3941)
> -#define EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_WRITE32 \
> - (PRCM_BASE_EASIL1 + 3965)
> -#define EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_READ32 \
> - (PRCM_BASE_EASIL1 + 3987)
> -#define EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_WRITE32 \
> - (PRCM_BASE_EASIL1 + 3993)
> -#define EASIL1_PRCMRM_RSTCTRL_DSP_READ_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 3997)
> -#define EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32 \
> - (PRCM_BASE_EASIL1 + 4025)
> -#define EASIL1_PRCMRM_RSTST_DSP_READ_REGISTER32 (PRCM_BASE_EASIL1 + 4029)
> -#define EASIL1_PRCMRM_RSTST_DSP_WRITE_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 4030)
> -#define EASIL1_PRCMPM_PWSTCTRL_DSP_FORCE_STATE_WRITE32 \
> - (PRCM_BASE_EASIL1 + 4165)
> -#define EASIL1_PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32 \
> - (PRCM_BASE_EASIL1 + 4193)
> -#define EASIL1_PRCMPM_PWSTST_DSP_READ_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 4197)
> -#define EASIL1_PRCMPM_PWSTST_DSP_IN_TRANSITION_READ32 \
> - (PRCM_BASE_EASIL1 + 4198)
> -#define EASIL1_PRCMPM_PWSTST_DSP_POWER_STATE_ST_GET32 \
> - (PRCM_BASE_EASIL1 + 4235)
> -#define EASIL1_CM_FCLKEN_PER_GPT5_WRITE_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 4368)
> -#define EASIL1_CM_ICLKEN_PER_GPT5_WRITE_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 4370)
> -#define EASIL1_CM_CLKSEL_PER_GPT5_WRITE32K32 (PRCM_BASE_EASIL1 + 4372)
> -#define EASIL1_CM_CLKSEL_PER_GPT6_WRITE32K32 (PRCM_BASE_EASIL1 + 4373)
> -#define EASIL1_PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 4374)
> -#define EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32 \
> - (PRCM_BASE_EASIL1 + 4375)
> -#define EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32 \
> - (PRCM_BASE_EASIL1 + 4376)
> -#define EASIL1_PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32 \
> - (PRCM_BASE_EASIL1 + 4377)
> -#define EASIL1_PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32 \
> - (PRCM_BASE_EASIL1 + 4378)
> -#define EASIL1_PRCMPM_PWSTST_IVA2_READ_REGISTER32 \
> - (PRCM_BASE_EASIL1 + 4379)
> -
> -/* Register offset address definitions */
> -
> -#define PRCM_PRCM_CLKCFG_CTRL_OFFSET (u32)(0x80)
> -#define PRCM_CM_FCLKEN1_CORE_OFFSET (u32)(0x200)
> -#define PRCM_CM_ICLKEN1_CORE_OFFSET (u32)(0x210)
> -#define PRCM_CM_CLKSEL2_CORE_OFFSET (u32)(0x244)
> -#define PRCM_CM_CLKSEL1_PLL_OFFSET (u32)(0x540)
> -#define PRCM_CM_ICLKEN_DSP_OFFSET (u32)(0x810)
> -#define PRCM_CM_IDLEST_DSP_OFFSET (u32)(0x820)
> -#define PRCM_CM_AUTOIDLE_DSP_OFFSET (u32)(0x830)
> -#define PRCM_CM_CLKSEL_DSP_OFFSET (u32)(0x840)
> -#define PRCM_CM_CLKSTCTRL_DSP_OFFSET (u32)(0x848)
> -#define PRCM_RM_RSTCTRL_DSP_OFFSET (u32)(0x050)
> -#define PRCM_RM_RSTST_DSP_OFFSET (u32)(0x058)
> -#define PRCM_PM_PWSTCTRL_DSP_OFFSET (u32)(0x8e0)
> -#define PRCM_PM_PWSTST_DSP_OFFSET (u32)(0x8e4)
> -#define PRCM_PM_PWSTST_IVA2_OFFSET (u32)(0xE4)
> -#define PRCM_PM_PWSTCTRL_IVA2_OFFSET (u32)(0xE0)
> -#define PRCM_CM_CLKSTCTRL_IVA2_OFFSET (u32)(0x48)
> -#define CM_CLKSEL_PER_OFFSET (u32)(0x40)
> -
> -/* Bitfield mask and offset declarations */
> -
> -#define PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_MASK (u32)(0x1)
> -#define PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_OFFSET (u32)(0)
> -
> -#define PRCM_CM_FCLKEN1_CORE_EN_GPT8_MASK (u32)(0x400)
> -#define PRCM_CM_FCLKEN1_CORE_EN_GPT8_OFFSET (u32)(10)
> -
> -#define PRCM_CM_FCLKEN1_CORE_EN_GPT7_MASK (u32)(0x200)
> -#define PRCM_CM_FCLKEN1_CORE_EN_GPT7_OFFSET (u32)(9)
> -
> -#define PRCM_CM_ICLKEN1_CORE_EN_GPT8_MASK (u32)(0x400)
> -#define PRCM_CM_ICLKEN1_CORE_EN_GPT8_OFFSET (u32)(10)
> -
> -#define PRCM_CM_ICLKEN1_CORE_EN_GPT7_MASK (u32)(0x200)
> -#define PRCM_CM_ICLKEN1_CORE_EN_GPT7_OFFSET (u32)(9)
> -
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK (u32)(0xc000)
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET (u32)(14)
> -
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK (u32)(0x3000)
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET (u32)(12)
> -
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_MASK (u32)(0xc00)
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_OFFSET (u32)(10)
> -
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_MASK (u32)(0x300)
> -#define PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_OFFSET (u32)(8)
> -
> -#define PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_MASK (u32)(0x3800000)
> -#define PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_OFFSET (u32)(23)
> -
> -#define PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_MASK (u32)(0x2)
> -#define PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_OFFSET (u32)(1)
> -
> -#define PRCM_CM_IDLEST_DSP_ST_IPI_MASK (u32)(0x2)
> -#define PRCM_CM_IDLEST_DSP_ST_IPI_OFFSET (u32)(1)
> -
> -#define PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_MASK (u32)(0x2)
> -#define PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_OFFSET (u32)(1)
> -
> -#define PRCM_CM_CLKSEL_DSP_SYNC_DSP_MASK (u32)(0x80)
> -#define PRCM_CM_CLKSEL_DSP_SYNC_DSP_OFFSET (u32)(7)
> -
> -#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_MASK (u32)(0x60)
> -#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_OFFSET (u32)(5)
> -
> -#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_MASK (u32)(0x1f)
> -#define PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_OFFSET (u32)(0)
> -
> -#define PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK (u32)(0x1)
> -#define PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_OFFSET (u32)(0)
> -
> -#define PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_MASK (u32)(0x40000)
> -#define PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_OFFSET (u32)(18)
> -
> -#define PRCM_PM_PWSTCTRL_DSP_POWER_STATE_MASK (u32)(0x3)
> -#define PRCM_PM_PWSTCTRL_DSP_POWER_STATE_OFFSET (u32)(0)
> -
> -#define PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_MASK (u32)(0x3)
> -#define PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_OFFSET (u32)(0)
> -
> -#define PRCM_PM_PWSTST_DSP_IN_TRANSITION_MASK (u32)(0x100000)
> -#define PRCM_PM_PWSTST_DSP_IN_TRANSITION_OFFSET (u32)(20)
> -
> -#define PRCM_PM_PWSTST_IVA2_IN_TRANSITION_MASK (u32)(0x100000)
> -#define PRCM_PM_PWSTST_IVA2_IN_TRANSITION_OFFSET (u32)(20)
> -
> -#define PRCM_PM_PWSTST_DSP_POWER_STATE_ST_MASK (u32)(0x3)
> -#define PRCM_PM_PWSTST_DSP_POWER_STATE_ST_OFFSET (u32)(0)
> -
> -#define PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_MASK (u32)(0x3)
> -#define PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_OFFSET (u32)(0)
> -
> -#define CM_FCLKEN_PER_OFFSET (u32)(0x0)
> -#define CM_FCLKEN_PER_GPT5_OFFSET (u32)(6)
> -#define CM_FCLKEN_PER_GPT5_MASK (u32)(0x40)
> -
> -#define CM_FCLKEN_PER_GPT6_OFFSET (u32)(7)
> -#define CM_FCLKEN_PER_GPT6_MASK (u32)(0x80)
> -
> -#define CM_ICLKEN_PER_OFFSET (u32)(0x10)
> -#define CM_ICLKEN_PER_GPT5_OFFSET (u32)(6)
> -#define CM_ICLKEN_PER_GPT5_MASK (u32)(0x40)
> -
> -#define CM_ICLKEN_PER_GPT6_OFFSET (u32)(7)
> -#define CM_ICLKEN_PER_GPT6_MASK (u32)(0x80)
> -
> -#define CM_CLKSEL_PER_GPT5_OFFSET (u32)(3)
> -#define CM_CLKSEL_PER_GPT5_MASK (u32)(0x8)
> -
> -#define CM_CLKSEL_PER_GPT6_OFFSET (u32)(4)
> -#define CM_CLKSEL_PER_GPT6_MASK (u32)(0x10)
> -
> -#define CM_FCLKEN_IVA2_OFFSET (u32)(0x0)
> -#define CM_FCLKEN_IVA2_EN_MASK (u32)(0x1)
> -#define CM_FCLKEN_IVA2_EN_OFFSET (u32)(0x0)
> -
> -#define CM_IDLEST_IVA2_OFFSET (u32)(0x20)
> -#define CM_IDLEST_IVA2_ST_IVA2_MASK (u32) (0x01)
> -#define CM_IDLEST_IVA2_ST_IVA2_OFFSET (u32) (0x00)
> -
> -#define CM_FCLKEN1_CORE_OFFSET (u32)(0xA00)
> -
> -#define CM_ICLKEN1_CORE_OFFSET (u32)(0xA10)
> -#define CM_ICLKEN1_CORE_EN_MAILBOXES_MASK (u32)(0x00000080) /* bit 7 */
> -#define CM_ICLKEN1_CORE_EN_MAILBOXES_OFFSET (u32)(7)
> -
> -#define CM_CLKSTCTRL_IVA2_OFFSET (u32)(0x0)
> -#define CM_CLKSTCTRL_IVA2_MASK (u32)(0x3)
> -
> -#define PRM_RSTCTRL_IVA2_OFFSET (u32)(0x50)
> -#define PRM_RSTCTRL_IVA2_RST1_MASK (u32)(0x1)
> -#define PRM_RSTCTRL_IVA2_RST1_OFFSET (u32)(0x0)
> -#define PRM_RSTCTRL_IVA2_RST2_MASK (u32)(0x2)
> -#define PRM_RSTCTRL_IVA2_RST2_OFFSET (u32)(0x1)
> -#define PRM_RSTCTRL_IVA2_RST3_MASK (u32)(0x4)
> -#define PRM_RSTCTRL_IVA2_RST3_OFFSET (u32)(0x2)
> -
> -/* The following represent the enumerated values for each bitfield */
> -
> -enum prcmprcm_clkcfg_ctrl_valid_config_e {
> - PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_UPDATED = 0x0000,
> - PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_CLK_VALID = 0x0001
> -};
> -
> -enum prcmcm_clksel2_coreclksel_gpt8e {
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT832K = 0x0000,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT8_SYS = 0x0001,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT8_EXT = 0x0002,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT8_RESERVED = 0x0003
> -};
> -
> -enum prcmcm_clksel2_coreclksel_gpt7e {
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT732K = 0x0000,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT7_SYS = 0x0001,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT7_EXT = 0x0002,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT7_RESERVED = 0x0003
> -};
> -
> -enum prcmcm_clksel2_coreclksel_gpt6e {
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT632K = 0x0000,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT6_SYS = 0x0001,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT6_EXT = 0x0002,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT6_RESERVED = 0x0003
> -};
> -
> -enum prcmcm_clksel2_coreclksel_gpt5e {
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT532K = 0x0000,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT5_SYS = 0x0001,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT5_EXT = 0x0002,
> - PRCMCM_CLKSEL2_CORECLKSEL_GPT5_RESERVED = 0x0003
> -};
> -
> -enum prcmpm_pwstctrl_dsp_power_state_e {
> - PRCMPM_PWSTCTRL_DSP_POWER_STATE_ON = 0x0000,
> - PRCMPM_PWSTCTRL_DSP_POWER_STATE_RET = 0x0001,
> - PRCMPM_PWSTCTRL_DSP_POWER_STATE_RESERVED = 0x0002,
> - PRCMPM_PWSTCTRL_DSP_POWER_STATE_OFF = 0x0003
> -};
> -
> -enum prcmpm_pwstctrl_iva2_power_state_e {
> - PRCMPM_PWSTCTRL_IVA2_POWER_STATE_ON = 0x0003,
> - PRCMPM_PWSTCTRL_IVA2_POWER_STATE_RET = 0x0001,
> - PRCMPM_PWSTCTRL_IVA2_POWER_STATE_RESERVED = 0x0002,
> - PRCMPM_PWSTCTRL_IVA2_POWER_STATE_OFF = 0x0000
> -};
> -
> -#endif /* _PRCM_ACC_INT_H */
> diff --git a/drivers/dsp/bridge/hw/PRCMRegAcM.h b/drivers/dsp/bridge/hw/PRCMRegAcM.h
> deleted file mode 100644
> index b941925..0000000
> --- a/drivers/dsp/bridge/hw/PRCMRegAcM.h
> +++ /dev/null
> @@ -1,615 +0,0 @@
> -/*
> - * PRCMRegAcM.h
> - *
> - * DSP-BIOS Bridge driver support functions for TI OMAP processors.
> - *
> - * Copyright (C) 2007 Texas Instruments, Inc.
> - *
> - * This package 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.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - */
> -
> -#ifndef _PRCM_REG_ACM_H
> -#define _PRCM_REG_ACM_H
> -
> -#include <GlobalTypes.h>
> -#include <linux/io.h>
> -
> -#include <EasiGlobal.h>
> -
> -#include "PRCMAccInt.h"
> -
> -#if defined(USE_LEVEL_1_MACROS)
> -
> -#define PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_WRITE_CLK_VALID32(baseAddress)\
> -{\
> - const u32 offset = PRCM_PRCM_CLKCFG_CTRL_OFFSET;\
> - const u32 newValue = \
> - (u32)PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_CLK_VALID <<\
> - PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(\
> - EASIL1_PRCMPRCM_CLKCFG_CTRL_VALID_CONFIG_WRITE_CLK_VALID32);\
> - data &= ~(PRCM_PRCM_CLKCFG_CTRL_VALID_CONFIG_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define CM_FCLKEN_PER_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32),\
> - __raw_readl(((u32)(baseAddress))+CM_FCLKEN_PER_OFFSET))
> -
> -#define CM_ICLKEN_PER_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32),\
> - __raw_readl(((u32)(baseAddress))+CM_ICLKEN_PER_OFFSET))
> -
> -#define CM_FCLKEN_PER_GPT5_WRITE_REGISTER32(baseAddress, value)\
> -{\
> - const u32 offset = CM_FCLKEN_PER_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_CM_FCLKEN_PER_GPT5_WRITE_REGISTER32);\
> - data &= ~(CM_FCLKEN_PER_GPT5_MASK);\
> - newValue <<= CM_FCLKEN_PER_GPT5_OFFSET;\
> - newValue &= CM_FCLKEN_PER_GPT5_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, ((u32)(baseAddress))+offset);\
> -}
> -
> -#define CM_FCLKEN_PER_GPT6_WRITE_REGISTER32(baseAddress, value)\
> -{\
> - const u32 offset = CM_FCLKEN_PER_OFFSET;\
> - register u32 data =\
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_CM_FCLKEN_PER_GPT5_WRITE_REGISTER32);\
> - data &= ~(CM_FCLKEN_PER_GPT6_MASK);\
> - newValue <<= CM_FCLKEN_PER_GPT6_OFFSET;\
> - newValue &= CM_FCLKEN_PER_GPT6_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, ((u32)(baseAddress))+offset);\
> -}
> -
> -#define CM_ICLKEN_PER_GPT5_WRITE_REGISTER32(baseAddress, value)\
> -{\
> - const u32 offset = CM_ICLKEN_PER_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_CM_ICLKEN_PER_GPT5_WRITE_REGISTER32);\
> - data &= ~(CM_ICLKEN_PER_GPT5_MASK);\
> - newValue <<= CM_ICLKEN_PER_GPT5_OFFSET;\
> - newValue &= CM_ICLKEN_PER_GPT5_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, ((u32)(baseAddress))+offset);\
> -}
> -
> -#define CM_ICLKEN_PER_GPT6_WRITE_REGISTER32(baseAddress, value)\
> -{\
> - const u32 offset = CM_ICLKEN_PER_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_CM_ICLKEN_PER_GPT5_WRITE_REGISTER32);\
> - data &= ~(CM_ICLKEN_PER_GPT6_MASK);\
> - newValue <<= CM_ICLKEN_PER_GPT6_OFFSET;\
> - newValue &= CM_ICLKEN_PER_GPT6_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, ((u32)(baseAddress))+offset);\
> -}
> -
> -#define CM_FCLKEN1_CORE_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_CORE_READ_REGISTER32),\
> - __raw_readl(((u32)(baseAddress))+CM_FCLKEN1_CORE_OFFSET))
> -
> -#define PRCMCM_FCLKEN1_COREEN_GPT8_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_FCLKEN1_CORE_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_COREEN_GPT8_WRITE32);\
> - data &= ~(PRCM_CM_FCLKEN1_CORE_EN_GPT8_MASK);\
> - newValue <<= PRCM_CM_FCLKEN1_CORE_EN_GPT8_OFFSET;\
> - newValue &= PRCM_CM_FCLKEN1_CORE_EN_GPT8_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_FCLKEN1_COREEN_GPT7_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_FCLKEN1_CORE_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN1_COREEN_GPT7_WRITE32);\
> - data &= ~(PRCM_CM_FCLKEN1_CORE_EN_GPT7_MASK);\
> - newValue <<= PRCM_CM_FCLKEN1_CORE_EN_GPT7_OFFSET;\
> - newValue &= PRCM_CM_FCLKEN1_CORE_EN_GPT7_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define CM_ICLKEN1_CORE_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_CORE_READ_REGISTER32),\
> - __raw_readl(((u32)(baseAddress))+CM_ICLKEN1_CORE_OFFSET))
> -
> -#define CM_ICLKEN1_COREEN_MAILBOXES_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = CM_ICLKEN1_CORE_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_COREEN_MAILBOXES_WRITE32);\
> - data &= ~(CM_ICLKEN1_CORE_EN_MAILBOXES_MASK);\
> - newValue <<= CM_ICLKEN1_CORE_EN_MAILBOXES_OFFSET;\
> - newValue &= CM_ICLKEN1_CORE_EN_MAILBOXES_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_ICLKEN1_COREEN_GPT8_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_ICLKEN1_CORE_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_COREEN_GPT8_WRITE32);\
> - data &= ~(PRCM_CM_ICLKEN1_CORE_EN_GPT8_MASK);\
> - newValue <<= PRCM_CM_ICLKEN1_CORE_EN_GPT8_OFFSET;\
> - newValue &= PRCM_CM_ICLKEN1_CORE_EN_GPT8_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_ICLKEN1_COREEN_GPT7_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_ICLKEN1_CORE_OFFSET;\
> - register u32 data =\
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN1_COREEN_GPT7_WRITE32);\
> - data &= ~(PRCM_CM_ICLKEN1_CORE_EN_GPT7_MASK);\
> - newValue <<= PRCM_CM_ICLKEN1_CORE_EN_GPT7_OFFSET;\
> - newValue &= PRCM_CM_ICLKEN1_CORE_EN_GPT7_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE32K32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT832K <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE32K32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_SYS32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT8_SYS <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_SYS32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_EXT32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT8_EXT <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT8_WRITE_EXT32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT8_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE32K32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT732K <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE32K32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_SYS32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT7_SYS <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_SYS32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_EXT32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT7_EXT <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT7_WRITE_EXT32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT7_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_SYS32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT6_SYS <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_SYS32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_EXT32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT6_EXT <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT6_WRITE_EXT32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT6_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define CM_CLKSEL_PER_GPT5_WRITE32K32(baseAddress)\
> -{\
> - const u32 offset = CM_CLKSEL_PER_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT532K <<\
> - CM_CLKSEL_PER_GPT5_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_CM_CLKSEL_PER_GPT5_WRITE32K32);\
> - data &= ~(CM_CLKSEL_PER_GPT5_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define CM_CLKSEL_PER_GPT6_WRITE32K32(baseAddress)\
> -{\
> - const u32 offset = CM_CLKSEL_PER_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT532K <<\
> - CM_CLKSEL_PER_GPT6_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_CM_CLKSEL_PER_GPT6_WRITE32K32);\
> - data &= ~(CM_CLKSEL_PER_GPT6_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_SYS32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT5_SYS <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_SYS32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_EXT32(baseAddress)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL2_CORE_OFFSET;\
> - const u32 newValue = (u32)PRCMCM_CLKSEL2_CORECLKSEL_GPT5_EXT <<\
> - PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_OFFSET;\
> - register u32 data = __raw_readl((u32)(baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL2_CORECLKSEL_GPT5_WRITE_EXT32);\
> - data &= ~(PRCM_CM_CLKSEL2_CORE_CLKSEL_GPT5_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL1_PLLAPL_LS_CLKIN_READ32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL1_PLLAPL_LS_CLKIN_READ32),\
> - (((__raw_readl((((u32)(baseAddress))+\
> - (PRCM_CM_CLKSEL1_PLL_OFFSET)))) &\
> - PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_MASK) >>\
> - PRCM_CM_CLKSEL1_PLL_APL_LS_CLKIN_OFFSET))
> -
> -#define CM_FCLKEN_IVA2EN_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = CM_FCLKEN_IVA2_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_FCLKEN_DSPEN_DSP_WRITE32);\
> - data &= ~(CM_FCLKEN_IVA2_EN_MASK);\
> - newValue <<= CM_FCLKEN_IVA2_EN_OFFSET;\
> - newValue &= CM_FCLKEN_IVA2_EN_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_ICLKEN_DSPEN_DSP_IPI_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_ICLKEN_DSP_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_ICLKEN_DSPEN_DSP_IPI_WRITE32);\
> - data &= ~(PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_MASK);\
> - newValue <<= PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_OFFSET;\
> - newValue &= PRCM_CM_ICLKEN_DSP_EN_DSP_IPI_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_IDLEST_DSP_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_IDLEST_DSP_READ_REGISTER32),\
> - __raw_readl(((u32)(baseAddress))+PRCM_CM_IDLEST_DSP_OFFSET))
> -
> -#define PRCMCM_IDLEST_DSPST_IPI_READ32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_IDLEST_DSPST_IPI_READ32),\
> - (((__raw_readl((((u32)(baseAddress))+\
> - (PRCM_CM_IDLEST_DSP_OFFSET)))) &\
> - PRCM_CM_IDLEST_DSP_ST_IPI_MASK) >>\
> - PRCM_CM_IDLEST_DSP_ST_IPI_OFFSET))
> -
> -#define PRM_IDLEST_IVA2ST_IVA2_READ32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_IDLEST_DSPST_DSP_READ32),\
> - (((__raw_readl((((u32)(baseAddress))+\
> - (CM_IDLEST_IVA2_OFFSET)))) &\
> - CM_IDLEST_IVA2_ST_IVA2_MASK) >>\
> - CM_IDLEST_IVA2_ST_IVA2_OFFSET))
> -
> -#define PRCMCM_AUTOIDLE_DSPAUTO_DSP_IPI_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_AUTOIDLE_DSP_OFFSET;\
> - register u32 data =\
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_AUTOIDLE_DSPAUTO_DSP_IPI_WRITE32);\
> - data &= ~(PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_MASK);\
> - newValue <<= PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_OFFSET;\
> - newValue &= PRCM_CM_AUTOIDLE_DSP_AUTO_DSP_IPI_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL_DSPSYNC_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL_DSP_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL_DSPSYNC_DSP_WRITE32);\
> - data &= ~(PRCM_CM_CLKSEL_DSP_SYNC_DSP_MASK);\
> - newValue <<= PRCM_CM_CLKSEL_DSP_SYNC_DSP_OFFSET;\
> - newValue &= PRCM_CM_CLKSEL_DSP_SYNC_DSP_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL_DSPCLKSEL_DSP_IF_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL_DSP_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_IF_WRITE32);\
> - data &= ~(PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_MASK);\
> - newValue <<= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_OFFSET;\
> - newValue &= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_IF_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSEL_DSPCLKSEL_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_CLKSEL_DSP_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSEL_DSPCLKSEL_DSP_WRITE32);\
> - data &= ~(PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_MASK);\
> - newValue <<= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_OFFSET;\
> - newValue &= PRCM_CM_CLKSEL_DSP_CLKSEL_DSP_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_CLKSTCTRL_IVA2_OFFSET;\
> - register u32 data = \
> - __raw_readl(((baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32);\
> - data &= ~(CM_CLKSTCTRL_IVA2_MASK);\
> - newValue <<= CM_CLKSTCTRL_IVA2_OFFSET;\
> - newValue &= CM_CLKSTCTRL_IVA2_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (baseAddress)+offset);\
> -}
> -
> -#define PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_READ32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_READ32),\
> - (((__raw_readl((((u32)(baseAddress))+\
> - (PRCM_CM_CLKSTCTRL_DSP_OFFSET)))) &\
> - PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK) >>\
> - PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_OFFSET))
> -
> -#define PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_CM_CLKSTCTRL_DSP_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMCM_CLKSTCTRL_DSP_AUTOSTATE_DSP_WRITE32);\
> - data &= ~(PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK);\
> - newValue <<= PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_OFFSET;\
> - newValue &= PRCM_CM_CLKSTCTRL_DSP_AUTOSTATE_DSP_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMRM_RSTCTRL_DSP_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSP_READ_REGISTER32),\
> - __raw_readl(((baseAddress))+PRCM_RM_RSTCTRL_DSP_OFFSET))
> -
> -#define PRM_RSTCTRL_IVA2RST1_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRM_RSTCTRL_IVA2_OFFSET;\
> - register u32 data =\
> - __raw_readl(((baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32);\
> - data &= ~(PRM_RSTCTRL_IVA2_RST1_MASK);\
> - newValue <<= PRM_RSTCTRL_IVA2_RST1_OFFSET;\
> - newValue &= PRM_RSTCTRL_IVA2_RST1_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (baseAddress)+offset);\
> -}
> -
> -#define PRM_RSTCTRL_IVA2RST2_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRM_RSTCTRL_IVA2_OFFSET;\
> - register u32 data =\
> - __raw_readl(((baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32);\
> - data &= ~(PRM_RSTCTRL_IVA2_RST2_MASK);\
> - newValue <<= PRM_RSTCTRL_IVA2_RST2_OFFSET;\
> - newValue &= PRM_RSTCTRL_IVA2_RST2_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (baseAddress)+offset);\
> -}
> -
> -#define PRM_RSTCTRL_IVA2RST3_DSP_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRM_RSTCTRL_IVA2_OFFSET;\
> - register u32 data =\
> - __raw_readl(((baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTCTRL_DSPRST1_DSP_WRITE32);\
> - data &= ~(PRM_RSTCTRL_IVA2_RST3_MASK);\
> - newValue <<= PRM_RSTCTRL_IVA2_RST3_OFFSET;\
> - newValue &= PRM_RSTCTRL_IVA2_RST3_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (baseAddress)+offset);\
> -}
> -
> -#define PRCMRM_RSTST_DSP_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTST_DSP_READ_REGISTER32),\
> - __raw_readl(((baseAddress))+PRCM_RM_RSTST_DSP_OFFSET))
> -
> -#define PRCMRM_RSTST_DSP_WRITE_REGISTER32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_RM_RSTST_DSP_OFFSET;\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMRM_RSTST_DSP_WRITE_REGISTER32);\
> - __raw_writel(newValue, ((u32)(baseAddress))+offset);\
> -}
> -
> -#define PRCMPM_PWSTCTRL_DSP_FORCE_STATE_WRITE32(baseAddress, value)\
> -{\
> - const u32 offset = PRCM_PM_PWSTCTRL_DSP_OFFSET;\
> - register u32 data = \
> - __raw_readl(((u32)(baseAddress))+offset);\
> - register u32 newValue = ((u32)(value));\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_DSP_FORCE_STATE_WRITE32);\
> - data &= ~(PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_MASK);\
> - newValue <<= PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_OFFSET;\
> - newValue &= PRCM_PM_PWSTCTRL_DSP_FORCE_STATE_MASK;\
> - newValue |= data;\
> - __raw_writel(newValue, (u32)(baseAddress)+offset);\
> -}
> -
> -#define PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32(baseAddress)\
> -{\
> - const u32 offset = PRCM_PM_PWSTCTRL_IVA2_OFFSET;\
> - const u32 newValue = (u32)PRCMPM_PWSTCTRL_IVA2_POWER_STATE_ON <<\
> - PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_OFFSET;\
> - register u32 data = __raw_readl((baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32);\
> - data &= ~(PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (baseAddress)+offset);\
> -}
> -
> -#define PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32(baseAddress)\
> -{\
> - const u32 offset = PRCM_PM_PWSTCTRL_IVA2_OFFSET;\
> - const u32 newValue = (u32)PRCMPM_PWSTCTRL_IVA2_POWER_STATE_OFF <<\
> - PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_OFFSET;\
> - register u32 data = __raw_readl((baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32);\
> - data &= ~(PRCM_PM_PWSTCTRL_IVA2_POWER_STATE_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (baseAddress)+offset);\
> -}
> -
> -#define PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32(baseAddress)\
> -{\
> - const u32 offset = PRCM_PM_PWSTCTRL_DSP_OFFSET;\
> - const u32 newValue = (u32)PRCMPM_PWSTCTRL_DSP_POWER_STATE_RET <<\
> - PRCM_PM_PWSTCTRL_DSP_POWER_STATE_OFFSET;\
> - register u32 data = __raw_readl((baseAddress)+offset);\
> - _DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32);\
> - data &= ~(PRCM_PM_PWSTCTRL_DSP_POWER_STATE_MASK);\
> - data |= newValue;\
> - __raw_writel(data, (baseAddress)+offset);\
> -}
> -
> -#define PRCMPM_PWSTST_DSP_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_DSP_READ_REGISTER32),\
> - __raw_readl(((u32)(baseAddress))+PRCM_PM_PWSTST_DSP_OFFSET))
> -
> -#define PRCMPM_PWSTST_IVA2_READ_REGISTER32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_IVA2_READ_REGISTER32),\
> - __raw_readl((baseAddress) + PRCM_PM_PWSTST_IVA2_OFFSET))
> -
> -#define PRCMPM_PWSTST_DSP_IN_TRANSITION_READ32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_DSP_IN_TRANSITION_READ32),\
> - (((__raw_readl((((u32)(baseAddress))+\
> - (PRCM_PM_PWSTST_DSP_OFFSET)))) &\
> - PRCM_PM_PWSTST_DSP_IN_TRANSITION_MASK) >>\
> - PRCM_PM_PWSTST_DSP_IN_TRANSITION_OFFSET))
> -
> -#define PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32(baseAddress)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32),\
> - (((__raw_readl((((baseAddress))+\
> - (PRCM_PM_PWSTST_IVA2_OFFSET)))) &\
> - PRCM_PM_PWSTST_IVA2_IN_TRANSITION_MASK) >>\
> - PRCM_PM_PWSTST_IVA2_IN_TRANSITION_OFFSET))
> -
> -#define PRCMPM_PWSTST_DSP_POWER_STATE_ST_GET32(var)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_DSP_POWER_STATE_ST_GET32),\
> - (u32)((((u32)(var)) & PRCM_PM_PWSTST_DSP_POWER_STATE_ST_MASK) >>\
> - PRCM_PM_PWSTST_DSP_POWER_STATE_ST_OFFSET))
> -
> -#define PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32(var)\
> - (_DEBUG_LEVEL1_EASI(EASIL1_PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32),\
> - (u32)((((u32)(var)) & PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_MASK) >>\
> - PRCM_PM_PWSTST_IVA2_POWER_STATE_ST_OFFSET))
> -
> -#endif /* USE_LEVEL_1_MACROS */
> -
> -#endif /* _PRCM_REG_ACM_H */
> diff --git a/drivers/dsp/bridge/hw/hw_prcm.c b/drivers/dsp/bridge/hw/hw_prcm.c
> deleted file mode 100644
> index 8c95dac..0000000
> --- a/drivers/dsp/bridge/hw/hw_prcm.c
> +++ /dev/null
> @@ -1,161 +0,0 @@
> -/*
> - * hw_prcm.c
> - *
> - * DSP-BIOS Bridge driver support functions for TI OMAP processors.
> - *
> - * API definitions to configure PRCM (Power, Reset & Clocks Manager)
> - *
> - * Copyright (C) 2007 Texas Instruments, Inc.
> - *
> - * This package 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.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - */
> -
> -#include <GlobalTypes.h>
> -#include "PRCMRegAcM.h"
> -#include <hw_defs.h>
> -#include <hw_prcm.h>
> -
> -static hw_status hw_rst_write_val(const void __iomem *baseAddress,
> - enum hw_rst_module_t r, s8 val);
> -
> -hw_status hw_rst_reset(const void __iomem *baseAddress, enum hw_rst_module_t r)
> -{
> - return hw_rst_write_val(baseAddress, r, HW_SET);
> -}
> -
> -hw_status hw_rst_un_reset(const void __iomem *baseAddress,
> - enum hw_rst_module_t r)
> -{
> - return hw_rst_write_val(baseAddress, r, HW_CLEAR);
> -}
> -
> -static hw_status hw_rst_write_val(const void __iomem *baseAddress,
> - enum hw_rst_module_t r, s8 val)
> -{
> - hw_status status = RET_OK;
> -
> - switch (r) {
> - case HW_RST1_IVA2:
> - PRM_RSTCTRL_IVA2RST1_DSP_WRITE32(baseAddress, val);
> - break;
> - case HW_RST2_IVA2:
> - PRM_RSTCTRL_IVA2RST2_DSP_WRITE32(baseAddress, val);
> - break;
> - case HW_RST3_IVA2:
> - PRM_RSTCTRL_IVA2RST3_DSP_WRITE32(baseAddress, val);
> - break;
> - default:
> - status = RET_FAIL;
> - break;
> - }
> - return status;
> -}
> -
> -hw_status hw_pwr_iva2_state_get(const void __iomem *baseAddress,
> - enum hw_pwr_module_t p,
> - enum hw_pwr_state_t *value)
> -{
> - hw_status status = RET_OK;
> - u32 temp;
> -
> - switch (p) {
> - case HW_PWR_DOMAIN_DSP:
> - /* wait until Transition is complete */
> - do {
> - /* mdelay(1); */
> - temp = PRCMPM_PWSTST_IVA2_IN_TRANSITION_READ32
> - (baseAddress);
> -
> - } while (temp);
> -
> - temp = PRCMPM_PWSTST_IVA2_READ_REGISTER32(baseAddress);
> - *value = PRCMPM_PWSTST_IVA2_POWER_STATE_ST_GET32(temp);
> - break;
> -
> - default:
> - status = RET_FAIL;
> - break;
> - }
> - return status;
> -}
> -
> -hw_status hw_pwrst_iva2_reg_get(const void __iomem *baseAddress, u32 *value)
> -{
> - hw_status status = RET_OK;
> -
> - *value = PRCMPM_PWSTST_IVA2_READ_REGISTER32(baseAddress);
> -
> - return status;
> -}
> -
> -hw_status hw_pwr_iva2_power_state_set(const void __iomem *baseAddress,
> - enum hw_pwr_module_t p,
> - enum hw_pwr_state_t value)
> -{
> - hw_status status = RET_OK;
> -
> - switch (p) {
> - case HW_PWR_DOMAIN_DSP:
> - switch (value) {
> - case HW_PWR_STATE_ON:
> - PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_ON32
> - (baseAddress);
> - break;
> - case HW_PWR_STATE_RET:
> - PRCMPM_PWSTCTRL_DSP_POWER_STATE_WRITE_RET32
> - (baseAddress);
> - break;
> - case HW_PWR_STATE_OFF:
> - PRCMPM_PWSTCTRL_IVA2_POWER_STATE_WRITE_OFF32
> - (baseAddress);
> - break;
> - default:
> - status = RET_FAIL;
> - break;
> - }
> - break;
> -
> - default:
> - status = RET_FAIL;
> - break;
> - }
> -
> - return status;
> -}
> -
> -hw_status hw_pwr_clkctrl_iva2_reg_set(const void __iomem *baseAddress,
> - enum hw_transition_state_t val)
> -{
> - hw_status status = RET_OK;
> -
> - PRCMCM_CLKSTCTRL_IVA2_WRITE_REGISTER32(baseAddress, val);
> -
> - return status;
> -
> -}
> -
> -hw_status hw_rstst_reg_get(const void __iomem *baseAddress,
> - enum hw_rst_module_t m, u32 *value)
> -{
> - hw_status status = RET_OK;
> -
> - *value = PRCMRM_RSTST_DSP_READ_REGISTER32(baseAddress);
> -
> - return status;
> -}
> -
> -hw_status hw_rstctrl_reg_get(const void __iomem *baseAddress,
> - enum hw_rst_module_t m, u32 *value)
> -{
> - hw_status status = RET_OK;
> -
> - *value = PRCMRM_RSTCTRL_DSP_READ_REGISTER32(baseAddress);
> -
> - return status;
> -}
> diff --git a/drivers/dsp/bridge/hw/hw_prcm.h b/drivers/dsp/bridge/hw/hw_prcm.h
> deleted file mode 100644
> index fd07f32..0000000
> --- a/drivers/dsp/bridge/hw/hw_prcm.h
> +++ /dev/null
> @@ -1,156 +0,0 @@
> -/*
> - * hw_prcm.h
> - *
> - * DSP-BIOS Bridge driver support functions for TI OMAP processors.
> - *
> - * PRCM types and API declarations
> - *
> - * Copyright (C) 2007 Texas Instruments, Inc.
> - *
> - * This package 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.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - */
> -
> -#ifndef _HW_PRCM_H
> -#define _HW_PRCM_H
> -
> -/* HW_ClkModule: Enumerated Type used to specify the clock domain */
> -
> -enum hw_clk_module_t {
> -/* DSP Domain */
> - HW_CLK_DSP_CPU,
> - HW_CLK_DSP_IPI_MMU,
> - HW_CLK_IVA_ARM,
> - HW_CLK_IVA_COP, /* IVA Coprocessor */
> -
> -/* Core Domain */
> - HW_CLK_FN_WDT4, /* Functional Clock */
> - HW_CLK_FN_WDT3,
> - HW_CLK_FN_UART2,
> - HW_CLK_FN_UART1,
> - HW_CLK_GPT5,
> - HW_CLK_GPT6,
> - HW_CLK_GPT7,
> - HW_CLK_GPT8,
> -
> - HW_CLK_IF_WDT4, /* Interface Clock */
> - HW_CLK_IF_WDT3,
> - HW_CLK_IF_UART2,
> - HW_CLK_IF_UART1,
> - HW_CLK_IF_MBOX
> -};
> -
> -enum hw_clk_subsys_t {
> - HW_CLK_DSPSS,
> - HW_CLK_IVASS
> -};
> -
> -/* HW_GPtimers: General purpose timers */
> -enum hw_g_ptimer_t {
> - HW_GPT5 = 5,
> - HW_GPT6 = 6,
> - HW_GPT7 = 7,
> - HW_GPT8 = 8
> -};
> -
> -/* GP timers Input clock type: General purpose timers */
> -enum hw_clocktype_t {
> - HW_CLK32K_HZ = 0,
> - HW_CLK_SYS = 1,
> - HW_CLK_EXT = 2
> -};
> -
> -/* HW_ClkDiv: Clock divisors */
> -enum hw_clk_div_t {
> - HW_CLK_DIV1 = 0x1,
> - HW_CLK_DIV2 = 0x2,
> - HW_CLK_DIV3 = 0x3,
> - HW_CLK_DIV4 = 0x4,
> - HW_CLK_DIV6 = 0x6,
> - HW_CLK_DIV8 = 0x8,
> - HW_CLK_DIV12 = 0xC
> -};
> -
> -/* HW_RstModule: Enumerated Type used to specify the module to be reset */
> -enum hw_rst_module_t {
> - HW_RST1_IVA2, /* Reset the DSP */
> - HW_RST2_IVA2, /* Reset MMU and LEON HWa */
> - HW_RST3_IVA2 /* Reset LEON sequencer */
> -};
> -
> -/* HW_PwrModule: Enumerated Type used to specify the power domain */
> -enum hw_pwr_module_t {
> -/* Domains */
> - HW_PWR_DOMAIN_CORE,
> - HW_PWR_DOMAIN_MPU,
> - HW_PWR_DOMAIN_WAKEUP,
> - HW_PWR_DOMAIN_DSP,
> -
> -/* Sub-domains */
> - HW_PWR_DSP_IPI, /* IPI = Intrusive Port Interface */
> - HW_PWR_IVA_ISP /* ISP = Intrusive Slave Port */
> -};
> -
> -enum hw_pwr_state_t {
> - HW_PWR_STATE_OFF,
> - HW_PWR_STATE_RET,
> - HW_PWR_STATE_INACT,
> - HW_PWR_STATE_ON = 3
> -};
> -
> -enum hw_force_state_t {
> - HW_FORCE_OFF,
> - HW_FORCE_ON
> -};
> -
> -enum hw_idle_state_t {
> - HW_ACTIVE,
> - HW_STANDBY
> -};
> -
> -enum hw_transition_state_t {
> - HW_AUTOTRANS_DIS,
> - HW_SW_SUP_SLEEP,
> - HW_SW_SUP_WAKEUP,
> - HW_AUTOTRANS_EN
> -};
> -
> -extern hw_status hw_rst_reset(const void __iomem *baseAddress,
> - enum hw_rst_module_t r);
> -
> -extern hw_status hw_rst_un_reset(const void __iomem *baseAddress,
> - enum hw_rst_module_t r);
> -
> -extern hw_status hw_rstctrl_reg_get(const void __iomem *baseAddress,
> - enum hw_rst_module_t p, u32 *value);
> -extern hw_status hw_rstst_reg_get(const void __iomem *baseAddress,
> - enum hw_rst_module_t p, u32 *value);
> -
> -extern hw_status hw_pwr_power_state_set(const u32 baseAddress,
> - enum hw_pwr_module_t p,
> - enum hw_pwr_state_t value);
> -
> -extern hw_status hw_clk_set_input_clock(const u32 baseAddress,
> - enum hw_g_ptimer_t gpt,
> - enum hw_clocktype_t c);
> -
> -extern hw_status hw_pwr_iva2_state_get(const void __iomem *baseAddress,
> - enum hw_pwr_module_t p,
> - enum hw_pwr_state_t *value);
> -
> -extern hw_status hw_pwrst_iva2_reg_get(const void __iomem *baseAddress,
> - u32 *value);
> -
> -extern hw_status hw_pwr_iva2_power_state_set(const void __iomem *baseAddress,
> - enum hw_pwr_module_t p,
> - enum hw_pwr_state_t value);
> -
> -extern hw_status hw_pwr_clkctrl_iva2_reg_set(const void __iomem *baseAddress,
> - enum hw_transition_state_t val);
> -
> -#endif /* _HW_PRCM_H */
> diff --git a/drivers/dsp/bridge/rmgr/drv.c b/drivers/dsp/bridge/rmgr/drv.c
> index fe9ae06..3ab2e3c 100644
> --- a/drivers/dsp/bridge/rmgr/drv.c
> +++ b/drivers/dsp/bridge/rmgr/drv.c
> @@ -892,10 +892,6 @@ static dsp_status request_bridge_resources(u32 dw_context, s32 bRequest)
> host_res->dw_mem_base[1] = 0;
> host_res->dw_mem_phys[1] = 0;
>
> - if (host_res->dw_prm_base)
> - iounmap(host_res->dw_prm_base);
> - if (host_res->dw_cm_base)
> - iounmap(host_res->dw_cm_base);
> if (host_res->dw_mem_base[0])
> iounmap((void *)host_res->dw_mem_base[0]);
> if (host_res->dw_mem_base[2])
> @@ -915,8 +911,6 @@ static dsp_status request_bridge_resources(u32 dw_context, s32 bRequest)
> if (host_res->dw_sys_ctrl_base)
> iounmap(host_res->dw_sys_ctrl_base);
>
> - host_res->dw_prm_base = NULL;
> - host_res->dw_cm_base = NULL;
> host_res->dw_mem_base[0] = (u32) NULL;
> host_res->dw_mem_base[2] = (u32) NULL;
> host_res->dw_mem_base[3] = (u32) NULL;
> @@ -941,18 +935,12 @@ static dsp_status request_bridge_resources(u32 dw_context, s32 bRequest)
> host_res->num_mem_windows = 2;
> /* First window is for DSP internal memory */
>
> - host_res->dw_prm_base = ioremap(OMAP_IVA2_PRM_BASE,
> - OMAP_IVA2_PRM_SIZE);
> - host_res->dw_cm_base = ioremap(OMAP_IVA2_CM_BASE,
> - OMAP_IVA2_CM_SIZE);
> host_res->dw_sys_ctrl_base = ioremap(OMAP_SYSC_BASE,
> OMAP_SYSC_SIZE);
> dev_dbg(bridge, "dw_mem_base[0] 0x%x\n",
> host_res->dw_mem_base[0]);
> dev_dbg(bridge, "dw_mem_base[3] 0x%x\n",
> host_res->dw_mem_base[3]);
> - dev_dbg(bridge, "dw_prm_base %p\n", host_res->dw_prm_base);
> - dev_dbg(bridge, "dw_cm_base %p\n", host_res->dw_cm_base);
> dev_dbg(bridge, "dw_dmmu_base %p\n", host_res->dw_dmmu_base);
>
> /* for 24xx base port is not mapping the mamory for DSP
> @@ -1038,8 +1026,6 @@ static dsp_status request_bridge_resources_dsp(u32 dw_context, s32 bRequest)
> host_res->dw_mem_base[3]);
> dev_dbg(bridge, "dw_mem_base[4] 0x%x\n",
> host_res->dw_mem_base[4]);
> - dev_dbg(bridge, "dw_prm_base %p\n", host_res->dw_prm_base);
> - dev_dbg(bridge, "dw_cm_base %p\n", host_res->dw_cm_base);
> dev_dbg(bridge, "dw_dmmu_base %p\n", host_res->dw_dmmu_base);
> dw_buff_size = sizeof(shm_size);
> status =
> diff --git a/drivers/dsp/bridge/wmd/_tiomap.h b/drivers/dsp/bridge/wmd/_tiomap.h
> index 71ef731..a23c373 100644
> --- a/drivers/dsp/bridge/wmd/_tiomap.h
> +++ b/drivers/dsp/bridge/wmd/_tiomap.h
> @@ -19,6 +19,10 @@
> #ifndef _TIOMAP_
> #define _TIOMAP_
>
> +#include <plat/powerdomain.h>
> +#include <plat/clockdomain.h>
> +#include <mach-omap2/prm-regbits-34xx.h>
> +#include <mach-omap2/cm-regbits-34xx.h>
> #include <dspbridge/devdefs.h>
> #include <hw_defs.h>
> #include <dspbridge/wmdioctl.h> /* for wmdioctl_extproc defn */
> diff --git a/drivers/dsp/bridge/wmd/tiomap3430.c b/drivers/dsp/bridge/wmd/tiomap3430.c
> index ff47edb..9f3575f 100644
> --- a/drivers/dsp/bridge/wmd/tiomap3430.c
> +++ b/drivers/dsp/bridge/wmd/tiomap3430.c
> @@ -20,10 +20,6 @@
> #include <dspbridge/host_os.h>
> #include <linux/mm.h>
> #include <linux/mmzone.h>
> -#include <mach-omap2/prm.h>
> -#include <mach-omap2/cm.h>
> -#include <mach-omap2/prm-regbits-34xx.h>
> -#include <mach-omap2/cm-regbits-34xx.h>
> #include <plat/control.h>
>
> /* ----------------------------------- DSP/BIOS Bridge */
> @@ -43,7 +39,6 @@
>
> /* ------------------------------------ Hardware Abstraction Layer */
> #include <hw_defs.h>
> -#include <hw_prcm.h>
> #include <hw_mmu.h>
>
> /* ----------------------------------- Link Driver */
> @@ -129,37 +124,6 @@ static dsp_status mem_map_vmalloc(struct wmd_dev_context *hDevContext,
> u32 ul_num_bytes,
> struct hw_mmu_map_attrs_t *hw_attrs);
>
> -#ifdef CONFIG_BRIDGE_DEBUG
> -static void get_hw_regs(void __iomem *prm_base, void __iomem *cm_base)
> -{
> - u32 temp;
> - temp = __raw_readl((cm_base) + 0x00);
> - dev_dbg(bridge, "CM_FCLKEN_IVA2 = 0x%x\n", temp);
> - temp = __raw_readl((cm_base) + 0x10);
> - dev_dbg(bridge, "CM_ICLKEN1_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((cm_base) + 0x20);
> - dev_dbg(bridge, "CM_IDLEST_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((cm_base) + 0x48);
> - dev_dbg(bridge, "CM_CLKSTCTRL_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((cm_base) + 0x4c);
> - dev_dbg(bridge, "CM_CLKSTST_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((prm_base) + 0x50);
> - dev_dbg(bridge, "RM_RSTCTRL_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((prm_base) + 0x58);
> - dev_dbg(bridge, "RM_RSTST_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((prm_base) + 0xE0);
> - dev_dbg(bridge, "PM_PWSTCTRL_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((prm_base) + 0xE4);
> - dev_dbg(bridge, "PM_PWSTST_IVA2 = 0x%x \n", temp);
> - temp = __raw_readl((cm_base) + 0xA10);
> - dev_dbg(bridge, "CM_ICLKEN1_CORE = 0x%x \n", temp);
> -}
> -#else
> -static inline void get_hw_regs(void __iomem *prm_base, void __iomem *cm_base)
> -{
> -}
> -#endif
> -
> /* ----------------------------------- Globals */
>
> /* Attributes of L2 page tables for DSP MMU */
> @@ -319,44 +283,37 @@ static dsp_status bridge_brd_monitor(struct wmd_dev_context *hDevContext)
> {
> dsp_status status = DSP_SOK;
> struct wmd_dev_context *dev_context = hDevContext;
> - struct cfg_hostres resources;
> u32 temp;
> - enum hw_pwr_state_t pwr_state;
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
>
> - status = cfg_get_host_resources((struct cfg_devnode *)
> - drv_get_first_dev_extension(),
> - &resources);
> - if (DSP_FAILED(status))
> - goto error_return;
> -
> - get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
> - hw_pwrst_iva2_reg_get(resources.dw_prm_base, &temp);
> - if ((temp & 0x03) != 0x03 || (temp & 0x03) != 0x02) {
> + temp = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
> + OMAP_POWERSTATEST_MASK;
> + if (!(temp & 0x02)) {
> /* IVA2 is not in ON state */
> /* Read and set PM_PWSTCTRL_IVA2 to ON */
> - hw_pwr_iva2_power_state_set(resources.dw_prm_base,
> - HW_PWR_DOMAIN_DSP, HW_PWR_STATE_ON);
> + (*pdata->dsp_prm_rmw_bits)(OMAP_POWERSTATEST_MASK,
> + PWRDM_POWER_ON, OMAP3430_IVA2_MOD, PM_PWSTCTRL);
> /* Set the SW supervised state transition */
> - hw_pwr_clkctrl_iva2_reg_set(resources.dw_cm_base,
> - HW_SW_SUP_WAKEUP);
> + (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_FORCE_WAKEUP,
> + OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
> +
> /* Wait until the state has moved to ON */
> - hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
> - &pwr_state);
> + while ((*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
> + OMAP_INTRANSITION)
> + ;
> /* Disable Automatic transition */
> - hw_pwr_clkctrl_iva2_reg_set(resources.dw_cm_base,
> - HW_AUTOTRANS_DIS);
> + (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_DISABLE_AUTO,
> + OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
> }
> -
> - get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
> - hw_rst_un_reset(resources.dw_prm_base, HW_RST2_IVA2);
> + (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2, 0,
> + OMAP3430_IVA2_MOD, RM_RSTCTRL);
> services_clk_enable(SERVICESCLK_IVA2_CK);
>
> if (DSP_SUCCEEDED(status)) {
> /* set the device state to IDLE */
> dev_context->dw_brd_state = BRD_IDLE;
> }
> -error_return:
> - get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
> return status;
> }
>
> @@ -441,6 +398,8 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
> u32 ext_clk_id = 0;
> u32 tmp_index;
> u32 clk_id_index = MBX_PM_MAX_RESOURCES;
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
>
> /* The device context contains all the mmu setup info from when the
> * last dsp base image was loaded. The first entry is always
> @@ -474,9 +433,10 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
> drv_get_first_dev_extension(),
> &resources);
> /* Assert RST1 i.e only the RST only for DSP megacell */
> - /* hw_rst_reset(resources.dwPrcmBase, HW_RST1_IVA2); */
> if (DSP_SUCCEEDED(status)) {
> - hw_rst_reset(resources.dw_prm_base, HW_RST1_IVA2);
> + (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2,
> + OMAP3430_RST1_IVA2, OMAP3430_IVA2_MOD,
> + RM_RSTCTRL);
> /* Mask address with 1K for compatibility */
> __raw_writel(dwDSPAddr & OMAP3_IVA2_BOOTADDR_MASK,
> OMAP343X_CTRL_REGADDR(
> @@ -492,12 +452,13 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
> if (DSP_SUCCEEDED(status)) {
> /* Reset and Unreset the RST2, so that BOOTADDR is copied to
> * IVA2 SYSC register */
> - hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
> + (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2,
> + OMAP3430_RST1_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
> udelay(100);
> - hw_rst_un_reset(resources.dw_prm_base, HW_RST2_IVA2);
> + (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2, 0,
> + OMAP3430_IVA2_MOD, RM_RSTCTRL);
> udelay(100);
>
> - get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
> /* Disbale the DSP MMU */
> hw_mmu_disable(resources.dw_dmmu_base);
> /* Disable TWL */
> @@ -643,11 +604,9 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
> (void)dev_get_symbol(dev_context->hdev_obj,
> "_BRIDGEINIT_DSP_FREQ", &ul_dsp_clk_addr);
> /*Set Autoidle Mode for IVA2 PLL */
> - temp = (u32) *((reg_uword32 *)
> - ((u32) (resources.dw_cm_base) + 0x34));
> - temp = (temp & 0xFFFFFFFE) | 0x1;
> - *((reg_uword32 *) ((u32) (resources.dw_cm_base) + 0x34)) =
> - (u32) temp;
> + (*pdata->dsp_cm_write)(1 << OMAP3430_AUTO_IVA2_DPLL_SHIFT,
> + OMAP3430_IVA2_MOD, OMAP3430_CM_AUTOIDLE_PLL);
> +
> if ((unsigned int *)ul_dsp_clk_addr != NULL) {
> /* Get the clock rate */
> status = services_clk_get_rate(SERVICESCLK_IVA2_CK,
> @@ -695,11 +654,8 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
> (u32) temp;
>
> /*CM_CLKSTCTRL_IVA2 = 0x00000003 -To Allow automatic transitions */
> - temp = (u32) *((reg_uword32 *)
> - ((u32) (resources.dw_cm_base) + 0x48));
> - temp = (temp & 0xFFFFFFFC) | 0x03;
> - *((reg_uword32 *) ((u32) (resources.dw_cm_base) + 0x48)) =
> - (u32) temp;
> + (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_ENABLE_AUTO,
> + OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
>
> /* Let DSP go */
> dev_dbg(bridge, "%s Unreset\n", __func__);
> @@ -707,7 +663,8 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
> hw_mmu_event_enable(resources.dw_dmmu_base,
> HW_MMU_ALL_INTERRUPTS);
> /* release the RST1, DSP starts executing now .. */
> - hw_rst_un_reset(resources.dw_prm_base, HW_RST1_IVA2);
> + (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2, 0,
> + OMAP3430_IVA2_MOD, RM_RSTCTRL);
>
> dev_dbg(bridge, "Waiting for Sync @ 0x%x\n", dw_sync_addr);
> dev_dbg(bridge, "DSP c_int00 Address = 0x%x\n", dwDSPAddr);
> @@ -754,10 +711,11 @@ static dsp_status bridge_brd_stop(struct wmd_dev_context *hDevContext)
> {
> dsp_status status = DSP_SOK;
> struct wmd_dev_context *dev_context = hDevContext;
> - struct cfg_hostres resources;
> struct pg_table_attrs *pt_attrs;
> u32 dsp_pwr_state;
> dsp_status clk_status;
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
>
> if (dev_context->dw_brd_state == BRD_STOPPED)
> return status;
> @@ -765,29 +723,22 @@ static dsp_status bridge_brd_stop(struct wmd_dev_context *hDevContext)
> /* as per TRM, it is advised to first drive the IVA2 to 'Standby' mode,
> * before turning off the clocks.. This is to ensure that there are no
> * pending L3 or other transactons from IVA2 */
> - status = cfg_get_host_resources((struct cfg_devnode *)
> - drv_get_first_dev_extension(),
> - &resources);
> - if (DSP_FAILED(status))
> - return DSP_EFAIL;
>
> - hw_pwrst_iva2_reg_get(resources.dw_prm_base, &dsp_pwr_state);
> - if (dsp_pwr_state != HW_PWR_STATE_OFF && dev_context->mbox) {
> + dsp_pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
> + OMAP_POWERSTATEST_MASK;
> + if (dsp_pwr_state != PWRDM_POWER_OFF) {
> sm_interrupt_dsp(dev_context, MBX_PM_DSPIDLE);
> mdelay(10);
> - get_hw_regs(resources.dw_prm_base, resources.dw_cm_base);
> - udelay(50);
>
> clk_status = services_clk_disable(SERVICESCLK_IVA2_CK);
>
> /* IVA2 is not in OFF state */
> /* Set PM_PWSTCTRL_IVA2 to OFF */
> - hw_pwr_iva2_power_state_set(resources.dw_prm_base,
> - HW_PWR_DOMAIN_DSP,
> - HW_PWR_STATE_OFF);
> + (*pdata->dsp_prm_rmw_bits)(OMAP_POWERSTATEST_MASK,
> + PWRDM_POWER_OFF, OMAP3430_IVA2_MOD, PM_PWSTCTRL);
> /* Set the SW supervised state transition for Sleep */
> - hw_pwr_clkctrl_iva2_reg_set(resources.dw_cm_base,
> - HW_SW_SUP_SLEEP);
> + (*pdata->dsp_cm_write)(OMAP34XX_CLKSTCTRL_FORCE_SLEEP,
> + OMAP3430_IVA2_MOD, CM_CLKSTCTRL);
> } else {
> clk_status = services_clk_disable(SERVICESCLK_IVA2_CK);
> }
> @@ -815,10 +766,9 @@ static dsp_status bridge_brd_stop(struct wmd_dev_context *hDevContext)
> omap_mbox_put(dev_context->mbox);
> dev_context->mbox = NULL;
> }
> -
> - hw_rst_reset(resources.dw_prm_base, HW_RST1_IVA2);
> - hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
> - hw_rst_reset(resources.dw_prm_base, HW_RST3_IVA2);
> + /* Reset IVA2 clocks*/
> + (*pdata->dsp_prm_write)(OMAP3430_RST1_IVA2 | OMAP3430_RST2_IVA2 |
> + OMAP3430_RST3_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
>
> return status;
> }
> @@ -838,6 +788,8 @@ static dsp_status wmd_brd_delete(struct wmd_dev_context *hDevContext)
> struct cfg_hostres resources;
> struct pg_table_attrs *pt_attrs;
> dsp_status clk_status;
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
>
> if (dev_context->dw_brd_state == BRD_STOPPED)
> return status;
> @@ -876,10 +828,9 @@ static dsp_status wmd_brd_delete(struct wmd_dev_context *hDevContext)
> omap_mbox_put(dev_context->mbox);
> dev_context->mbox = NULL;
> }
> -
> - hw_rst_reset(resources.dw_prm_base, HW_RST1_IVA2);
> - hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
> - hw_rst_reset(resources.dw_prm_base, HW_RST3_IVA2);
> + /* Reset IVA2 clocks*/
> + (*pdata->dsp_prm_write)(OMAP3430_RST1_IVA2 | OMAP3430_RST2_IVA2 |
> + OMAP3430_RST3_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
>
> return status;
> }
> diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> index 56b9a38..c15f0c9 100644
> --- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> +++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> @@ -33,7 +33,6 @@
>
> /* ------------------------------------ Hardware Abstraction Layer */
> #include <hw_defs.h>
> -#include <hw_prcm.h>
> #include <hw_mmu.h>
>
> #include <dspbridge/pwr_sh.h>
> @@ -87,31 +86,24 @@ dsp_status handle_hibernation_from_dsp(struct wmd_dev_context *dev_context)
> dsp_status status = DSP_SOK;
> #ifdef CONFIG_PM
> u16 timeout = PWRSTST_TIMEOUT / 10;
> - struct cfg_hostres resources;
> - enum hw_pwr_state_t pwr_state;
> + u32 pwr_state;
> #ifdef CONFIG_BRIDGE_DVFS
> u32 opplevel;
> struct io_mgr *hio_mgr;
> - struct dspbridge_platform_data *pdata =
> - omap_dspbridge_dev->dev.platform_data;
> #endif
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
>
> - status = cfg_get_host_resources((struct cfg_devnode *)
> - drv_get_first_dev_extension(),
> - &resources);
> - if (DSP_FAILED(status))
> - return status;
> -
> - hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
> - &pwr_state);
> + pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
> + OMAP_POWERSTATEST_MASK;
> /* Wait for DSP to move into OFF state */
> - while ((pwr_state != HW_PWR_STATE_OFF) && --timeout) {
> + while ((pwr_state != PWRDM_POWER_OFF) && --timeout) {
> if (msleep_interruptible(10)) {
> pr_err("Waiting for DSP OFF mode interrupted\n");
> return DSP_EFAIL;
> }
> - hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
> - &pwr_state);
> + pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD,
> + PM_PWSTST) & OMAP_POWERSTATEST_MASK;
> }
> if (timeout == 0) {
> pr_err("%s: Timed out waiting for DSP off mode\n", __func__);
> @@ -161,41 +153,37 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
> {
> dsp_status status = DSP_SOK;
> #ifdef CONFIG_PM
> - struct cfg_hostres resources;
> #ifdef CONFIG_BRIDGE_NTFY_PWRERR
> struct deh_mgr *hdeh_mgr;
> #endif /* CONFIG_BRIDGE_NTFY_PWRERR */
> u16 timeout = PWRSTST_TIMEOUT / 10;
> - enum hw_pwr_state_t pwr_state, target_pwr_state;
> + u32 pwr_state, target_pwr_state;
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
>
> /* Check if sleep code is valid */
> if ((dw_cmd != PWR_DEEPSLEEP) && (dw_cmd != PWR_EMERGENCYDEEPSLEEP))
> return DSP_EINVALIDARG;
>
> - status = cfg_get_host_resources((struct cfg_devnode *)
> - drv_get_first_dev_extension(),
> - &resources);
> - if (DSP_FAILED(status))
> - return status;
>
> switch (dev_context->dw_brd_state) {
> case BRD_RUNNING:
> omap_mbox_save_ctx(dev_context->mbox);
> - if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
> + if (dsp_test_sleepstate == PWRDM_POWER_OFF) {
> sm_interrupt_dsp(dev_context, MBX_PM_DSPHIBERNATE);
> dev_dbg(bridge, "PM: %s - sent hibernate cmd to DSP\n",
> __func__);
> - target_pwr_state = HW_PWR_STATE_OFF;
> + target_pwr_state = PWRDM_POWER_OFF;
> } else {
> sm_interrupt_dsp(dev_context, MBX_PM_DSPRETENTION);
> - target_pwr_state = HW_PWR_STATE_RET;
> + target_pwr_state = PWRDM_POWER_RET;
> }
> break;
> case BRD_RETENTION:
> omap_mbox_save_ctx(dev_context->mbox);
> - if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
> + if (dsp_test_sleepstate == PWRDM_POWER_OFF) {
> sm_interrupt_dsp(dev_context, MBX_PM_DSPHIBERNATE);
> - target_pwr_state = HW_PWR_STATE_OFF;
> + target_pwr_state = PWRDM_POWER_OFF;
> } else
> return DSP_SOK;
> break;
> @@ -214,8 +202,8 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
> }
>
> /* Get the PRCM DSP power domain status */
> - hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
> - &pwr_state);
> + pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD, PM_PWSTST) &
> + OMAP_POWERSTATEST_MASK;
>
> /* Wait for DSP to move into target power state */
> while ((pwr_state != target_pwr_state) && --timeout) {
> @@ -223,8 +211,8 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
> pr_err("Waiting for DSP to Suspend interrupted\n");
> return DSP_EFAIL;
> }
> - hw_pwr_iva2_state_get(resources.dw_prm_base, HW_PWR_DOMAIN_DSP,
> - &pwr_state);
> + pwr_state = (*pdata->dsp_prm_read)(OMAP3430_IVA2_MOD,
> + PM_PWSTST) & OMAP_POWERSTATEST_MASK;
> }
>
> if (!timeout) {
> @@ -237,7 +225,7 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
> return WMD_E_TIMEOUT;
> } else {
> /* Update the Bridger Driver state */
> - if (dsp_test_sleepstate == HW_PWR_STATE_OFF)
> + if (dsp_test_sleepstate == PWRDM_POWER_OFF)
> dev_context->dw_brd_state = BRD_HIBERNATION;
> else
> dev_context->dw_brd_state = BRD_RETENTION;
> @@ -251,7 +239,7 @@ dsp_status sleep_dsp(struct wmd_dev_context *dev_context, IN u32 dw_cmd,
> return status;
> }
> #ifdef CONFIG_BRIDGE_DVFS
> - else if (target_pwr_state == HW_PWR_STATE_OFF) {
> + else if (target_pwr_state == PWRDM_POWER_OFF) {
> struct dspbridge_platform_data *pdata =
> omap_dspbridge_dev->dev.platform_data;
> /*
> diff --git a/drivers/dsp/bridge/wmd/tiomap_io.c b/drivers/dsp/bridge/wmd/tiomap_io.c
> index 728db33..0755ca7 100644
> --- a/drivers/dsp/bridge/wmd/tiomap_io.c
> +++ b/drivers/dsp/bridge/wmd/tiomap_io.c
> @@ -398,10 +398,10 @@ dsp_status write_ext_dsp_data(struct wmd_dev_context *dev_context,
> dsp_status sm_interrupt_dsp(struct wmd_dev_context *dev_context, u16 mb_val)
> {
> #ifdef CONFIG_BRIDGE_DVFS
> - struct dspbridge_platform_data *pdata =
> - omap_dspbridge_dev->dev.platform_data;
> u32 opplevel = 0;
> #endif
> + struct dspbridge_platform_data *pdata =
> + omap_dspbridge_dev->dev.platform_data;
> struct cfg_hostres resources;
> dsp_status status = DSP_SOK;
> u32 temp;
> @@ -433,16 +433,19 @@ dsp_status sm_interrupt_dsp(struct wmd_dev_context *dev_context, u16 mb_val)
> * 2:0 AUTO_IVA2_DPLL - Enabling IVA2 DPLL auto control
> * in CM_AUTOIDLE_PLL_IVA2 register
> */
> - *(reg_uword32 *) (resources.dw_cm_base + 0x34) = 0x1;
> + (*pdata->dsp_cm_write)(1 << OMAP3430_AUTO_IVA2_DPLL_SHIFT,
> + OMAP3430_IVA2_MOD, OMAP3430_CM_AUTOIDLE_PLL);
>
> /*
> * 7:4 IVA2_DPLL_FREQSEL - IVA2 internal frq set to
> * 0.75 MHz - 1.0 MHz
> * 2:0 EN_IVA2_DPLL - Enable IVA2 DPLL in lock mode
> */
> - temp = *(reg_uword32 *) (resources.dw_cm_base + 0x4);
> - temp = (temp & 0xFFFFFF08) | 0x37;
> - *(reg_uword32 *) (resources.dw_cm_base + 0x4) = temp;
> + (*pdata->dsp_cm_rmw_bits)(OMAP3430_IVA2_DPLL_FREQSEL_MASK |
> + OMAP3430_EN_IVA2_DPLL_MASK,
> + 0x3 << OMAP3430_IVA2_DPLL_FREQSEL_SHIFT |
> + 0x7 << OMAP3430_EN_IVA2_DPLL_SHIFT,
> + OMAP3430_IVA2_MOD, OMAP3430_CM_CLKEN_PLL);
>
> /* Restore mailbox settings */
> omap_mbox_restore_ctx(dev_context->mbox);
> --
> 1.6.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
This patch is preventing dsp to go to OFF state after MMU Fault,As a
result DSP recovery is not working.
Here is the reg dump.The value of MAILBOX_IRQENABLE_DSP(0x4809410c)
should have been 0x1.
******* REG DUMP *********************
CM_FCLKEN_IVA2(0x48004000) = 0x1
CM_CLKEN_PLL_IVA2(0x48004004) = 0x37
CM_ICLKEN1_IVA2(0x48004010) = 0x0
CM_IDLEST_IVA2(0x48004020) = 0x1
CM_IDLEST_PLL_IVA2(0x48004024) = 0x0
CM_AUTOIDLE_PLL_IVA2(0x48004034) = 0x1
CM_CLKSEL1_PLL_IVA2(0x48004040) = 0x9450b
CM_CLKSTCTRL_IVA2(0x48004048) = 0x3
CM_CLKSTST_IVA2(0x4800404c) = 0x0
RM_RSTCTRL_IVA2(0x48306050) = 0x4
RM_RSTST_IVA2(0x48306058) = 0x305
PM_PWSTCTRL_IVA2(0x483060e0) = 0xff0f05
PM_PWSTST_IVA2(0x483060e4) = 0xff7
CM_ICLKEN1_CORE(0x48306a10) = 0x30000d2
PM_MPUGRPSEL_PER(0x483070a4) = 0x3e847
PM_IVA2GRPSEL_PER(0x483070a8) = 0x80
PRM_IRQSTATUS_IVA2(0x483060f8) = 0x2
******* MBX DUMP *********************
MAILBOX_SYSCONFIG(0x48094010) = 0x11
MAILBOX_FIFOSTATUS_MPU(0x48094080) = 0x0
MAILBOX_FIFOSTATUS_DSP(0x48094084) = 0x0
MAILBOX_MSGSTATUS_MPU(0x480940c0) = 0x0
MAILBOX_MSGSTATUS_DSP(0x480940c4) = 0x0
MAILBOX_IRQSTATUS_MPU(0x48094100) = 0xaaa
MAILBOX_IRQSTATUS_DSP(0x48094108) = 0xaae
MAILBOX_IRQENABLE_MPU(0x48094104) = 0x4
MAILBOX_IRQENABLE_DSP(0x4809410c) = 0x0
Regards,
Deepak
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions
2010-05-19 0:34 ` Deepak Chitriki
@ 2010-05-19 1:08 ` Guzman Lugo, Fernando
0 siblings, 0 replies; 6+ messages in thread
From: Guzman Lugo, Fernando @ 2010-05-19 1:08 UTC (permalink / raw)
To: Chitriki Rudramuni, Deepak
Cc: linux-omap@vger.kernel.org, Hiroshi DOYU, Ameya Palande,
felipe.contreras@nokia.com
> This patch is preventing dsp to go to OFF state after MMU Fault,As a
> result DSP recovery is not working.
>
> Here is the reg dump.The value of MAILBOX_IRQENABLE_DSP(0x4809410c)
> should have been 0x1.
@@ -492,12 +452,13 @@ static dsp_status bridge_brd_start(struct wmd_dev_context *hDevContext,
if (DSP_SUCCEEDED(status)) {
/* Reset and Unreset the RST2, so that BOOTADDR is copied to
* IVA2 SYSC register */
- hw_rst_reset(resources.dw_prm_base, HW_RST2_IVA2);
+ (*pdata->dsp_prm_rmw_bits)(OMAP3430_RST2_IVA2,
+ OMAP3430_RST1_IVA2, OMAP3430_IVA2_MOD, RM_RSTCTRL);
There is an error in with the second parameter, it has to be OMAP3430_RST2_IVA2 instead of OMAP3430_RST1_IVA2, this is avoiding BOOTADDR of being copied to IVA2 SYSC register. Therefore DSP can not boot after recovery. It works first time because iva mmu is already under reset.
I will send a fix for this issue.
Regards,
Fernando.
>
> ******* REG DUMP *********************
> CM_FCLKEN_IVA2(0x48004000) = 0x1
> CM_CLKEN_PLL_IVA2(0x48004004) = 0x37
> CM_ICLKEN1_IVA2(0x48004010) = 0x0
> CM_IDLEST_IVA2(0x48004020) = 0x1
> CM_IDLEST_PLL_IVA2(0x48004024) = 0x0
> CM_AUTOIDLE_PLL_IVA2(0x48004034) = 0x1
> CM_CLKSEL1_PLL_IVA2(0x48004040) = 0x9450b
> CM_CLKSTCTRL_IVA2(0x48004048) = 0x3
> CM_CLKSTST_IVA2(0x4800404c) = 0x0
> RM_RSTCTRL_IVA2(0x48306050) = 0x4
> RM_RSTST_IVA2(0x48306058) = 0x305
> PM_PWSTCTRL_IVA2(0x483060e0) = 0xff0f05
> PM_PWSTST_IVA2(0x483060e4) = 0xff7
> CM_ICLKEN1_CORE(0x48306a10) = 0x30000d2
> PM_MPUGRPSEL_PER(0x483070a4) = 0x3e847
> PM_IVA2GRPSEL_PER(0x483070a8) = 0x80
> PRM_IRQSTATUS_IVA2(0x483060f8) = 0x2
>
>
> ******* MBX DUMP *********************
> MAILBOX_SYSCONFIG(0x48094010) = 0x11
> MAILBOX_FIFOSTATUS_MPU(0x48094080) = 0x0
> MAILBOX_FIFOSTATUS_DSP(0x48094084) = 0x0
> MAILBOX_MSGSTATUS_MPU(0x480940c0) = 0x0
> MAILBOX_MSGSTATUS_DSP(0x480940c4) = 0x0
> MAILBOX_IRQSTATUS_MPU(0x48094100) = 0xaaa
> MAILBOX_IRQSTATUS_DSP(0x48094108) = 0xaae
> MAILBOX_IRQENABLE_MPU(0x48094104) = 0x4
> MAILBOX_IRQENABLE_DSP(0x4809410c) = 0x0
>
> Regards,
> Deepak
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-05-19 1:08 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <AcrVsjYetIHyTxGhSQuU4kCXDj8zwQ==>
2010-04-06 17:54 ` [PATCH 3/3] DSPBRIDGE: remove hw_prcm module and related functions Guzman Lugo, Fernando
2010-05-01 15:27 ` Felipe Contreras
2010-05-01 15:34 ` Nishanth Menon
2010-05-01 16:06 ` Felipe Contreras
2010-05-19 0:34 ` Deepak Chitriki
2010-05-19 1:08 ` Guzman Lugo, Fernando
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox