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

Merge branch 'ib-v5.20-amd-pinctrl'

Merge branch 'ib-v5.20-amd-pinctrl' of
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git
to develop Intel pin control driver changes based on provided new data structure.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

+1455 -44
+103
drivers/pinctrl/pinctrl-amd.c
··· 31 31 #include <linux/bitops.h> 32 32 #include <linux/pinctrl/pinconf.h> 33 33 #include <linux/pinctrl/pinconf-generic.h> 34 + #include <linux/pinctrl/pinmux.h> 34 35 35 36 #include "core.h" 36 37 #include "pinctrl-utils.h" ··· 956 955 }; 957 956 #endif 958 957 958 + static int amd_get_functions_count(struct pinctrl_dev *pctldev) 959 + { 960 + return ARRAY_SIZE(pmx_functions); 961 + } 962 + 963 + static const char *amd_get_fname(struct pinctrl_dev *pctrldev, unsigned int selector) 964 + { 965 + return pmx_functions[selector].name; 966 + } 967 + 968 + static int amd_get_groups(struct pinctrl_dev *pctrldev, unsigned int selector, 969 + const char * const **groups, 970 + unsigned int * const num_groups) 971 + { 972 + struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctrldev); 973 + 974 + if (!gpio_dev->iomux_base) { 975 + dev_err(&gpio_dev->pdev->dev, "iomux function %d group not supported\n", selector); 976 + return -EINVAL; 977 + } 978 + 979 + *groups = pmx_functions[selector].groups; 980 + *num_groups = pmx_functions[selector].ngroups; 981 + return 0; 982 + } 983 + 984 + static int amd_set_mux(struct pinctrl_dev *pctrldev, unsigned int function, unsigned int group) 985 + { 986 + struct amd_gpio *gpio_dev = pinctrl_dev_get_drvdata(pctrldev); 987 + struct device *dev = &gpio_dev->pdev->dev; 988 + struct pin_desc *pd; 989 + int ind, index; 990 + 991 + if (!gpio_dev->iomux_base) 992 + return -EINVAL; 993 + 994 + for (index = 0; index < NSELECTS; index++) { 995 + if (strcmp(gpio_dev->groups[group].name, pmx_functions[function].groups[index])) 996 + continue; 997 + 998 + if (readb(gpio_dev->iomux_base + pmx_functions[function].index) == 999 + FUNCTION_INVALID) { 1000 + dev_err(dev, "IOMUX_GPIO 0x%x not present or supported\n", 1001 + pmx_functions[function].index); 1002 + return -EINVAL; 1003 + } 1004 + 1005 + writeb(index, gpio_dev->iomux_base + pmx_functions[function].index); 1006 + 1007 + if (index != (readb(gpio_dev->iomux_base + pmx_functions[function].index) & 1008 + FUNCTION_MASK)) { 1009 + dev_err(dev, "IOMUX_GPIO 0x%x not present or supported\n", 1010 + pmx_functions[function].index); 1011 + return -EINVAL; 1012 + } 1013 + 1014 + for (ind = 0; ind < gpio_dev->groups[group].npins; ind++) { 1015 + if (strncmp(gpio_dev->groups[group].name, "IMX_F", strlen("IMX_F"))) 1016 + continue; 1017 + 1018 + pd = pin_desc_get(gpio_dev->pctrl, gpio_dev->groups[group].pins[ind]); 1019 + pd->mux_owner = gpio_dev->groups[group].name; 1020 + } 1021 + break; 1022 + } 1023 + 1024 + return 0; 1025 + } 1026 + 1027 + static const struct pinmux_ops amd_pmxops = { 1028 + .get_functions_count = amd_get_functions_count, 1029 + .get_function_name = amd_get_fname, 1030 + .get_function_groups = amd_get_groups, 1031 + .set_mux = amd_set_mux, 1032 + }; 1033 + 959 1034 static struct pinctrl_desc amd_pinctrl_desc = { 960 1035 .pins = kerncz_pins, 961 1036 .npins = ARRAY_SIZE(kerncz_pins), 962 1037 .pctlops = &amd_pinctrl_ops, 1038 + .pmxops = &amd_pmxops, 963 1039 .confops = &amd_pinconf_ops, 964 1040 .owner = THIS_MODULE, 965 1041 }; 1042 + 1043 + static void amd_get_iomux_res(struct amd_gpio *gpio_dev) 1044 + { 1045 + struct pinctrl_desc *desc = &amd_pinctrl_desc; 1046 + struct device *dev = &gpio_dev->pdev->dev; 1047 + int index; 1048 + 1049 + index = device_property_match_string(dev, "pinctrl-resource-names", "iomux"); 1050 + if (index < 0) { 1051 + dev_warn(dev, "failed to get iomux index\n"); 1052 + goto out_no_pinmux; 1053 + } 1054 + 1055 + gpio_dev->iomux_base = devm_platform_ioremap_resource(gpio_dev->pdev, index); 1056 + if (IS_ERR(gpio_dev->iomux_base)) { 1057 + dev_warn(dev, "Failed to get iomux %d io resource\n", index); 1058 + goto out_no_pinmux; 1059 + } 1060 + 1061 + return; 1062 + 1063 + out_no_pinmux: 1064 + desc->pmxops = NULL; 1065 + } 966 1066 967 1067 static int amd_gpio_probe(struct platform_device *pdev) 968 1068 { ··· 1122 1020 gpio_dev->ngroups = ARRAY_SIZE(kerncz_groups); 1123 1021 1124 1022 amd_pinctrl_desc.name = dev_name(&pdev->dev); 1023 + amd_get_iomux_res(gpio_dev); 1125 1024 gpio_dev->pctrl = devm_pinctrl_register(&pdev->dev, &amd_pinctrl_desc, 1126 1025 gpio_dev); 1127 1026 if (IS_ERR(gpio_dev->pctrl)) {
+1332 -44
drivers/pinctrl/pinctrl-amd.h
··· 74 74 75 75 #define CLR_INTR_STAT 0x1UL 76 76 77 - struct amd_pingroup { 78 - const char *name; 79 - const unsigned *pins; 80 - unsigned npins; 81 - }; 77 + #define NSELECTS 0x4 78 + 79 + #define FUNCTION_MASK GENMASK(1, 0) 80 + #define FUNCTION_INVALID GENMASK(7, 0) 82 81 83 82 struct amd_function { 84 83 const char *name; 85 - const char * const *groups; 84 + const char * const groups[NSELECTS]; 86 85 unsigned ngroups; 86 + int index; 87 87 }; 88 88 89 89 struct amd_gpio { 90 90 raw_spinlock_t lock; 91 91 void __iomem *base; 92 + void __iomem *iomux_base; 92 93 93 - const struct amd_pingroup *groups; 94 + const struct pingroup *groups; 94 95 u32 ngroups; 95 96 struct pinctrl_dev *pctrl; 96 97 struct gpio_chip gc; ··· 289 288 PINCTRL_PIN(183, "GPIO_183"), 290 289 }; 291 290 292 - static const unsigned i2c0_pins[] = {145, 146}; 293 - static const unsigned i2c1_pins[] = {147, 148}; 294 - static const unsigned i2c2_pins[] = {113, 114}; 295 - static const unsigned i2c3_pins[] = {19, 20}; 291 + #define AMD_PINS(...) (const unsigned int []){__VA_ARGS__} 296 292 297 - static const unsigned uart0_pins[] = {135, 136, 137, 138, 139}; 298 - static const unsigned uart1_pins[] = {140, 141, 142, 143, 144}; 293 + enum amd_functions { 294 + IMX_F0_GPIO0, 295 + IMX_F1_GPIO0, 296 + IMX_F2_GPIO0, 297 + IMX_F3_GPIO0, 298 + IMX_F0_GPIO1, 299 + IMX_F1_GPIO1, 300 + IMX_F2_GPIO1, 301 + IMX_F3_GPIO1, 302 + IMX_F0_GPIO2, 303 + IMX_F1_GPIO2, 304 + IMX_F2_GPIO2, 305 + IMX_F3_GPIO2, 306 + IMX_F0_GPIO3, 307 + IMX_F1_GPIO3, 308 + IMX_F2_GPIO3, 309 + IMX_F3_GPIO3, 310 + IMX_F0_GPIO4, 311 + IMX_F1_GPIO4, 312 + IMX_F2_GPIO4, 313 + IMX_F3_GPIO4, 314 + IMX_F0_GPIO5, 315 + IMX_F1_GPIO5, 316 + IMX_F2_GPIO5, 317 + IMX_F3_GPIO5, 318 + IMX_F0_GPIO6, 319 + IMX_F1_GPIO6, 320 + IMX_F2_GPIO6, 321 + IMX_F3_GPIO6, 322 + IMX_F0_GPIO7, 323 + IMX_F1_GPIO7, 324 + IMX_F2_GPIO7, 325 + IMX_F3_GPIO7, 326 + IMX_F0_GPIO8, 327 + IMX_F1_GPIO8, 328 + IMX_F2_GPIO8, 329 + IMX_F3_GPIO8, 330 + IMX_F0_GPIO9, 331 + IMX_F1_GPIO9, 332 + IMX_F2_GPIO9, 333 + IMX_F3_GPIO9, 334 + IMX_F0_GPIO10, 335 + IMX_F1_GPIO10, 336 + IMX_F2_GPIO10, 337 + IMX_F3_GPIO10, 338 + IMX_F0_GPIO11, 339 + IMX_F1_GPIO11, 340 + IMX_F2_GPIO11, 341 + IMX_F3_GPIO11, 342 + IMX_F0_GPIO12, 343 + IMX_F1_GPIO12, 344 + IMX_F2_GPIO12, 345 + IMX_F3_GPIO12, 346 + IMX_F0_GPIO13, 347 + IMX_F1_GPIO13, 348 + IMX_F2_GPIO13, 349 + IMX_F3_GPIO13, 350 + IMX_F0_GPIO14, 351 + IMX_F1_GPIO14, 352 + IMX_F2_GPIO14, 353 + IMX_F3_GPIO14, 354 + IMX_F0_GPIO15, 355 + IMX_F1_GPIO15, 356 + IMX_F2_GPIO15, 357 + IMX_F3_GPIO15, 358 + IMX_F0_GPIO16, 359 + IMX_F1_GPIO16, 360 + IMX_F2_GPIO16, 361 + IMX_F3_GPIO16, 362 + IMX_F0_GPIO17, 363 + IMX_F1_GPIO17, 364 + IMX_F2_GPIO17, 365 + IMX_F3_GPIO17, 366 + IMX_F0_GPIO18, 367 + IMX_F1_GPIO18, 368 + IMX_F2_GPIO18, 369 + IMX_F3_GPIO18, 370 + IMX_F0_GPIO19, 371 + IMX_F1_GPIO19, 372 + IMX_F2_GPIO19, 373 + IMX_F3_GPIO19, 374 + IMX_F0_GPIO20, 375 + IMX_F1_GPIO20, 376 + IMX_F2_GPIO20, 377 + IMX_F3_GPIO20, 378 + IMX_F0_GPIO21, 379 + IMX_F1_GPIO21, 380 + IMX_F2_GPIO21, 381 + IMX_F3_GPIO21, 382 + IMX_F0_GPIO22, 383 + IMX_F1_GPIO22, 384 + IMX_F2_GPIO22, 385 + IMX_F3_GPIO22, 386 + IMX_F0_GPIO23, 387 + IMX_F1_GPIO23, 388 + IMX_F2_GPIO23, 389 + IMX_F3_GPIO23, 390 + IMX_F0_GPIO24, 391 + IMX_F1_GPIO24, 392 + IMX_F2_GPIO24, 393 + IMX_F3_GPIO24, 394 + IMX_F0_GPIO25, 395 + IMX_F1_GPIO25, 396 + IMX_F2_GPIO25, 397 + IMX_F3_GPIO25, 398 + IMX_F0_GPIO26, 399 + IMX_F1_GPIO26, 400 + IMX_F2_GPIO26, 401 + IMX_F3_GPIO26, 402 + IMX_F0_GPIO27, 403 + IMX_F1_GPIO27, 404 + IMX_F2_GPIO27, 405 + IMX_F3_GPIO27, 406 + IMX_F0_GPIO28, 407 + IMX_F1_GPIO28, 408 + IMX_F2_GPIO28, 409 + IMX_F3_GPIO28, 410 + IMX_F0_GPIO29, 411 + IMX_F1_GPIO29, 412 + IMX_F2_GPIO29, 413 + IMX_F3_GPIO29, 414 + IMX_F0_GPIO30, 415 + IMX_F1_GPIO30, 416 + IMX_F2_GPIO30, 417 + IMX_F3_GPIO30, 418 + IMX_F0_GPIO31, 419 + IMX_F1_GPIO31, 420 + IMX_F2_GPIO31, 421 + IMX_F3_GPIO31, 422 + IMX_F0_GPIO32, 423 + IMX_F1_GPIO32, 424 + IMX_F2_GPIO32, 425 + IMX_F3_GPIO32, 426 + IMX_F0_GPIO33, 427 + IMX_F1_GPIO33, 428 + IMX_F2_GPIO33, 429 + IMX_F3_GPIO33, 430 + IMX_F0_GPIO34, 431 + IMX_F1_GPIO34, 432 + IMX_F2_GPIO34, 433 + IMX_F3_GPIO34, 434 + IMX_F0_GPIO35, 435 + IMX_F1_GPIO35, 436 + IMX_F2_GPIO35, 437 + IMX_F3_GPIO35, 438 + IMX_F0_GPIO36, 439 + IMX_F1_GPIO36, 440 + IMX_F2_GPIO36, 441 + IMX_F3_GPIO36, 442 + IMX_F0_GPIO37, 443 + IMX_F1_GPIO37, 444 + IMX_F2_GPIO37, 445 + IMX_F3_GPIO37, 446 + IMX_F0_GPIO38, 447 + IMX_F1_GPIO38, 448 + IMX_F2_GPIO38, 449 + IMX_F3_GPIO38, 450 + IMX_F0_GPIO39, 451 + IMX_F1_GPIO39, 452 + IMX_F2_GPIO39, 453 + IMX_F3_GPIO39, 454 + IMX_F0_GPIO40, 455 + IMX_F1_GPIO40, 456 + IMX_F2_GPIO40, 457 + IMX_F3_GPIO40, 458 + IMX_F0_GPIO41, 459 + IMX_F1_GPIO41, 460 + IMX_F2_GPIO41, 461 + IMX_F3_GPIO41, 462 + IMX_F0_GPIO42, 463 + IMX_F1_GPIO42, 464 + IMX_F2_GPIO42, 465 + IMX_F3_GPIO42, 466 + IMX_F0_GPIO43, 467 + IMX_F1_GPIO43, 468 + IMX_F2_GPIO43, 469 + IMX_F3_GPIO43, 470 + IMX_F0_GPIO44, 471 + IMX_F1_GPIO44, 472 + IMX_F2_GPIO44, 473 + IMX_F3_GPIO44, 474 + IMX_F0_GPIO45, 475 + IMX_F1_GPIO45, 476 + IMX_F2_GPIO45, 477 + IMX_F3_GPIO45, 478 + IMX_F0_GPIO46, 479 + IMX_F1_GPIO46, 480 + IMX_F2_GPIO46, 481 + IMX_F3_GPIO46, 482 + IMX_F0_GPIO47, 483 + IMX_F1_GPIO47, 484 + IMX_F2_GPIO47, 485 + IMX_F3_GPIO47, 486 + IMX_F0_GPIO48, 487 + IMX_F1_GPIO48, 488 + IMX_F2_GPIO48, 489 + IMX_F3_GPIO48, 490 + IMX_F0_GPIO49, 491 + IMX_F1_GPIO49, 492 + IMX_F2_GPIO49, 493 + IMX_F3_GPIO49, 494 + IMX_F0_GPIO50, 495 + IMX_F1_GPIO50, 496 + IMX_F2_GPIO50, 497 + IMX_F3_GPIO50, 498 + IMX_F0_GPIO51, 499 + IMX_F1_GPIO51, 500 + IMX_F2_GPIO51, 501 + IMX_F3_GPIO51, 502 + IMX_F0_GPIO52, 503 + IMX_F1_GPIO52, 504 + IMX_F2_GPIO52, 505 + IMX_F3_GPIO52, 506 + IMX_F0_GPIO53, 507 + IMX_F1_GPIO53, 508 + IMX_F2_GPIO53, 509 + IMX_F3_GPIO53, 510 + IMX_F0_GPIO54, 511 + IMX_F1_GPIO54, 512 + IMX_F2_GPIO54, 513 + IMX_F3_GPIO54, 514 + IMX_F0_GPIO55, 515 + IMX_F1_GPIO55, 516 + IMX_F2_GPIO55, 517 + IMX_F3_GPIO55, 518 + IMX_F0_GPIO56, 519 + IMX_F1_GPIO56, 520 + IMX_F2_GPIO56, 521 + IMX_F3_GPIO56, 522 + IMX_F0_GPIO57, 523 + IMX_F1_GPIO57, 524 + IMX_F2_GPIO57, 525 + IMX_F3_GPIO57, 526 + IMX_F0_GPIO58, 527 + IMX_F1_GPIO58, 528 + IMX_F2_GPIO58, 529 + IMX_F3_GPIO58, 530 + IMX_F0_GPIO59, 531 + IMX_F1_GPIO59, 532 + IMX_F2_GPIO59, 533 + IMX_F3_GPIO59, 534 + IMX_F0_GPIO60, 535 + IMX_F1_GPIO60, 536 + IMX_F2_GPIO60, 537 + IMX_F3_GPIO60, 538 + IMX_F0_GPIO61, 539 + IMX_F1_GPIO61, 540 + IMX_F2_GPIO61, 541 + IMX_F3_GPIO61, 542 + IMX_F0_GPIO62, 543 + IMX_F1_GPIO62, 544 + IMX_F2_GPIO62, 545 + IMX_F3_GPIO62, 546 + IMX_F0_GPIO64, 547 + IMX_F1_GPIO64, 548 + IMX_F2_GPIO64, 549 + IMX_F3_GPIO64, 550 + IMX_F0_GPIO65, 551 + IMX_F1_GPIO65, 552 + IMX_F2_GPIO65, 553 + IMX_F3_GPIO65, 554 + IMX_F0_GPIO66, 555 + IMX_F1_GPIO66, 556 + IMX_F2_GPIO66, 557 + IMX_F3_GPIO66, 558 + IMX_F0_GPIO67, 559 + IMX_F1_GPIO67, 560 + IMX_F2_GPIO67, 561 + IMX_F3_GPIO67, 562 + IMX_F0_GPIO68, 563 + IMX_F1_GPIO68, 564 + IMX_F2_GPIO68, 565 + IMX_F3_GPIO68, 566 + IMX_F0_GPIO69, 567 + IMX_F1_GPIO69, 568 + IMX_F2_GPIO69, 569 + IMX_F3_GPIO69, 570 + IMX_F0_GPIO70, 571 + IMX_F1_GPIO70, 572 + IMX_F2_GPIO70, 573 + IMX_F3_GPIO70, 574 + IMX_F0_GPIO71, 575 + IMX_F1_GPIO71, 576 + IMX_F2_GPIO71, 577 + IMX_F3_GPIO71, 578 + IMX_F0_GPIO72, 579 + IMX_F1_GPIO72, 580 + IMX_F2_GPIO72, 581 + IMX_F3_GPIO72, 582 + IMX_F0_GPIO73, 583 + IMX_F1_GPIO73, 584 + IMX_F2_GPIO73, 585 + IMX_F3_GPIO73, 586 + IMX_F0_GPIO74, 587 + IMX_F1_GPIO74, 588 + IMX_F2_GPIO74, 589 + IMX_F3_GPIO74, 590 + IMX_F0_GPIO75, 591 + IMX_F1_GPIO75, 592 + IMX_F2_GPIO75, 593 + IMX_F3_GPIO75, 594 + IMX_F0_GPIO76, 595 + IMX_F1_GPIO76, 596 + IMX_F2_GPIO76, 597 + IMX_F3_GPIO76, 598 + IMX_F0_GPIO77, 599 + IMX_F1_GPIO77, 600 + IMX_F2_GPIO77, 601 + IMX_F3_GPIO77, 602 + IMX_F0_GPIO78, 603 + IMX_F1_GPIO78, 604 + IMX_F2_GPIO78, 605 + IMX_F3_GPIO78, 606 + IMX_F0_GPIO79, 607 + IMX_F1_GPIO79, 608 + IMX_F2_GPIO79, 609 + IMX_F3_GPIO79, 610 + IMX_F0_GPIO80, 611 + IMX_F1_GPIO80, 612 + IMX_F2_GPIO80, 613 + IMX_F3_GPIO80, 614 + IMX_F0_GPIO81, 615 + IMX_F1_GPIO81, 616 + IMX_F2_GPIO81, 617 + IMX_F3_GPIO81, 618 + IMX_F0_GPIO82, 619 + IMX_F1_GPIO82, 620 + IMX_F2_GPIO82, 621 + IMX_F3_GPIO82, 622 + IMX_F0_GPIO83, 623 + IMX_F1_GPIO83, 624 + IMX_F2_GPIO83, 625 + IMX_F3_GPIO83, 626 + IMX_F0_GPIO84, 627 + IMX_F1_GPIO84, 628 + IMX_F2_GPIO84, 629 + IMX_F3_GPIO84, 630 + IMX_F0_GPIO85, 631 + IMX_F1_GPIO85, 632 + IMX_F2_GPIO85, 633 + IMX_F3_GPIO85, 634 + IMX_F0_GPIO86, 635 + IMX_F1_GPIO86, 636 + IMX_F2_GPIO86, 637 + IMX_F3_GPIO86, 638 + IMX_F0_GPIO87, 639 + IMX_F1_GPIO87, 640 + IMX_F2_GPIO87, 641 + IMX_F3_GPIO87, 642 + IMX_F0_GPIO88, 643 + IMX_F1_GPIO88, 644 + IMX_F2_GPIO88, 645 + IMX_F3_GPIO88, 646 + IMX_F0_GPIO89, 647 + IMX_F1_GPIO89, 648 + IMX_F2_GPIO89, 649 + IMX_F3_GPIO89, 650 + IMX_F0_GPIO90, 651 + IMX_F1_GPIO90, 652 + IMX_F2_GPIO90, 653 + IMX_F3_GPIO90, 654 + IMX_F0_GPIO91, 655 + IMX_F1_GPIO91, 656 + IMX_F2_GPIO91, 657 + IMX_F3_GPIO91, 658 + IMX_F0_GPIO92, 659 + IMX_F1_GPIO92, 660 + IMX_F2_GPIO92, 661 + IMX_F3_GPIO92, 662 + IMX_F0_GPIO93, 663 + IMX_F1_GPIO93, 664 + IMX_F2_GPIO93, 665 + IMX_F3_GPIO93, 666 + IMX_F0_GPIO94, 667 + IMX_F1_GPIO94, 668 + IMX_F2_GPIO94, 669 + IMX_F3_GPIO94, 670 + IMX_F0_GPIO95, 671 + IMX_F1_GPIO95, 672 + IMX_F2_GPIO95, 673 + IMX_F3_GPIO95, 674 + IMX_F0_GPIO96, 675 + IMX_F1_GPIO96, 676 + IMX_F2_GPIO96, 677 + IMX_F3_GPIO96, 678 + IMX_F0_GPIO97, 679 + IMX_F1_GPIO97, 680 + IMX_F2_GPIO97, 681 + IMX_F3_GPIO97, 682 + IMX_F0_GPIO98, 683 + IMX_F1_GPIO98, 684 + IMX_F2_GPIO98, 685 + IMX_F3_GPIO98, 686 + IMX_F0_GPIO99, 687 + IMX_F1_GPIO99, 688 + IMX_F2_GPIO99, 689 + IMX_F3_GPIO99, 690 + IMX_F0_GPIO100, 691 + IMX_F1_GPIO100, 692 + IMX_F2_GPIO100, 693 + IMX_F3_GPIO100, 694 + IMX_F0_GPIO101, 695 + IMX_F1_GPIO101, 696 + IMX_F2_GPIO101, 697 + IMX_F3_GPIO101, 698 + IMX_F0_GPIO102, 699 + IMX_F1_GPIO102, 700 + IMX_F2_GPIO102, 701 + IMX_F3_GPIO102, 702 + IMX_F0_GPIO103, 703 + IMX_F1_GPIO103, 704 + IMX_F2_GPIO103, 705 + IMX_F3_GPIO103, 706 + IMX_F0_GPIO104, 707 + IMX_F1_GPIO104, 708 + IMX_F2_GPIO104, 709 + IMX_F3_GPIO104, 710 + IMX_F0_GPIO105, 711 + IMX_F1_GPIO105, 712 + IMX_F2_GPIO105, 713 + IMX_F3_GPIO105, 714 + IMX_F0_GPIO106, 715 + IMX_F1_GPIO106, 716 + IMX_F2_GPIO106, 717 + IMX_F3_GPIO106, 718 + IMX_F0_GPIO107, 719 + IMX_F1_GPIO107, 720 + IMX_F2_GPIO107, 721 + IMX_F3_GPIO107, 722 + IMX_F0_GPIO108, 723 + IMX_F1_GPIO108, 724 + IMX_F2_GPIO108, 725 + IMX_F3_GPIO108, 726 + IMX_F0_GPIO109, 727 + IMX_F1_GPIO109, 728 + IMX_F2_GPIO109, 729 + IMX_F3_GPIO109, 730 + IMX_F0_GPIO110, 731 + IMX_F1_GPIO110, 732 + IMX_F2_GPIO110, 733 + IMX_F3_GPIO110, 734 + IMX_F0_GPIO111, 735 + IMX_F1_GPIO111, 736 + IMX_F2_GPIO111, 737 + IMX_F3_GPIO111, 738 + IMX_F0_GPIO112, 739 + IMX_F1_GPIO112, 740 + IMX_F2_GPIO112, 741 + IMX_F3_GPIO112, 742 + IMX_F0_GPIO113, 743 + IMX_F1_GPIO113, 744 + IMX_F2_GPIO113, 745 + IMX_F3_GPIO113, 746 + IMX_F0_GPIO114, 747 + IMX_F1_GPIO114, 748 + IMX_F2_GPIO114, 749 + IMX_F3_GPIO114, 750 + IMX_F0_GPIO115, 751 + IMX_F1_GPIO115, 752 + IMX_F2_GPIO115, 753 + IMX_F3_GPIO115, 754 + IMX_F0_GPIO116, 755 + IMX_F1_GPIO116, 756 + IMX_F2_GPIO116, 757 + IMX_F3_GPIO116, 758 + IMX_F0_GPIO117, 759 + IMX_F1_GPIO117, 760 + IMX_F2_GPIO117, 761 + IMX_F3_GPIO117, 762 + IMX_F0_GPIO118, 763 + IMX_F1_GPIO118, 764 + IMX_F2_GPIO118, 765 + IMX_F3_GPIO118, 766 + IMX_F0_GPIO119, 767 + IMX_F1_GPIO119, 768 + IMX_F2_GPIO119, 769 + IMX_F3_GPIO119, 770 + IMX_F0_GPIO120, 771 + IMX_F1_GPIO120, 772 + IMX_F2_GPIO120, 773 + IMX_F3_GPIO120, 774 + IMX_F0_GPIO121, 775 + IMX_F1_GPIO121, 776 + IMX_F2_GPIO121, 777 + IMX_F3_GPIO121, 778 + IMX_F0_GPIO122, 779 + IMX_F1_GPIO122, 780 + IMX_F2_GPIO122, 781 + IMX_F3_GPIO122, 782 + IMX_F0_GPIO123, 783 + IMX_F1_GPIO123, 784 + IMX_F2_GPIO123, 785 + IMX_F3_GPIO123, 786 + IMX_F0_GPIO124, 787 + IMX_F1_GPIO124, 788 + IMX_F2_GPIO124, 789 + IMX_F3_GPIO124, 790 + IMX_F0_GPIO125, 791 + IMX_F1_GPIO125, 792 + IMX_F2_GPIO125, 793 + IMX_F3_GPIO125, 794 + IMX_F0_GPIO126, 795 + IMX_F1_GPIO126, 796 + IMX_F2_GPIO126, 797 + IMX_F3_GPIO126, 798 + IMX_F0_GPIO127, 799 + IMX_F1_GPIO127, 800 + IMX_F2_GPIO127, 801 + IMX_F3_GPIO127, 802 + IMX_F0_GPIO128, 803 + IMX_F1_GPIO128, 804 + IMX_F2_GPIO128, 805 + IMX_F3_GPIO128, 806 + IMX_F0_GPIO129, 807 + IMX_F1_GPIO129, 808 + IMX_F2_GPIO129, 809 + IMX_F3_GPIO129, 810 + IMX_F0_GPIO130, 811 + IMX_F1_GPIO130, 812 + IMX_F2_GPIO130, 813 + IMX_F3_GPIO130, 814 + IMX_F0_GPIO131, 815 + IMX_F1_GPIO131, 816 + IMX_F2_GPIO131, 817 + IMX_F3_GPIO131, 818 + IMX_F0_GPIO132, 819 + IMX_F1_GPIO132, 820 + IMX_F2_GPIO132, 821 + IMX_F3_GPIO132, 822 + IMX_F0_GPIO133, 823 + IMX_F1_GPIO133, 824 + IMX_F2_GPIO133, 825 + IMX_F3_GPIO133, 826 + IMX_F0_GPIO134, 827 + IMX_F1_GPIO134, 828 + IMX_F2_GPIO134, 829 + IMX_F3_GPIO134, 830 + IMX_F0_GPIO135, 831 + IMX_F1_GPIO135, 832 + IMX_F2_GPIO135, 833 + IMX_F3_GPIO135, 834 + IMX_F0_GPIO136, 835 + IMX_F1_GPIO136, 836 + IMX_F2_GPIO136, 837 + IMX_F3_GPIO136, 838 + IMX_F0_GPIO137, 839 + IMX_F1_GPIO137, 840 + IMX_F2_GPIO137, 841 + IMX_F3_GPIO137, 842 + IMX_F0_GPIO138, 843 + IMX_F1_GPIO138, 844 + IMX_F2_GPIO138, 845 + IMX_F3_GPIO138, 846 + IMX_F0_GPIO139, 847 + IMX_F1_GPIO139, 848 + IMX_F2_GPIO139, 849 + IMX_F3_GPIO139, 850 + IMX_F0_GPIO140, 851 + IMX_F1_GPIO140, 852 + IMX_F2_GPIO140, 853 + IMX_F3_GPIO140, 854 + IMX_F0_GPIO141, 855 + IMX_F1_GPIO141, 856 + IMX_F2_GPIO141, 857 + IMX_F3_GPIO141, 858 + IMX_F0_GPIO142, 859 + IMX_F1_GPIO142, 860 + IMX_F2_GPIO142, 861 + IMX_F3_GPIO142, 862 + IMX_F0_GPIO143, 863 + IMX_F1_GPIO143, 864 + IMX_F2_GPIO143, 865 + IMX_F3_GPIO143, 866 + IMX_F0_GPIO144, 867 + IMX_F1_GPIO144, 868 + IMX_F2_GPIO144, 869 + IMX_F3_GPIO144, 870 + }; 299 871 300 - static const struct amd_pingroup kerncz_groups[] = { 301 - { 302 - .name = "i2c0", 303 - .pins = i2c0_pins, 304 - .npins = 2, 305 - }, 306 - { 307 - .name = "i2c1", 308 - .pins = i2c1_pins, 309 - .npins = 2, 310 - }, 311 - { 312 - .name = "i2c2", 313 - .pins = i2c2_pins, 314 - .npins = 2, 315 - }, 316 - { 317 - .name = "i2c3", 318 - .pins = i2c3_pins, 319 - .npins = 2, 320 - }, 321 - { 322 - .name = "uart0", 323 - .pins = uart0_pins, 324 - .npins = 5, 325 - }, 326 - { 327 - .name = "uart1", 328 - .pins = uart1_pins, 329 - .npins = 5, 330 - }, 872 + #define AMD_PINCTRL_FUNC_GRP(_number, _func) \ 873 + [IMX_F##_func##_GPIO##_number] = \ 874 + PINCTRL_PINGROUP("IMX_F"#_func "_GPIO"#_number, AMD_PINS(_number), 1) 875 + 876 + static const struct pingroup kerncz_groups[] = { 877 + AMD_PINCTRL_FUNC_GRP(0, 0), 878 + AMD_PINCTRL_FUNC_GRP(0, 1), 879 + AMD_PINCTRL_FUNC_GRP(0, 2), 880 + AMD_PINCTRL_FUNC_GRP(0, 3), 881 + AMD_PINCTRL_FUNC_GRP(1, 0), 882 + AMD_PINCTRL_FUNC_GRP(1, 1), 883 + AMD_PINCTRL_FUNC_GRP(1, 2), 884 + AMD_PINCTRL_FUNC_GRP(1, 3), 885 + AMD_PINCTRL_FUNC_GRP(2, 0), 886 + AMD_PINCTRL_FUNC_GRP(2, 1), 887 + AMD_PINCTRL_FUNC_GRP(2, 2), 888 + AMD_PINCTRL_FUNC_GRP(2, 3), 889 + AMD_PINCTRL_FUNC_GRP(3, 0), 890 + AMD_PINCTRL_FUNC_GRP(3, 1), 891 + AMD_PINCTRL_FUNC_GRP(3, 2), 892 + AMD_PINCTRL_FUNC_GRP(3, 3), 893 + AMD_PINCTRL_FUNC_GRP(4, 0), 894 + AMD_PINCTRL_FUNC_GRP(4, 1), 895 + AMD_PINCTRL_FUNC_GRP(4, 2), 896 + AMD_PINCTRL_FUNC_GRP(4, 3), 897 + AMD_PINCTRL_FUNC_GRP(5, 0), 898 + AMD_PINCTRL_FUNC_GRP(5, 1), 899 + AMD_PINCTRL_FUNC_GRP(5, 2), 900 + AMD_PINCTRL_FUNC_GRP(5, 3), 901 + AMD_PINCTRL_FUNC_GRP(6, 0), 902 + AMD_PINCTRL_FUNC_GRP(6, 1), 903 + AMD_PINCTRL_FUNC_GRP(6, 2), 904 + AMD_PINCTRL_FUNC_GRP(6, 3), 905 + AMD_PINCTRL_FUNC_GRP(7, 0), 906 + AMD_PINCTRL_FUNC_GRP(7, 1), 907 + AMD_PINCTRL_FUNC_GRP(7, 2), 908 + AMD_PINCTRL_FUNC_GRP(7, 3), 909 + AMD_PINCTRL_FUNC_GRP(8, 0), 910 + AMD_PINCTRL_FUNC_GRP(8, 1), 911 + AMD_PINCTRL_FUNC_GRP(8, 2), 912 + AMD_PINCTRL_FUNC_GRP(8, 3), 913 + AMD_PINCTRL_FUNC_GRP(9, 0), 914 + AMD_PINCTRL_FUNC_GRP(9, 1), 915 + AMD_PINCTRL_FUNC_GRP(9, 2), 916 + AMD_PINCTRL_FUNC_GRP(9, 3), 917 + AMD_PINCTRL_FUNC_GRP(10, 0), 918 + AMD_PINCTRL_FUNC_GRP(10, 1), 919 + AMD_PINCTRL_FUNC_GRP(10, 2), 920 + AMD_PINCTRL_FUNC_GRP(10, 3), 921 + AMD_PINCTRL_FUNC_GRP(11, 0), 922 + AMD_PINCTRL_FUNC_GRP(11, 1), 923 + AMD_PINCTRL_FUNC_GRP(11, 2), 924 + AMD_PINCTRL_FUNC_GRP(11, 3), 925 + AMD_PINCTRL_FUNC_GRP(12, 0), 926 + AMD_PINCTRL_FUNC_GRP(12, 1), 927 + AMD_PINCTRL_FUNC_GRP(12, 2), 928 + AMD_PINCTRL_FUNC_GRP(12, 3), 929 + AMD_PINCTRL_FUNC_GRP(13, 0), 930 + AMD_PINCTRL_FUNC_GRP(13, 1), 931 + AMD_PINCTRL_FUNC_GRP(13, 2), 932 + AMD_PINCTRL_FUNC_GRP(13, 3), 933 + AMD_PINCTRL_FUNC_GRP(14, 0), 934 + AMD_PINCTRL_FUNC_GRP(14, 1), 935 + AMD_PINCTRL_FUNC_GRP(14, 2), 936 + AMD_PINCTRL_FUNC_GRP(14, 3), 937 + AMD_PINCTRL_FUNC_GRP(15, 0), 938 + AMD_PINCTRL_FUNC_GRP(15, 1), 939 + AMD_PINCTRL_FUNC_GRP(15, 2), 940 + AMD_PINCTRL_FUNC_GRP(15, 3), 941 + AMD_PINCTRL_FUNC_GRP(16, 0), 942 + AMD_PINCTRL_FUNC_GRP(16, 1), 943 + AMD_PINCTRL_FUNC_GRP(16, 2), 944 + AMD_PINCTRL_FUNC_GRP(16, 3), 945 + AMD_PINCTRL_FUNC_GRP(17, 0), 946 + AMD_PINCTRL_FUNC_GRP(17, 1), 947 + AMD_PINCTRL_FUNC_GRP(17, 2), 948 + AMD_PINCTRL_FUNC_GRP(17, 3), 949 + AMD_PINCTRL_FUNC_GRP(18, 0), 950 + AMD_PINCTRL_FUNC_GRP(18, 1), 951 + AMD_PINCTRL_FUNC_GRP(18, 2), 952 + AMD_PINCTRL_FUNC_GRP(18, 3), 953 + AMD_PINCTRL_FUNC_GRP(19, 0), 954 + AMD_PINCTRL_FUNC_GRP(19, 1), 955 + AMD_PINCTRL_FUNC_GRP(19, 2), 956 + AMD_PINCTRL_FUNC_GRP(19, 3), 957 + AMD_PINCTRL_FUNC_GRP(20, 0), 958 + AMD_PINCTRL_FUNC_GRP(20, 1), 959 + AMD_PINCTRL_FUNC_GRP(20, 2), 960 + AMD_PINCTRL_FUNC_GRP(20, 3), 961 + AMD_PINCTRL_FUNC_GRP(21, 0), 962 + AMD_PINCTRL_FUNC_GRP(21, 1), 963 + AMD_PINCTRL_FUNC_GRP(21, 2), 964 + AMD_PINCTRL_FUNC_GRP(21, 3), 965 + AMD_PINCTRL_FUNC_GRP(22, 0), 966 + AMD_PINCTRL_FUNC_GRP(22, 1), 967 + AMD_PINCTRL_FUNC_GRP(22, 2), 968 + AMD_PINCTRL_FUNC_GRP(22, 3), 969 + AMD_PINCTRL_FUNC_GRP(23, 0), 970 + AMD_PINCTRL_FUNC_GRP(23, 1), 971 + AMD_PINCTRL_FUNC_GRP(23, 2), 972 + AMD_PINCTRL_FUNC_GRP(23, 3), 973 + AMD_PINCTRL_FUNC_GRP(24, 0), 974 + AMD_PINCTRL_FUNC_GRP(24, 1), 975 + AMD_PINCTRL_FUNC_GRP(24, 2), 976 + AMD_PINCTRL_FUNC_GRP(24, 3), 977 + AMD_PINCTRL_FUNC_GRP(25, 0), 978 + AMD_PINCTRL_FUNC_GRP(25, 1), 979 + AMD_PINCTRL_FUNC_GRP(25, 2), 980 + AMD_PINCTRL_FUNC_GRP(25, 3), 981 + AMD_PINCTRL_FUNC_GRP(26, 0), 982 + AMD_PINCTRL_FUNC_GRP(26, 1), 983 + AMD_PINCTRL_FUNC_GRP(26, 2), 984 + AMD_PINCTRL_FUNC_GRP(26, 3), 985 + AMD_PINCTRL_FUNC_GRP(27, 0), 986 + AMD_PINCTRL_FUNC_GRP(27, 1), 987 + AMD_PINCTRL_FUNC_GRP(27, 2), 988 + AMD_PINCTRL_FUNC_GRP(27, 3), 989 + AMD_PINCTRL_FUNC_GRP(28, 0), 990 + AMD_PINCTRL_FUNC_GRP(28, 1), 991 + AMD_PINCTRL_FUNC_GRP(28, 2), 992 + AMD_PINCTRL_FUNC_GRP(28, 3), 993 + AMD_PINCTRL_FUNC_GRP(29, 0), 994 + AMD_PINCTRL_FUNC_GRP(29, 1), 995 + AMD_PINCTRL_FUNC_GRP(29, 2), 996 + AMD_PINCTRL_FUNC_GRP(29, 3), 997 + AMD_PINCTRL_FUNC_GRP(30, 0), 998 + AMD_PINCTRL_FUNC_GRP(30, 1), 999 + AMD_PINCTRL_FUNC_GRP(30, 2), 1000 + AMD_PINCTRL_FUNC_GRP(30, 3), 1001 + AMD_PINCTRL_FUNC_GRP(31, 0), 1002 + AMD_PINCTRL_FUNC_GRP(31, 1), 1003 + AMD_PINCTRL_FUNC_GRP(31, 2), 1004 + AMD_PINCTRL_FUNC_GRP(31, 3), 1005 + AMD_PINCTRL_FUNC_GRP(32, 0), 1006 + AMD_PINCTRL_FUNC_GRP(32, 1), 1007 + AMD_PINCTRL_FUNC_GRP(32, 2), 1008 + AMD_PINCTRL_FUNC_GRP(32, 3), 1009 + AMD_PINCTRL_FUNC_GRP(33, 0), 1010 + AMD_PINCTRL_FUNC_GRP(33, 1), 1011 + AMD_PINCTRL_FUNC_GRP(33, 2), 1012 + AMD_PINCTRL_FUNC_GRP(33, 3), 1013 + AMD_PINCTRL_FUNC_GRP(34, 0), 1014 + AMD_PINCTRL_FUNC_GRP(34, 1), 1015 + AMD_PINCTRL_FUNC_GRP(34, 2), 1016 + AMD_PINCTRL_FUNC_GRP(34, 3), 1017 + AMD_PINCTRL_FUNC_GRP(35, 0), 1018 + AMD_PINCTRL_FUNC_GRP(35, 1), 1019 + AMD_PINCTRL_FUNC_GRP(35, 2), 1020 + AMD_PINCTRL_FUNC_GRP(35, 3), 1021 + AMD_PINCTRL_FUNC_GRP(36, 0), 1022 + AMD_PINCTRL_FUNC_GRP(36, 1), 1023 + AMD_PINCTRL_FUNC_GRP(36, 2), 1024 + AMD_PINCTRL_FUNC_GRP(36, 3), 1025 + AMD_PINCTRL_FUNC_GRP(37, 0), 1026 + AMD_PINCTRL_FUNC_GRP(37, 1), 1027 + AMD_PINCTRL_FUNC_GRP(37, 2), 1028 + AMD_PINCTRL_FUNC_GRP(37, 3), 1029 + AMD_PINCTRL_FUNC_GRP(38, 0), 1030 + AMD_PINCTRL_FUNC_GRP(38, 1), 1031 + AMD_PINCTRL_FUNC_GRP(38, 2), 1032 + AMD_PINCTRL_FUNC_GRP(38, 3), 1033 + AMD_PINCTRL_FUNC_GRP(39, 0), 1034 + AMD_PINCTRL_FUNC_GRP(39, 1), 1035 + AMD_PINCTRL_FUNC_GRP(39, 2), 1036 + AMD_PINCTRL_FUNC_GRP(39, 3), 1037 + AMD_PINCTRL_FUNC_GRP(40, 0), 1038 + AMD_PINCTRL_FUNC_GRP(40, 1), 1039 + AMD_PINCTRL_FUNC_GRP(40, 2), 1040 + AMD_PINCTRL_FUNC_GRP(40, 3), 1041 + AMD_PINCTRL_FUNC_GRP(41, 0), 1042 + AMD_PINCTRL_FUNC_GRP(41, 1), 1043 + AMD_PINCTRL_FUNC_GRP(41, 2), 1044 + AMD_PINCTRL_FUNC_GRP(41, 3), 1045 + AMD_PINCTRL_FUNC_GRP(42, 0), 1046 + AMD_PINCTRL_FUNC_GRP(42, 1), 1047 + AMD_PINCTRL_FUNC_GRP(42, 2), 1048 + AMD_PINCTRL_FUNC_GRP(42, 3), 1049 + AMD_PINCTRL_FUNC_GRP(43, 0), 1050 + AMD_PINCTRL_FUNC_GRP(43, 1), 1051 + AMD_PINCTRL_FUNC_GRP(43, 2), 1052 + AMD_PINCTRL_FUNC_GRP(43, 3), 1053 + AMD_PINCTRL_FUNC_GRP(44, 0), 1054 + AMD_PINCTRL_FUNC_GRP(44, 1), 1055 + AMD_PINCTRL_FUNC_GRP(44, 2), 1056 + AMD_PINCTRL_FUNC_GRP(44, 3), 1057 + AMD_PINCTRL_FUNC_GRP(45, 0), 1058 + AMD_PINCTRL_FUNC_GRP(45, 1), 1059 + AMD_PINCTRL_FUNC_GRP(45, 2), 1060 + AMD_PINCTRL_FUNC_GRP(45, 3), 1061 + AMD_PINCTRL_FUNC_GRP(46, 0), 1062 + AMD_PINCTRL_FUNC_GRP(46, 1), 1063 + AMD_PINCTRL_FUNC_GRP(46, 2), 1064 + AMD_PINCTRL_FUNC_GRP(46, 3), 1065 + AMD_PINCTRL_FUNC_GRP(47, 0), 1066 + AMD_PINCTRL_FUNC_GRP(47, 1), 1067 + AMD_PINCTRL_FUNC_GRP(47, 2), 1068 + AMD_PINCTRL_FUNC_GRP(47, 3), 1069 + AMD_PINCTRL_FUNC_GRP(48, 0), 1070 + AMD_PINCTRL_FUNC_GRP(48, 1), 1071 + AMD_PINCTRL_FUNC_GRP(48, 2), 1072 + AMD_PINCTRL_FUNC_GRP(48, 3), 1073 + AMD_PINCTRL_FUNC_GRP(49, 0), 1074 + AMD_PINCTRL_FUNC_GRP(49, 1), 1075 + AMD_PINCTRL_FUNC_GRP(49, 2), 1076 + AMD_PINCTRL_FUNC_GRP(49, 3), 1077 + AMD_PINCTRL_FUNC_GRP(50, 0), 1078 + AMD_PINCTRL_FUNC_GRP(50, 1), 1079 + AMD_PINCTRL_FUNC_GRP(50, 2), 1080 + AMD_PINCTRL_FUNC_GRP(50, 3), 1081 + AMD_PINCTRL_FUNC_GRP(51, 0), 1082 + AMD_PINCTRL_FUNC_GRP(51, 1), 1083 + AMD_PINCTRL_FUNC_GRP(51, 2), 1084 + AMD_PINCTRL_FUNC_GRP(51, 3), 1085 + AMD_PINCTRL_FUNC_GRP(52, 0), 1086 + AMD_PINCTRL_FUNC_GRP(52, 1), 1087 + AMD_PINCTRL_FUNC_GRP(52, 2), 1088 + AMD_PINCTRL_FUNC_GRP(52, 3), 1089 + AMD_PINCTRL_FUNC_GRP(53, 0), 1090 + AMD_PINCTRL_FUNC_GRP(53, 1), 1091 + AMD_PINCTRL_FUNC_GRP(53, 2), 1092 + AMD_PINCTRL_FUNC_GRP(53, 3), 1093 + AMD_PINCTRL_FUNC_GRP(54, 0), 1094 + AMD_PINCTRL_FUNC_GRP(54, 1), 1095 + AMD_PINCTRL_FUNC_GRP(54, 2), 1096 + AMD_PINCTRL_FUNC_GRP(54, 3), 1097 + AMD_PINCTRL_FUNC_GRP(55, 0), 1098 + AMD_PINCTRL_FUNC_GRP(55, 1), 1099 + AMD_PINCTRL_FUNC_GRP(55, 2), 1100 + AMD_PINCTRL_FUNC_GRP(55, 3), 1101 + AMD_PINCTRL_FUNC_GRP(56, 0), 1102 + AMD_PINCTRL_FUNC_GRP(56, 1), 1103 + AMD_PINCTRL_FUNC_GRP(56, 2), 1104 + AMD_PINCTRL_FUNC_GRP(56, 3), 1105 + AMD_PINCTRL_FUNC_GRP(57, 0), 1106 + AMD_PINCTRL_FUNC_GRP(57, 1), 1107 + AMD_PINCTRL_FUNC_GRP(57, 2), 1108 + AMD_PINCTRL_FUNC_GRP(57, 3), 1109 + AMD_PINCTRL_FUNC_GRP(58, 0), 1110 + AMD_PINCTRL_FUNC_GRP(58, 1), 1111 + AMD_PINCTRL_FUNC_GRP(58, 2), 1112 + AMD_PINCTRL_FUNC_GRP(58, 3), 1113 + AMD_PINCTRL_FUNC_GRP(59, 0), 1114 + AMD_PINCTRL_FUNC_GRP(59, 1), 1115 + AMD_PINCTRL_FUNC_GRP(59, 2), 1116 + AMD_PINCTRL_FUNC_GRP(59, 3), 1117 + AMD_PINCTRL_FUNC_GRP(60, 0), 1118 + AMD_PINCTRL_FUNC_GRP(60, 1), 1119 + AMD_PINCTRL_FUNC_GRP(60, 2), 1120 + AMD_PINCTRL_FUNC_GRP(60, 3), 1121 + AMD_PINCTRL_FUNC_GRP(61, 0), 1122 + AMD_PINCTRL_FUNC_GRP(61, 1), 1123 + AMD_PINCTRL_FUNC_GRP(61, 2), 1124 + AMD_PINCTRL_FUNC_GRP(61, 3), 1125 + AMD_PINCTRL_FUNC_GRP(62, 0), 1126 + AMD_PINCTRL_FUNC_GRP(62, 1), 1127 + AMD_PINCTRL_FUNC_GRP(62, 2), 1128 + AMD_PINCTRL_FUNC_GRP(62, 3), 1129 + AMD_PINCTRL_FUNC_GRP(64, 0), 1130 + AMD_PINCTRL_FUNC_GRP(64, 1), 1131 + AMD_PINCTRL_FUNC_GRP(64, 2), 1132 + AMD_PINCTRL_FUNC_GRP(64, 3), 1133 + AMD_PINCTRL_FUNC_GRP(65, 0), 1134 + AMD_PINCTRL_FUNC_GRP(65, 1), 1135 + AMD_PINCTRL_FUNC_GRP(65, 2), 1136 + AMD_PINCTRL_FUNC_GRP(65, 3), 1137 + AMD_PINCTRL_FUNC_GRP(66, 0), 1138 + AMD_PINCTRL_FUNC_GRP(66, 1), 1139 + AMD_PINCTRL_FUNC_GRP(66, 2), 1140 + AMD_PINCTRL_FUNC_GRP(66, 3), 1141 + AMD_PINCTRL_FUNC_GRP(67, 0), 1142 + AMD_PINCTRL_FUNC_GRP(67, 1), 1143 + AMD_PINCTRL_FUNC_GRP(67, 2), 1144 + AMD_PINCTRL_FUNC_GRP(67, 3), 1145 + AMD_PINCTRL_FUNC_GRP(68, 0), 1146 + AMD_PINCTRL_FUNC_GRP(68, 1), 1147 + AMD_PINCTRL_FUNC_GRP(68, 2), 1148 + AMD_PINCTRL_FUNC_GRP(68, 3), 1149 + AMD_PINCTRL_FUNC_GRP(69, 0), 1150 + AMD_PINCTRL_FUNC_GRP(69, 1), 1151 + AMD_PINCTRL_FUNC_GRP(69, 2), 1152 + AMD_PINCTRL_FUNC_GRP(69, 3), 1153 + AMD_PINCTRL_FUNC_GRP(70, 0), 1154 + AMD_PINCTRL_FUNC_GRP(70, 1), 1155 + AMD_PINCTRL_FUNC_GRP(70, 2), 1156 + AMD_PINCTRL_FUNC_GRP(70, 3), 1157 + AMD_PINCTRL_FUNC_GRP(71, 0), 1158 + AMD_PINCTRL_FUNC_GRP(71, 1), 1159 + AMD_PINCTRL_FUNC_GRP(71, 2), 1160 + AMD_PINCTRL_FUNC_GRP(71, 3), 1161 + AMD_PINCTRL_FUNC_GRP(72, 0), 1162 + AMD_PINCTRL_FUNC_GRP(72, 1), 1163 + AMD_PINCTRL_FUNC_GRP(72, 2), 1164 + AMD_PINCTRL_FUNC_GRP(72, 3), 1165 + AMD_PINCTRL_FUNC_GRP(73, 0), 1166 + AMD_PINCTRL_FUNC_GRP(73, 1), 1167 + AMD_PINCTRL_FUNC_GRP(73, 2), 1168 + AMD_PINCTRL_FUNC_GRP(73, 3), 1169 + AMD_PINCTRL_FUNC_GRP(74, 0), 1170 + AMD_PINCTRL_FUNC_GRP(74, 1), 1171 + AMD_PINCTRL_FUNC_GRP(74, 2), 1172 + AMD_PINCTRL_FUNC_GRP(74, 3), 1173 + AMD_PINCTRL_FUNC_GRP(75, 0), 1174 + AMD_PINCTRL_FUNC_GRP(75, 1), 1175 + AMD_PINCTRL_FUNC_GRP(75, 2), 1176 + AMD_PINCTRL_FUNC_GRP(75, 3), 1177 + AMD_PINCTRL_FUNC_GRP(76, 0), 1178 + AMD_PINCTRL_FUNC_GRP(76, 1), 1179 + AMD_PINCTRL_FUNC_GRP(76, 2), 1180 + AMD_PINCTRL_FUNC_GRP(76, 3), 1181 + AMD_PINCTRL_FUNC_GRP(77, 0), 1182 + AMD_PINCTRL_FUNC_GRP(77, 1), 1183 + AMD_PINCTRL_FUNC_GRP(77, 2), 1184 + AMD_PINCTRL_FUNC_GRP(77, 3), 1185 + AMD_PINCTRL_FUNC_GRP(78, 0), 1186 + AMD_PINCTRL_FUNC_GRP(78, 1), 1187 + AMD_PINCTRL_FUNC_GRP(78, 2), 1188 + AMD_PINCTRL_FUNC_GRP(78, 3), 1189 + AMD_PINCTRL_FUNC_GRP(79, 0), 1190 + AMD_PINCTRL_FUNC_GRP(79, 1), 1191 + AMD_PINCTRL_FUNC_GRP(79, 2), 1192 + AMD_PINCTRL_FUNC_GRP(79, 3), 1193 + AMD_PINCTRL_FUNC_GRP(80, 0), 1194 + AMD_PINCTRL_FUNC_GRP(80, 1), 1195 + AMD_PINCTRL_FUNC_GRP(80, 2), 1196 + AMD_PINCTRL_FUNC_GRP(80, 3), 1197 + AMD_PINCTRL_FUNC_GRP(81, 0), 1198 + AMD_PINCTRL_FUNC_GRP(81, 1), 1199 + AMD_PINCTRL_FUNC_GRP(81, 2), 1200 + AMD_PINCTRL_FUNC_GRP(81, 3), 1201 + AMD_PINCTRL_FUNC_GRP(82, 0), 1202 + AMD_PINCTRL_FUNC_GRP(82, 1), 1203 + AMD_PINCTRL_FUNC_GRP(82, 2), 1204 + AMD_PINCTRL_FUNC_GRP(82, 3), 1205 + AMD_PINCTRL_FUNC_GRP(83, 0), 1206 + AMD_PINCTRL_FUNC_GRP(83, 1), 1207 + AMD_PINCTRL_FUNC_GRP(83, 2), 1208 + AMD_PINCTRL_FUNC_GRP(83, 3), 1209 + AMD_PINCTRL_FUNC_GRP(84, 0), 1210 + AMD_PINCTRL_FUNC_GRP(84, 1), 1211 + AMD_PINCTRL_FUNC_GRP(84, 2), 1212 + AMD_PINCTRL_FUNC_GRP(84, 3), 1213 + AMD_PINCTRL_FUNC_GRP(85, 0), 1214 + AMD_PINCTRL_FUNC_GRP(85, 1), 1215 + AMD_PINCTRL_FUNC_GRP(85, 2), 1216 + AMD_PINCTRL_FUNC_GRP(85, 3), 1217 + AMD_PINCTRL_FUNC_GRP(86, 0), 1218 + AMD_PINCTRL_FUNC_GRP(86, 1), 1219 + AMD_PINCTRL_FUNC_GRP(86, 2), 1220 + AMD_PINCTRL_FUNC_GRP(86, 3), 1221 + AMD_PINCTRL_FUNC_GRP(87, 0), 1222 + AMD_PINCTRL_FUNC_GRP(87, 1), 1223 + AMD_PINCTRL_FUNC_GRP(87, 2), 1224 + AMD_PINCTRL_FUNC_GRP(87, 3), 1225 + AMD_PINCTRL_FUNC_GRP(88, 0), 1226 + AMD_PINCTRL_FUNC_GRP(88, 1), 1227 + AMD_PINCTRL_FUNC_GRP(88, 2), 1228 + AMD_PINCTRL_FUNC_GRP(88, 3), 1229 + AMD_PINCTRL_FUNC_GRP(89, 0), 1230 + AMD_PINCTRL_FUNC_GRP(89, 1), 1231 + AMD_PINCTRL_FUNC_GRP(89, 2), 1232 + AMD_PINCTRL_FUNC_GRP(89, 3), 1233 + AMD_PINCTRL_FUNC_GRP(90, 0), 1234 + AMD_PINCTRL_FUNC_GRP(90, 1), 1235 + AMD_PINCTRL_FUNC_GRP(90, 2), 1236 + AMD_PINCTRL_FUNC_GRP(90, 3), 1237 + AMD_PINCTRL_FUNC_GRP(91, 0), 1238 + AMD_PINCTRL_FUNC_GRP(91, 1), 1239 + AMD_PINCTRL_FUNC_GRP(91, 2), 1240 + AMD_PINCTRL_FUNC_GRP(91, 3), 1241 + AMD_PINCTRL_FUNC_GRP(92, 0), 1242 + AMD_PINCTRL_FUNC_GRP(92, 1), 1243 + AMD_PINCTRL_FUNC_GRP(92, 2), 1244 + AMD_PINCTRL_FUNC_GRP(92, 3), 1245 + AMD_PINCTRL_FUNC_GRP(93, 0), 1246 + AMD_PINCTRL_FUNC_GRP(93, 1), 1247 + AMD_PINCTRL_FUNC_GRP(93, 2), 1248 + AMD_PINCTRL_FUNC_GRP(93, 3), 1249 + AMD_PINCTRL_FUNC_GRP(94, 0), 1250 + AMD_PINCTRL_FUNC_GRP(94, 1), 1251 + AMD_PINCTRL_FUNC_GRP(94, 2), 1252 + AMD_PINCTRL_FUNC_GRP(94, 3), 1253 + AMD_PINCTRL_FUNC_GRP(95, 0), 1254 + AMD_PINCTRL_FUNC_GRP(95, 1), 1255 + AMD_PINCTRL_FUNC_GRP(95, 2), 1256 + AMD_PINCTRL_FUNC_GRP(95, 3), 1257 + AMD_PINCTRL_FUNC_GRP(96, 0), 1258 + AMD_PINCTRL_FUNC_GRP(96, 1), 1259 + AMD_PINCTRL_FUNC_GRP(96, 2), 1260 + AMD_PINCTRL_FUNC_GRP(96, 3), 1261 + AMD_PINCTRL_FUNC_GRP(97, 0), 1262 + AMD_PINCTRL_FUNC_GRP(97, 1), 1263 + AMD_PINCTRL_FUNC_GRP(97, 2), 1264 + AMD_PINCTRL_FUNC_GRP(97, 3), 1265 + AMD_PINCTRL_FUNC_GRP(98, 0), 1266 + AMD_PINCTRL_FUNC_GRP(98, 1), 1267 + AMD_PINCTRL_FUNC_GRP(98, 2), 1268 + AMD_PINCTRL_FUNC_GRP(98, 3), 1269 + AMD_PINCTRL_FUNC_GRP(99, 0), 1270 + AMD_PINCTRL_FUNC_GRP(99, 1), 1271 + AMD_PINCTRL_FUNC_GRP(99, 2), 1272 + AMD_PINCTRL_FUNC_GRP(99, 3), 1273 + AMD_PINCTRL_FUNC_GRP(100, 0), 1274 + AMD_PINCTRL_FUNC_GRP(100, 1), 1275 + AMD_PINCTRL_FUNC_GRP(100, 2), 1276 + AMD_PINCTRL_FUNC_GRP(100, 3), 1277 + AMD_PINCTRL_FUNC_GRP(101, 0), 1278 + AMD_PINCTRL_FUNC_GRP(101, 1), 1279 + AMD_PINCTRL_FUNC_GRP(101, 2), 1280 + AMD_PINCTRL_FUNC_GRP(101, 3), 1281 + AMD_PINCTRL_FUNC_GRP(102, 0), 1282 + AMD_PINCTRL_FUNC_GRP(102, 1), 1283 + AMD_PINCTRL_FUNC_GRP(102, 2), 1284 + AMD_PINCTRL_FUNC_GRP(102, 3), 1285 + AMD_PINCTRL_FUNC_GRP(103, 0), 1286 + AMD_PINCTRL_FUNC_GRP(103, 1), 1287 + AMD_PINCTRL_FUNC_GRP(103, 2), 1288 + AMD_PINCTRL_FUNC_GRP(103, 3), 1289 + AMD_PINCTRL_FUNC_GRP(104, 0), 1290 + AMD_PINCTRL_FUNC_GRP(104, 1), 1291 + AMD_PINCTRL_FUNC_GRP(104, 2), 1292 + AMD_PINCTRL_FUNC_GRP(104, 3), 1293 + AMD_PINCTRL_FUNC_GRP(105, 0), 1294 + AMD_PINCTRL_FUNC_GRP(105, 1), 1295 + AMD_PINCTRL_FUNC_GRP(105, 2), 1296 + AMD_PINCTRL_FUNC_GRP(105, 3), 1297 + AMD_PINCTRL_FUNC_GRP(106, 0), 1298 + AMD_PINCTRL_FUNC_GRP(106, 1), 1299 + AMD_PINCTRL_FUNC_GRP(106, 2), 1300 + AMD_PINCTRL_FUNC_GRP(106, 3), 1301 + AMD_PINCTRL_FUNC_GRP(107, 0), 1302 + AMD_PINCTRL_FUNC_GRP(107, 1), 1303 + AMD_PINCTRL_FUNC_GRP(107, 2), 1304 + AMD_PINCTRL_FUNC_GRP(107, 3), 1305 + AMD_PINCTRL_FUNC_GRP(108, 0), 1306 + AMD_PINCTRL_FUNC_GRP(108, 1), 1307 + AMD_PINCTRL_FUNC_GRP(108, 2), 1308 + AMD_PINCTRL_FUNC_GRP(108, 3), 1309 + AMD_PINCTRL_FUNC_GRP(109, 0), 1310 + AMD_PINCTRL_FUNC_GRP(109, 1), 1311 + AMD_PINCTRL_FUNC_GRP(109, 2), 1312 + AMD_PINCTRL_FUNC_GRP(109, 3), 1313 + AMD_PINCTRL_FUNC_GRP(110, 0), 1314 + AMD_PINCTRL_FUNC_GRP(110, 1), 1315 + AMD_PINCTRL_FUNC_GRP(110, 2), 1316 + AMD_PINCTRL_FUNC_GRP(110, 3), 1317 + AMD_PINCTRL_FUNC_GRP(111, 0), 1318 + AMD_PINCTRL_FUNC_GRP(111, 1), 1319 + AMD_PINCTRL_FUNC_GRP(111, 2), 1320 + AMD_PINCTRL_FUNC_GRP(111, 3), 1321 + AMD_PINCTRL_FUNC_GRP(112, 0), 1322 + AMD_PINCTRL_FUNC_GRP(112, 1), 1323 + AMD_PINCTRL_FUNC_GRP(112, 2), 1324 + AMD_PINCTRL_FUNC_GRP(112, 3), 1325 + AMD_PINCTRL_FUNC_GRP(113, 0), 1326 + AMD_PINCTRL_FUNC_GRP(113, 1), 1327 + AMD_PINCTRL_FUNC_GRP(113, 2), 1328 + AMD_PINCTRL_FUNC_GRP(113, 3), 1329 + AMD_PINCTRL_FUNC_GRP(114, 0), 1330 + AMD_PINCTRL_FUNC_GRP(114, 1), 1331 + AMD_PINCTRL_FUNC_GRP(114, 2), 1332 + AMD_PINCTRL_FUNC_GRP(114, 3), 1333 + AMD_PINCTRL_FUNC_GRP(115, 0), 1334 + AMD_PINCTRL_FUNC_GRP(115, 1), 1335 + AMD_PINCTRL_FUNC_GRP(115, 2), 1336 + AMD_PINCTRL_FUNC_GRP(115, 3), 1337 + AMD_PINCTRL_FUNC_GRP(116, 0), 1338 + AMD_PINCTRL_FUNC_GRP(116, 1), 1339 + AMD_PINCTRL_FUNC_GRP(116, 2), 1340 + AMD_PINCTRL_FUNC_GRP(116, 3), 1341 + AMD_PINCTRL_FUNC_GRP(117, 0), 1342 + AMD_PINCTRL_FUNC_GRP(117, 1), 1343 + AMD_PINCTRL_FUNC_GRP(117, 2), 1344 + AMD_PINCTRL_FUNC_GRP(117, 3), 1345 + AMD_PINCTRL_FUNC_GRP(118, 0), 1346 + AMD_PINCTRL_FUNC_GRP(118, 1), 1347 + AMD_PINCTRL_FUNC_GRP(118, 2), 1348 + AMD_PINCTRL_FUNC_GRP(118, 3), 1349 + AMD_PINCTRL_FUNC_GRP(119, 0), 1350 + AMD_PINCTRL_FUNC_GRP(119, 1), 1351 + AMD_PINCTRL_FUNC_GRP(119, 2), 1352 + AMD_PINCTRL_FUNC_GRP(119, 3), 1353 + AMD_PINCTRL_FUNC_GRP(120, 0), 1354 + AMD_PINCTRL_FUNC_GRP(120, 1), 1355 + AMD_PINCTRL_FUNC_GRP(120, 2), 1356 + AMD_PINCTRL_FUNC_GRP(120, 3), 1357 + AMD_PINCTRL_FUNC_GRP(121, 0), 1358 + AMD_PINCTRL_FUNC_GRP(121, 1), 1359 + AMD_PINCTRL_FUNC_GRP(121, 2), 1360 + AMD_PINCTRL_FUNC_GRP(121, 3), 1361 + AMD_PINCTRL_FUNC_GRP(122, 0), 1362 + AMD_PINCTRL_FUNC_GRP(122, 1), 1363 + AMD_PINCTRL_FUNC_GRP(122, 2), 1364 + AMD_PINCTRL_FUNC_GRP(122, 3), 1365 + AMD_PINCTRL_FUNC_GRP(123, 0), 1366 + AMD_PINCTRL_FUNC_GRP(123, 1), 1367 + AMD_PINCTRL_FUNC_GRP(123, 2), 1368 + AMD_PINCTRL_FUNC_GRP(123, 3), 1369 + AMD_PINCTRL_FUNC_GRP(124, 0), 1370 + AMD_PINCTRL_FUNC_GRP(124, 1), 1371 + AMD_PINCTRL_FUNC_GRP(124, 2), 1372 + AMD_PINCTRL_FUNC_GRP(124, 3), 1373 + AMD_PINCTRL_FUNC_GRP(125, 0), 1374 + AMD_PINCTRL_FUNC_GRP(125, 1), 1375 + AMD_PINCTRL_FUNC_GRP(125, 2), 1376 + AMD_PINCTRL_FUNC_GRP(125, 3), 1377 + AMD_PINCTRL_FUNC_GRP(126, 0), 1378 + AMD_PINCTRL_FUNC_GRP(126, 1), 1379 + AMD_PINCTRL_FUNC_GRP(126, 2), 1380 + AMD_PINCTRL_FUNC_GRP(126, 3), 1381 + AMD_PINCTRL_FUNC_GRP(127, 0), 1382 + AMD_PINCTRL_FUNC_GRP(127, 1), 1383 + AMD_PINCTRL_FUNC_GRP(127, 2), 1384 + AMD_PINCTRL_FUNC_GRP(127, 3), 1385 + AMD_PINCTRL_FUNC_GRP(128, 0), 1386 + AMD_PINCTRL_FUNC_GRP(128, 1), 1387 + AMD_PINCTRL_FUNC_GRP(128, 2), 1388 + AMD_PINCTRL_FUNC_GRP(128, 3), 1389 + AMD_PINCTRL_FUNC_GRP(129, 0), 1390 + AMD_PINCTRL_FUNC_GRP(129, 1), 1391 + AMD_PINCTRL_FUNC_GRP(129, 2), 1392 + AMD_PINCTRL_FUNC_GRP(129, 3), 1393 + AMD_PINCTRL_FUNC_GRP(130, 0), 1394 + AMD_PINCTRL_FUNC_GRP(130, 1), 1395 + AMD_PINCTRL_FUNC_GRP(130, 2), 1396 + AMD_PINCTRL_FUNC_GRP(130, 3), 1397 + AMD_PINCTRL_FUNC_GRP(131, 0), 1398 + AMD_PINCTRL_FUNC_GRP(131, 1), 1399 + AMD_PINCTRL_FUNC_GRP(131, 2), 1400 + AMD_PINCTRL_FUNC_GRP(131, 3), 1401 + AMD_PINCTRL_FUNC_GRP(132, 0), 1402 + AMD_PINCTRL_FUNC_GRP(132, 1), 1403 + AMD_PINCTRL_FUNC_GRP(132, 2), 1404 + AMD_PINCTRL_FUNC_GRP(132, 3), 1405 + AMD_PINCTRL_FUNC_GRP(133, 0), 1406 + AMD_PINCTRL_FUNC_GRP(133, 1), 1407 + AMD_PINCTRL_FUNC_GRP(133, 2), 1408 + AMD_PINCTRL_FUNC_GRP(133, 3), 1409 + AMD_PINCTRL_FUNC_GRP(134, 0), 1410 + AMD_PINCTRL_FUNC_GRP(134, 1), 1411 + AMD_PINCTRL_FUNC_GRP(134, 2), 1412 + AMD_PINCTRL_FUNC_GRP(134, 3), 1413 + AMD_PINCTRL_FUNC_GRP(135, 0), 1414 + AMD_PINCTRL_FUNC_GRP(135, 1), 1415 + AMD_PINCTRL_FUNC_GRP(135, 2), 1416 + AMD_PINCTRL_FUNC_GRP(135, 3), 1417 + AMD_PINCTRL_FUNC_GRP(136, 0), 1418 + AMD_PINCTRL_FUNC_GRP(136, 1), 1419 + AMD_PINCTRL_FUNC_GRP(136, 2), 1420 + AMD_PINCTRL_FUNC_GRP(136, 3), 1421 + AMD_PINCTRL_FUNC_GRP(137, 0), 1422 + AMD_PINCTRL_FUNC_GRP(137, 1), 1423 + AMD_PINCTRL_FUNC_GRP(137, 2), 1424 + AMD_PINCTRL_FUNC_GRP(137, 3), 1425 + AMD_PINCTRL_FUNC_GRP(138, 0), 1426 + AMD_PINCTRL_FUNC_GRP(138, 1), 1427 + AMD_PINCTRL_FUNC_GRP(138, 2), 1428 + AMD_PINCTRL_FUNC_GRP(138, 3), 1429 + AMD_PINCTRL_FUNC_GRP(139, 0), 1430 + AMD_PINCTRL_FUNC_GRP(139, 1), 1431 + AMD_PINCTRL_FUNC_GRP(139, 2), 1432 + AMD_PINCTRL_FUNC_GRP(139, 3), 1433 + AMD_PINCTRL_FUNC_GRP(140, 0), 1434 + AMD_PINCTRL_FUNC_GRP(140, 1), 1435 + AMD_PINCTRL_FUNC_GRP(140, 2), 1436 + AMD_PINCTRL_FUNC_GRP(140, 3), 1437 + AMD_PINCTRL_FUNC_GRP(141, 0), 1438 + AMD_PINCTRL_FUNC_GRP(141, 1), 1439 + AMD_PINCTRL_FUNC_GRP(141, 2), 1440 + AMD_PINCTRL_FUNC_GRP(141, 3), 1441 + AMD_PINCTRL_FUNC_GRP(142, 0), 1442 + AMD_PINCTRL_FUNC_GRP(142, 1), 1443 + AMD_PINCTRL_FUNC_GRP(142, 2), 1444 + AMD_PINCTRL_FUNC_GRP(142, 3), 1445 + AMD_PINCTRL_FUNC_GRP(143, 0), 1446 + AMD_PINCTRL_FUNC_GRP(143, 1), 1447 + AMD_PINCTRL_FUNC_GRP(143, 2), 1448 + AMD_PINCTRL_FUNC_GRP(143, 3), 1449 + AMD_PINCTRL_FUNC_GRP(144, 0), 1450 + AMD_PINCTRL_FUNC_GRP(144, 1), 1451 + AMD_PINCTRL_FUNC_GRP(144, 2), 1452 + AMD_PINCTRL_FUNC_GRP(144, 3), 1453 + 1454 + PINCTRL_PINGROUP("i2c0", AMD_PINS(145, 146), 2), 1455 + PINCTRL_PINGROUP("i2c1", AMD_PINS(147, 148), 2), 1456 + PINCTRL_PINGROUP("i2c2", AMD_PINS(113, 114), 2), 1457 + PINCTRL_PINGROUP("i2c3", AMD_PINS(19, 20), 2), 1458 + PINCTRL_PINGROUP("uart0", AMD_PINS(135, 136, 137, 138, 139), 5), 1459 + PINCTRL_PINGROUP("uart1", AMD_PINS(140, 141, 142, 143, 144), 5), 1460 + }; 1461 + 1462 + #define AMD_PMUX_FUNC(_number) { \ 1463 + .name = "iomux_gpio_"#_number, \ 1464 + .groups = { \ 1465 + "IMX_F0_GPIO"#_number, "IMX_F1_GPIO"#_number, \ 1466 + "IMX_F2_GPIO"#_number, "IMX_F3_GPIO"#_number, \ 1467 + }, \ 1468 + .index = _number, \ 1469 + .ngroups = NSELECTS, \ 1470 + } 1471 + 1472 + static const struct amd_function pmx_functions[] = { 1473 + AMD_PMUX_FUNC(0), 1474 + AMD_PMUX_FUNC(1), 1475 + AMD_PMUX_FUNC(2), 1476 + AMD_PMUX_FUNC(3), 1477 + AMD_PMUX_FUNC(4), 1478 + AMD_PMUX_FUNC(5), 1479 + AMD_PMUX_FUNC(6), 1480 + AMD_PMUX_FUNC(7), 1481 + AMD_PMUX_FUNC(8), 1482 + AMD_PMUX_FUNC(9), 1483 + AMD_PMUX_FUNC(10), 1484 + AMD_PMUX_FUNC(11), 1485 + AMD_PMUX_FUNC(12), 1486 + AMD_PMUX_FUNC(13), 1487 + AMD_PMUX_FUNC(14), 1488 + AMD_PMUX_FUNC(15), 1489 + AMD_PMUX_FUNC(16), 1490 + AMD_PMUX_FUNC(17), 1491 + AMD_PMUX_FUNC(18), 1492 + AMD_PMUX_FUNC(19), 1493 + AMD_PMUX_FUNC(20), 1494 + AMD_PMUX_FUNC(21), 1495 + AMD_PMUX_FUNC(22), 1496 + AMD_PMUX_FUNC(23), 1497 + AMD_PMUX_FUNC(24), 1498 + AMD_PMUX_FUNC(25), 1499 + AMD_PMUX_FUNC(26), 1500 + AMD_PMUX_FUNC(27), 1501 + AMD_PMUX_FUNC(28), 1502 + AMD_PMUX_FUNC(29), 1503 + AMD_PMUX_FUNC(30), 1504 + AMD_PMUX_FUNC(31), 1505 + AMD_PMUX_FUNC(32), 1506 + AMD_PMUX_FUNC(33), 1507 + AMD_PMUX_FUNC(34), 1508 + AMD_PMUX_FUNC(35), 1509 + AMD_PMUX_FUNC(36), 1510 + AMD_PMUX_FUNC(37), 1511 + AMD_PMUX_FUNC(38), 1512 + AMD_PMUX_FUNC(39), 1513 + AMD_PMUX_FUNC(40), 1514 + AMD_PMUX_FUNC(41), 1515 + AMD_PMUX_FUNC(42), 1516 + AMD_PMUX_FUNC(43), 1517 + AMD_PMUX_FUNC(44), 1518 + AMD_PMUX_FUNC(45), 1519 + AMD_PMUX_FUNC(46), 1520 + AMD_PMUX_FUNC(47), 1521 + AMD_PMUX_FUNC(48), 1522 + AMD_PMUX_FUNC(49), 1523 + AMD_PMUX_FUNC(50), 1524 + AMD_PMUX_FUNC(51), 1525 + AMD_PMUX_FUNC(52), 1526 + AMD_PMUX_FUNC(53), 1527 + AMD_PMUX_FUNC(54), 1528 + AMD_PMUX_FUNC(55), 1529 + AMD_PMUX_FUNC(56), 1530 + AMD_PMUX_FUNC(57), 1531 + AMD_PMUX_FUNC(58), 1532 + AMD_PMUX_FUNC(59), 1533 + AMD_PMUX_FUNC(60), 1534 + AMD_PMUX_FUNC(61), 1535 + AMD_PMUX_FUNC(62), 1536 + AMD_PMUX_FUNC(64), 1537 + AMD_PMUX_FUNC(65), 1538 + AMD_PMUX_FUNC(66), 1539 + AMD_PMUX_FUNC(67), 1540 + AMD_PMUX_FUNC(68), 1541 + AMD_PMUX_FUNC(69), 1542 + AMD_PMUX_FUNC(70), 1543 + AMD_PMUX_FUNC(71), 1544 + AMD_PMUX_FUNC(72), 1545 + AMD_PMUX_FUNC(73), 1546 + AMD_PMUX_FUNC(74), 1547 + AMD_PMUX_FUNC(75), 1548 + AMD_PMUX_FUNC(76), 1549 + AMD_PMUX_FUNC(77), 1550 + AMD_PMUX_FUNC(78), 1551 + AMD_PMUX_FUNC(79), 1552 + AMD_PMUX_FUNC(80), 1553 + AMD_PMUX_FUNC(81), 1554 + AMD_PMUX_FUNC(82), 1555 + AMD_PMUX_FUNC(83), 1556 + AMD_PMUX_FUNC(84), 1557 + AMD_PMUX_FUNC(85), 1558 + AMD_PMUX_FUNC(86), 1559 + AMD_PMUX_FUNC(87), 1560 + AMD_PMUX_FUNC(88), 1561 + AMD_PMUX_FUNC(89), 1562 + AMD_PMUX_FUNC(90), 1563 + AMD_PMUX_FUNC(91), 1564 + AMD_PMUX_FUNC(92), 1565 + AMD_PMUX_FUNC(93), 1566 + AMD_PMUX_FUNC(94), 1567 + AMD_PMUX_FUNC(95), 1568 + AMD_PMUX_FUNC(96), 1569 + AMD_PMUX_FUNC(97), 1570 + AMD_PMUX_FUNC(98), 1571 + AMD_PMUX_FUNC(99), 1572 + AMD_PMUX_FUNC(100), 1573 + AMD_PMUX_FUNC(101), 1574 + AMD_PMUX_FUNC(102), 1575 + AMD_PMUX_FUNC(103), 1576 + AMD_PMUX_FUNC(104), 1577 + AMD_PMUX_FUNC(105), 1578 + AMD_PMUX_FUNC(106), 1579 + AMD_PMUX_FUNC(107), 1580 + AMD_PMUX_FUNC(108), 1581 + AMD_PMUX_FUNC(109), 1582 + AMD_PMUX_FUNC(110), 1583 + AMD_PMUX_FUNC(111), 1584 + AMD_PMUX_FUNC(112), 1585 + AMD_PMUX_FUNC(113), 1586 + AMD_PMUX_FUNC(114), 1587 + AMD_PMUX_FUNC(115), 1588 + AMD_PMUX_FUNC(116), 1589 + AMD_PMUX_FUNC(117), 1590 + AMD_PMUX_FUNC(118), 1591 + AMD_PMUX_FUNC(119), 1592 + AMD_PMUX_FUNC(120), 1593 + AMD_PMUX_FUNC(121), 1594 + AMD_PMUX_FUNC(122), 1595 + AMD_PMUX_FUNC(123), 1596 + AMD_PMUX_FUNC(124), 1597 + AMD_PMUX_FUNC(125), 1598 + AMD_PMUX_FUNC(126), 1599 + AMD_PMUX_FUNC(127), 1600 + AMD_PMUX_FUNC(128), 1601 + AMD_PMUX_FUNC(129), 1602 + AMD_PMUX_FUNC(130), 1603 + AMD_PMUX_FUNC(131), 1604 + AMD_PMUX_FUNC(132), 1605 + AMD_PMUX_FUNC(133), 1606 + AMD_PMUX_FUNC(134), 1607 + AMD_PMUX_FUNC(135), 1608 + AMD_PMUX_FUNC(136), 1609 + AMD_PMUX_FUNC(137), 1610 + AMD_PMUX_FUNC(138), 1611 + AMD_PMUX_FUNC(139), 1612 + AMD_PMUX_FUNC(140), 1613 + AMD_PMUX_FUNC(141), 1614 + AMD_PMUX_FUNC(142), 1615 + AMD_PMUX_FUNC(143), 1616 + AMD_PMUX_FUNC(144), 331 1617 }; 332 1618 333 1619 #endif
+20
include/linux/pinctrl/pinctrl.h
··· 27 27 struct device_node; 28 28 29 29 /** 30 + * struct pingroup - provides information on pingroup 31 + * @name: a name for pingroup 32 + * @pins: an array of pins in the pingroup 33 + * @npins: number of pins in the pingroup 34 + */ 35 + struct pingroup { 36 + const char *name; 37 + const unsigned int *pins; 38 + size_t npins; 39 + }; 40 + 41 + /* Convenience macro to define a single named or anonymous pingroup */ 42 + #define PINCTRL_PINGROUP(_name, _pins, _npins) \ 43 + (struct pingroup){ \ 44 + .name = _name, \ 45 + .pins = _pins, \ 46 + .npins = _npins, \ 47 + } 48 + 49 + /** 30 50 * struct pinctrl_pin_desc - boards/machines provide information on their 31 51 * pins, pads or other muxable units in this struct 32 52 * @number: unique pin number from the global pin number space