|
@@ -306,3 +306,24 @@ static void __init pistachio_cr_periph_init(struct device_node *np)
|
|
|
}
|
|
|
CLK_OF_DECLARE(pistachio_cr_periph, "img,pistachio-cr-periph",
|
|
|
pistachio_cr_periph_init);
|
|
|
+
|
|
|
+static struct pistachio_gate pistachio_ext_gates[] __initdata = {
|
|
|
+ GATE(EXT_CLK_ENET_IN, "enet_clk_in_gate", "enet_clk_in", 0x58, 5),
|
|
|
+ GATE(EXT_CLK_AUDIO_IN, "audio_clk_in_gate", "audio_clk_in", 0x58, 8)
|
|
|
+};
|
|
|
+
|
|
|
+static void __init pistachio_cr_top_init(struct device_node *np)
|
|
|
+{
|
|
|
+ struct pistachio_clk_provider *p;
|
|
|
+
|
|
|
+ p = pistachio_clk_alloc_provider(np, EXT_CLK_NR_CLKS);
|
|
|
+ if (!p)
|
|
|
+ return;
|
|
|
+
|
|
|
+ pistachio_clk_register_gate(p, pistachio_ext_gates,
|
|
|
+ ARRAY_SIZE(pistachio_ext_gates));
|
|
|
+
|
|
|
+ pistachio_clk_register_provider(p);
|
|
|
+}
|
|
|
+CLK_OF_DECLARE(pistachio_cr_top, "img,pistachio-cr-top",
|
|
|
+ pistachio_cr_top_init);
|