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

pinctrl: uniphier: Divide pinmux group to support 1ch and 2ch I2S

Current pinmux group for audio in/out assumes 4ch I2S case but the
UniPhier AIO hardware also supports 1ch and 2ch I2S. So divide current
ain1 group into ain1, ain1_dat2 and ain1_dat4 groups. Divide other
ain and aout in the same way.

Signed-off-by: Ryuta NAKANISHI <nakanishi.ryuta@socionext.com>
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/1643376903-18623-3-git-send-email-hayashi.kunihiko@socionext.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Kunihiko Hayashi and committed by
Linus Walleij
dfc04955 8e703784

+152 -44
+20 -6
drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
··· 461 461 166, UNIPHIER_PIN_PULL_DOWN), 462 462 }; 463 463 464 - static const unsigned ain1_pins[] = {151, 152, 153, 154, 155, 156, 157}; 465 - static const int ain1_muxvals[] = {4, 4, 4, 4, 4, 4, 4}; 466 - static const unsigned aout1_pins[] = {137, 138, 139, 140, 141, 142}; 467 - static const int aout1_muxvals[] = {0, 0, 0, 0, 0, 0}; 464 + static const unsigned ain1_pins[] = {151, 152, 153, 154}; 465 + static const int ain1_muxvals[] = {4, 4, 4, 4}; 466 + static const unsigned ain1_dat2_pins[] = {155}; 467 + static const int ain1_dat2_muxvals[] = {4}; 468 + static const unsigned ain1_dat4_pins[] = {156, 157}; 469 + static const int ain1_dat4_muxvals[] = {4, 4}; 470 + static const unsigned aout1_pins[] = {137, 138, 139, 140}; 471 + static const int aout1_muxvals[] = {0, 0, 0, 0}; 472 + static const unsigned aout1_dat2_pins[] = {141}; 473 + static const int aout1_dat2_muxvals[] = {0}; 474 + static const unsigned aout1_dat4_pins[] = {142, 143}; 475 + static const int aout1_dat4_muxvals[] = {0, 3}; 468 476 static const unsigned ainiec1_pins[] = {150}; 469 477 static const int ainiec1_muxvals[] = {4}; 470 478 static const unsigned ainiec1b_pins[] = {141}; ··· 590 582 591 583 static const struct uniphier_pinctrl_group uniphier_ld11_groups[] = { 592 584 UNIPHIER_PINCTRL_GROUP(ain1), 585 + UNIPHIER_PINCTRL_GROUP(ain1_dat2), 586 + UNIPHIER_PINCTRL_GROUP(ain1_dat4), 593 587 UNIPHIER_PINCTRL_GROUP(aout1), 588 + UNIPHIER_PINCTRL_GROUP(aout1_dat2), 589 + UNIPHIER_PINCTRL_GROUP(aout1_dat4), 594 590 UNIPHIER_PINCTRL_GROUP(ainiec1), 595 591 UNIPHIER_PINCTRL_GROUP(ainiec1b), 596 592 UNIPHIER_PINCTRL_GROUP(aoutiec1), ··· 638 626 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range5), 639 627 }; 640 628 641 - static const char * const ain1_groups[] = {"ain1"}; 642 - static const char * const aout1_groups[] = {"aout1"}; 629 + static const char * const ain1_groups[] = {"ain1", "ain1_dat2", 630 + "ain1_dat4"}; 631 + static const char * const aout1_groups[] = {"aout1", "aout1_dat2", 632 + "aout1_dat4"}; 643 633 static const char * const ainiec1_groups[] = {"ainiec1", "ainiec1b"}; 644 634 static const char * const aoutiec1_groups[] = {"aoutiec1"}; 645 635 static const char * const aoutiec2_groups[] = {"aoutiec2"};
+50 -14
drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
··· 542 542 175, UNIPHIER_PIN_PULL_DOWN), 543 543 }; 544 544 545 - static const unsigned ain1_pins[] = {150, 151, 152, 153, 154, 155, 156}; 546 - static const int ain1_muxvals[] = {4, 4, 4, 4, 4, 4, 4}; 547 - static const unsigned ain2_pins[] = {116, 117, 118, 119, 120, 121, 122}; 548 - static const int ain2_muxvals[] = {26, 26, 26, 26, 26, 26, 26}; 545 + static const unsigned ain1_pins[] = {150, 151, 152, 153}; 546 + static const int ain1_muxvals[] = {4, 4, 4, 4}; 547 + static const unsigned ain1_dat2_pins[] = {154}; 548 + static const int ain1_dat2_muxvals[] = {4}; 549 + static const unsigned ain1_dat4_pins[] = {155, 156}; 550 + static const int ain1_dat4_muxvals[] = {4, 4}; 551 + static const unsigned ain2_pins[] = {116, 117, 118, 119}; 552 + static const int ain2_muxvals[] = {26, 26, 26, 26}; 553 + static const unsigned ain2_dat2_pins[] = {120}; 554 + static const int ain2_dat2_muxvals[] = {26}; 555 + static const unsigned ain2_dat4_pins[] = {121, 122}; 556 + static const int ain2_dat4_muxvals[] = {26, 26}; 549 557 static const unsigned ain3_pins[] = {116, 117, 118, 119}; 550 558 static const int ain3_muxvals[] = {27, 27, 27, 27}; 551 - static const unsigned aout1_pins[] = {137, 138, 139, 140, 141, 142}; 552 - static const int aout1_muxvals[] = {0, 0, 0, 0, 0, 0}; 553 - static const unsigned aout1b_pins[] = {150, 151, 152, 153, 154, 155, 156}; 554 - static const int aout1b_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; 555 - static const unsigned aout2_pins[] = {165, 157, 162, 158, 159, 160, 161}; 556 - static const int aout2_muxvals[] = {2, 2, 2, 1, 1, 1, 1}; 559 + static const unsigned aout1_pins[] = {137, 138, 139, 140}; 560 + static const int aout1_muxvals[] = {0, 0, 0, 0}; 561 + static const unsigned aout1_dat2_pins[] = {141}; 562 + static const int aout1_dat2_muxvals[] = {0}; 563 + static const unsigned aout1_dat4_pins[] = {142, 156}; 564 + static const int aout1_dat4_muxvals[] = {0, 1}; 565 + static const unsigned aout1b_pins[] = {150, 151, 152, 153}; 566 + static const int aout1b_muxvals[] = {1, 1, 1, 1}; 567 + static const unsigned aout1b_dat2_pins[] = {154}; 568 + static const int aout1b_dat2_muxvals[] = {1}; 569 + static const unsigned aout1b_dat4_pins[] = {155, 156}; 570 + static const int aout1b_dat4_muxvals[] = {1, 1}; 571 + static const unsigned aout2_pins[] = {165, 157, 162, 158}; 572 + static const int aout2_muxvals[] = {2, 2, 2, 1}; 573 + static const unsigned aout2_dat2_pins[] = {159}; 574 + static const int aout2_dat2_muxvals[] = {1}; 575 + static const unsigned aout2_dat4_pins[] = {160, 161}; 576 + static const int aout2_dat4_muxvals[] = {1, 1}; 557 577 static const unsigned aout3_pins[] = {166, 167, 168, 163}; 558 578 static const int aout3_muxvals[] = {2, 2, 2, 1}; 559 579 static const unsigned aout4_pins[] = {169, 170, 171, 164}; ··· 702 682 703 683 static const struct uniphier_pinctrl_group uniphier_ld20_groups[] = { 704 684 UNIPHIER_PINCTRL_GROUP(ain1), 685 + UNIPHIER_PINCTRL_GROUP(ain1_dat2), 686 + UNIPHIER_PINCTRL_GROUP(ain1_dat4), 705 687 UNIPHIER_PINCTRL_GROUP(ain2), 688 + UNIPHIER_PINCTRL_GROUP(ain2_dat2), 689 + UNIPHIER_PINCTRL_GROUP(ain2_dat4), 706 690 UNIPHIER_PINCTRL_GROUP(ain3), 707 691 UNIPHIER_PINCTRL_GROUP(aout1), 692 + UNIPHIER_PINCTRL_GROUP(aout1_dat2), 693 + UNIPHIER_PINCTRL_GROUP(aout1_dat4), 708 694 UNIPHIER_PINCTRL_GROUP(aout1b), 695 + UNIPHIER_PINCTRL_GROUP(aout1b_dat2), 696 + UNIPHIER_PINCTRL_GROUP(aout1b_dat4), 709 697 UNIPHIER_PINCTRL_GROUP(aout2), 698 + UNIPHIER_PINCTRL_GROUP(aout2_dat2), 699 + UNIPHIER_PINCTRL_GROUP(aout2_dat4), 710 700 UNIPHIER_PINCTRL_GROUP(aout3), 711 701 UNIPHIER_PINCTRL_GROUP(aout4), 712 702 UNIPHIER_PINCTRL_GROUP(aoutiec1), ··· 764 734 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2), 765 735 }; 766 736 767 - static const char * const ain1_groups[] = {"ain1"}; 768 - static const char * const ain2_groups[] = {"ain2"}; 737 + static const char * const ain1_groups[] = {"ain1", "ain1_dat2", 738 + "ain1_dat4"}; 739 + static const char * const ain2_groups[] = {"ain2", "ain2_dat2", 740 + "ain2_dat4"}; 769 741 static const char * const ain3_groups[] = {"ain3"}; 770 - static const char * const aout1_groups[] = {"aout1", "aout1b"}; 771 - static const char * const aout2_groups[] = {"aout2"}; 742 + static const char * const aout1_groups[] = {"aout1", "aout1_dat2", 743 + "aout1_dat4", 744 + "aout1b", "aout1b_dat2", 745 + "aout1b_dat4"}; 746 + static const char * const aout2_groups[] = {"aout2", "aout2_dat2", 747 + "aout2_dat4"}; 772 748 static const char * const aout3_groups[] = {"aout3"}; 773 749 static const char * const aout4_groups[] = {"aout4"}; 774 750 static const char * const aoutiec1_groups[] = {"aoutiec1"};
+42 -12
drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
··· 719 719 234, UNIPHIER_PIN_PULL_DOWN), 720 720 }; 721 721 722 - static const unsigned ain1_pins[] = {161, 162, 173, 174, 127, 128, 129}; 723 - static const int ain1_muxvals[] = {8, 8, 8, 8, 3, 3, 3}; 724 - static const unsigned ain2_pins[] = {98, 99, 100, 101, 102, 103, 104}; 725 - static const int ain2_muxvals[] = {8, 8, 8, 8, 8, 8, 8}; 722 + static const unsigned ain1_pins[] = {161, 162, 173, 174}; 723 + static const int ain1_muxvals[] = {8, 8, 8, 8}; 724 + static const unsigned ain1_dat2_pins[] = {127}; 725 + static const int ain1_dat2_muxvals[] = {3}; 726 + static const unsigned ain1_dat4_pins[] = {128, 129}; 727 + static const int ain1_dat4_muxvals[] = {3, 3}; 728 + static const unsigned ain2_pins[] = {98, 99, 100, 101}; 729 + static const int ain2_muxvals[] = {8, 8, 8, 8}; 730 + static const unsigned ain2_dat2_pins[] = {102}; 731 + static const int ain2_dat2_muxvals[] = {8}; 732 + static const unsigned ain2_dat4_pins[] = {103, 104}; 733 + static const int ain2_dat4_muxvals[] = {8, 8}; 726 734 static const unsigned ain3_pins[] = {132, 133, 134, 131}; 727 735 static const int ain3_muxvals[] = {5, 5, 5, 5}; 728 736 static const unsigned ainiec1_pins[] = {91}; 729 737 static const int ainiec1_muxvals[] = {11}; 730 - static const unsigned aout1_pins[] = {87, 88, 89, 90, 92, 93, 94}; 731 - static const int aout1_muxvals[] = {11, 11, 11, 11, 11, 11, 11}; 732 - static const unsigned aout2_pins[] = {175, 176, 177, 178, 183, 184, 185}; 733 - static const int aout2_muxvals[] = {8, 8, 8, 8, 9, 9, 9}; 738 + static const unsigned aout1_pins[] = {87, 88, 89, 90}; 739 + static const int aout1_muxvals[] = {11, 11, 11, 11}; 740 + static const unsigned aout1_dat2_pins[] = {92}; 741 + static const int aout1_dat2_muxvals[] = {11}; 742 + static const unsigned aout1_dat4_pins[] = {93, 94}; 743 + static const int aout1_dat4_muxvals[] = {11, 11}; 744 + static const unsigned aout2_pins[] = {177, 178, 175, 176}; 745 + static const int aout2_muxvals[] = {8, 8, 8, 8}; 746 + static const unsigned aout2_dat2_pins[] = {183}; 747 + static const int aout2_dat2_muxvals[] = {9}; 748 + static const unsigned aout2_dat4_pins[] = {184, 185}; 749 + static const int aout2_dat4_muxvals[] = {9, 9}; 734 750 static const unsigned aout3_pins[] = {105, 106, 107, 108}; 735 751 static const int aout3_muxvals[] = {8, 8, 8, 8}; 736 752 static const unsigned aoutiec1_pins[] = {95}; ··· 858 842 859 843 static const struct uniphier_pinctrl_group uniphier_pxs2_groups[] = { 860 844 UNIPHIER_PINCTRL_GROUP(ain1), 845 + UNIPHIER_PINCTRL_GROUP(ain1_dat2), 846 + UNIPHIER_PINCTRL_GROUP(ain1_dat4), 861 847 UNIPHIER_PINCTRL_GROUP(ain2), 848 + UNIPHIER_PINCTRL_GROUP(ain2_dat2), 849 + UNIPHIER_PINCTRL_GROUP(ain2_dat4), 862 850 UNIPHIER_PINCTRL_GROUP(ain3), 863 851 UNIPHIER_PINCTRL_GROUP(ainiec1), 864 852 UNIPHIER_PINCTRL_GROUP(aout1), 853 + UNIPHIER_PINCTRL_GROUP(aout1_dat2), 854 + UNIPHIER_PINCTRL_GROUP(aout1_dat4), 865 855 UNIPHIER_PINCTRL_GROUP(aout2), 856 + UNIPHIER_PINCTRL_GROUP(aout2_dat2), 857 + UNIPHIER_PINCTRL_GROUP(aout2_dat4), 866 858 UNIPHIER_PINCTRL_GROUP(aout3), 867 859 UNIPHIER_PINCTRL_GROUP(aoutiec1), 868 860 UNIPHIER_PINCTRL_GROUP(aoutiec2), ··· 908 884 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range1), 909 885 }; 910 886 911 - static const char * const ain1_groups[] = {"ain1"}; 912 - static const char * const ain2_groups[] = {"ain2"}; 887 + static const char * const ain1_groups[] = {"ain1", "ain1_dat2", 888 + "ain1_dat4"}; 889 + static const char * const ain2_groups[] = {"ain2", "ain2_dat2", 890 + "ain2_dat4"}; 913 891 static const char * const ain3_groups[] = {"ain3"}; 914 892 static const char * const ainiec1_groups[] = {"ainiec1"}; 915 - static const char * const aout1_groups[] = {"aout1"}; 916 - static const char * const aout2_groups[] = {"aout2"}; 893 + static const char * const aout1_groups[] = {"aout1", "aout1_dat2", 894 + "aout1_dat4"}; 895 + static const char * const aout2_groups[] = {"aout2", "aout2_dat2", 896 + "aout2_dat4"}; 917 897 static const char * const aout3_groups[] = {"aout3"}; 918 898 static const char * const aoutiec1_groups[] = {"aoutiec1"}; 919 899 static const char * const aoutiec2_groups[] = {"aoutiec2"}; ··· 950 922 static const struct uniphier_pinmux_function uniphier_pxs2_functions[] = { 951 923 UNIPHIER_PINMUX_FUNCTION(ain1), 952 924 UNIPHIER_PINMUX_FUNCTION(ain2), 925 + UNIPHIER_PINMUX_FUNCTION(ain3), 953 926 UNIPHIER_PINMUX_FUNCTION(ainiec1), 927 + UNIPHIER_PINMUX_FUNCTION(aout1), 954 928 UNIPHIER_PINMUX_FUNCTION(aout2), 955 929 UNIPHIER_PINMUX_FUNCTION(aout3), 956 930 UNIPHIER_PINMUX_FUNCTION(aoutiec1),
+40 -12
drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c
··· 767 767 250, UNIPHIER_PIN_PULL_DOWN), 768 768 }; 769 769 770 - static const unsigned ain1_pins[] = {186, 187, 188, 189, 237, 238, 239}; 771 - static const int ain1_muxvals[] = {0, 0, 0, 0, 1, 1, 1}; 772 - static const unsigned ain2_pins[] = {243, 244, 245, 246, 247, 248, 249}; 773 - static const int ain2_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; 774 - static const unsigned aout1_pins[] = {226, 227, 228, 229, 230, 231, 232}; 775 - static const int aout1_muxvals[] = {1, 1, 1, 1, 1, 1, 1}; 776 - static const unsigned aout2_pins[] = {192, 193, 194, 195, 196, 197, 198}; 777 - static const int aout2_muxvals[] = {0, 0, 0, 0, 0, 0, 0}; 770 + static const unsigned ain1_pins[] = {186, 187, 188, 189}; 771 + static const int ain1_muxvals[] = {0, 0, 0, 0}; 772 + static const unsigned ain1_dat2_pins[] = {237}; 773 + static const int ain1_dat2_muxvals[] = {1}; 774 + static const unsigned ain1_dat4_pins[] = {238, 239}; 775 + static const int ain1_dat4_muxvals[] = {1, 1}; 776 + static const unsigned ain2_pins[] = {243, 244, 245, 246}; 777 + static const int ain2_muxvals[] = {1, 1, 1, 1}; 778 + static const unsigned ain2_dat2_pins[] = {247}; 779 + static const int ain2_dat2_muxvals[] = {1}; 780 + static const unsigned ain2_dat4_pins[] = {248, 249}; 781 + static const int ain2_dat4_muxvals[] = {1, 1}; 782 + static const unsigned aout1_pins[] = {226, 227, 228, 229}; 783 + static const int aout1_muxvals[] = {1, 1, 1, 1}; 784 + static const unsigned aout1_dat2_pins[] = {230}; 785 + static const int aout1_dat2_muxvals[] = {1}; 786 + static const unsigned aout1_dat4_pins[] = {231, 232}; 787 + static const int aout1_dat4_muxvals[] = {1, 1}; 788 + static const unsigned aout2_pins[] = {192, 193, 194, 195}; 789 + static const int aout2_muxvals[] = {0, 0, 0, 0}; 790 + static const unsigned aout2_dat2_pins[] = {196}; 791 + static const int aout2_dat2_muxvals[] = {0}; 792 + static const unsigned aout2_dat4_pins[] = {197, 198}; 793 + static const int aout2_dat4_muxvals[] = {0, 0}; 778 794 static const unsigned aout3_pins[] = {199, 200, 201, 202}; 779 795 static const int aout3_muxvals[] = {0, 0, 0, 0}; 780 796 static const unsigned ainiec1_pins[] = {240}; ··· 904 888 905 889 static const struct uniphier_pinctrl_group uniphier_pxs3_groups[] = { 906 890 UNIPHIER_PINCTRL_GROUP(ain1), 891 + UNIPHIER_PINCTRL_GROUP(ain1_dat2), 892 + UNIPHIER_PINCTRL_GROUP(ain1_dat4), 907 893 UNIPHIER_PINCTRL_GROUP(ain2), 894 + UNIPHIER_PINCTRL_GROUP(ain2_dat2), 895 + UNIPHIER_PINCTRL_GROUP(ain2_dat4), 908 896 UNIPHIER_PINCTRL_GROUP(aout1), 897 + UNIPHIER_PINCTRL_GROUP(aout1_dat2), 898 + UNIPHIER_PINCTRL_GROUP(aout1_dat4), 909 899 UNIPHIER_PINCTRL_GROUP(aout2), 900 + UNIPHIER_PINCTRL_GROUP(aout2_dat2), 901 + UNIPHIER_PINCTRL_GROUP(aout2_dat4), 910 902 UNIPHIER_PINCTRL_GROUP(aout3), 911 903 UNIPHIER_PINCTRL_GROUP(ainiec1), 912 904 UNIPHIER_PINCTRL_GROUP(aoutiec1), ··· 950 926 UNIPHIER_PINCTRL_GROUP_GPIO(gpio_range2), 951 927 }; 952 928 953 - static const char * const ain1_groups[] = {"ain1"}; 954 - static const char * const ain2_groups[] = {"ain2"}; 955 - static const char * const aout1_groups[] = {"aout1"}; 956 - static const char * const aout2_groups[] = {"aout2"}; 929 + static const char * const ain1_groups[] = {"ain1", "ain1_dat2", 930 + "ain1_dat4"}; 931 + static const char * const ain2_groups[] = {"ain2", "ain2_dat2", 932 + "ain1_dat4"}; 933 + static const char * const aout1_groups[] = {"aout1", "aout1_dat2", 934 + "aout1_dat4"}; 935 + static const char * const aout2_groups[] = {"aout2", "aout2_dat2", 936 + "aout2_dat4"}; 957 937 static const char * const aout3_groups[] = {"aout3"}; 958 938 static const char * const ainiec1_groups[] = {"ainiec1"}; 959 939 static const char * const aoutiec1_groups[] = {"aoutiec1"};