@@ -1269,6 +1269,45 @@ static const struct samsung_cpu_clock exynos4412_cpu_clks[] __initconst = {
12691269 CPUCLK_LAYOUT_E4210 , e4412_armclk_d ),
12701270};
12711271
1272+ static const struct samsung_cmu_info cmu_info_exynos4 __initconst = {
1273+ .mux_clks = exynos4_mux_clks ,
1274+ .nr_mux_clks = ARRAY_SIZE (exynos4_mux_clks ),
1275+ .div_clks = exynos4_div_clks ,
1276+ .nr_div_clks = ARRAY_SIZE (exynos4_div_clks ),
1277+ .gate_clks = exynos4_gate_clks ,
1278+ .nr_gate_clks = ARRAY_SIZE (exynos4_gate_clks ),
1279+ .fixed_factor_clks = exynos4_fixed_factor_clks ,
1280+ .nr_fixed_factor_clks = ARRAY_SIZE (exynos4_fixed_factor_clks ),
1281+ .fixed_clks = exynos4_fixed_rate_clks ,
1282+ .nr_fixed_clks = ARRAY_SIZE (exynos4_fixed_rate_clks ),
1283+ };
1284+
1285+ static const struct samsung_cmu_info cmu_info_exynos4210 __initconst = {
1286+ .mux_clks = exynos4210_mux_clks ,
1287+ .nr_mux_clks = ARRAY_SIZE (exynos4210_mux_clks ),
1288+ .div_clks = exynos4210_div_clks ,
1289+ .nr_div_clks = ARRAY_SIZE (exynos4210_div_clks ),
1290+ .gate_clks = exynos4210_gate_clks ,
1291+ .nr_gate_clks = ARRAY_SIZE (exynos4210_gate_clks ),
1292+ .fixed_factor_clks = exynos4210_fixed_factor_clks ,
1293+ .nr_fixed_factor_clks = ARRAY_SIZE (exynos4210_fixed_factor_clks ),
1294+ .fixed_clks = exynos4210_fixed_rate_clks ,
1295+ .nr_fixed_clks = ARRAY_SIZE (exynos4210_fixed_rate_clks ),
1296+ .cpu_clks = exynos4210_cpu_clks ,
1297+ .nr_cpu_clks = ARRAY_SIZE (exynos4210_cpu_clks ),
1298+ };
1299+
1300+ static const struct samsung_cmu_info cmu_info_exynos4x12 __initconst = {
1301+ .mux_clks = exynos4x12_mux_clks ,
1302+ .nr_mux_clks = ARRAY_SIZE (exynos4x12_mux_clks ),
1303+ .div_clks = exynos4x12_div_clks ,
1304+ .nr_div_clks = ARRAY_SIZE (exynos4x12_div_clks ),
1305+ .gate_clks = exynos4x12_gate_clks ,
1306+ .nr_gate_clks = ARRAY_SIZE (exynos4x12_gate_clks ),
1307+ .fixed_factor_clks = exynos4x12_fixed_factor_clks ,
1308+ .nr_fixed_factor_clks = ARRAY_SIZE (exynos4x12_fixed_factor_clks ),
1309+ };
1310+
12721311/* register exynos4 clocks */
12731312static void __init exynos4_clk_init (struct device_node * np ,
12741313 enum exynos4_soc soc )
@@ -1322,41 +1361,12 @@ static void __init exynos4_clk_init(struct device_node *np,
13221361 ARRAY_SIZE (exynos4x12_plls ));
13231362 }
13241363
1325- samsung_clk_register_fixed_rate (ctx , exynos4_fixed_rate_clks ,
1326- ARRAY_SIZE (exynos4_fixed_rate_clks ));
1327- samsung_clk_register_mux (ctx , exynos4_mux_clks ,
1328- ARRAY_SIZE (exynos4_mux_clks ));
1329- samsung_clk_register_div (ctx , exynos4_div_clks ,
1330- ARRAY_SIZE (exynos4_div_clks ));
1331- samsung_clk_register_gate (ctx , exynos4_gate_clks ,
1332- ARRAY_SIZE (exynos4_gate_clks ));
1333- samsung_clk_register_fixed_factor (ctx , exynos4_fixed_factor_clks ,
1334- ARRAY_SIZE (exynos4_fixed_factor_clks ));
1364+ samsung_cmu_register_clocks (ctx , & cmu_info_exynos4 );
13351365
13361366 if (exynos4_soc == EXYNOS4210 ) {
1337- samsung_clk_register_fixed_rate (ctx , exynos4210_fixed_rate_clks ,
1338- ARRAY_SIZE (exynos4210_fixed_rate_clks ));
1339- samsung_clk_register_mux (ctx , exynos4210_mux_clks ,
1340- ARRAY_SIZE (exynos4210_mux_clks ));
1341- samsung_clk_register_div (ctx , exynos4210_div_clks ,
1342- ARRAY_SIZE (exynos4210_div_clks ));
1343- samsung_clk_register_gate (ctx , exynos4210_gate_clks ,
1344- ARRAY_SIZE (exynos4210_gate_clks ));
1345- samsung_clk_register_fixed_factor (ctx ,
1346- exynos4210_fixed_factor_clks ,
1347- ARRAY_SIZE (exynos4210_fixed_factor_clks ));
1348- samsung_clk_register_cpu (ctx , exynos4210_cpu_clks ,
1349- ARRAY_SIZE (exynos4210_cpu_clks ));
1367+ samsung_cmu_register_clocks (ctx , & cmu_info_exynos4210 );
13501368 } else {
1351- samsung_clk_register_mux (ctx , exynos4x12_mux_clks ,
1352- ARRAY_SIZE (exynos4x12_mux_clks ));
1353- samsung_clk_register_div (ctx , exynos4x12_div_clks ,
1354- ARRAY_SIZE (exynos4x12_div_clks ));
1355- samsung_clk_register_gate (ctx , exynos4x12_gate_clks ,
1356- ARRAY_SIZE (exynos4x12_gate_clks ));
1357- samsung_clk_register_fixed_factor (ctx ,
1358- exynos4x12_fixed_factor_clks ,
1359- ARRAY_SIZE (exynos4x12_fixed_factor_clks ));
1369+ samsung_cmu_register_clocks (ctx , & cmu_info_exynos4x12 );
13601370 if (soc == EXYNOS4412 )
13611371 samsung_clk_register_cpu (ctx , exynos4412_cpu_clks ,
13621372 ARRAY_SIZE (exynos4412_cpu_clks ));
0 commit comments