diff options
Diffstat (limited to 'drivers/clk/tegra/clk-tegra30.c')
-rw-r--r-- | drivers/clk/tegra/clk-tegra30.c | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c index e2c6ca0431d6..dbe7c8003c5c 100644 --- a/drivers/clk/tegra/clk-tegra30.c +++ b/drivers/clk/tegra/clk-tegra30.c | |||
@@ -971,7 +971,7 @@ static void __init tegra30_pll_init(void) | |||
971 | /* PLLU */ | 971 | /* PLLU */ |
972 | clk = tegra_clk_register_pll("pll_u", "pll_ref", clk_base, pmc_base, 0, | 972 | clk = tegra_clk_register_pll("pll_u", "pll_ref", clk_base, pmc_base, 0, |
973 | 0, &pll_u_params, TEGRA_PLLU | TEGRA_PLL_HAS_CPCON | | 973 | 0, &pll_u_params, TEGRA_PLLU | TEGRA_PLL_HAS_CPCON | |
974 | TEGRA_PLL_SET_LFCON | TEGRA_PLL_USE_LOCK, | 974 | TEGRA_PLL_SET_LFCON, |
975 | pll_u_freq_table, | 975 | pll_u_freq_table, |
976 | NULL); | 976 | NULL); |
977 | clk_register_clkdev(clk, "pll_u", NULL); | 977 | clk_register_clkdev(clk, "pll_u", NULL); |
@@ -1026,7 +1026,8 @@ static void __init tegra30_pll_init(void) | |||
1026 | 1026 | ||
1027 | /* PLLE */ | 1027 | /* PLLE */ |
1028 | clk = clk_register_mux(NULL, "pll_e_mux", pll_e_parents, | 1028 | clk = clk_register_mux(NULL, "pll_e_mux", pll_e_parents, |
1029 | ARRAY_SIZE(pll_e_parents), 0, | 1029 | ARRAY_SIZE(pll_e_parents), |
1030 | CLK_SET_RATE_NO_REPARENT, | ||
1030 | clk_base + PLLE_AUX, 2, 1, 0, NULL); | 1031 | clk_base + PLLE_AUX, 2, 1, 0, NULL); |
1031 | clk = tegra_clk_register_plle("pll_e", "pll_e_mux", clk_base, pmc_base, | 1032 | clk = tegra_clk_register_plle("pll_e", "pll_e_mux", clk_base, pmc_base, |
1032 | CLK_GET_RATE_NOCACHE, 100000000, &pll_e_params, | 1033 | CLK_GET_RATE_NOCACHE, 100000000, &pll_e_params, |
@@ -1086,7 +1087,8 @@ static void __init tegra30_audio_clk_init(void) | |||
1086 | 1087 | ||
1087 | /* audio0 */ | 1088 | /* audio0 */ |
1088 | clk = clk_register_mux(NULL, "audio0_mux", mux_audio_sync_clk, | 1089 | clk = clk_register_mux(NULL, "audio0_mux", mux_audio_sync_clk, |
1089 | ARRAY_SIZE(mux_audio_sync_clk), 0, | 1090 | ARRAY_SIZE(mux_audio_sync_clk), |
1091 | CLK_SET_RATE_NO_REPARENT, | ||
1090 | clk_base + AUDIO_SYNC_CLK_I2S0, 0, 3, 0, NULL); | 1092 | clk_base + AUDIO_SYNC_CLK_I2S0, 0, 3, 0, NULL); |
1091 | clk = clk_register_gate(NULL, "audio0", "audio0_mux", 0, | 1093 | clk = clk_register_gate(NULL, "audio0", "audio0_mux", 0, |
1092 | clk_base + AUDIO_SYNC_CLK_I2S0, 4, | 1094 | clk_base + AUDIO_SYNC_CLK_I2S0, 4, |
@@ -1096,7 +1098,8 @@ static void __init tegra30_audio_clk_init(void) | |||
1096 | 1098 | ||
1097 | /* audio1 */ | 1099 | /* audio1 */ |
1098 | clk = clk_register_mux(NULL, "audio1_mux", mux_audio_sync_clk, | 1100 | clk = clk_register_mux(NULL, "audio1_mux", mux_audio_sync_clk, |
1099 | ARRAY_SIZE(mux_audio_sync_clk), 0, | 1101 | ARRAY_SIZE(mux_audio_sync_clk), |
1102 | CLK_SET_RATE_NO_REPARENT, | ||
1100 | clk_base + AUDIO_SYNC_CLK_I2S1, 0, 3, 0, NULL); | 1103 | clk_base + AUDIO_SYNC_CLK_I2S1, 0, 3, 0, NULL); |
1101 | clk = clk_register_gate(NULL, "audio1", "audio1_mux", 0, | 1104 | clk = clk_register_gate(NULL, "audio1", "audio1_mux", 0, |
1102 | clk_base + AUDIO_SYNC_CLK_I2S1, 4, | 1105 | clk_base + AUDIO_SYNC_CLK_I2S1, 4, |
@@ -1106,7 +1109,8 @@ static void __init tegra30_audio_clk_init(void) | |||
1106 | 1109 | ||
1107 | /* audio2 */ | 1110 | /* audio2 */ |
1108 | clk = clk_register_mux(NULL, "audio2_mux", mux_audio_sync_clk, | 1111 | clk = clk_register_mux(NULL, "audio2_mux", mux_audio_sync_clk, |
1109 | ARRAY_SIZE(mux_audio_sync_clk), 0, | 1112 | ARRAY_SIZE(mux_audio_sync_clk), |
1113 | CLK_SET_RATE_NO_REPARENT, | ||
1110 | clk_base + AUDIO_SYNC_CLK_I2S2, 0, 3, 0, NULL); | 1114 | clk_base + AUDIO_SYNC_CLK_I2S2, 0, 3, 0, NULL); |
1111 | clk = clk_register_gate(NULL, "audio2", "audio2_mux", 0, | 1115 | clk = clk_register_gate(NULL, "audio2", "audio2_mux", 0, |
1112 | clk_base + AUDIO_SYNC_CLK_I2S2, 4, | 1116 | clk_base + AUDIO_SYNC_CLK_I2S2, 4, |
@@ -1116,7 +1120,8 @@ static void __init tegra30_audio_clk_init(void) | |||
1116 | 1120 | ||
1117 | /* audio3 */ | 1121 | /* audio3 */ |
1118 | clk = clk_register_mux(NULL, "audio3_mux", mux_audio_sync_clk, | 1122 | clk = clk_register_mux(NULL, "audio3_mux", mux_audio_sync_clk, |
1119 | ARRAY_SIZE(mux_audio_sync_clk), 0, | 1123 | ARRAY_SIZE(mux_audio_sync_clk), |
1124 | CLK_SET_RATE_NO_REPARENT, | ||
1120 | clk_base + AUDIO_SYNC_CLK_I2S3, 0, 3, 0, NULL); | 1125 | clk_base + AUDIO_SYNC_CLK_I2S3, 0, 3, 0, NULL); |
1121 | clk = clk_register_gate(NULL, "audio3", "audio3_mux", 0, | 1126 | clk = clk_register_gate(NULL, "audio3", "audio3_mux", 0, |
1122 | clk_base + AUDIO_SYNC_CLK_I2S3, 4, | 1127 | clk_base + AUDIO_SYNC_CLK_I2S3, 4, |
@@ -1126,7 +1131,8 @@ static void __init tegra30_audio_clk_init(void) | |||
1126 | 1131 | ||
1127 | /* audio4 */ | 1132 | /* audio4 */ |
1128 | clk = clk_register_mux(NULL, "audio4_mux", mux_audio_sync_clk, | 1133 | clk = clk_register_mux(NULL, "audio4_mux", mux_audio_sync_clk, |
1129 | ARRAY_SIZE(mux_audio_sync_clk), 0, | 1134 | ARRAY_SIZE(mux_audio_sync_clk), |
1135 | CLK_SET_RATE_NO_REPARENT, | ||
1130 | clk_base + AUDIO_SYNC_CLK_I2S4, 0, 3, 0, NULL); | 1136 | clk_base + AUDIO_SYNC_CLK_I2S4, 0, 3, 0, NULL); |
1131 | clk = clk_register_gate(NULL, "audio4", "audio4_mux", 0, | 1137 | clk = clk_register_gate(NULL, "audio4", "audio4_mux", 0, |
1132 | clk_base + AUDIO_SYNC_CLK_I2S4, 4, | 1138 | clk_base + AUDIO_SYNC_CLK_I2S4, 4, |
@@ -1136,7 +1142,8 @@ static void __init tegra30_audio_clk_init(void) | |||
1136 | 1142 | ||
1137 | /* spdif */ | 1143 | /* spdif */ |
1138 | clk = clk_register_mux(NULL, "spdif_mux", mux_audio_sync_clk, | 1144 | clk = clk_register_mux(NULL, "spdif_mux", mux_audio_sync_clk, |
1139 | ARRAY_SIZE(mux_audio_sync_clk), 0, | 1145 | ARRAY_SIZE(mux_audio_sync_clk), |
1146 | CLK_SET_RATE_NO_REPARENT, | ||
1140 | clk_base + AUDIO_SYNC_CLK_SPDIF, 0, 3, 0, NULL); | 1147 | clk_base + AUDIO_SYNC_CLK_SPDIF, 0, 3, 0, NULL); |
1141 | clk = clk_register_gate(NULL, "spdif", "spdif_mux", 0, | 1148 | clk = clk_register_gate(NULL, "spdif", "spdif_mux", 0, |
1142 | clk_base + AUDIO_SYNC_CLK_SPDIF, 4, | 1149 | clk_base + AUDIO_SYNC_CLK_SPDIF, 4, |
@@ -1229,7 +1236,8 @@ static void __init tegra30_pmc_clk_init(void) | |||
1229 | 1236 | ||
1230 | /* clk_out_1 */ | 1237 | /* clk_out_1 */ |
1231 | clk = clk_register_mux(NULL, "clk_out_1_mux", clk_out1_parents, | 1238 | clk = clk_register_mux(NULL, "clk_out_1_mux", clk_out1_parents, |
1232 | ARRAY_SIZE(clk_out1_parents), 0, | 1239 | ARRAY_SIZE(clk_out1_parents), |
1240 | CLK_SET_RATE_NO_REPARENT, | ||
1233 | pmc_base + PMC_CLK_OUT_CNTRL, 6, 3, 0, | 1241 | pmc_base + PMC_CLK_OUT_CNTRL, 6, 3, 0, |
1234 | &clk_out_lock); | 1242 | &clk_out_lock); |
1235 | clks[clk_out_1_mux] = clk; | 1243 | clks[clk_out_1_mux] = clk; |
@@ -1241,7 +1249,8 @@ static void __init tegra30_pmc_clk_init(void) | |||
1241 | 1249 | ||
1242 | /* clk_out_2 */ | 1250 | /* clk_out_2 */ |
1243 | clk = clk_register_mux(NULL, "clk_out_2_mux", clk_out2_parents, | 1251 | clk = clk_register_mux(NULL, "clk_out_2_mux", clk_out2_parents, |
1244 | ARRAY_SIZE(clk_out2_parents), 0, | 1252 | ARRAY_SIZE(clk_out2_parents), |
1253 | CLK_SET_RATE_NO_REPARENT, | ||
1245 | pmc_base + PMC_CLK_OUT_CNTRL, 14, 3, 0, | 1254 | pmc_base + PMC_CLK_OUT_CNTRL, 14, 3, 0, |
1246 | &clk_out_lock); | 1255 | &clk_out_lock); |
1247 | clk = clk_register_gate(NULL, "clk_out_2", "clk_out_2_mux", 0, | 1256 | clk = clk_register_gate(NULL, "clk_out_2", "clk_out_2_mux", 0, |
@@ -1252,7 +1261,8 @@ static void __init tegra30_pmc_clk_init(void) | |||
1252 | 1261 | ||
1253 | /* clk_out_3 */ | 1262 | /* clk_out_3 */ |
1254 | clk = clk_register_mux(NULL, "clk_out_3_mux", clk_out3_parents, | 1263 | clk = clk_register_mux(NULL, "clk_out_3_mux", clk_out3_parents, |
1255 | ARRAY_SIZE(clk_out3_parents), 0, | 1264 | ARRAY_SIZE(clk_out3_parents), |
1265 | CLK_SET_RATE_NO_REPARENT, | ||
1256 | pmc_base + PMC_CLK_OUT_CNTRL, 22, 3, 0, | 1266 | pmc_base + PMC_CLK_OUT_CNTRL, 22, 3, 0, |
1257 | &clk_out_lock); | 1267 | &clk_out_lock); |
1258 | clk = clk_register_gate(NULL, "clk_out_3", "clk_out_3_mux", 0, | 1268 | clk = clk_register_gate(NULL, "clk_out_3", "clk_out_3_mux", 0, |
@@ -1679,7 +1689,8 @@ static void __init tegra30_periph_clk_init(void) | |||
1679 | 1689 | ||
1680 | /* emc */ | 1690 | /* emc */ |
1681 | clk = clk_register_mux(NULL, "emc_mux", mux_pllmcp_clkm, | 1691 | clk = clk_register_mux(NULL, "emc_mux", mux_pllmcp_clkm, |
1682 | ARRAY_SIZE(mux_pllmcp_clkm), 0, | 1692 | ARRAY_SIZE(mux_pllmcp_clkm), |
1693 | CLK_SET_RATE_NO_REPARENT, | ||
1683 | clk_base + CLK_SOURCE_EMC, | 1694 | clk_base + CLK_SOURCE_EMC, |
1684 | 30, 2, 0, NULL); | 1695 | 30, 2, 0, NULL); |
1685 | clk = tegra_clk_register_periph_gate("emc", "emc_mux", 0, clk_base, 0, | 1696 | clk = tegra_clk_register_periph_gate("emc", "emc_mux", 0, clk_base, 0, |
@@ -1901,7 +1912,7 @@ static struct tegra_cpu_car_ops tegra30_cpu_car_ops = { | |||
1901 | #endif | 1912 | #endif |
1902 | }; | 1913 | }; |
1903 | 1914 | ||
1904 | static __initdata struct tegra_clk_init_table init_table[] = { | 1915 | static struct tegra_clk_init_table init_table[] __initdata = { |
1905 | {uarta, pll_p, 408000000, 0}, | 1916 | {uarta, pll_p, 408000000, 0}, |
1906 | {uartb, pll_p, 408000000, 0}, | 1917 | {uartb, pll_p, 408000000, 0}, |
1907 | {uartc, pll_p, 408000000, 0}, | 1918 | {uartc, pll_p, 408000000, 0}, |