|
@@ -13,9 +13,10 @@
|
|
*/
|
|
*/
|
|
#include <linux/init.h>
|
|
#include <linux/init.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/kernel.h>
|
|
|
|
+#include <linux/io.h>
|
|
|
|
+#include <asm/clkdev.h>
|
|
#include <asm/clock.h>
|
|
#include <asm/clock.h>
|
|
#include <asm/freq.h>
|
|
#include <asm/freq.h>
|
|
-#include <asm/io.h>
|
|
|
|
|
|
|
|
static int ifc_divisors[] = { 1, 2, 4 ,6 };
|
|
static int ifc_divisors[] = { 1, 2, 4 ,6 };
|
|
static int bfc_divisors[] = { 1, 1, 1, 1, 1, 12, 16, 18, 24, 32, 36, 48 };
|
|
static int bfc_divisors[] = { 1, 1, 1, 1, 1, 12, 16, 18, 24, 32, 36, 48 };
|
|
@@ -94,7 +95,6 @@ static struct clk_ops shx3_shyway_clk_ops = {
|
|
};
|
|
};
|
|
|
|
|
|
static struct clk shx3_shyway_clk = {
|
|
static struct clk shx3_shyway_clk = {
|
|
- .name = "shyway_clk",
|
|
|
|
.flags = CLK_ENABLE_ON_INIT,
|
|
.flags = CLK_ENABLE_ON_INIT,
|
|
.ops = &shx3_shyway_clk_ops,
|
|
.ops = &shx3_shyway_clk_ops,
|
|
};
|
|
};
|
|
@@ -107,6 +107,13 @@ static struct clk *shx3_onchip_clocks[] = {
|
|
&shx3_shyway_clk,
|
|
&shx3_shyway_clk,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+#define CLKDEV_CON_ID(_id, _clk) { .con_id = _id, .clk = _clk }
|
|
|
|
+
|
|
|
|
+static struct clk_lookup lookups[] = {
|
|
|
|
+ /* main clocks */
|
|
|
|
+ CLKDEV_CON_ID("shyway_clk", &shx3_shyway_clk),
|
|
|
|
+};
|
|
|
|
+
|
|
int __init arch_clk_init(void)
|
|
int __init arch_clk_init(void)
|
|
{
|
|
{
|
|
struct clk *clk;
|
|
struct clk *clk;
|
|
@@ -124,5 +131,7 @@ int __init arch_clk_init(void)
|
|
|
|
|
|
clk_put(clk);
|
|
clk_put(clk);
|
|
|
|
|
|
|
|
+ clkdev_add_table(lookups, ARRAY_SIZE(lookups));
|
|
|
|
+
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|