|
@@ -323,6 +323,7 @@ struct clk *main_clks[] = {
|
|
|
&fsibck_clk,
|
|
|
};
|
|
|
|
|
|
+/* DIV4 clocks */
|
|
|
static void div4_kick(struct clk *clk)
|
|
|
{
|
|
|
unsigned long value;
|
|
@@ -346,6 +347,26 @@ static struct clk_div4_table div4_table = {
|
|
|
.kick = div4_kick,
|
|
|
};
|
|
|
|
|
|
+enum {
|
|
|
+ DIV4_I, DIV4_ZG, DIV4_B, DIV4_M1, DIV4_HP,
|
|
|
+ DIV4_HPP, DIV4_USBP, DIV4_S, DIV4_ZB, DIV4_M3, DIV4_CP,
|
|
|
+ DIV4_NR
|
|
|
+};
|
|
|
+
|
|
|
+struct clk div4_clks[DIV4_NR] = {
|
|
|
+ [DIV4_I] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 20, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
+ [DIV4_ZG] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 16, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
+ [DIV4_B] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 8, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
+ [DIV4_M1] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 4, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
+ [DIV4_HP] = SH_CLK_DIV4(&pllc1_clk, FRQCRB, 4, 0x6fff, 0),
|
|
|
+ [DIV4_HPP] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 20, 0x6fff, 0),
|
|
|
+ [DIV4_USBP] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 16, 0x6fff, 0),
|
|
|
+ [DIV4_S] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 12, 0x6fff, 0),
|
|
|
+ [DIV4_ZB] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 8, 0x6fff, 0),
|
|
|
+ [DIV4_M3] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 4, 0x6fff, 0),
|
|
|
+ [DIV4_CP] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 0, 0x6fff, 0),
|
|
|
+};
|
|
|
+
|
|
|
/* DIV6 reparent */
|
|
|
enum {
|
|
|
DIV6_HDMI,
|
|
@@ -391,6 +412,16 @@ static struct clk div6_reparent_clks[DIV6_REPARENT_NR] = {
|
|
|
fsib_parents, ARRAY_SIZE(fsib_parents), 6, 2),
|
|
|
};
|
|
|
|
|
|
+/* DIV6 clocks */
|
|
|
+enum {
|
|
|
+ DIV6_SUB,
|
|
|
+ DIV6_NR
|
|
|
+};
|
|
|
+
|
|
|
+static struct clk div6_clks[DIV6_NR] = {
|
|
|
+ [DIV6_SUB] = SH_CLK_DIV6(&pllc1_div2_clk, SUBCKCR, 0),
|
|
|
+};
|
|
|
+
|
|
|
/* HDMI1/2 clock */
|
|
|
static unsigned long hdmi12_recalc(struct clk *clk)
|
|
|
{
|
|
@@ -455,35 +486,6 @@ static struct clk fsidivs[] = {
|
|
|
};
|
|
|
|
|
|
/* MSTP */
|
|
|
-enum {
|
|
|
- DIV4_I, DIV4_ZG, DIV4_B, DIV4_M1, DIV4_HP,
|
|
|
- DIV4_HPP, DIV4_USBP, DIV4_S, DIV4_ZB, DIV4_M3, DIV4_CP,
|
|
|
- DIV4_NR
|
|
|
-};
|
|
|
-
|
|
|
-struct clk div4_clks[DIV4_NR] = {
|
|
|
- [DIV4_I] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 20, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
- [DIV4_ZG] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 16, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
- [DIV4_B] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 8, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
- [DIV4_M1] = SH_CLK_DIV4(&pllc1_clk, FRQCRA, 4, 0x6fff, CLK_ENABLE_ON_INIT),
|
|
|
- [DIV4_HP] = SH_CLK_DIV4(&pllc1_clk, FRQCRB, 4, 0x6fff, 0),
|
|
|
- [DIV4_HPP] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 20, 0x6fff, 0),
|
|
|
- [DIV4_USBP] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 16, 0x6fff, 0),
|
|
|
- [DIV4_S] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 12, 0x6fff, 0),
|
|
|
- [DIV4_ZB] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 8, 0x6fff, 0),
|
|
|
- [DIV4_M3] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 4, 0x6fff, 0),
|
|
|
- [DIV4_CP] = SH_CLK_DIV4(&pllc1_clk, FRQCRC, 0, 0x6fff, 0),
|
|
|
-};
|
|
|
-
|
|
|
-enum {
|
|
|
- DIV6_SUB,
|
|
|
- DIV6_NR
|
|
|
-};
|
|
|
-
|
|
|
-static struct clk div6_clks[DIV6_NR] = {
|
|
|
- [DIV6_SUB] = SH_CLK_DIV6(&pllc1_div2_clk, SUBCKCR, 0),
|
|
|
-};
|
|
|
-
|
|
|
enum {
|
|
|
MSTP128, MSTP127, MSTP125,
|
|
|
MSTP116, MSTP111, MSTP100, MSTP117,
|