Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: gcc-ipq806x: convert parent_names to parent_data

Convert parent_names to parent_data to modernize the driver.
Where possible use parent_hws directly.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Tested-by: Jonathan McDowell <noodles@earth.li>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220226135235.10051-6-ansuelsmth@gmail.com

authored by

Ansuel Smith and committed by
Bjorn Andersson
cb02866f e95e8253

+173 -113
+173 -113
drivers/clk/qcom/gcc-ipq806x.c
··· 25 25 #include "clk-hfpll.h" 26 26 #include "reset.h" 27 27 28 + static const struct clk_parent_data gcc_pxo[] = { 29 + { .fw_name = "pxo", .name = "pxo" }, 30 + }; 31 + 28 32 static struct clk_pll pll0 = { 29 33 .l_reg = 0x30c4, 30 34 .m_reg = 0x30c8, ··· 39 35 .status_bit = 16, 40 36 .clkr.hw.init = &(struct clk_init_data){ 41 37 .name = "pll0", 42 - .parent_names = (const char *[]){ "pxo" }, 38 + .parent_data = gcc_pxo, 43 39 .num_parents = 1, 44 40 .ops = &clk_pll_ops, 45 41 }, ··· 50 46 .enable_mask = BIT(0), 51 47 .hw.init = &(struct clk_init_data){ 52 48 .name = "pll0_vote", 53 - .parent_names = (const char *[]){ "pll0" }, 49 + .parent_hws = (const struct clk_hw*[]){ 50 + &pll0.clkr.hw, 51 + }, 54 52 .num_parents = 1, 55 53 .ops = &clk_pll_vote_ops, 56 54 }, ··· 68 62 .status_bit = 16, 69 63 .clkr.hw.init = &(struct clk_init_data){ 70 64 .name = "pll3", 71 - .parent_names = (const char *[]){ "pxo" }, 65 + .parent_data = gcc_pxo, 72 66 .num_parents = 1, 73 67 .ops = &clk_pll_ops, 74 68 }, ··· 95 89 .status_bit = 16, 96 90 .clkr.hw.init = &(struct clk_init_data){ 97 91 .name = "pll8", 98 - .parent_names = (const char *[]){ "pxo" }, 92 + .parent_data = gcc_pxo, 99 93 .num_parents = 1, 100 94 .ops = &clk_pll_ops, 101 95 }, ··· 106 100 .enable_mask = BIT(8), 107 101 .hw.init = &(struct clk_init_data){ 108 102 .name = "pll8_vote", 109 - .parent_names = (const char *[]){ "pll8" }, 103 + .parent_hws = (const struct clk_hw*[]){ 104 + &pll8.clkr.hw, 105 + }, 110 106 .num_parents = 1, 111 107 .ops = &clk_pll_vote_ops, 112 108 }, ··· 131 123 static struct clk_hfpll hfpll0 = { 132 124 .d = &hfpll0_data, 133 125 .clkr.hw.init = &(struct clk_init_data){ 134 - .parent_names = (const char *[]){ "pxo" }, 126 + .parent_data = gcc_pxo, 135 127 .num_parents = 1, 136 128 .name = "hfpll0", 137 129 .ops = &clk_ops_hfpll, ··· 157 149 static struct clk_hfpll hfpll1 = { 158 150 .d = &hfpll1_data, 159 151 .clkr.hw.init = &(struct clk_init_data){ 160 - .parent_names = (const char *[]){ "pxo" }, 152 + .parent_data = gcc_pxo, 161 153 .num_parents = 1, 162 154 .name = "hfpll1", 163 155 .ops = &clk_ops_hfpll, ··· 183 175 static struct clk_hfpll hfpll_l2 = { 184 176 .d = &hfpll_l2_data, 185 177 .clkr.hw.init = &(struct clk_init_data){ 186 - .parent_names = (const char *[]){ "pxo" }, 178 + .parent_data = gcc_pxo, 187 179 .num_parents = 1, 188 180 .name = "hfpll_l2", 189 181 .ops = &clk_ops_hfpll, ··· 202 194 .status_bit = 16, 203 195 .clkr.hw.init = &(struct clk_init_data){ 204 196 .name = "pll14", 205 - .parent_names = (const char *[]){ "pxo" }, 197 + .parent_data = gcc_pxo, 206 198 .num_parents = 1, 207 199 .ops = &clk_pll_ops, 208 200 }, ··· 213 205 .enable_mask = BIT(14), 214 206 .hw.init = &(struct clk_init_data){ 215 207 .name = "pll14_vote", 216 - .parent_names = (const char *[]){ "pll14" }, 208 + .parent_hws = (const struct clk_hw*[]){ 209 + &pll14.clkr.hw, 210 + }, 217 211 .num_parents = 1, 218 212 .ops = &clk_pll_vote_ops, 219 213 }, ··· 248 238 .freq_tbl = pll18_freq_tbl, 249 239 .clkr.hw.init = &(struct clk_init_data){ 250 240 .name = "pll18", 251 - .parent_names = (const char *[]){ "pxo" }, 241 + .parent_data = gcc_pxo, 252 242 .num_parents = 1, 253 243 .ops = &clk_pll_ops, 254 244 }, ··· 269 259 { P_PLL8, 3 } 270 260 }; 271 261 272 - static const char * const gcc_pxo_pll8[] = { 273 - "pxo", 274 - "pll8_vote", 262 + static const struct clk_parent_data gcc_pxo_pll8[] = { 263 + { .fw_name = "pxo", .name = "pxo" }, 264 + { .hw = &pll8_vote.hw }, 275 265 }; 276 266 277 267 static const struct parent_map gcc_pxo_pll8_cxo_map[] = { ··· 280 270 { P_CXO, 5 } 281 271 }; 282 272 283 - static const char * const gcc_pxo_pll8_cxo[] = { 284 - "pxo", 285 - "pll8_vote", 286 - "cxo", 273 + static const struct clk_parent_data gcc_pxo_pll8_cxo[] = { 274 + { .fw_name = "pxo", .name = "pxo" }, 275 + { .hw = &pll8_vote.hw }, 276 + { .fw_name = "cxo", .name = "cxo" }, 287 277 }; 288 278 289 279 static const struct parent_map gcc_pxo_pll3_map[] = { ··· 296 286 { P_PLL3, 6 } 297 287 }; 298 288 299 - static const char * const gcc_pxo_pll3[] = { 300 - "pxo", 301 - "pll3", 289 + static const struct clk_parent_data gcc_pxo_pll3[] = { 290 + { .fw_name = "pxo", .name = "pxo" }, 291 + { .hw = &pll3.clkr.hw }, 302 292 }; 303 293 304 294 static const struct parent_map gcc_pxo_pll8_pll0_map[] = { ··· 307 297 { P_PLL0, 2 } 308 298 }; 309 299 310 - static const char * const gcc_pxo_pll8_pll0[] = { 311 - "pxo", 312 - "pll8_vote", 313 - "pll0_vote", 300 + static const struct clk_parent_data gcc_pxo_pll8_pll0[] = { 301 + { .fw_name = "pxo", .name = "pxo" }, 302 + { .hw = &pll8_vote.hw }, 303 + { .hw = &pll0_vote.hw }, 314 304 }; 315 305 316 306 static const struct parent_map gcc_pxo_pll8_pll14_pll18_pll0_map[] = { ··· 321 311 { P_PLL18, 1 } 322 312 }; 323 313 324 - static const char * const gcc_pxo_pll8_pll14_pll18_pll0[] = { 325 - "pxo", 326 - "pll8_vote", 327 - "pll0_vote", 328 - "pll14", 329 - "pll18", 314 + static const struct clk_parent_data gcc_pxo_pll8_pll14_pll18_pll0[] = { 315 + { .fw_name = "pxo", .name = "pxo" }, 316 + { .hw = &pll8_vote.hw }, 317 + { .hw = &pll0_vote.hw }, 318 + { .hw = &pll14.clkr.hw }, 319 + { .hw = &pll18.clkr.hw }, 330 320 }; 331 321 332 322 static struct freq_tbl clk_tbl_gsbi_uart[] = { ··· 372 362 .enable_mask = BIT(11), 373 363 .hw.init = &(struct clk_init_data){ 374 364 .name = "gsbi1_uart_src", 375 - .parent_names = gcc_pxo_pll8, 365 + .parent_data = gcc_pxo_pll8, 376 366 .num_parents = 2, 377 367 .ops = &clk_rcg_ops, 378 368 .flags = CLK_SET_PARENT_GATE, ··· 388 378 .enable_mask = BIT(9), 389 379 .hw.init = &(struct clk_init_data){ 390 380 .name = "gsbi1_uart_clk", 391 - .parent_names = (const char *[]){ 392 - "gsbi1_uart_src", 381 + .parent_hws = (const struct clk_hw*[]){ 382 + &gsbi1_uart_src.clkr.hw, 393 383 }, 394 384 .num_parents = 1, 395 385 .ops = &clk_branch_ops, ··· 423 413 .enable_mask = BIT(11), 424 414 .hw.init = &(struct clk_init_data){ 425 415 .name = "gsbi2_uart_src", 426 - .parent_names = gcc_pxo_pll8, 416 + .parent_data = gcc_pxo_pll8, 427 417 .num_parents = 2, 428 418 .ops = &clk_rcg_ops, 429 419 .flags = CLK_SET_PARENT_GATE, ··· 439 429 .enable_mask = BIT(9), 440 430 .hw.init = &(struct clk_init_data){ 441 431 .name = "gsbi2_uart_clk", 442 - .parent_names = (const char *[]){ 443 - "gsbi2_uart_src", 432 + .parent_hws = (const struct clk_hw*[]){ 433 + &gsbi2_uart_src.clkr.hw, 444 434 }, 445 435 .num_parents = 1, 446 436 .ops = &clk_branch_ops, ··· 474 464 .enable_mask = BIT(11), 475 465 .hw.init = &(struct clk_init_data){ 476 466 .name = "gsbi4_uart_src", 477 - .parent_names = gcc_pxo_pll8, 467 + .parent_data = gcc_pxo_pll8, 478 468 .num_parents = 2, 479 469 .ops = &clk_rcg_ops, 480 470 .flags = CLK_SET_PARENT_GATE, ··· 490 480 .enable_mask = BIT(9), 491 481 .hw.init = &(struct clk_init_data){ 492 482 .name = "gsbi4_uart_clk", 493 - .parent_names = (const char *[]){ 494 - "gsbi4_uart_src", 483 + .parent_hws = (const struct clk_hw*[]){ 484 + &gsbi4_uart_src.clkr.hw, 495 485 }, 496 486 .num_parents = 1, 497 487 .ops = &clk_branch_ops, ··· 525 515 .enable_mask = BIT(11), 526 516 .hw.init = &(struct clk_init_data){ 527 517 .name = "gsbi5_uart_src", 528 - .parent_names = gcc_pxo_pll8, 518 + .parent_data = gcc_pxo_pll8, 529 519 .num_parents = 2, 530 520 .ops = &clk_rcg_ops, 531 521 .flags = CLK_SET_PARENT_GATE, ··· 541 531 .enable_mask = BIT(9), 542 532 .hw.init = &(struct clk_init_data){ 543 533 .name = "gsbi5_uart_clk", 544 - .parent_names = (const char *[]){ 545 - "gsbi5_uart_src", 534 + .parent_hws = (const struct clk_hw*[]){ 535 + &gsbi5_uart_src.clkr.hw, 546 536 }, 547 537 .num_parents = 1, 548 538 .ops = &clk_branch_ops, ··· 576 566 .enable_mask = BIT(11), 577 567 .hw.init = &(struct clk_init_data){ 578 568 .name = "gsbi6_uart_src", 579 - .parent_names = gcc_pxo_pll8, 569 + .parent_data = gcc_pxo_pll8, 580 570 .num_parents = 2, 581 571 .ops = &clk_rcg_ops, 582 572 .flags = CLK_SET_PARENT_GATE, ··· 592 582 .enable_mask = BIT(9), 593 583 .hw.init = &(struct clk_init_data){ 594 584 .name = "gsbi6_uart_clk", 595 - .parent_names = (const char *[]){ 596 - "gsbi6_uart_src", 585 + .parent_hws = (const struct clk_hw*[]){ 586 + &gsbi6_uart_src.clkr.hw, 597 587 }, 598 588 .num_parents = 1, 599 589 .ops = &clk_branch_ops, ··· 627 617 .enable_mask = BIT(11), 628 618 .hw.init = &(struct clk_init_data){ 629 619 .name = "gsbi7_uart_src", 630 - .parent_names = gcc_pxo_pll8, 620 + .parent_data = gcc_pxo_pll8, 631 621 .num_parents = 2, 632 622 .ops = &clk_rcg_ops, 633 623 .flags = CLK_SET_PARENT_GATE, ··· 643 633 .enable_mask = BIT(9), 644 634 .hw.init = &(struct clk_init_data){ 645 635 .name = "gsbi7_uart_clk", 646 - .parent_names = (const char *[]){ 647 - "gsbi7_uart_src", 636 + .parent_hws = (const struct clk_hw*[]){ 637 + &gsbi7_uart_src.clkr.hw, 648 638 }, 649 639 .num_parents = 1, 650 640 .ops = &clk_branch_ops, ··· 691 681 .enable_mask = BIT(11), 692 682 .hw.init = &(struct clk_init_data){ 693 683 .name = "gsbi1_qup_src", 694 - .parent_names = gcc_pxo_pll8, 684 + .parent_data = gcc_pxo_pll8, 695 685 .num_parents = 2, 696 686 .ops = &clk_rcg_ops, 697 687 .flags = CLK_SET_PARENT_GATE, ··· 707 697 .enable_mask = BIT(9), 708 698 .hw.init = &(struct clk_init_data){ 709 699 .name = "gsbi1_qup_clk", 710 - .parent_names = (const char *[]){ "gsbi1_qup_src" }, 700 + .parent_hws = (const struct clk_hw*[]){ 701 + &gsbi1_qup_src.clkr.hw, 702 + }, 711 703 .num_parents = 1, 712 704 .ops = &clk_branch_ops, 713 705 .flags = CLK_SET_RATE_PARENT, ··· 742 730 .enable_mask = BIT(11), 743 731 .hw.init = &(struct clk_init_data){ 744 732 .name = "gsbi2_qup_src", 745 - .parent_names = gcc_pxo_pll8, 733 + .parent_data = gcc_pxo_pll8, 746 734 .num_parents = 2, 747 735 .ops = &clk_rcg_ops, 748 736 .flags = CLK_SET_PARENT_GATE, ··· 758 746 .enable_mask = BIT(9), 759 747 .hw.init = &(struct clk_init_data){ 760 748 .name = "gsbi2_qup_clk", 761 - .parent_names = (const char *[]){ "gsbi2_qup_src" }, 749 + .parent_hws = (const struct clk_hw*[]){ 750 + &gsbi2_qup_src.clkr.hw, 751 + }, 762 752 .num_parents = 1, 763 753 .ops = &clk_branch_ops, 764 754 .flags = CLK_SET_RATE_PARENT, ··· 793 779 .enable_mask = BIT(11), 794 780 .hw.init = &(struct clk_init_data){ 795 781 .name = "gsbi4_qup_src", 796 - .parent_names = gcc_pxo_pll8, 782 + .parent_data = gcc_pxo_pll8, 797 783 .num_parents = 2, 798 784 .ops = &clk_rcg_ops, 799 785 .flags = CLK_SET_PARENT_GATE, ··· 809 795 .enable_mask = BIT(9), 810 796 .hw.init = &(struct clk_init_data){ 811 797 .name = "gsbi4_qup_clk", 812 - .parent_names = (const char *[]){ "gsbi4_qup_src" }, 798 + .parent_hws = (const struct clk_hw*[]){ 799 + &gsbi4_qup_src.clkr.hw, 800 + }, 813 801 .num_parents = 1, 814 802 .ops = &clk_branch_ops, 815 803 .flags = CLK_SET_RATE_PARENT, ··· 844 828 .enable_mask = BIT(11), 845 829 .hw.init = &(struct clk_init_data){ 846 830 .name = "gsbi5_qup_src", 847 - .parent_names = gcc_pxo_pll8, 831 + .parent_data = gcc_pxo_pll8, 848 832 .num_parents = 2, 849 833 .ops = &clk_rcg_ops, 850 834 .flags = CLK_SET_PARENT_GATE, ··· 860 844 .enable_mask = BIT(9), 861 845 .hw.init = &(struct clk_init_data){ 862 846 .name = "gsbi5_qup_clk", 863 - .parent_names = (const char *[]){ "gsbi5_qup_src" }, 847 + .parent_hws = (const struct clk_hw*[]){ 848 + &gsbi5_qup_src.clkr.hw, 849 + }, 864 850 .num_parents = 1, 865 851 .ops = &clk_branch_ops, 866 852 .flags = CLK_SET_RATE_PARENT, ··· 895 877 .enable_mask = BIT(11), 896 878 .hw.init = &(struct clk_init_data){ 897 879 .name = "gsbi6_qup_src", 898 - .parent_names = gcc_pxo_pll8, 880 + .parent_data = gcc_pxo_pll8, 899 881 .num_parents = 2, 900 882 .ops = &clk_rcg_ops, 901 883 .flags = CLK_SET_PARENT_GATE, ··· 911 893 .enable_mask = BIT(9), 912 894 .hw.init = &(struct clk_init_data){ 913 895 .name = "gsbi6_qup_clk", 914 - .parent_names = (const char *[]){ "gsbi6_qup_src" }, 896 + .parent_hws = (const struct clk_hw*[]){ 897 + &gsbi6_qup_src.clkr.hw, 898 + }, 915 899 .num_parents = 1, 916 900 .ops = &clk_branch_ops, 917 901 .flags = CLK_SET_RATE_PARENT, ··· 946 926 .enable_mask = BIT(11), 947 927 .hw.init = &(struct clk_init_data){ 948 928 .name = "gsbi7_qup_src", 949 - .parent_names = gcc_pxo_pll8, 929 + .parent_data = gcc_pxo_pll8, 950 930 .num_parents = 2, 951 931 .ops = &clk_rcg_ops, 952 932 .flags = CLK_SET_PARENT_GATE, ··· 962 942 .enable_mask = BIT(9), 963 943 .hw.init = &(struct clk_init_data){ 964 944 .name = "gsbi7_qup_clk", 965 - .parent_names = (const char *[]){ "gsbi7_qup_src" }, 945 + .parent_hws = (const struct clk_hw*[]){ 946 + &gsbi7_qup_src.clkr.hw, 947 + }, 966 948 .num_parents = 1, 967 949 .ops = &clk_branch_ops, 968 950 .flags = CLK_SET_RATE_PARENT, ··· 1098 1076 .enable_mask = BIT(11), 1099 1077 .hw.init = &(struct clk_init_data){ 1100 1078 .name = "gp0_src", 1101 - .parent_names = gcc_pxo_pll8_cxo, 1079 + .parent_data = gcc_pxo_pll8_cxo, 1102 1080 .num_parents = 3, 1103 1081 .ops = &clk_rcg_ops, 1104 1082 .flags = CLK_SET_PARENT_GATE, ··· 1114 1092 .enable_mask = BIT(9), 1115 1093 .hw.init = &(struct clk_init_data){ 1116 1094 .name = "gp0_clk", 1117 - .parent_names = (const char *[]){ "gp0_src" }, 1095 + .parent_hws = (const struct clk_hw*[]){ 1096 + &gp0_src.clkr.hw, 1097 + }, 1118 1098 .num_parents = 1, 1119 1099 .ops = &clk_branch_ops, 1120 1100 .flags = CLK_SET_RATE_PARENT, ··· 1149 1125 .enable_mask = BIT(11), 1150 1126 .hw.init = &(struct clk_init_data){ 1151 1127 .name = "gp1_src", 1152 - .parent_names = gcc_pxo_pll8_cxo, 1128 + .parent_data = gcc_pxo_pll8_cxo, 1153 1129 .num_parents = 3, 1154 1130 .ops = &clk_rcg_ops, 1155 1131 .flags = CLK_SET_RATE_GATE, ··· 1165 1141 .enable_mask = BIT(9), 1166 1142 .hw.init = &(struct clk_init_data){ 1167 1143 .name = "gp1_clk", 1168 - .parent_names = (const char *[]){ "gp1_src" }, 1144 + .parent_hws = (const struct clk_hw*[]){ 1145 + &gp1_src.clkr.hw, 1146 + }, 1169 1147 .num_parents = 1, 1170 1148 .ops = &clk_branch_ops, 1171 1149 .flags = CLK_SET_RATE_PARENT, ··· 1200 1174 .enable_mask = BIT(11), 1201 1175 .hw.init = &(struct clk_init_data){ 1202 1176 .name = "gp2_src", 1203 - .parent_names = gcc_pxo_pll8_cxo, 1177 + .parent_data = gcc_pxo_pll8_cxo, 1204 1178 .num_parents = 3, 1205 1179 .ops = &clk_rcg_ops, 1206 1180 .flags = CLK_SET_RATE_GATE, ··· 1216 1190 .enable_mask = BIT(9), 1217 1191 .hw.init = &(struct clk_init_data){ 1218 1192 .name = "gp2_clk", 1219 - .parent_names = (const char *[]){ "gp2_src" }, 1193 + .parent_hws = (const struct clk_hw*[]){ 1194 + &gp2_src.clkr.hw, 1195 + }, 1220 1196 .num_parents = 1, 1221 1197 .ops = &clk_branch_ops, 1222 1198 .flags = CLK_SET_RATE_PARENT, ··· 1256 1228 .enable_mask = BIT(11), 1257 1229 .hw.init = &(struct clk_init_data){ 1258 1230 .name = "prng_src", 1259 - .parent_names = gcc_pxo_pll8, 1231 + .parent_data = gcc_pxo_pll8, 1260 1232 .num_parents = 2, 1261 1233 .ops = &clk_rcg_ops, 1262 1234 }, ··· 1272 1244 .enable_mask = BIT(10), 1273 1245 .hw.init = &(struct clk_init_data){ 1274 1246 .name = "prng_clk", 1275 - .parent_names = (const char *[]){ "prng_src" }, 1247 + .parent_hws = (const struct clk_hw*[]){ 1248 + &prng_src.clkr.hw, 1249 + }, 1276 1250 .num_parents = 1, 1277 1251 .ops = &clk_branch_ops, 1278 1252 }, ··· 1320 1290 .enable_mask = BIT(11), 1321 1291 .hw.init = &(struct clk_init_data){ 1322 1292 .name = "sdc1_src", 1323 - .parent_names = gcc_pxo_pll8, 1293 + .parent_data = gcc_pxo_pll8, 1324 1294 .num_parents = 2, 1325 1295 .ops = &clk_rcg_ops, 1326 1296 }, ··· 1335 1305 .enable_mask = BIT(9), 1336 1306 .hw.init = &(struct clk_init_data){ 1337 1307 .name = "sdc1_clk", 1338 - .parent_names = (const char *[]){ "sdc1_src" }, 1308 + .parent_hws = (const struct clk_hw*[]){ 1309 + &sdc1_src.clkr.hw, 1310 + }, 1339 1311 .num_parents = 1, 1340 1312 .ops = &clk_branch_ops, 1341 1313 .flags = CLK_SET_RATE_PARENT, ··· 1370 1338 .enable_mask = BIT(11), 1371 1339 .hw.init = &(struct clk_init_data){ 1372 1340 .name = "sdc3_src", 1373 - .parent_names = gcc_pxo_pll8, 1341 + .parent_data = gcc_pxo_pll8, 1374 1342 .num_parents = 2, 1375 1343 .ops = &clk_rcg_ops, 1376 1344 }, ··· 1385 1353 .enable_mask = BIT(9), 1386 1354 .hw.init = &(struct clk_init_data){ 1387 1355 .name = "sdc3_clk", 1388 - .parent_names = (const char *[]){ "sdc3_src" }, 1356 + .parent_hws = (const struct clk_hw*[]){ 1357 + &sdc3_src.clkr.hw, 1358 + }, 1389 1359 .num_parents = 1, 1390 1360 .ops = &clk_branch_ops, 1391 1361 .flags = CLK_SET_RATE_PARENT, ··· 1455 1421 .enable_mask = BIT(11), 1456 1422 .hw.init = &(struct clk_init_data){ 1457 1423 .name = "tsif_ref_src", 1458 - .parent_names = gcc_pxo_pll8, 1424 + .parent_data = gcc_pxo_pll8, 1459 1425 .num_parents = 2, 1460 1426 .ops = &clk_rcg_ops, 1461 1427 }, ··· 1470 1436 .enable_mask = BIT(9), 1471 1437 .hw.init = &(struct clk_init_data){ 1472 1438 .name = "tsif_ref_clk", 1473 - .parent_names = (const char *[]){ "tsif_ref_src" }, 1439 + .parent_hws = (const struct clk_hw*[]){ 1440 + &tsif_ref_src.clkr.hw, 1441 + }, 1474 1442 .num_parents = 1, 1475 1443 .ops = &clk_branch_ops, 1476 1444 .flags = CLK_SET_RATE_PARENT, ··· 1619 1583 .enable_mask = BIT(11), 1620 1584 .hw.init = &(struct clk_init_data){ 1621 1585 .name = "pcie_ref_src", 1622 - .parent_names = gcc_pxo_pll3, 1586 + .parent_data = gcc_pxo_pll3, 1623 1587 .num_parents = 2, 1624 1588 .ops = &clk_rcg_ops, 1625 1589 .flags = CLK_SET_RATE_GATE, ··· 1635 1599 .enable_mask = BIT(9), 1636 1600 .hw.init = &(struct clk_init_data){ 1637 1601 .name = "pcie_ref_src_clk", 1638 - .parent_names = (const char *[]){ "pcie_ref_src" }, 1602 + .parent_hws = (const struct clk_hw*[]){ 1603 + &pcie_ref_src.clkr.hw, 1604 + }, 1639 1605 .num_parents = 1, 1640 1606 .ops = &clk_branch_ops, 1641 1607 .flags = CLK_SET_RATE_PARENT, ··· 1713 1675 .enable_mask = BIT(11), 1714 1676 .hw.init = &(struct clk_init_data){ 1715 1677 .name = "pcie1_ref_src", 1716 - .parent_names = gcc_pxo_pll3, 1678 + .parent_data = gcc_pxo_pll3, 1717 1679 .num_parents = 2, 1718 1680 .ops = &clk_rcg_ops, 1719 1681 .flags = CLK_SET_RATE_GATE, ··· 1729 1691 .enable_mask = BIT(9), 1730 1692 .hw.init = &(struct clk_init_data){ 1731 1693 .name = "pcie1_ref_src_clk", 1732 - .parent_names = (const char *[]){ "pcie1_ref_src" }, 1694 + .parent_hws = (const struct clk_hw*[]){ 1695 + &pcie1_ref_src.clkr.hw, 1696 + }, 1733 1697 .num_parents = 1, 1734 1698 .ops = &clk_branch_ops, 1735 1699 .flags = CLK_SET_RATE_PARENT, ··· 1807 1767 .enable_mask = BIT(11), 1808 1768 .hw.init = &(struct clk_init_data){ 1809 1769 .name = "pcie2_ref_src", 1810 - .parent_names = gcc_pxo_pll3, 1770 + .parent_data = gcc_pxo_pll3, 1811 1771 .num_parents = 2, 1812 1772 .ops = &clk_rcg_ops, 1813 1773 .flags = CLK_SET_RATE_GATE, ··· 1823 1783 .enable_mask = BIT(9), 1824 1784 .hw.init = &(struct clk_init_data){ 1825 1785 .name = "pcie2_ref_src_clk", 1826 - .parent_names = (const char *[]){ "pcie2_ref_src" }, 1786 + .parent_hws = (const struct clk_hw*[]){ 1787 + &pcie2_ref_src.clkr.hw, 1788 + }, 1827 1789 .num_parents = 1, 1828 1790 .ops = &clk_branch_ops, 1829 1791 .flags = CLK_SET_RATE_PARENT, ··· 1906 1864 .enable_mask = BIT(7), 1907 1865 .hw.init = &(struct clk_init_data){ 1908 1866 .name = "sata_ref_src", 1909 - .parent_names = gcc_pxo_pll3, 1867 + .parent_data = gcc_pxo_pll3, 1910 1868 .num_parents = 2, 1911 1869 .ops = &clk_rcg_ops, 1912 1870 .flags = CLK_SET_RATE_GATE, ··· 1922 1880 .enable_mask = BIT(4), 1923 1881 .hw.init = &(struct clk_init_data){ 1924 1882 .name = "sata_rxoob_clk", 1925 - .parent_names = (const char *[]){ "sata_ref_src" }, 1883 + .parent_hws = (const struct clk_hw*[]){ 1884 + &sata_ref_src.clkr.hw, 1885 + }, 1926 1886 .num_parents = 1, 1927 1887 .ops = &clk_branch_ops, 1928 1888 .flags = CLK_SET_RATE_PARENT, ··· 1940 1896 .enable_mask = BIT(4), 1941 1897 .hw.init = &(struct clk_init_data){ 1942 1898 .name = "sata_pmalive_clk", 1943 - .parent_names = (const char *[]){ "sata_ref_src" }, 1899 + .parent_hws = (const struct clk_hw*[]){ 1900 + &sata_ref_src.clkr.hw, 1901 + }, 1944 1902 .num_parents = 1, 1945 1903 .ops = &clk_branch_ops, 1946 1904 .flags = CLK_SET_RATE_PARENT, ··· 1958 1912 .enable_mask = BIT(4), 1959 1913 .hw.init = &(struct clk_init_data){ 1960 1914 .name = "sata_phy_ref_clk", 1961 - .parent_names = (const char *[]){ "pxo" }, 1915 + .parent_data = gcc_pxo, 1962 1916 .num_parents = 1, 1963 1917 .ops = &clk_branch_ops, 1964 1918 }, ··· 2047 2001 .enable_mask = BIT(11), 2048 2002 .hw.init = &(struct clk_init_data){ 2049 2003 .name = "usb30_master_ref_src", 2050 - .parent_names = gcc_pxo_pll8_pll0, 2004 + .parent_data = gcc_pxo_pll8_pll0, 2051 2005 .num_parents = 3, 2052 2006 .ops = &clk_rcg_ops, 2053 2007 .flags = CLK_SET_RATE_GATE, ··· 2063 2017 .enable_mask = BIT(4), 2064 2018 .hw.init = &(struct clk_init_data){ 2065 2019 .name = "usb30_0_branch_clk", 2066 - .parent_names = (const char *[]){ "usb30_master_ref_src", }, 2020 + .parent_hws = (const struct clk_hw*[]){ 2021 + &usb30_master_clk_src.clkr.hw, 2022 + }, 2067 2023 .num_parents = 1, 2068 2024 .ops = &clk_branch_ops, 2069 2025 .flags = CLK_SET_RATE_PARENT, ··· 2081 2033 .enable_mask = BIT(4), 2082 2034 .hw.init = &(struct clk_init_data){ 2083 2035 .name = "usb30_1_branch_clk", 2084 - .parent_names = (const char *[]){ "usb30_master_ref_src", }, 2036 + .parent_hws = (const struct clk_hw*[]){ 2037 + &usb30_master_clk_src.clkr.hw, 2038 + }, 2085 2039 .num_parents = 1, 2086 2040 .ops = &clk_branch_ops, 2087 2041 .flags = CLK_SET_RATE_PARENT, ··· 2121 2071 .enable_mask = BIT(11), 2122 2072 .hw.init = &(struct clk_init_data){ 2123 2073 .name = "usb30_utmi_clk", 2124 - .parent_names = gcc_pxo_pll8_pll0, 2074 + .parent_data = gcc_pxo_pll8_pll0, 2125 2075 .num_parents = 3, 2126 2076 .ops = &clk_rcg_ops, 2127 2077 .flags = CLK_SET_RATE_GATE, ··· 2137 2087 .enable_mask = BIT(4), 2138 2088 .hw.init = &(struct clk_init_data){ 2139 2089 .name = "usb30_0_utmi_clk_ctl", 2140 - .parent_names = (const char *[]){ "usb30_utmi_clk", }, 2090 + .parent_hws = (const struct clk_hw*[]){ 2091 + &usb30_utmi_clk.clkr.hw, 2092 + }, 2141 2093 .num_parents = 1, 2142 2094 .ops = &clk_branch_ops, 2143 2095 .flags = CLK_SET_RATE_PARENT, ··· 2155 2103 .enable_mask = BIT(4), 2156 2104 .hw.init = &(struct clk_init_data){ 2157 2105 .name = "usb30_1_utmi_clk_ctl", 2158 - .parent_names = (const char *[]){ "usb30_utmi_clk", }, 2106 + .parent_hws = (const struct clk_hw*[]){ 2107 + &usb30_utmi_clk.clkr.hw, 2108 + }, 2159 2109 .num_parents = 1, 2160 2110 .ops = &clk_branch_ops, 2161 2111 .flags = CLK_SET_RATE_PARENT, ··· 2195 2141 .enable_mask = BIT(11), 2196 2142 .hw.init = &(struct clk_init_data){ 2197 2143 .name = "usb_hs1_xcvr_src", 2198 - .parent_names = gcc_pxo_pll8_pll0, 2144 + .parent_data = gcc_pxo_pll8_pll0, 2199 2145 .num_parents = 3, 2200 2146 .ops = &clk_rcg_ops, 2201 2147 .flags = CLK_SET_RATE_GATE, ··· 2211 2157 .enable_mask = BIT(9), 2212 2158 .hw.init = &(struct clk_init_data){ 2213 2159 .name = "usb_hs1_xcvr_clk", 2214 - .parent_names = (const char *[]){ "usb_hs1_xcvr_src" }, 2160 + .parent_hws = (const struct clk_hw*[]){ 2161 + &usb_hs1_xcvr_clk_src.clkr.hw, 2162 + }, 2215 2163 .num_parents = 1, 2216 2164 .ops = &clk_branch_ops, 2217 2165 .flags = CLK_SET_RATE_PARENT, ··· 2261 2205 .enable_mask = BIT(11), 2262 2206 .hw.init = &(struct clk_init_data){ 2263 2207 .name = "usb_fs1_xcvr_src", 2264 - .parent_names = gcc_pxo_pll8_pll0, 2208 + .parent_data = gcc_pxo_pll8_pll0, 2265 2209 .num_parents = 3, 2266 2210 .ops = &clk_rcg_ops, 2267 2211 .flags = CLK_SET_RATE_GATE, ··· 2277 2221 .enable_mask = BIT(9), 2278 2222 .hw.init = &(struct clk_init_data){ 2279 2223 .name = "usb_fs1_xcvr_clk", 2280 - .parent_names = (const char *[]){ "usb_fs1_xcvr_src", }, 2224 + .parent_hws = (const struct clk_hw*[]){ 2225 + &usb_fs1_xcvr_clk_src.clkr.hw, 2226 + }, 2281 2227 .num_parents = 1, 2282 2228 .ops = &clk_branch_ops, 2283 2229 .flags = CLK_SET_RATE_PARENT, ··· 2295 2237 .enable_mask = BIT(4), 2296 2238 .hw.init = &(struct clk_init_data){ 2297 2239 .name = "usb_fs1_sys_clk", 2298 - .parent_names = (const char *[]){ "usb_fs1_xcvr_src", }, 2240 + .parent_hws = (const struct clk_hw*[]){ 2241 + &usb_fs1_xcvr_clk_src.clkr.hw, 2242 + }, 2299 2243 .num_parents = 1, 2300 2244 .ops = &clk_branch_ops, 2301 2245 .flags = CLK_SET_RATE_PARENT, ··· 2397 2337 .enable_mask = BIT(1), 2398 2338 .hw.init = &(struct clk_init_data){ 2399 2339 .name = "gmac_core1_src", 2400 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2340 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2401 2341 .num_parents = 5, 2402 2342 .ops = &clk_dyn_rcg_ops, 2403 2343 }, ··· 2414 2354 .enable_mask = BIT(4), 2415 2355 .hw.init = &(struct clk_init_data){ 2416 2356 .name = "gmac_core1_clk", 2417 - .parent_names = (const char *[]){ 2418 - "gmac_core1_src", 2357 + .parent_hws = (const struct clk_hw*[]){ 2358 + &gmac_core1_src.clkr.hw, 2419 2359 }, 2420 2360 .num_parents = 1, 2421 2361 .ops = &clk_branch_ops, ··· 2469 2409 .enable_mask = BIT(1), 2470 2410 .hw.init = &(struct clk_init_data){ 2471 2411 .name = "gmac_core2_src", 2472 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2412 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2473 2413 .num_parents = 5, 2474 2414 .ops = &clk_dyn_rcg_ops, 2475 2415 }, ··· 2486 2426 .enable_mask = BIT(4), 2487 2427 .hw.init = &(struct clk_init_data){ 2488 2428 .name = "gmac_core2_clk", 2489 - .parent_names = (const char *[]){ 2490 - "gmac_core2_src", 2429 + .parent_hws = (const struct clk_hw*[]){ 2430 + &gmac_core2_src.clkr.hw, 2491 2431 }, 2492 2432 .num_parents = 1, 2493 2433 .ops = &clk_branch_ops, ··· 2541 2481 .enable_mask = BIT(1), 2542 2482 .hw.init = &(struct clk_init_data){ 2543 2483 .name = "gmac_core3_src", 2544 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2484 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2545 2485 .num_parents = 5, 2546 2486 .ops = &clk_dyn_rcg_ops, 2547 2487 }, ··· 2558 2498 .enable_mask = BIT(4), 2559 2499 .hw.init = &(struct clk_init_data){ 2560 2500 .name = "gmac_core3_clk", 2561 - .parent_names = (const char *[]){ 2562 - "gmac_core3_src", 2501 + .parent_hws = (const struct clk_hw*[]){ 2502 + &gmac_core3_src.clkr.hw, 2563 2503 }, 2564 2504 .num_parents = 1, 2565 2505 .ops = &clk_branch_ops, ··· 2613 2553 .enable_mask = BIT(1), 2614 2554 .hw.init = &(struct clk_init_data){ 2615 2555 .name = "gmac_core4_src", 2616 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2556 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2617 2557 .num_parents = 5, 2618 2558 .ops = &clk_dyn_rcg_ops, 2619 2559 }, ··· 2630 2570 .enable_mask = BIT(4), 2631 2571 .hw.init = &(struct clk_init_data){ 2632 2572 .name = "gmac_core4_clk", 2633 - .parent_names = (const char *[]){ 2634 - "gmac_core4_src", 2573 + .parent_hws = (const struct clk_hw*[]){ 2574 + &gmac_core4_src.clkr.hw, 2635 2575 }, 2636 2576 .num_parents = 1, 2637 2577 .ops = &clk_branch_ops, ··· 2673 2613 .enable_mask = BIT(1), 2674 2614 .hw.init = &(struct clk_init_data){ 2675 2615 .name = "nss_tcm_src", 2676 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2616 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2677 2617 .num_parents = 5, 2678 2618 .ops = &clk_dyn_rcg_ops, 2679 2619 }, ··· 2688 2628 .enable_mask = BIT(6) | BIT(4), 2689 2629 .hw.init = &(struct clk_init_data){ 2690 2630 .name = "nss_tcm_clk", 2691 - .parent_names = (const char *[]){ 2692 - "nss_tcm_src", 2631 + .parent_hws = (const struct clk_hw*[]){ 2632 + &nss_tcm_src.clkr.hw, 2693 2633 }, 2694 2634 .num_parents = 1, 2695 2635 .ops = &clk_branch_ops, ··· 2751 2691 .enable_mask = BIT(1), 2752 2692 .hw.init = &(struct clk_init_data){ 2753 2693 .name = "ubi32_core1_src_clk", 2754 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2694 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2755 2695 .num_parents = 5, 2756 2696 .ops = &clk_dyn_rcg_ops, 2757 2697 .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE, ··· 2804 2744 .enable_mask = BIT(1), 2805 2745 .hw.init = &(struct clk_init_data){ 2806 2746 .name = "ubi32_core2_src_clk", 2807 - .parent_names = gcc_pxo_pll8_pll14_pll18_pll0, 2747 + .parent_data = gcc_pxo_pll8_pll14_pll18_pll0, 2808 2748 .num_parents = 5, 2809 2749 .ops = &clk_dyn_rcg_ops, 2810 2750 .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE,