|
@@ -0,0 +1,84 @@
|
|
|
|
+/*
|
|
|
|
+ * OMAP4 Clock data
|
|
|
|
+ *
|
|
|
|
+ * Copyright (C) 2009-2012 Texas Instruments, Inc.
|
|
|
|
+ * Copyright (C) 2009-2010 Nokia Corporation
|
|
|
|
+ *
|
|
|
|
+ * Paul Walmsley (paul@pwsan.com)
|
|
|
|
+ * Rajendra Nayak (rnayak@ti.com)
|
|
|
|
+ * Benoit Cousson (b-cousson@ti.com)
|
|
|
|
+ * Mike Turquette (mturquette@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.
|
|
|
|
+ *
|
|
|
|
+ * XXX Some of the ES1 clocks have been removed/changed; once support
|
|
|
|
+ * is added for discriminating clocks by ES level, these should be added back
|
|
|
|
+ * in.
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+#include <linux/kernel.h>
|
|
|
|
+#include <linux/list.h>
|
|
|
|
+#include <linux/clk-private.h>
|
|
|
|
+#include <linux/clkdev.h>
|
|
|
|
+#include <linux/io.h>
|
|
|
|
+
|
|
|
|
+#include "soc.h"
|
|
|
|
+#include "iomap.h"
|
|
|
|
+#include "clock.h"
|
|
|
|
+#include "clock44xx.h"
|
|
|
|
+#include "cm1_44xx.h"
|
|
|
|
+#include "cm2_44xx.h"
|
|
|
|
+#include "cm-regbits-44xx.h"
|
|
|
|
+#include "prm44xx.h"
|
|
|
|
+#include "prm-regbits-44xx.h"
|
|
|
|
+#include "control.h"
|
|
|
|
+#include "scrm44xx.h"
|
|
|
|
+
|
|
|
|
+/* OMAP4 modulemode control */
|
|
|
|
+#define OMAP4430_MODULEMODE_HWCTRL_SHIFT 0
|
|
|
|
+#define OMAP4430_MODULEMODE_SWCTRL_SHIFT 1
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * OMAP4 ABE DPLL default frequency. In OMAP4460 TRM version V, section
|
|
|
|
+ * "3.6.3.2.3 CM1_ABE Clock Generator" states that the "DPLL_ABE_X2_CLK
|
|
|
|
+ * must be set to 196.608 MHz" and hence, the DPLL locked frequency is
|
|
|
|
+ * half of this value.
|
|
|
|
+ */
|
|
|
|
+#define OMAP4_DPLL_ABE_DEFFREQ 98304000
|
|
|
|
+
|
|
|
|
+/* Root clocks */
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(extalt_clkin_ck, CLK_IS_ROOT, 59000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(pad_clks_src_ck, CLK_IS_ROOT, 12000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_GATE(pad_clks_ck, "pad_clks_src_ck", &pad_clks_src_ck, 0x0,
|
|
|
|
+ OMAP4430_CM_CLKSEL_ABE, OMAP4430_PAD_CLKS_GATE_SHIFT,
|
|
|
|
+ 0x0, NULL);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(pad_slimbus_core_clks_ck, CLK_IS_ROOT, 12000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(secure_32k_clk_src_ck, CLK_IS_ROOT, 32768, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(slimbus_src_clk, CLK_IS_ROOT, 12000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_GATE(slimbus_clk, "slimbus_src_clk", &slimbus_src_clk, 0x0,
|
|
|
|
+ OMAP4430_CM_CLKSEL_ABE, OMAP4430_SLIMBUS_CLK_GATE_SHIFT,
|
|
|
|
+ 0x0, NULL);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(sys_32k_ck, CLK_IS_ROOT, 32768, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(virt_12000000_ck, CLK_IS_ROOT, 12000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(virt_13000000_ck, CLK_IS_ROOT, 13000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(virt_16800000_ck, CLK_IS_ROOT, 16800000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(virt_19200000_ck, CLK_IS_ROOT, 19200000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(virt_26000000_ck, CLK_IS_ROOT, 26000000, 0x0);
|
|
|
|
+
|
|
|
|
+DEFINE_CLK_FIXED_RATE(virt_27000000_ck, CLK_IS_ROOT, 27000000, 0x0);
|
|
|
|
+
|