@@ -726,6 +726,146 @@ const struct samsung_pinctrl_of_match_data exynosautov9_of_data __initconst = {
726726 .num_ctrl = ARRAY_SIZE (exynosautov9_pin_ctrl ),
727727};
728728
729+ /* pin banks of exynosautov920 pin-controller 0 (ALIVE) */
730+ static const struct samsung_pin_bank_data exynosautov920_pin_banks0 [] = {
731+ EXYNOSV920_PIN_BANK_EINTW (8 , 0x0000 , "gpa0" , 0x18 , 0x24 , 0x28 ),
732+ EXYNOSV920_PIN_BANK_EINTW (2 , 0x1000 , "gpa1" , 0x18 , 0x20 , 0x24 ),
733+ EXYNOS850_PIN_BANK_EINTN (2 , 0x2000 , "gpq0" ),
734+ };
735+
736+ /* pin banks of exynosautov920 pin-controller 1 (AUD) */
737+ static const struct samsung_pin_bank_data exynosautov920_pin_banks1 [] = {
738+ EXYNOSV920_PIN_BANK_EINTG (7 , 0x0000 , "gpb0" , 0x18 , 0x24 , 0x28 ),
739+ EXYNOSV920_PIN_BANK_EINTG (6 , 0x1000 , "gpb1" , 0x18 , 0x24 , 0x28 ),
740+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x2000 , "gpb2" , 0x18 , 0x24 , 0x28 ),
741+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x3000 , "gpb3" , 0x18 , 0x24 , 0x28 ),
742+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x4000 , "gpb4" , 0x18 , 0x24 , 0x28 ),
743+ EXYNOSV920_PIN_BANK_EINTG (5 , 0x5000 , "gpb5" , 0x18 , 0x24 , 0x28 ),
744+ EXYNOSV920_PIN_BANK_EINTG (5 , 0x6000 , "gpb6" , 0x18 , 0x24 , 0x28 ),
745+ };
746+
747+ /* pin banks of exynosautov920 pin-controller 2 (HSI0) */
748+ static const struct samsung_pin_bank_data exynosautov920_pin_banks2 [] = {
749+ EXYNOSV920_PIN_BANK_EINTG (6 , 0x0000 , "gph0" , 0x18 , 0x24 , 0x28 ),
750+ EXYNOSV920_PIN_BANK_EINTG (2 , 0x1000 , "gph1" , 0x18 , 0x20 , 0x24 ),
751+ };
752+
753+ /* pin banks of exynosautov920 pin-controller 3 (HSI1) */
754+ static const struct samsung_pin_bank_data exynosautov920_pin_banks3 [] = {
755+ EXYNOSV920_PIN_BANK_EINTG (7 , 0x000 , "gph8" , 0x18 , 0x24 , 0x28 ),
756+ };
757+
758+ /* pin banks of exynosautov920 pin-controller 4 (HSI2) */
759+ static const struct samsung_pin_bank_data exynosautov920_pin_banks4 [] = {
760+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x0000 , "gph3" , 0x18 , 0x24 , 0x28 ),
761+ EXYNOSV920_PIN_BANK_EINTG (7 , 0x1000 , "gph4" , 0x18 , 0x24 , 0x28 ),
762+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x2000 , "gph5" , 0x18 , 0x24 , 0x28 ),
763+ EXYNOSV920_PIN_BANK_EINTG (7 , 0x3000 , "gph6" , 0x18 , 0x24 , 0x28 ),
764+ };
765+
766+ /* pin banks of exynosautov920 pin-controller 5 (HSI2UFS) */
767+ static const struct samsung_pin_bank_data exynosautov920_pin_banks5 [] = {
768+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x000 , "gph2" , 0x18 , 0x20 , 0x24 ),
769+ };
770+
771+ /* pin banks of exynosautov920 pin-controller 6 (PERIC0) */
772+ static const struct samsung_pin_bank_data exynosautov920_pin_banks6 [] = {
773+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x0000 , "gpp0" , 0x18 , 0x24 , 0x28 ),
774+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x1000 , "gpp1" , 0x18 , 0x24 , 0x28 ),
775+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x2000 , "gpp2" , 0x18 , 0x24 , 0x28 ),
776+ EXYNOSV920_PIN_BANK_EINTG (5 , 0x3000 , "gpg0" , 0x18 , 0x24 , 0x28 ),
777+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x4000 , "gpp3" , 0x18 , 0x24 , 0x28 ),
778+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x5000 , "gpp4" , 0x18 , 0x20 , 0x24 ),
779+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x6000 , "gpg2" , 0x18 , 0x20 , 0x24 ),
780+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x7000 , "gpg5" , 0x18 , 0x20 , 0x24 ),
781+ EXYNOSV920_PIN_BANK_EINTG (3 , 0x8000 , "gpg3" , 0x18 , 0x20 , 0x24 ),
782+ EXYNOSV920_PIN_BANK_EINTG (5 , 0x9000 , "gpg4" , 0x18 , 0x24 , 0x28 ),
783+ };
784+
785+ /* pin banks of exynosautov920 pin-controller 7 (PERIC1) */
786+ static const struct samsung_pin_bank_data exynosautov920_pin_banks7 [] = {
787+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x0000 , "gpp5" , 0x18 , 0x24 , 0x28 ),
788+ EXYNOSV920_PIN_BANK_EINTG (5 , 0x1000 , "gpp6" , 0x18 , 0x24 , 0x28 ),
789+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x2000 , "gpp10" , 0x18 , 0x20 , 0x24 ),
790+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x3000 , "gpp7" , 0x18 , 0x24 , 0x28 ),
791+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x4000 , "gpp8" , 0x18 , 0x20 , 0x24 ),
792+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x5000 , "gpp11" , 0x18 , 0x20 , 0x24 ),
793+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x6000 , "gpp9" , 0x18 , 0x20 , 0x24 ),
794+ EXYNOSV920_PIN_BANK_EINTG (4 , 0x7000 , "gpp12" , 0x18 , 0x20 , 0x24 ),
795+ EXYNOSV920_PIN_BANK_EINTG (8 , 0x8000 , "gpg1" , 0x18 , 0x24 , 0x28 ),
796+ };
797+
798+ static const struct samsung_retention_data exynosautov920_retention_data __initconst = {
799+ .regs = NULL ,
800+ .nr_regs = 0 ,
801+ .value = 0 ,
802+ .refcnt = & exynos_shared_retention_refcnt ,
803+ .init = exynos_retention_init ,
804+ };
805+
806+ static const struct samsung_pin_ctrl exynosautov920_pin_ctrl [] = {
807+ {
808+ /* pin-controller instance 0 ALIVE data */
809+ .pin_banks = exynosautov920_pin_banks0 ,
810+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks0 ),
811+ .eint_wkup_init = exynos_eint_wkup_init ,
812+ .suspend = exynos_pinctrl_suspend ,
813+ .resume = exynos_pinctrl_resume ,
814+ .retention_data = & exynosautov920_retention_data ,
815+ }, {
816+ /* pin-controller instance 1 AUD data */
817+ .pin_banks = exynosautov920_pin_banks1 ,
818+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks1 ),
819+ }, {
820+ /* pin-controller instance 2 HSI0 data */
821+ .pin_banks = exynosautov920_pin_banks2 ,
822+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks2 ),
823+ .eint_gpio_init = exynos_eint_gpio_init ,
824+ .suspend = exynos_pinctrl_suspend ,
825+ .resume = exynos_pinctrl_resume ,
826+ }, {
827+ /* pin-controller instance 3 HSI1 data */
828+ .pin_banks = exynosautov920_pin_banks3 ,
829+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks3 ),
830+ .eint_gpio_init = exynos_eint_gpio_init ,
831+ .suspend = exynos_pinctrl_suspend ,
832+ .resume = exynos_pinctrl_resume ,
833+ }, {
834+ /* pin-controller instance 4 HSI2 data */
835+ .pin_banks = exynosautov920_pin_banks4 ,
836+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks4 ),
837+ .eint_gpio_init = exynos_eint_gpio_init ,
838+ .suspend = exynos_pinctrl_suspend ,
839+ .resume = exynos_pinctrl_resume ,
840+ }, {
841+ /* pin-controller instance 5 HSI2UFS data */
842+ .pin_banks = exynosautov920_pin_banks5 ,
843+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks5 ),
844+ .eint_gpio_init = exynos_eint_gpio_init ,
845+ .suspend = exynos_pinctrl_suspend ,
846+ .resume = exynos_pinctrl_resume ,
847+ }, {
848+ /* pin-controller instance 6 PERIC0 data */
849+ .pin_banks = exynosautov920_pin_banks6 ,
850+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks6 ),
851+ .eint_gpio_init = exynos_eint_gpio_init ,
852+ .suspend = exynos_pinctrl_suspend ,
853+ .resume = exynos_pinctrl_resume ,
854+ }, {
855+ /* pin-controller instance 7 PERIC1 data */
856+ .pin_banks = exynosautov920_pin_banks7 ,
857+ .nr_banks = ARRAY_SIZE (exynosautov920_pin_banks7 ),
858+ .eint_gpio_init = exynos_eint_gpio_init ,
859+ .suspend = exynos_pinctrl_suspend ,
860+ .resume = exynos_pinctrl_resume ,
861+ },
862+ };
863+
864+ const struct samsung_pinctrl_of_match_data exynosautov920_of_data __initconst = {
865+ .ctrl = exynosautov920_pin_ctrl ,
866+ .num_ctrl = ARRAY_SIZE (exynosautov920_pin_ctrl ),
867+ };
868+
729869/*
730870 * Pinctrl driver data for Tesla FSD SoC. FSD SoC includes three
731871 * gpio/pin-mux/pinconfig controllers.
@@ -796,3 +936,143 @@ const struct samsung_pinctrl_of_match_data fsd_of_data __initconst = {
796936 .ctrl = fsd_pin_ctrl ,
797937 .num_ctrl = ARRAY_SIZE (fsd_pin_ctrl ),
798938};
939+
940+ /* pin banks of gs101 pin-controller (ALIVE) */
941+ static const struct samsung_pin_bank_data gs101_pin_alive [] = {
942+ EXYNOS850_PIN_BANK_EINTW (8 , 0x0 , "gpa0" , 0x00 ),
943+ EXYNOS850_PIN_BANK_EINTW (7 , 0x20 , "gpa1" , 0x04 ),
944+ EXYNOS850_PIN_BANK_EINTW (5 , 0x40 , "gpa2" , 0x08 ),
945+ EXYNOS850_PIN_BANK_EINTW (4 , 0x60 , "gpa3" , 0x0c ),
946+ EXYNOS850_PIN_BANK_EINTW (4 , 0x80 , "gpa4" , 0x10 ),
947+ EXYNOS850_PIN_BANK_EINTW (7 , 0xa0 , "gpa5" , 0x14 ),
948+ EXYNOS850_PIN_BANK_EINTW (8 , 0xc0 , "gpa9" , 0x18 ),
949+ EXYNOS850_PIN_BANK_EINTW (2 , 0xe0 , "gpa10" , 0x1c ),
950+ };
951+
952+ /* pin banks of gs101 pin-controller (FAR_ALIVE) */
953+ static const struct samsung_pin_bank_data gs101_pin_far_alive [] = {
954+ EXYNOS850_PIN_BANK_EINTW (8 , 0x0 , "gpa6" , 0x00 ),
955+ EXYNOS850_PIN_BANK_EINTW (4 , 0x20 , "gpa7" , 0x04 ),
956+ EXYNOS850_PIN_BANK_EINTW (8 , 0x40 , "gpa8" , 0x08 ),
957+ EXYNOS850_PIN_BANK_EINTW (2 , 0x60 , "gpa11" , 0x0c ),
958+ };
959+
960+ /* pin banks of gs101 pin-controller (GSACORE) */
961+ static const struct samsung_pin_bank_data gs101_pin_gsacore [] = {
962+ EXYNOS850_PIN_BANK_EINTG (2 , 0x0 , "gps0" , 0x00 ),
963+ EXYNOS850_PIN_BANK_EINTG (8 , 0x20 , "gps1" , 0x04 ),
964+ EXYNOS850_PIN_BANK_EINTG (3 , 0x40 , "gps2" , 0x08 ),
965+ };
966+
967+ /* pin banks of gs101 pin-controller (GSACTRL) */
968+ static const struct samsung_pin_bank_data gs101_pin_gsactrl [] = {
969+ EXYNOS850_PIN_BANK_EINTW (6 , 0x0 , "gps3" , 0x00 ),
970+ };
971+
972+ /* pin banks of gs101 pin-controller (PERIC0) */
973+ static const struct samsung_pin_bank_data gs101_pin_peric0 [] = {
974+ EXYNOS850_PIN_BANK_EINTG (5 , 0x0 , "gpp0" , 0x00 ),
975+ EXYNOS850_PIN_BANK_EINTG (4 , 0x20 , "gpp1" , 0x04 ),
976+ EXYNOS850_PIN_BANK_EINTG (4 , 0x40 , "gpp2" , 0x08 ),
977+ EXYNOS850_PIN_BANK_EINTG (2 , 0x60 , "gpp3" , 0x0c ),
978+ EXYNOS850_PIN_BANK_EINTG (4 , 0x80 , "gpp4" , 0x10 ),
979+ EXYNOS850_PIN_BANK_EINTG (2 , 0xa0 , "gpp5" , 0x14 ),
980+ EXYNOS850_PIN_BANK_EINTG (4 , 0xc0 , "gpp6" , 0x18 ),
981+ EXYNOS850_PIN_BANK_EINTG (2 , 0xe0 , "gpp7" , 0x1c ),
982+ EXYNOS850_PIN_BANK_EINTG (4 , 0x100 , "gpp8" , 0x20 ),
983+ EXYNOS850_PIN_BANK_EINTG (2 , 0x120 , "gpp9" , 0x24 ),
984+ EXYNOS850_PIN_BANK_EINTG (4 , 0x140 , "gpp10" , 0x28 ),
985+ EXYNOS850_PIN_BANK_EINTG (2 , 0x160 , "gpp11" , 0x2c ),
986+ EXYNOS850_PIN_BANK_EINTG (4 , 0x180 , "gpp12" , 0x30 ),
987+ EXYNOS850_PIN_BANK_EINTG (2 , 0x1a0 , "gpp13" , 0x34 ),
988+ EXYNOS850_PIN_BANK_EINTG (4 , 0x1c0 , "gpp14" , 0x38 ),
989+ EXYNOS850_PIN_BANK_EINTG (2 , 0x1e0 , "gpp15" , 0x3c ),
990+ EXYNOS850_PIN_BANK_EINTG (4 , 0x200 , "gpp16" , 0x40 ),
991+ EXYNOS850_PIN_BANK_EINTG (2 , 0x220 , "gpp17" , 0x44 ),
992+ EXYNOS850_PIN_BANK_EINTG (4 , 0x240 , "gpp18" , 0x48 ),
993+ EXYNOS850_PIN_BANK_EINTG (4 , 0x260 , "gpp19" , 0x4c ),
994+ };
995+
996+ /* pin banks of gs101 pin-controller (PERIC1) */
997+ static const struct samsung_pin_bank_data gs101_pin_peric1 [] = {
998+ EXYNOS850_PIN_BANK_EINTG (8 , 0x0 , "gpp20" , 0x00 ),
999+ EXYNOS850_PIN_BANK_EINTG (4 , 0x20 , "gpp21" , 0x04 ),
1000+ EXYNOS850_PIN_BANK_EINTG (2 , 0x40 , "gpp22" , 0x08 ),
1001+ EXYNOS850_PIN_BANK_EINTG (8 , 0x60 , "gpp23" , 0x0c ),
1002+ EXYNOS850_PIN_BANK_EINTG (4 , 0x80 , "gpp24" , 0x10 ),
1003+ EXYNOS850_PIN_BANK_EINTG (4 , 0xa0 , "gpp25" , 0x14 ),
1004+ EXYNOS850_PIN_BANK_EINTG (5 , 0xc0 , "gpp26" , 0x18 ),
1005+ EXYNOS850_PIN_BANK_EINTG (4 , 0xe0 , "gpp27" , 0x1c ),
1006+ };
1007+
1008+ /* pin banks of gs101 pin-controller (HSI1) */
1009+ static const struct samsung_pin_bank_data gs101_pin_hsi1 [] = {
1010+ EXYNOS850_PIN_BANK_EINTG (6 , 0x0 , "gph0" , 0x00 ),
1011+ EXYNOS850_PIN_BANK_EINTG (7 , 0x20 , "gph1" , 0x04 ),
1012+ };
1013+
1014+ /* pin banks of gs101 pin-controller (HSI2) */
1015+ static const struct samsung_pin_bank_data gs101_pin_hsi2 [] = {
1016+ EXYNOS850_PIN_BANK_EINTG (6 , 0x0 , "gph2" , 0x00 ),
1017+ EXYNOS850_PIN_BANK_EINTG (2 , 0x20 , "gph3" , 0x04 ),
1018+ EXYNOS850_PIN_BANK_EINTG (6 , 0x40 , "gph4" , 0x08 ),
1019+ };
1020+
1021+ static const struct samsung_pin_ctrl gs101_pin_ctrl [] __initconst = {
1022+ {
1023+ /* pin banks of gs101 pin-controller (ALIVE) */
1024+ .pin_banks = gs101_pin_alive ,
1025+ .nr_banks = ARRAY_SIZE (gs101_pin_alive ),
1026+ .eint_wkup_init = exynos_eint_wkup_init ,
1027+ .suspend = exynos_pinctrl_suspend ,
1028+ .resume = exynos_pinctrl_resume ,
1029+ }, {
1030+ /* pin banks of gs101 pin-controller (FAR_ALIVE) */
1031+ .pin_banks = gs101_pin_far_alive ,
1032+ .nr_banks = ARRAY_SIZE (gs101_pin_far_alive ),
1033+ .eint_wkup_init = exynos_eint_wkup_init ,
1034+ .suspend = exynos_pinctrl_suspend ,
1035+ .resume = exynos_pinctrl_resume ,
1036+ }, {
1037+ /* pin banks of gs101 pin-controller (GSACORE) */
1038+ .pin_banks = gs101_pin_gsacore ,
1039+ .nr_banks = ARRAY_SIZE (gs101_pin_gsacore ),
1040+ }, {
1041+ /* pin banks of gs101 pin-controller (GSACTRL) */
1042+ .pin_banks = gs101_pin_gsactrl ,
1043+ .nr_banks = ARRAY_SIZE (gs101_pin_gsactrl ),
1044+ }, {
1045+ /* pin banks of gs101 pin-controller (PERIC0) */
1046+ .pin_banks = gs101_pin_peric0 ,
1047+ .nr_banks = ARRAY_SIZE (gs101_pin_peric0 ),
1048+ .eint_gpio_init = exynos_eint_gpio_init ,
1049+ .suspend = exynos_pinctrl_suspend ,
1050+ .resume = exynos_pinctrl_resume ,
1051+ }, {
1052+ /* pin banks of gs101 pin-controller (PERIC1) */
1053+ .pin_banks = gs101_pin_peric1 ,
1054+ .nr_banks = ARRAY_SIZE (gs101_pin_peric1 ),
1055+ .eint_gpio_init = exynos_eint_gpio_init ,
1056+ .suspend = exynos_pinctrl_suspend ,
1057+ .resume = exynos_pinctrl_resume ,
1058+ }, {
1059+ /* pin banks of gs101 pin-controller (HSI1) */
1060+ .pin_banks = gs101_pin_hsi1 ,
1061+ .nr_banks = ARRAY_SIZE (gs101_pin_hsi1 ),
1062+ .eint_gpio_init = exynos_eint_gpio_init ,
1063+ .suspend = exynos_pinctrl_suspend ,
1064+ .resume = exynos_pinctrl_resume ,
1065+ }, {
1066+ /* pin banks of gs101 pin-controller (HSI2) */
1067+ .pin_banks = gs101_pin_hsi2 ,
1068+ .nr_banks = ARRAY_SIZE (gs101_pin_hsi2 ),
1069+ .eint_gpio_init = exynos_eint_gpio_init ,
1070+ .suspend = exynos_pinctrl_suspend ,
1071+ .resume = exynos_pinctrl_resume ,
1072+ },
1073+ };
1074+
1075+ const struct samsung_pinctrl_of_match_data gs101_of_data __initconst = {
1076+ .ctrl = gs101_pin_ctrl ,
1077+ .num_ctrl = ARRAY_SIZE (gs101_pin_ctrl ),
1078+ };
0 commit comments