|
@@ -0,0 +1,60 @@
|
|
|
|
+/*
|
|
|
|
+ * OMAP4 CM instance functions
|
|
|
|
+ *
|
|
|
|
+ * Copyright (C) 2009 Nokia Corporation
|
|
|
|
+ * Copyright (C) 2008-2011 Texas Instruments, Inc.
|
|
|
|
+ * Paul Walmsley
|
|
|
|
+ * Rajendra Nayak <rnayak@ti.com>
|
|
|
|
+ *
|
|
|
|
+ * This program 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 is needed since CM instances can be in the PRM, PRCM_MPU, CM1,
|
|
|
|
+ * or CM2 hardware modules. For example, the EMU_CM CM instance is in
|
|
|
|
+ * the PRM hardware module. What a mess...
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+#include <linux/kernel.h>
|
|
|
|
+#include <linux/types.h>
|
|
|
|
+#include <linux/errno.h>
|
|
|
|
+#include <linux/err.h>
|
|
|
|
+#include <linux/io.h>
|
|
|
|
+
|
|
|
|
+#include "iomap.h"
|
|
|
|
+#include "common.h"
|
|
|
|
+#include "clockdomain.h"
|
|
|
|
+#include "cm.h"
|
|
|
|
+#include "cm1_44xx.h"
|
|
|
|
+#include "cm2_44xx.h"
|
|
|
|
+#include "cm44xx.h"
|
|
|
|
+#include "cminst44xx.h"
|
|
|
|
+#include "cm-regbits-34xx.h"
|
|
|
|
+#include "cm-regbits-44xx.h"
|
|
|
|
+#include "prcm44xx.h"
|
|
|
|
+#include "prm44xx.h"
|
|
|
|
+#include "prcm_mpu44xx.h"
|
|
|
|
+#include "prcm-common.h"
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * CLKCTRL_IDLEST_*: possible values for the CM_*_CLKCTRL.IDLEST bitfield:
|
|
|
|
+ *
|
|
|
|
+ * 0x0 func: Module is fully functional, including OCP
|
|
|
|
+ * 0x1 trans: Module is performing transition: wakeup, or sleep, or sleep
|
|
|
|
+ * abortion
|
|
|
|
+ * 0x2 idle: Module is in Idle mode (only OCP part). It is functional if
|
|
|
|
+ * using separate functional clock
|
|
|
|
+ * 0x3 disabled: Module is disabled and cannot be accessed
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+#define CLKCTRL_IDLEST_FUNCTIONAL 0x0
|
|
|
|
+#define CLKCTRL_IDLEST_INTRANSITION 0x1
|
|
|
|
+#define CLKCTRL_IDLEST_INTERFACE_IDLE 0x2
|
|
|
|
+#define CLKCTRL_IDLEST_DISABLED 0x3
|
|
|
|
+
|
|
|
|
+static void __iomem *_cm_bases[OMAP4_MAX_PRCM_PARTITIONS];
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * omap_cm_base_init - Populates the cm partitions
|
|
|
|
+ *
|
|
|
|
+ * Populates the base addresses of the _cm_bases
|