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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pinctrl-v4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:
"Two fixes for pin control for v4.16:

- Renesas SH-PFC: remove a duplicate clkout pin which was causing
crashes

- fix Samsung out of bounds exceptions"

* tag 'pinctrl-v4.16-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: samsung: Validate alias coming from DT
pinctrl: sh-pfc: r8a7795: remove duplicate of CLKOUT pin in pinmux_pins[]

+154 -53
+48 -8
drivers/pinctrl/samsung/pinctrl-exynos-arm.c
··· 124 124 EXYNOS_PIN_BANK_EINTW(8, 0xc60, "gph3", 0x0c), 125 125 }; 126 126 127 - const struct samsung_pin_ctrl s5pv210_pin_ctrl[] __initconst = { 127 + static const struct samsung_pin_ctrl s5pv210_pin_ctrl[] __initconst = { 128 128 { 129 129 /* pin-controller instance 0 data */ 130 130 .pin_banks = s5pv210_pin_bank, ··· 135 135 .resume = exynos_pinctrl_resume, 136 136 .retention_data = &s5pv210_retention_data, 137 137 }, 138 + }; 139 + 140 + const struct samsung_pinctrl_of_match_data s5pv210_of_data __initconst = { 141 + .ctrl = s5pv210_pin_ctrl, 142 + .num_ctrl = ARRAY_SIZE(s5pv210_pin_ctrl), 138 143 }; 139 144 140 145 /* Pad retention control code for accessing PMU regmap */ ··· 204 199 * Samsung pinctrl driver data for Exynos3250 SoC. Exynos3250 SoC includes 205 200 * two gpio/pin-mux/pinconfig controllers. 206 201 */ 207 - const struct samsung_pin_ctrl exynos3250_pin_ctrl[] __initconst = { 202 + static const struct samsung_pin_ctrl exynos3250_pin_ctrl[] __initconst = { 208 203 { 209 204 /* pin-controller instance 0 data */ 210 205 .pin_banks = exynos3250_pin_banks0, ··· 223 218 .resume = exynos_pinctrl_resume, 224 219 .retention_data = &exynos3250_retention_data, 225 220 }, 221 + }; 222 + 223 + const struct samsung_pinctrl_of_match_data exynos3250_of_data __initconst = { 224 + .ctrl = exynos3250_pin_ctrl, 225 + .num_ctrl = ARRAY_SIZE(exynos3250_pin_ctrl), 226 226 }; 227 227 228 228 /* pin banks of exynos4210 pin-controller 0 */ ··· 313 303 * Samsung pinctrl driver data for Exynos4210 SoC. Exynos4210 SoC includes 314 304 * three gpio/pin-mux/pinconfig controllers. 315 305 */ 316 - const struct samsung_pin_ctrl exynos4210_pin_ctrl[] __initconst = { 306 + static const struct samsung_pin_ctrl exynos4210_pin_ctrl[] __initconst = { 317 307 { 318 308 /* pin-controller instance 0 data */ 319 309 .pin_banks = exynos4210_pin_banks0, ··· 337 327 .nr_banks = ARRAY_SIZE(exynos4210_pin_banks2), 338 328 .retention_data = &exynos4_audio_retention_data, 339 329 }, 330 + }; 331 + 332 + const struct samsung_pinctrl_of_match_data exynos4210_of_data __initconst = { 333 + .ctrl = exynos4210_pin_ctrl, 334 + .num_ctrl = ARRAY_SIZE(exynos4210_pin_ctrl), 340 335 }; 341 336 342 337 /* pin banks of exynos4x12 pin-controller 0 */ ··· 406 391 * Samsung pinctrl driver data for Exynos4x12 SoC. Exynos4x12 SoC includes 407 392 * four gpio/pin-mux/pinconfig controllers. 408 393 */ 409 - const struct samsung_pin_ctrl exynos4x12_pin_ctrl[] __initconst = { 394 + static const struct samsung_pin_ctrl exynos4x12_pin_ctrl[] __initconst = { 410 395 { 411 396 /* pin-controller instance 0 data */ 412 397 .pin_banks = exynos4x12_pin_banks0, ··· 440 425 .suspend = exynos_pinctrl_suspend, 441 426 .resume = exynos_pinctrl_resume, 442 427 }, 428 + }; 429 + 430 + const struct samsung_pinctrl_of_match_data exynos4x12_of_data __initconst = { 431 + .ctrl = exynos4x12_pin_ctrl, 432 + .num_ctrl = ARRAY_SIZE(exynos4x12_pin_ctrl), 443 433 }; 444 434 445 435 /* pin banks of exynos5250 pin-controller 0 */ ··· 507 487 * Samsung pinctrl driver data for Exynos5250 SoC. Exynos5250 SoC includes 508 488 * four gpio/pin-mux/pinconfig controllers. 509 489 */ 510 - const struct samsung_pin_ctrl exynos5250_pin_ctrl[] __initconst = { 490 + static const struct samsung_pin_ctrl exynos5250_pin_ctrl[] __initconst = { 511 491 { 512 492 /* pin-controller instance 0 data */ 513 493 .pin_banks = exynos5250_pin_banks0, ··· 541 521 .resume = exynos_pinctrl_resume, 542 522 .retention_data = &exynos4_audio_retention_data, 543 523 }, 524 + }; 525 + 526 + const struct samsung_pinctrl_of_match_data exynos5250_of_data __initconst = { 527 + .ctrl = exynos5250_pin_ctrl, 528 + .num_ctrl = ARRAY_SIZE(exynos5250_pin_ctrl), 544 529 }; 545 530 546 531 /* pin banks of exynos5260 pin-controller 0 */ ··· 592 567 * Samsung pinctrl driver data for Exynos5260 SoC. Exynos5260 SoC includes 593 568 * three gpio/pin-mux/pinconfig controllers. 594 569 */ 595 - const struct samsung_pin_ctrl exynos5260_pin_ctrl[] __initconst = { 570 + static const struct samsung_pin_ctrl exynos5260_pin_ctrl[] __initconst = { 596 571 { 597 572 /* pin-controller instance 0 data */ 598 573 .pin_banks = exynos5260_pin_banks0, ··· 610 585 .nr_banks = ARRAY_SIZE(exynos5260_pin_banks2), 611 586 .eint_gpio_init = exynos_eint_gpio_init, 612 587 }, 588 + }; 589 + 590 + const struct samsung_pinctrl_of_match_data exynos5260_of_data __initconst = { 591 + .ctrl = exynos5260_pin_ctrl, 592 + .num_ctrl = ARRAY_SIZE(exynos5260_pin_ctrl), 613 593 }; 614 594 615 595 /* pin banks of exynos5410 pin-controller 0 */ ··· 687 657 * Samsung pinctrl driver data for Exynos5410 SoC. Exynos5410 SoC includes 688 658 * four gpio/pin-mux/pinconfig controllers. 689 659 */ 690 - const struct samsung_pin_ctrl exynos5410_pin_ctrl[] __initconst = { 660 + static const struct samsung_pin_ctrl exynos5410_pin_ctrl[] __initconst = { 691 661 { 692 662 /* pin-controller instance 0 data */ 693 663 .pin_banks = exynos5410_pin_banks0, ··· 718 688 .suspend = exynos_pinctrl_suspend, 719 689 .resume = exynos_pinctrl_resume, 720 690 }, 691 + }; 692 + 693 + const struct samsung_pinctrl_of_match_data exynos5410_of_data __initconst = { 694 + .ctrl = exynos5410_pin_ctrl, 695 + .num_ctrl = ARRAY_SIZE(exynos5410_pin_ctrl), 721 696 }; 722 697 723 698 /* pin banks of exynos5420 pin-controller 0 */ ··· 809 774 * Samsung pinctrl driver data for Exynos5420 SoC. Exynos5420 SoC includes 810 775 * four gpio/pin-mux/pinconfig controllers. 811 776 */ 812 - const struct samsung_pin_ctrl exynos5420_pin_ctrl[] __initconst = { 777 + static const struct samsung_pin_ctrl exynos5420_pin_ctrl[] __initconst = { 813 778 { 814 779 /* pin-controller instance 0 data */ 815 780 .pin_banks = exynos5420_pin_banks0, ··· 842 807 .eint_gpio_init = exynos_eint_gpio_init, 843 808 .retention_data = &exynos4_audio_retention_data, 844 809 }, 810 + }; 811 + 812 + const struct samsung_pinctrl_of_match_data exynos5420_of_data __initconst = { 813 + .ctrl = exynos5420_pin_ctrl, 814 + .num_ctrl = ARRAY_SIZE(exynos5420_pin_ctrl), 845 815 };
+12 -2
drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
··· 175 175 * Samsung pinctrl driver data for Exynos5433 SoC. Exynos5433 SoC includes 176 176 * ten gpio/pin-mux/pinconfig controllers. 177 177 */ 178 - const struct samsung_pin_ctrl exynos5433_pin_ctrl[] __initconst = { 178 + static const struct samsung_pin_ctrl exynos5433_pin_ctrl[] __initconst = { 179 179 { 180 180 /* pin-controller instance 0 data */ 181 181 .pin_banks = exynos5433_pin_banks0, ··· 260 260 }, 261 261 }; 262 262 263 + const struct samsung_pinctrl_of_match_data exynos5433_of_data __initconst = { 264 + .ctrl = exynos5433_pin_ctrl, 265 + .num_ctrl = ARRAY_SIZE(exynos5433_pin_ctrl), 266 + }; 267 + 263 268 /* pin banks of exynos7 pin-controller - ALIVE */ 264 269 static const struct samsung_pin_bank_data exynos7_pin_banks0[] __initconst = { 265 270 EXYNOS_PIN_BANK_EINTW(8, 0x000, "gpa0", 0x00), ··· 344 339 EXYNOS_PIN_BANK_EINTG(4, 0x020, "gpz1", 0x04), 345 340 }; 346 341 347 - const struct samsung_pin_ctrl exynos7_pin_ctrl[] __initconst = { 342 + static const struct samsung_pin_ctrl exynos7_pin_ctrl[] __initconst = { 348 343 { 349 344 /* pin-controller instance 0 Alive data */ 350 345 .pin_banks = exynos7_pin_banks0, ··· 396 391 .nr_banks = ARRAY_SIZE(exynos7_pin_banks9), 397 392 .eint_gpio_init = exynos_eint_gpio_init, 398 393 }, 394 + }; 395 + 396 + const struct samsung_pinctrl_of_match_data exynos7_of_data __initconst = { 397 + .ctrl = exynos7_pin_ctrl, 398 + .num_ctrl = ARRAY_SIZE(exynos7_pin_ctrl), 399 399 };
+24 -4
drivers/pinctrl/samsung/pinctrl-s3c24xx.c
··· 565 565 PIN_BANK_2BIT(13, 0x080, "gpj"), 566 566 }; 567 567 568 - const struct samsung_pin_ctrl s3c2412_pin_ctrl[] __initconst = { 568 + static const struct samsung_pin_ctrl s3c2412_pin_ctrl[] __initconst = { 569 569 { 570 570 .pin_banks = s3c2412_pin_banks, 571 571 .nr_banks = ARRAY_SIZE(s3c2412_pin_banks), 572 572 .eint_wkup_init = s3c24xx_eint_init, 573 573 }, 574 + }; 575 + 576 + const struct samsung_pinctrl_of_match_data s3c2412_of_data __initconst = { 577 + .ctrl = s3c2412_pin_ctrl, 578 + .num_ctrl = ARRAY_SIZE(s3c2412_pin_ctrl), 574 579 }; 575 580 576 581 static const struct samsung_pin_bank_data s3c2416_pin_banks[] __initconst = { ··· 592 587 PIN_BANK_2BIT(2, 0x100, "gpm"), 593 588 }; 594 589 595 - const struct samsung_pin_ctrl s3c2416_pin_ctrl[] __initconst = { 590 + static const struct samsung_pin_ctrl s3c2416_pin_ctrl[] __initconst = { 596 591 { 597 592 .pin_banks = s3c2416_pin_banks, 598 593 .nr_banks = ARRAY_SIZE(s3c2416_pin_banks), 599 594 .eint_wkup_init = s3c24xx_eint_init, 600 595 }, 596 + }; 597 + 598 + const struct samsung_pinctrl_of_match_data s3c2416_of_data __initconst = { 599 + .ctrl = s3c2416_pin_ctrl, 600 + .num_ctrl = ARRAY_SIZE(s3c2416_pin_ctrl), 601 601 }; 602 602 603 603 static const struct samsung_pin_bank_data s3c2440_pin_banks[] __initconst = { ··· 617 607 PIN_BANK_2BIT(13, 0x0d0, "gpj"), 618 608 }; 619 609 620 - const struct samsung_pin_ctrl s3c2440_pin_ctrl[] __initconst = { 610 + static const struct samsung_pin_ctrl s3c2440_pin_ctrl[] __initconst = { 621 611 { 622 612 .pin_banks = s3c2440_pin_banks, 623 613 .nr_banks = ARRAY_SIZE(s3c2440_pin_banks), 624 614 .eint_wkup_init = s3c24xx_eint_init, 625 615 }, 616 + }; 617 + 618 + const struct samsung_pinctrl_of_match_data s3c2440_of_data __initconst = { 619 + .ctrl = s3c2440_pin_ctrl, 620 + .num_ctrl = ARRAY_SIZE(s3c2440_pin_ctrl), 626 621 }; 627 622 628 623 static const struct samsung_pin_bank_data s3c2450_pin_banks[] __initconst = { ··· 645 630 PIN_BANK_2BIT(2, 0x100, "gpm"), 646 631 }; 647 632 648 - const struct samsung_pin_ctrl s3c2450_pin_ctrl[] __initconst = { 633 + static const struct samsung_pin_ctrl s3c2450_pin_ctrl[] __initconst = { 649 634 { 650 635 .pin_banks = s3c2450_pin_banks, 651 636 .nr_banks = ARRAY_SIZE(s3c2450_pin_banks), 652 637 .eint_wkup_init = s3c24xx_eint_init, 653 638 }, 639 + }; 640 + 641 + const struct samsung_pinctrl_of_match_data s3c2450_of_data __initconst = { 642 + .ctrl = s3c2450_pin_ctrl, 643 + .num_ctrl = ARRAY_SIZE(s3c2450_pin_ctrl), 654 644 };
+6 -1
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
··· 789 789 * Samsung pinctrl driver data for S3C64xx SoC. S3C64xx SoC includes 790 790 * one gpio/pin-mux/pinconfig controller. 791 791 */ 792 - const struct samsung_pin_ctrl s3c64xx_pin_ctrl[] __initconst = { 792 + static const struct samsung_pin_ctrl s3c64xx_pin_ctrl[] __initconst = { 793 793 { 794 794 /* pin-controller instance 1 data */ 795 795 .pin_banks = s3c64xx_pin_banks0, ··· 797 797 .eint_gpio_init = s3c64xx_eint_gpio_init, 798 798 .eint_wkup_init = s3c64xx_eint_eint0_init, 799 799 }, 800 + }; 801 + 802 + const struct samsung_pinctrl_of_match_data s3c64xx_of_data __initconst = { 803 + .ctrl = s3c64xx_pin_ctrl, 804 + .num_ctrl = ARRAY_SIZE(s3c64xx_pin_ctrl), 800 805 };
+39 -22
drivers/pinctrl/samsung/pinctrl-samsung.c
··· 942 942 return 0; 943 943 } 944 944 945 + static const struct samsung_pin_ctrl * 946 + samsung_pinctrl_get_soc_data_for_of_alias(struct platform_device *pdev) 947 + { 948 + struct device_node *node = pdev->dev.of_node; 949 + const struct samsung_pinctrl_of_match_data *of_data; 950 + int id; 951 + 952 + id = of_alias_get_id(node, "pinctrl"); 953 + if (id < 0) { 954 + dev_err(&pdev->dev, "failed to get alias id\n"); 955 + return NULL; 956 + } 957 + 958 + of_data = of_device_get_match_data(&pdev->dev); 959 + if (id >= of_data->num_ctrl) { 960 + dev_err(&pdev->dev, "invalid alias id %d\n", id); 961 + return NULL; 962 + } 963 + 964 + return &(of_data->ctrl[id]); 965 + } 966 + 945 967 /* retrieve the soc specific data */ 946 968 static const struct samsung_pin_ctrl * 947 969 samsung_pinctrl_get_soc_data(struct samsung_pinctrl_drv_data *d, 948 970 struct platform_device *pdev) 949 971 { 950 - int id; 951 972 struct device_node *node = pdev->dev.of_node; 952 973 struct device_node *np; 953 974 const struct samsung_pin_bank_data *bdata; ··· 978 957 void __iomem *virt_base[SAMSUNG_PINCTRL_NUM_RESOURCES]; 979 958 unsigned int i; 980 959 981 - id = of_alias_get_id(node, "pinctrl"); 982 - if (id < 0) { 983 - dev_err(&pdev->dev, "failed to get alias id\n"); 960 + ctrl = samsung_pinctrl_get_soc_data_for_of_alias(pdev); 961 + if (!ctrl) 984 962 return ERR_PTR(-ENOENT); 985 - } 986 - ctrl = of_device_get_match_data(&pdev->dev); 987 - ctrl += id; 988 963 989 964 d->suspend = ctrl->suspend; 990 965 d->resume = ctrl->resume; ··· 1205 1188 static const struct of_device_id samsung_pinctrl_dt_match[] = { 1206 1189 #ifdef CONFIG_PINCTRL_EXYNOS_ARM 1207 1190 { .compatible = "samsung,exynos3250-pinctrl", 1208 - .data = exynos3250_pin_ctrl }, 1191 + .data = &exynos3250_of_data }, 1209 1192 { .compatible = "samsung,exynos4210-pinctrl", 1210 - .data = exynos4210_pin_ctrl }, 1193 + .data = &exynos4210_of_data }, 1211 1194 { .compatible = "samsung,exynos4x12-pinctrl", 1212 - .data = exynos4x12_pin_ctrl }, 1195 + .data = &exynos4x12_of_data }, 1213 1196 { .compatible = "samsung,exynos5250-pinctrl", 1214 - .data = exynos5250_pin_ctrl }, 1197 + .data = &exynos5250_of_data }, 1215 1198 { .compatible = "samsung,exynos5260-pinctrl", 1216 - .data = exynos5260_pin_ctrl }, 1199 + .data = &exynos5260_of_data }, 1217 1200 { .compatible = "samsung,exynos5410-pinctrl", 1218 - .data = exynos5410_pin_ctrl }, 1201 + .data = &exynos5410_of_data }, 1219 1202 { .compatible = "samsung,exynos5420-pinctrl", 1220 - .data = exynos5420_pin_ctrl }, 1203 + .data = &exynos5420_of_data }, 1221 1204 { .compatible = "samsung,s5pv210-pinctrl", 1222 - .data = s5pv210_pin_ctrl }, 1205 + .data = &s5pv210_of_data }, 1223 1206 #endif 1224 1207 #ifdef CONFIG_PINCTRL_EXYNOS_ARM64 1225 1208 { .compatible = "samsung,exynos5433-pinctrl", 1226 - .data = exynos5433_pin_ctrl }, 1209 + .data = &exynos5433_of_data }, 1227 1210 { .compatible = "samsung,exynos7-pinctrl", 1228 - .data = exynos7_pin_ctrl }, 1211 + .data = &exynos7_of_data }, 1229 1212 #endif 1230 1213 #ifdef CONFIG_PINCTRL_S3C64XX 1231 1214 { .compatible = "samsung,s3c64xx-pinctrl", 1232 - .data = s3c64xx_pin_ctrl }, 1215 + .data = &s3c64xx_of_data }, 1233 1216 #endif 1234 1217 #ifdef CONFIG_PINCTRL_S3C24XX 1235 1218 { .compatible = "samsung,s3c2412-pinctrl", 1236 - .data = s3c2412_pin_ctrl }, 1219 + .data = &s3c2412_of_data }, 1237 1220 { .compatible = "samsung,s3c2416-pinctrl", 1238 - .data = s3c2416_pin_ctrl }, 1221 + .data = &s3c2416_of_data }, 1239 1222 { .compatible = "samsung,s3c2440-pinctrl", 1240 - .data = s3c2440_pin_ctrl }, 1223 + .data = &s3c2440_of_data }, 1241 1224 { .compatible = "samsung,s3c2450-pinctrl", 1242 - .data = s3c2450_pin_ctrl }, 1225 + .data = &s3c2450_of_data }, 1243 1226 #endif 1244 1227 {}, 1245 1228 };
+25 -15
drivers/pinctrl/samsung/pinctrl-samsung.h
··· 282 282 }; 283 283 284 284 /** 285 + * struct samsung_pinctrl_of_match_data: OF match device specific configuration data. 286 + * @ctrl: array of pin controller data. 287 + * @num_ctrl: size of array @ctrl. 288 + */ 289 + struct samsung_pinctrl_of_match_data { 290 + const struct samsung_pin_ctrl *ctrl; 291 + unsigned int num_ctrl; 292 + }; 293 + 294 + /** 285 295 * struct samsung_pin_group: represent group of pins of a pinmux function. 286 296 * @name: name of the pin group, used to lookup the group. 287 297 * @pins: the pins included in this group. ··· 319 309 }; 320 310 321 311 /* list of all exported SoC specific data */ 322 - extern const struct samsung_pin_ctrl exynos3250_pin_ctrl[]; 323 - extern const struct samsung_pin_ctrl exynos4210_pin_ctrl[]; 324 - extern const struct samsung_pin_ctrl exynos4x12_pin_ctrl[]; 325 - extern const struct samsung_pin_ctrl exynos5250_pin_ctrl[]; 326 - extern const struct samsung_pin_ctrl exynos5260_pin_ctrl[]; 327 - extern const struct samsung_pin_ctrl exynos5410_pin_ctrl[]; 328 - extern const struct samsung_pin_ctrl exynos5420_pin_ctrl[]; 329 - extern const struct samsung_pin_ctrl exynos5433_pin_ctrl[]; 330 - extern const struct samsung_pin_ctrl exynos7_pin_ctrl[]; 331 - extern const struct samsung_pin_ctrl s3c64xx_pin_ctrl[]; 332 - extern const struct samsung_pin_ctrl s3c2412_pin_ctrl[]; 333 - extern const struct samsung_pin_ctrl s3c2416_pin_ctrl[]; 334 - extern const struct samsung_pin_ctrl s3c2440_pin_ctrl[]; 335 - extern const struct samsung_pin_ctrl s3c2450_pin_ctrl[]; 336 - extern const struct samsung_pin_ctrl s5pv210_pin_ctrl[]; 312 + extern const struct samsung_pinctrl_of_match_data exynos3250_of_data; 313 + extern const struct samsung_pinctrl_of_match_data exynos4210_of_data; 314 + extern const struct samsung_pinctrl_of_match_data exynos4x12_of_data; 315 + extern const struct samsung_pinctrl_of_match_data exynos5250_of_data; 316 + extern const struct samsung_pinctrl_of_match_data exynos5260_of_data; 317 + extern const struct samsung_pinctrl_of_match_data exynos5410_of_data; 318 + extern const struct samsung_pinctrl_of_match_data exynos5420_of_data; 319 + extern const struct samsung_pinctrl_of_match_data exynos5433_of_data; 320 + extern const struct samsung_pinctrl_of_match_data exynos7_of_data; 321 + extern const struct samsung_pinctrl_of_match_data s3c64xx_of_data; 322 + extern const struct samsung_pinctrl_of_match_data s3c2412_of_data; 323 + extern const struct samsung_pinctrl_of_match_data s3c2416_of_data; 324 + extern const struct samsung_pinctrl_of_match_data s3c2440_of_data; 325 + extern const struct samsung_pinctrl_of_match_data s3c2450_of_data; 326 + extern const struct samsung_pinctrl_of_match_data s5pv210_of_data; 337 327 338 328 #endif /* __PINCTRL_SAMSUNG_H */
-1
drivers/pinctrl/sh-pfc/pfc-r8a7795.c
··· 1538 1538 SH_PFC_PIN_NAMED_CFG('B', 18, AVB_TD1, CFG_FLAGS), 1539 1539 SH_PFC_PIN_NAMED_CFG('B', 19, AVB_RXC, CFG_FLAGS), 1540 1540 SH_PFC_PIN_NAMED_CFG('C', 1, PRESETOUT#, CFG_FLAGS), 1541 - SH_PFC_PIN_NAMED_CFG('F', 1, CLKOUT, CFG_FLAGS), 1542 1541 SH_PFC_PIN_NAMED_CFG('H', 37, MLB_REF, CFG_FLAGS), 1543 1542 SH_PFC_PIN_NAMED_CFG('V', 3, QSPI1_SPCLK, CFG_FLAGS), 1544 1543 SH_PFC_PIN_NAMED_CFG('V', 5, QSPI1_SSL, CFG_FLAGS),