@@ -40,6 +40,15 @@ static const struct samsung_pin_bank_type exynos5433_bank_type_alive = {
40
40
.reg_offset = { 0x00 , 0x04 , 0x08 , 0x0c , },
41
41
};
42
42
43
+ /*
44
+ * Bank type for alive type. Bit fields:
45
+ * CON: 4, DAT: 1, PUD: 2, DRV: 3
46
+ */
47
+ static const struct samsung_pin_bank_type exynos7870_bank_type_alive = {
48
+ .fld_width = { 4 , 1 , 2 , 3 , },
49
+ .reg_offset = { 0x00 , 0x04 , 0x08 , 0x0c , },
50
+ };
51
+
43
52
/*
44
53
* Bank type for non-alive type. Bit fields:
45
54
* CON: 4, DAT: 1, PUD: 4, DRV: 4, CONPDN: 2, PUDPDN: 4
@@ -618,6 +627,136 @@ const struct samsung_pinctrl_of_match_data exynos7_of_data __initconst = {
618
627
.num_ctrl = ARRAY_SIZE (exynos7_pin_ctrl ),
619
628
};
620
629
630
+ /* pin banks of exynos7870 pin-controller 0 (ALIVE) */
631
+ static const struct samsung_pin_bank_data exynos7870_pin_banks0 [] __initconst = {
632
+ EXYNOS7870_PIN_BANK_EINTN (6 , 0x000 , "etc0" ),
633
+ EXYNOS7870_PIN_BANK_EINTN (3 , 0x020 , "etc1" ),
634
+ EXYNOS7870_PIN_BANK_EINTW (8 , 0x040 , "gpa0" , 0x00 ),
635
+ EXYNOS7870_PIN_BANK_EINTW (8 , 0x060 , "gpa1" , 0x04 ),
636
+ EXYNOS7870_PIN_BANK_EINTW (8 , 0x080 , "gpa2" , 0x08 ),
637
+ EXYNOS7870_PIN_BANK_EINTN (2 , 0x0c0 , "gpq0" ),
638
+ };
639
+
640
+ /* pin banks of exynos7870 pin-controller 1 (DISPAUD) */
641
+ static const struct samsung_pin_bank_data exynos7870_pin_banks1 [] __initconst = {
642
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x000 , "gpz0" , 0x00 ),
643
+ EXYNOS8895_PIN_BANK_EINTG (6 , 0x020 , "gpz1" , 0x04 ),
644
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x040 , "gpz2" , 0x08 ),
645
+ };
646
+
647
+ /* pin banks of exynos7870 pin-controller 2 (ESE) */
648
+ static const struct samsung_pin_bank_data exynos7870_pin_banks2 [] __initconst = {
649
+ EXYNOS8895_PIN_BANK_EINTG (5 , 0x000 , "gpc7" , 0x00 ),
650
+ };
651
+
652
+ /* pin banks of exynos7870 pin-controller 3 (FSYS) */
653
+ static const struct samsung_pin_bank_data exynos7870_pin_banks3 [] __initconst = {
654
+ EXYNOS8895_PIN_BANK_EINTG (3 , 0x000 , "gpr0" , 0x00 ),
655
+ EXYNOS8895_PIN_BANK_EINTG (8 , 0x020 , "gpr1" , 0x04 ),
656
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x040 , "gpr2" , 0x08 ),
657
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x060 , "gpr3" , 0x0c ),
658
+ EXYNOS8895_PIN_BANK_EINTG (6 , 0x080 , "gpr4" , 0x10 ),
659
+ };
660
+
661
+ /* pin banks of exynos7870 pin-controller 4 (MIF) */
662
+ static const struct samsung_pin_bank_data exynos7870_pin_banks4 [] __initconst = {
663
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x000 , "gpm0" , 0x00 ),
664
+ };
665
+
666
+ /* pin banks of exynos7870 pin-controller 5 (NFC) */
667
+ static const struct samsung_pin_bank_data exynos7870_pin_banks5 [] __initconst = {
668
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x000 , "gpc2" , 0x00 ),
669
+ };
670
+
671
+ /* pin banks of exynos7870 pin-controller 6 (TOP) */
672
+ static const struct samsung_pin_bank_data exynos7870_pin_banks6 [] __initconst = {
673
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x000 , "gpb0" , 0x00 ),
674
+ EXYNOS8895_PIN_BANK_EINTG (3 , 0x020 , "gpc0" , 0x04 ),
675
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x040 , "gpc1" , 0x08 ),
676
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x060 , "gpc4" , 0x0c ),
677
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x080 , "gpc5" , 0x10 ),
678
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x0a0 , "gpc6" , 0x14 ),
679
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x0c0 , "gpc8" , 0x18 ),
680
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x0e0 , "gpc9" , 0x1c ),
681
+ EXYNOS8895_PIN_BANK_EINTG (7 , 0x100 , "gpd1" , 0x20 ),
682
+ EXYNOS8895_PIN_BANK_EINTG (6 , 0x120 , "gpd2" , 0x24 ),
683
+ EXYNOS8895_PIN_BANK_EINTG (8 , 0x140 , "gpd3" , 0x28 ),
684
+ EXYNOS8895_PIN_BANK_EINTG (7 , 0x160 , "gpd4" , 0x2c ),
685
+ EXYNOS8895_PIN_BANK_EINTG (3 , 0x1a0 , "gpe0" , 0x34 ),
686
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x1c0 , "gpf0" , 0x38 ),
687
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x1e0 , "gpf1" , 0x3c ),
688
+ EXYNOS8895_PIN_BANK_EINTG (2 , 0x200 , "gpf2" , 0x40 ),
689
+ EXYNOS8895_PIN_BANK_EINTG (4 , 0x220 , "gpf3" , 0x44 ),
690
+ EXYNOS8895_PIN_BANK_EINTG (5 , 0x240 , "gpf4" , 0x48 ),
691
+ };
692
+
693
+ /* pin banks of exynos7870 pin-controller 7 (TOUCH) */
694
+ static const struct samsung_pin_bank_data exynos7870_pin_banks7 [] __initconst = {
695
+ EXYNOS8895_PIN_BANK_EINTG (3 , 0x000 , "gpc3" , 0x00 ),
696
+ };
697
+
698
+ static const struct samsung_pin_ctrl exynos7870_pin_ctrl [] __initconst = {
699
+ {
700
+ /* pin-controller instance 0 Alive data */
701
+ .pin_banks = exynos7870_pin_banks0 ,
702
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks0 ),
703
+ .eint_wkup_init = exynos_eint_wkup_init ,
704
+ .suspend = exynos_pinctrl_suspend ,
705
+ .resume = exynos_pinctrl_resume ,
706
+ }, {
707
+ /* pin-controller instance 1 DISPAUD data */
708
+ .pin_banks = exynos7870_pin_banks1 ,
709
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks1 ),
710
+ }, {
711
+ /* pin-controller instance 2 ESE data */
712
+ .pin_banks = exynos7870_pin_banks2 ,
713
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks2 ),
714
+ .eint_gpio_init = exynos_eint_gpio_init ,
715
+ .suspend = exynos_pinctrl_suspend ,
716
+ .resume = exynos_pinctrl_resume ,
717
+ }, {
718
+ /* pin-controller instance 3 FSYS data */
719
+ .pin_banks = exynos7870_pin_banks3 ,
720
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks3 ),
721
+ .eint_gpio_init = exynos_eint_gpio_init ,
722
+ .suspend = exynos_pinctrl_suspend ,
723
+ .resume = exynos_pinctrl_resume ,
724
+ }, {
725
+ /* pin-controller instance 4 MIF data */
726
+ .pin_banks = exynos7870_pin_banks4 ,
727
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks4 ),
728
+ .eint_gpio_init = exynos_eint_gpio_init ,
729
+ .suspend = exynos_pinctrl_suspend ,
730
+ .resume = exynos_pinctrl_resume ,
731
+ }, {
732
+ /* pin-controller instance 5 NFC data */
733
+ .pin_banks = exynos7870_pin_banks5 ,
734
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks5 ),
735
+ .eint_gpio_init = exynos_eint_gpio_init ,
736
+ .suspend = exynos_pinctrl_suspend ,
737
+ .resume = exynos_pinctrl_resume ,
738
+ }, {
739
+ /* pin-controller instance 6 TOP data */
740
+ .pin_banks = exynos7870_pin_banks6 ,
741
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks6 ),
742
+ .eint_gpio_init = exynos_eint_gpio_init ,
743
+ .suspend = exynos_pinctrl_suspend ,
744
+ .resume = exynos_pinctrl_resume ,
745
+ }, {
746
+ /* pin-controller instance 7 TOUCH data */
747
+ .pin_banks = exynos7870_pin_banks7 ,
748
+ .nr_banks = ARRAY_SIZE (exynos7870_pin_banks7 ),
749
+ .eint_gpio_init = exynos_eint_gpio_init ,
750
+ .suspend = exynos_pinctrl_suspend ,
751
+ .resume = exynos_pinctrl_resume ,
752
+ },
753
+ };
754
+
755
+ const struct samsung_pinctrl_of_match_data exynos7870_of_data __initconst = {
756
+ .ctrl = exynos7870_pin_ctrl ,
757
+ .num_ctrl = ARRAY_SIZE (exynos7870_pin_ctrl ),
758
+ };
759
+
621
760
/* pin banks of exynos7885 pin-controller 0 (ALIVE) */
622
761
static const struct samsung_pin_bank_data exynos7885_pin_banks0 [] __initconst = {
623
762
EXYNOS_PIN_BANK_EINTN (3 , 0x000 , "etc0" ),
0 commit comments