diff options
author | Tero Kristo <t-kristo@ti.com> | 2014-02-21 10:22:32 -0500 |
---|---|---|
committer | Tero Kristo <t-kristo@ti.com> | 2014-05-28 05:28:15 -0400 |
commit | a6fe3771d389cc660933509b7dfb945c596636f5 (patch) | |
tree | 1b885723e4b12c79450b0ccdf4790e6f78f67bce | |
parent | d1db0eea852497762cab43b905b879dfcd3b8987 (diff) |
CLK: TI: DPLL: simplify autoidle register detection logic
AMxxxx dpll_data previously had autoidle_mask set, even if these SoC:s
don't have autoidle register. Remove the bit-field value as it is unused,
also drop the unnecessary DPLL_HAS_AUTOIDLE flag passing during init,
as we can just simply check against the contents of the autoidle_mask.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
-rw-r--r-- | drivers/clk/ti/dpll.c | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/drivers/clk/ti/dpll.c b/drivers/clk/ti/dpll.c index 7e498a44f97d..dda262db42ea 100644 --- a/drivers/clk/ti/dpll.c +++ b/drivers/clk/ti/dpll.c | |||
@@ -25,8 +25,6 @@ | |||
25 | #undef pr_fmt | 25 | #undef pr_fmt |
26 | #define pr_fmt(fmt) "%s: " fmt, __func__ | 26 | #define pr_fmt(fmt) "%s: " fmt, __func__ |
27 | 27 | ||
28 | #define DPLL_HAS_AUTOIDLE 0x1 | ||
29 | |||
30 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ | 28 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) || \ |
31 | defined(CONFIG_SOC_DRA7XX) | 29 | defined(CONFIG_SOC_DRA7XX) |
32 | static const struct clk_ops dpll_m4xen_ck_ops = { | 30 | static const struct clk_ops dpll_m4xen_ck_ops = { |
@@ -193,14 +191,12 @@ static void ti_clk_register_dpll_x2(struct device_node *node, | |||
193 | * @node: device node containing the DPLL info | 191 | * @node: device node containing the DPLL info |
194 | * @ops: ops for the DPLL | 192 | * @ops: ops for the DPLL |
195 | * @ddt: DPLL data template to use | 193 | * @ddt: DPLL data template to use |
196 | * @init_flags: flags for controlling init types | ||
197 | * | 194 | * |
198 | * Initializes a DPLL clock from device tree data. | 195 | * Initializes a DPLL clock from device tree data. |
199 | */ | 196 | */ |
200 | static void __init of_ti_dpll_setup(struct device_node *node, | 197 | static void __init of_ti_dpll_setup(struct device_node *node, |
201 | const struct clk_ops *ops, | 198 | const struct clk_ops *ops, |
202 | const struct dpll_data *ddt, | 199 | const struct dpll_data *ddt) |
203 | u8 init_flags) | ||
204 | { | 200 | { |
205 | struct clk_hw_omap *clk_hw = NULL; | 201 | struct clk_hw_omap *clk_hw = NULL; |
206 | struct clk_init_data *init = NULL; | 202 | struct clk_init_data *init = NULL; |
@@ -247,7 +243,7 @@ static void __init of_ti_dpll_setup(struct device_node *node, | |||
247 | if (!dd->control_reg || !dd->idlest_reg || !dd->mult_div1_reg) | 243 | if (!dd->control_reg || !dd->idlest_reg || !dd->mult_div1_reg) |
248 | goto cleanup; | 244 | goto cleanup; |
249 | 245 | ||
250 | if (init_flags & DPLL_HAS_AUTOIDLE) { | 246 | if (dd->autoidle_mask) { |
251 | dd->autoidle_reg = ti_clk_get_reg_addr(node, 3); | 247 | dd->autoidle_reg = ti_clk_get_reg_addr(node, 3); |
252 | if (!dd->autoidle_reg) | 248 | if (!dd->autoidle_reg) |
253 | goto cleanup; | 249 | goto cleanup; |
@@ -310,7 +306,7 @@ static void __init of_ti_omap3_dpll_setup(struct device_node *node) | |||
310 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 306 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
311 | }; | 307 | }; |
312 | 308 | ||
313 | of_ti_dpll_setup(node, &omap3_dpll_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 309 | of_ti_dpll_setup(node, &omap3_dpll_ck_ops, &dd); |
314 | } | 310 | } |
315 | CLK_OF_DECLARE(ti_omap3_dpll_clock, "ti,omap3-dpll-clock", | 311 | CLK_OF_DECLARE(ti_omap3_dpll_clock, "ti,omap3-dpll-clock", |
316 | of_ti_omap3_dpll_setup); | 312 | of_ti_omap3_dpll_setup); |
@@ -329,7 +325,7 @@ static void __init of_ti_omap3_core_dpll_setup(struct device_node *node) | |||
329 | .freqsel_mask = 0xf0, | 325 | .freqsel_mask = 0xf0, |
330 | }; | 326 | }; |
331 | 327 | ||
332 | of_ti_dpll_setup(node, &omap3_dpll_core_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 328 | of_ti_dpll_setup(node, &omap3_dpll_core_ck_ops, &dd); |
333 | } | 329 | } |
334 | CLK_OF_DECLARE(ti_omap3_core_dpll_clock, "ti,omap3-dpll-core-clock", | 330 | CLK_OF_DECLARE(ti_omap3_core_dpll_clock, "ti,omap3-dpll-core-clock", |
335 | of_ti_omap3_core_dpll_setup); | 331 | of_ti_omap3_core_dpll_setup); |
@@ -349,7 +345,7 @@ static void __init of_ti_omap3_per_dpll_setup(struct device_node *node) | |||
349 | .modes = (1 << DPLL_LOW_POWER_STOP) | (1 << DPLL_LOCKED), | 345 | .modes = (1 << DPLL_LOW_POWER_STOP) | (1 << DPLL_LOCKED), |
350 | }; | 346 | }; |
351 | 347 | ||
352 | of_ti_dpll_setup(node, &omap3_dpll_per_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 348 | of_ti_dpll_setup(node, &omap3_dpll_per_ck_ops, &dd); |
353 | } | 349 | } |
354 | CLK_OF_DECLARE(ti_omap3_per_dpll_clock, "ti,omap3-dpll-per-clock", | 350 | CLK_OF_DECLARE(ti_omap3_per_dpll_clock, "ti,omap3-dpll-per-clock", |
355 | of_ti_omap3_per_dpll_setup); | 351 | of_ti_omap3_per_dpll_setup); |
@@ -371,7 +367,7 @@ static void __init of_ti_omap3_per_jtype_dpll_setup(struct device_node *node) | |||
371 | .modes = (1 << DPLL_LOW_POWER_STOP) | (1 << DPLL_LOCKED), | 367 | .modes = (1 << DPLL_LOW_POWER_STOP) | (1 << DPLL_LOCKED), |
372 | }; | 368 | }; |
373 | 369 | ||
374 | of_ti_dpll_setup(node, &omap3_dpll_per_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 370 | of_ti_dpll_setup(node, &omap3_dpll_per_ck_ops, &dd); |
375 | } | 371 | } |
376 | CLK_OF_DECLARE(ti_omap3_per_jtype_dpll_clock, "ti,omap3-dpll-per-j-type-clock", | 372 | CLK_OF_DECLARE(ti_omap3_per_jtype_dpll_clock, "ti,omap3-dpll-per-j-type-clock", |
377 | of_ti_omap3_per_jtype_dpll_setup); | 373 | of_ti_omap3_per_jtype_dpll_setup); |
@@ -391,7 +387,7 @@ static void __init of_ti_omap4_dpll_setup(struct device_node *node) | |||
391 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 387 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
392 | }; | 388 | }; |
393 | 389 | ||
394 | of_ti_dpll_setup(node, &dpll_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 390 | of_ti_dpll_setup(node, &dpll_ck_ops, &dd); |
395 | } | 391 | } |
396 | CLK_OF_DECLARE(ti_omap4_dpll_clock, "ti,omap4-dpll-clock", | 392 | CLK_OF_DECLARE(ti_omap4_dpll_clock, "ti,omap4-dpll-clock", |
397 | of_ti_omap4_dpll_setup); | 393 | of_ti_omap4_dpll_setup); |
@@ -410,7 +406,7 @@ static void __init of_ti_omap4_core_dpll_setup(struct device_node *node) | |||
410 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 406 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
411 | }; | 407 | }; |
412 | 408 | ||
413 | of_ti_dpll_setup(node, &dpll_core_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 409 | of_ti_dpll_setup(node, &dpll_core_ck_ops, &dd); |
414 | } | 410 | } |
415 | CLK_OF_DECLARE(ti_omap4_core_dpll_clock, "ti,omap4-dpll-core-clock", | 411 | CLK_OF_DECLARE(ti_omap4_core_dpll_clock, "ti,omap4-dpll-core-clock", |
416 | of_ti_omap4_core_dpll_setup); | 412 | of_ti_omap4_core_dpll_setup); |
@@ -433,7 +429,7 @@ static void __init of_ti_omap4_m4xen_dpll_setup(struct device_node *node) | |||
433 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 429 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
434 | }; | 430 | }; |
435 | 431 | ||
436 | of_ti_dpll_setup(node, &dpll_m4xen_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 432 | of_ti_dpll_setup(node, &dpll_m4xen_ck_ops, &dd); |
437 | } | 433 | } |
438 | CLK_OF_DECLARE(ti_omap4_m4xen_dpll_clock, "ti,omap4-dpll-m4xen-clock", | 434 | CLK_OF_DECLARE(ti_omap4_m4xen_dpll_clock, "ti,omap4-dpll-m4xen-clock", |
439 | of_ti_omap4_m4xen_dpll_setup); | 435 | of_ti_omap4_m4xen_dpll_setup); |
@@ -454,7 +450,7 @@ static void __init of_ti_omap4_jtype_dpll_setup(struct device_node *node) | |||
454 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 450 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
455 | }; | 451 | }; |
456 | 452 | ||
457 | of_ti_dpll_setup(node, &dpll_m4xen_ck_ops, &dd, DPLL_HAS_AUTOIDLE); | 453 | of_ti_dpll_setup(node, &dpll_m4xen_ck_ops, &dd); |
458 | } | 454 | } |
459 | CLK_OF_DECLARE(ti_omap4_jtype_dpll_clock, "ti,omap4-dpll-j-type-clock", | 455 | CLK_OF_DECLARE(ti_omap4_jtype_dpll_clock, "ti,omap4-dpll-j-type-clock", |
460 | of_ti_omap4_jtype_dpll_setup); | 456 | of_ti_omap4_jtype_dpll_setup); |
@@ -465,7 +461,6 @@ static void __init of_ti_am3_no_gate_dpll_setup(struct device_node *node) | |||
465 | const struct dpll_data dd = { | 461 | const struct dpll_data dd = { |
466 | .idlest_mask = 0x1, | 462 | .idlest_mask = 0x1, |
467 | .enable_mask = 0x7, | 463 | .enable_mask = 0x7, |
468 | .autoidle_mask = 0x7, | ||
469 | .mult_mask = 0x7ff << 8, | 464 | .mult_mask = 0x7ff << 8, |
470 | .div1_mask = 0x7f, | 465 | .div1_mask = 0x7f, |
471 | .max_multiplier = 2047, | 466 | .max_multiplier = 2047, |
@@ -474,7 +469,7 @@ static void __init of_ti_am3_no_gate_dpll_setup(struct device_node *node) | |||
474 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 469 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
475 | }; | 470 | }; |
476 | 471 | ||
477 | of_ti_dpll_setup(node, &dpll_no_gate_ck_ops, &dd, 0); | 472 | of_ti_dpll_setup(node, &dpll_no_gate_ck_ops, &dd); |
478 | } | 473 | } |
479 | CLK_OF_DECLARE(ti_am3_no_gate_dpll_clock, "ti,am3-dpll-no-gate-clock", | 474 | CLK_OF_DECLARE(ti_am3_no_gate_dpll_clock, "ti,am3-dpll-no-gate-clock", |
480 | of_ti_am3_no_gate_dpll_setup); | 475 | of_ti_am3_no_gate_dpll_setup); |
@@ -484,7 +479,6 @@ static void __init of_ti_am3_jtype_dpll_setup(struct device_node *node) | |||
484 | const struct dpll_data dd = { | 479 | const struct dpll_data dd = { |
485 | .idlest_mask = 0x1, | 480 | .idlest_mask = 0x1, |
486 | .enable_mask = 0x7, | 481 | .enable_mask = 0x7, |
487 | .autoidle_mask = 0x7, | ||
488 | .mult_mask = 0x7ff << 8, | 482 | .mult_mask = 0x7ff << 8, |
489 | .div1_mask = 0x7f, | 483 | .div1_mask = 0x7f, |
490 | .max_multiplier = 4095, | 484 | .max_multiplier = 4095, |
@@ -494,7 +488,7 @@ static void __init of_ti_am3_jtype_dpll_setup(struct device_node *node) | |||
494 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 488 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
495 | }; | 489 | }; |
496 | 490 | ||
497 | of_ti_dpll_setup(node, &dpll_ck_ops, &dd, 0); | 491 | of_ti_dpll_setup(node, &dpll_ck_ops, &dd); |
498 | } | 492 | } |
499 | CLK_OF_DECLARE(ti_am3_jtype_dpll_clock, "ti,am3-dpll-j-type-clock", | 493 | CLK_OF_DECLARE(ti_am3_jtype_dpll_clock, "ti,am3-dpll-j-type-clock", |
500 | of_ti_am3_jtype_dpll_setup); | 494 | of_ti_am3_jtype_dpll_setup); |
@@ -504,7 +498,6 @@ static void __init of_ti_am3_no_gate_jtype_dpll_setup(struct device_node *node) | |||
504 | const struct dpll_data dd = { | 498 | const struct dpll_data dd = { |
505 | .idlest_mask = 0x1, | 499 | .idlest_mask = 0x1, |
506 | .enable_mask = 0x7, | 500 | .enable_mask = 0x7, |
507 | .autoidle_mask = 0x7, | ||
508 | .mult_mask = 0x7ff << 8, | 501 | .mult_mask = 0x7ff << 8, |
509 | .div1_mask = 0x7f, | 502 | .div1_mask = 0x7f, |
510 | .max_multiplier = 2047, | 503 | .max_multiplier = 2047, |
@@ -514,7 +507,7 @@ static void __init of_ti_am3_no_gate_jtype_dpll_setup(struct device_node *node) | |||
514 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 507 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
515 | }; | 508 | }; |
516 | 509 | ||
517 | of_ti_dpll_setup(node, &dpll_no_gate_ck_ops, &dd, 0); | 510 | of_ti_dpll_setup(node, &dpll_no_gate_ck_ops, &dd); |
518 | } | 511 | } |
519 | CLK_OF_DECLARE(ti_am3_no_gate_jtype_dpll_clock, | 512 | CLK_OF_DECLARE(ti_am3_no_gate_jtype_dpll_clock, |
520 | "ti,am3-dpll-no-gate-j-type-clock", | 513 | "ti,am3-dpll-no-gate-j-type-clock", |
@@ -525,7 +518,6 @@ static void __init of_ti_am3_dpll_setup(struct device_node *node) | |||
525 | const struct dpll_data dd = { | 518 | const struct dpll_data dd = { |
526 | .idlest_mask = 0x1, | 519 | .idlest_mask = 0x1, |
527 | .enable_mask = 0x7, | 520 | .enable_mask = 0x7, |
528 | .autoidle_mask = 0x7, | ||
529 | .mult_mask = 0x7ff << 8, | 521 | .mult_mask = 0x7ff << 8, |
530 | .div1_mask = 0x7f, | 522 | .div1_mask = 0x7f, |
531 | .max_multiplier = 2047, | 523 | .max_multiplier = 2047, |
@@ -534,7 +526,7 @@ static void __init of_ti_am3_dpll_setup(struct device_node *node) | |||
534 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 526 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
535 | }; | 527 | }; |
536 | 528 | ||
537 | of_ti_dpll_setup(node, &dpll_ck_ops, &dd, 0); | 529 | of_ti_dpll_setup(node, &dpll_ck_ops, &dd); |
538 | } | 530 | } |
539 | CLK_OF_DECLARE(ti_am3_dpll_clock, "ti,am3-dpll-clock", of_ti_am3_dpll_setup); | 531 | CLK_OF_DECLARE(ti_am3_dpll_clock, "ti,am3-dpll-clock", of_ti_am3_dpll_setup); |
540 | 532 | ||
@@ -543,7 +535,6 @@ static void __init of_ti_am3_core_dpll_setup(struct device_node *node) | |||
543 | const struct dpll_data dd = { | 535 | const struct dpll_data dd = { |
544 | .idlest_mask = 0x1, | 536 | .idlest_mask = 0x1, |
545 | .enable_mask = 0x7, | 537 | .enable_mask = 0x7, |
546 | .autoidle_mask = 0x7, | ||
547 | .mult_mask = 0x7ff << 8, | 538 | .mult_mask = 0x7ff << 8, |
548 | .div1_mask = 0x7f, | 539 | .div1_mask = 0x7f, |
549 | .max_multiplier = 2047, | 540 | .max_multiplier = 2047, |
@@ -552,7 +543,7 @@ static void __init of_ti_am3_core_dpll_setup(struct device_node *node) | |||
552 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), | 543 | .modes = (1 << DPLL_LOW_POWER_BYPASS) | (1 << DPLL_LOCKED), |
553 | }; | 544 | }; |
554 | 545 | ||
555 | of_ti_dpll_setup(node, &dpll_core_ck_ops, &dd, 0); | 546 | of_ti_dpll_setup(node, &dpll_core_ck_ops, &dd); |
556 | } | 547 | } |
557 | CLK_OF_DECLARE(ti_am3_core_dpll_clock, "ti,am3-dpll-core-clock", | 548 | CLK_OF_DECLARE(ti_am3_core_dpll_clock, "ti,am3-dpll-core-clock", |
558 | of_ti_am3_core_dpll_setup); | 549 | of_ti_am3_core_dpll_setup); |