Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / m68k / include / asm / mcfclk.h
diff --git a/kernel/arch/m68k/include/asm/mcfclk.h b/kernel/arch/m68k/include/asm/mcfclk.h
new file mode 100644 (file)
index 0000000..ea4791e
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * mcfclk.h -- coldfire specific clock structure
+ */
+
+
+#ifndef mcfclk_h
+#define mcfclk_h
+
+struct clk;
+
+struct clk_ops {
+       void (*enable)(struct clk *);
+       void (*disable)(struct clk *);
+};
+
+struct clk {
+       const char *name;
+       struct clk_ops *clk_ops;
+       unsigned long rate;
+       unsigned long enabled;
+       u8 slot;
+};
+
+extern struct clk *mcf_clks[];
+
+#ifdef MCFPM_PPMCR0
+extern struct clk_ops clk_ops0;
+#ifdef MCFPM_PPMCR1
+extern struct clk_ops clk_ops1;
+#endif /* MCFPM_PPMCR1 */
+
+#define DEFINE_CLK(clk_bank, clk_name, clk_slot, clk_rate) \
+static struct clk __clk_##clk_bank##_##clk_slot = { \
+       .name = clk_name, \
+       .clk_ops = &clk_ops##clk_bank, \
+       .rate = clk_rate, \
+       .slot = clk_slot, \
+}
+
+void __clk_init_enabled(struct clk *);
+void __clk_init_disabled(struct clk *);
+#else
+#define DEFINE_CLK(clk_ref, clk_name, clk_rate) \
+        static struct clk clk_##clk_ref = { \
+                .name = clk_name, \
+                .rate = clk_rate, \
+        }
+#endif /* MCFPM_PPMCR0 */
+
+#endif /* mcfclk_h */