summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/meson
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-01-01 16:19:16 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2019-01-01 16:19:16 -0500
commitc9bef4a651769927445900564781a9c99fdf6258 (patch)
treed7611bd01581bbd49f189b304f1d6a23c4477c3b /drivers/pinctrl/meson
parent115502a6f31d84d8172a71283aaea266302a8ad5 (diff)
parent88cc9fc41c7318565bcf28a843b1e4e3f2acf894 (diff)
Merge tag 'pinctrl-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control updates from Linus Walleij: "We have no core changes but lots of incremental development in drivers all over the place: Renesas, NXP, Mediatek and Actions Semiconductor keep churning out new SoCs. I have some subtree maintainers for Renesas and Intel helping out to keep down the load, it's been working smoothly (Samsung also have a subtree but it was not used this cycle.) New drivers: - NXP (ex Freescale) i.MX 8 QXP SoC driver. - Mediatek MT6797 SoC driver. - Mediatek MT7629 SoC driver. - Actions Semiconductor S700 SoC driver. - Renesas RZ/A2 SoC driver. - Allwinner sunxi suniv F1C100 SoC driver. - Qualcomm PMS405 PMIC driver. - Microsemi Ocelot Jaguar2 SoC driver. Improvements: - Some RT improvements (using raw spinlocks where appropriate). - A lot of new pin sets on the Renesas PFC pin controllers. - GPIO hogs now work on the Qualcomm SPMI/SSBI pin controller GPIO chips, and Xway. - Major modernization of the Intel pin control drivers. - STM32 pin control driver will now synchronize usage of pins with another CPU using a hardware spinlock" * tag 'pinctrl-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (145 commits) dt-bindings: arm: fsl-scu: add imx8qm pinctrl support pinctrl: freescale: Break dependency on SOC_IMX8MQ for i.MX8MQ pinctrl: imx-scu: Depend on IMX_SCU pinctrl: ocelot: Add dependency on HAS_IOMEM pinctrl: ocelot: add MSCC Jaguar2 support pinctrl: bcm: ns: support updated DT binding as syscon subnode dt-bindings: pinctrl: bcm4708-pinmux: rework binding to use syscon MAINTAINERS: merge at91 pinctrl entries pinctrl: imx8qxp: break the dependency on SOC_IMX8QXP pinctrl: uniphier: constify uniphier_pinctrl_socdata pinctrl: mediatek: improve Kconfig dependencies pinctrl: msm: mark PM functions as __maybe_unused dt-bindings: pinctrl: sunxi: Add supply properties pinctrl: meson: meson8b: add the missing GPIO_GROUPs for BOOT and CARD pinctrl: meson: meson8: add the missing GPIO_GROUPs for BOOT and CARD pinctrl: meson: meson8: rename the "gpio" function to "gpio_periphs" pinctrl: meson: meson8: rename the "gpio" function to "gpio_periphs" pinctrl: meson: meson8b: fix the GPIO function for the GPIOAO pins pinctrl: meson: meson8: fix the GPIO function for the GPIOAO pins pinctrl: sh-pfc: Make pinmux_cfg_reg.var_field_width[] variable-length ...
Diffstat (limited to 'drivers/pinctrl/meson')
-rw-r--r--drivers/pinctrl/meson/pinctrl-meson-gxl.c12
-rw-r--r--drivers/pinctrl/meson/pinctrl-meson8.c33
-rw-r--r--drivers/pinctrl/meson/pinctrl-meson8b.c45
3 files changed, 71 insertions, 19 deletions
diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxl.c b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
index 158f618f1695..0c0a5018102b 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-gxl.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
@@ -239,13 +239,9 @@ static const unsigned int eth_link_led_pins[] = { GPIOZ_14 };
239static const unsigned int eth_act_led_pins[] = { GPIOZ_15 }; 239static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
240 240
241static const unsigned int tsin_a_d0_pins[] = { GPIODV_0 }; 241static const unsigned int tsin_a_d0_pins[] = { GPIODV_0 };
242static const unsigned int tsin_a_d0_x_pins[] = { GPIOX_10 };
243static const unsigned int tsin_a_clk_pins[] = { GPIODV_8 }; 242static const unsigned int tsin_a_clk_pins[] = { GPIODV_8 };
244static const unsigned int tsin_a_clk_x_pins[] = { GPIOX_11 };
245static const unsigned int tsin_a_sop_pins[] = { GPIODV_9 }; 243static const unsigned int tsin_a_sop_pins[] = { GPIODV_9 };
246static const unsigned int tsin_a_sop_x_pins[] = { GPIOX_8 };
247static const unsigned int tsin_a_d_valid_pins[] = { GPIODV_10 }; 244static const unsigned int tsin_a_d_valid_pins[] = { GPIODV_10 };
248static const unsigned int tsin_a_d_valid_x_pins[] = { GPIOX_9 };
249static const unsigned int tsin_a_fail_pins[] = { GPIODV_11 }; 245static const unsigned int tsin_a_fail_pins[] = { GPIODV_11 };
250static const unsigned int tsin_a_dp_pins[] = { 246static const unsigned int tsin_a_dp_pins[] = {
251 GPIODV_1, GPIODV_2, GPIODV_3, GPIODV_4, GPIODV_5, GPIODV_6, GPIODV_7, 247 GPIODV_1, GPIODV_2, GPIODV_3, GPIODV_4, GPIODV_5, GPIODV_6, GPIODV_7,
@@ -432,10 +428,6 @@ static struct meson_pmx_group meson_gxl_periphs_groups[] = {
432 GROUP(spi_miso, 5, 2), 428 GROUP(spi_miso, 5, 2),
433 GROUP(spi_ss0, 5, 1), 429 GROUP(spi_ss0, 5, 1),
434 GROUP(spi_sclk, 5, 0), 430 GROUP(spi_sclk, 5, 0),
435 GROUP(tsin_a_sop_x, 6, 3),
436 GROUP(tsin_a_d_valid_x, 6, 2),
437 GROUP(tsin_a_d0_x, 6, 1),
438 GROUP(tsin_a_clk_x, 6, 0),
439 431
440 /* Bank Z */ 432 /* Bank Z */
441 GROUP(eth_mdio, 4, 23), 433 GROUP(eth_mdio, 4, 23),
@@ -698,8 +690,8 @@ static const char * const eth_led_groups[] = {
698}; 690};
699 691
700static const char * const tsin_a_groups[] = { 692static const char * const tsin_a_groups[] = {
701 "tsin_a_clk", "tsin_a_clk_x", "tsin_a_sop", "tsin_a_sop_x", 693 "tsin_a_clk", "tsin_a_sop",
702 "tsin_a_d_valid", "tsin_a_d_valid_x", "tsin_a_d0", "tsin_a_d0_x", 694 "tsin_a_d_valid", "tsin_a_d0",
703 "tsin_a_dp", "tsin_a_fail", 695 "tsin_a_dp", "tsin_a_fail",
704}; 696};
705 697
diff --git a/drivers/pinctrl/meson/pinctrl-meson8.c b/drivers/pinctrl/meson/pinctrl-meson8.c
index 86466173114d..785e29e74a56 100644
--- a/drivers/pinctrl/meson/pinctrl-meson8.c
+++ b/drivers/pinctrl/meson/pinctrl-meson8.c
@@ -506,6 +506,32 @@ static struct meson_pmx_group meson8_cbus_groups[] = {
506 GPIO_GROUP(GPIOZ_12), 506 GPIO_GROUP(GPIOZ_12),
507 GPIO_GROUP(GPIOZ_13), 507 GPIO_GROUP(GPIOZ_13),
508 GPIO_GROUP(GPIOZ_14), 508 GPIO_GROUP(GPIOZ_14),
509 GPIO_GROUP(CARD_0),
510 GPIO_GROUP(CARD_1),
511 GPIO_GROUP(CARD_2),
512 GPIO_GROUP(CARD_3),
513 GPIO_GROUP(CARD_4),
514 GPIO_GROUP(CARD_5),
515 GPIO_GROUP(CARD_6),
516 GPIO_GROUP(BOOT_0),
517 GPIO_GROUP(BOOT_1),
518 GPIO_GROUP(BOOT_2),
519 GPIO_GROUP(BOOT_3),
520 GPIO_GROUP(BOOT_4),
521 GPIO_GROUP(BOOT_5),
522 GPIO_GROUP(BOOT_6),
523 GPIO_GROUP(BOOT_7),
524 GPIO_GROUP(BOOT_8),
525 GPIO_GROUP(BOOT_9),
526 GPIO_GROUP(BOOT_10),
527 GPIO_GROUP(BOOT_11),
528 GPIO_GROUP(BOOT_12),
529 GPIO_GROUP(BOOT_13),
530 GPIO_GROUP(BOOT_14),
531 GPIO_GROUP(BOOT_15),
532 GPIO_GROUP(BOOT_16),
533 GPIO_GROUP(BOOT_17),
534 GPIO_GROUP(BOOT_18),
509 535
510 /* bank X */ 536 /* bank X */
511 GROUP(sd_d0_a, 8, 5), 537 GROUP(sd_d0_a, 8, 5),
@@ -774,7 +800,7 @@ static struct meson_pmx_group meson8_aobus_groups[] = {
774 GROUP(hdmi_cec_ao, 0, 17), 800 GROUP(hdmi_cec_ao, 0, 17),
775}; 801};
776 802
777static const char * const gpio_groups[] = { 803static const char * const gpio_periphs_groups[] = {
778 "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4", 804 "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4",
779 "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9", 805 "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9",
780 "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14", 806 "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14",
@@ -807,7 +833,9 @@ static const char * const gpio_groups[] = {
807 "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9", 833 "BOOT_5", "BOOT_6", "BOOT_7", "BOOT_8", "BOOT_9",
808 "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14", 834 "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14",
809 "BOOT_15", "BOOT_16", "BOOT_17", "BOOT_18", 835 "BOOT_15", "BOOT_16", "BOOT_17", "BOOT_18",
836};
810 837
838static const char * const gpio_aobus_groups[] = {
811 "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", 839 "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3",
812 "GPIOAO_4", "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", 840 "GPIOAO_4", "GPIOAO_5", "GPIOAO_6", "GPIOAO_7",
813 "GPIOAO_8", "GPIOAO_9", "GPIOAO_10", "GPIOAO_11", 841 "GPIOAO_8", "GPIOAO_9", "GPIOAO_10", "GPIOAO_11",
@@ -994,7 +1022,7 @@ static const char * const hdmi_cec_ao_groups[] = {
994}; 1022};
995 1023
996static struct meson_pmx_func meson8_cbus_functions[] = { 1024static struct meson_pmx_func meson8_cbus_functions[] = {
997 FUNCTION(gpio), 1025 FUNCTION(gpio_periphs),
998 FUNCTION(sd_a), 1026 FUNCTION(sd_a),
999 FUNCTION(sdxc_a), 1027 FUNCTION(sdxc_a),
1000 FUNCTION(pcm_a), 1028 FUNCTION(pcm_a),
@@ -1030,6 +1058,7 @@ static struct meson_pmx_func meson8_cbus_functions[] = {
1030}; 1058};
1031 1059
1032static struct meson_pmx_func meson8_aobus_functions[] = { 1060static struct meson_pmx_func meson8_aobus_functions[] = {
1061 FUNCTION(gpio_aobus),
1033 FUNCTION(uart_ao), 1062 FUNCTION(uart_ao),
1034 FUNCTION(remote), 1063 FUNCTION(remote),
1035 FUNCTION(i2c_slave_ao), 1064 FUNCTION(i2c_slave_ao),
diff --git a/drivers/pinctrl/meson/pinctrl-meson8b.c b/drivers/pinctrl/meson/pinctrl-meson8b.c
index 647ad15d5c3c..c69ca95b1ad5 100644
--- a/drivers/pinctrl/meson/pinctrl-meson8b.c
+++ b/drivers/pinctrl/meson/pinctrl-meson8b.c
@@ -403,6 +403,34 @@ static struct meson_pmx_group meson8b_cbus_groups[] = {
403 GPIO_GROUP(GPIOH_8), 403 GPIO_GROUP(GPIOH_8),
404 GPIO_GROUP(GPIOH_9), 404 GPIO_GROUP(GPIOH_9),
405 405
406 GPIO_GROUP(CARD_0),
407 GPIO_GROUP(CARD_1),
408 GPIO_GROUP(CARD_2),
409 GPIO_GROUP(CARD_3),
410 GPIO_GROUP(CARD_4),
411 GPIO_GROUP(CARD_5),
412 GPIO_GROUP(CARD_6),
413
414 GPIO_GROUP(BOOT_0),
415 GPIO_GROUP(BOOT_1),
416 GPIO_GROUP(BOOT_2),
417 GPIO_GROUP(BOOT_3),
418 GPIO_GROUP(BOOT_4),
419 GPIO_GROUP(BOOT_5),
420 GPIO_GROUP(BOOT_6),
421 GPIO_GROUP(BOOT_7),
422 GPIO_GROUP(BOOT_8),
423 GPIO_GROUP(BOOT_9),
424 GPIO_GROUP(BOOT_10),
425 GPIO_GROUP(BOOT_11),
426 GPIO_GROUP(BOOT_12),
427 GPIO_GROUP(BOOT_13),
428 GPIO_GROUP(BOOT_14),
429 GPIO_GROUP(BOOT_15),
430 GPIO_GROUP(BOOT_16),
431 GPIO_GROUP(BOOT_17),
432 GPIO_GROUP(BOOT_18),
433
406 GPIO_GROUP(DIF_0_P), 434 GPIO_GROUP(DIF_0_P),
407 GPIO_GROUP(DIF_0_N), 435 GPIO_GROUP(DIF_0_N),
408 GPIO_GROUP(DIF_1_P), 436 GPIO_GROUP(DIF_1_P),
@@ -622,7 +650,7 @@ static struct meson_pmx_group meson8b_aobus_groups[] = {
622 GROUP(i2s_lr_clk_in, 0, 14), 650 GROUP(i2s_lr_clk_in, 0, 14),
623}; 651};
624 652
625static const char * const gpio_groups[] = { 653static const char * const gpio_periphs_groups[] = {
626 "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4", 654 "GPIOX_0", "GPIOX_1", "GPIOX_2", "GPIOX_3", "GPIOX_4",
627 "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9", 655 "GPIOX_5", "GPIOX_6", "GPIOX_7", "GPIOX_8", "GPIOX_9",
628 "GPIOX_10", "GPIOX_11", "GPIOX_16", "GPIOX_17", "GPIOX_18", 656 "GPIOX_10", "GPIOX_11", "GPIOX_16", "GPIOX_17", "GPIOX_18",
@@ -646,16 +674,18 @@ static const char * const gpio_groups[] = {
646 "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14", 674 "BOOT_10", "BOOT_11", "BOOT_12", "BOOT_13", "BOOT_14",
647 "BOOT_15", "BOOT_16", "BOOT_17", "BOOT_18", 675 "BOOT_15", "BOOT_16", "BOOT_17", "BOOT_18",
648 676
649 "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3",
650 "GPIOAO_4", "GPIOAO_5", "GPIOAO_6", "GPIOAO_7",
651 "GPIOAO_8", "GPIOAO_9", "GPIOAO_10", "GPIOAO_11",
652 "GPIOAO_12", "GPIOAO_13", "GPIO_BSD_EN", "GPIO_TEST_N",
653
654 "DIF_0_P", "DIF_0_N", "DIF_1_P", "DIF_1_N", 677 "DIF_0_P", "DIF_0_N", "DIF_1_P", "DIF_1_N",
655 "DIF_2_P", "DIF_2_N", "DIF_3_P", "DIF_3_N", 678 "DIF_2_P", "DIF_2_N", "DIF_3_P", "DIF_3_N",
656 "DIF_4_P", "DIF_4_N" 679 "DIF_4_P", "DIF_4_N"
657}; 680};
658 681
682static const char * const gpio_aobus_groups[] = {
683 "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3",
684 "GPIOAO_4", "GPIOAO_5", "GPIOAO_6", "GPIOAO_7",
685 "GPIOAO_8", "GPIOAO_9", "GPIOAO_10", "GPIOAO_11",
686 "GPIOAO_12", "GPIOAO_13", "GPIO_BSD_EN", "GPIO_TEST_N"
687};
688
659static const char * const sd_a_groups[] = { 689static const char * const sd_a_groups[] = {
660 "sd_d0_a", "sd_d1_a", "sd_d2_a", "sd_d3_a", "sd_clk_a", 690 "sd_d0_a", "sd_d1_a", "sd_d2_a", "sd_d3_a", "sd_clk_a",
661 "sd_cmd_a" 691 "sd_cmd_a"
@@ -837,7 +867,7 @@ static const char * const tsin_b_groups[] = {
837}; 867};
838 868
839static struct meson_pmx_func meson8b_cbus_functions[] = { 869static struct meson_pmx_func meson8b_cbus_functions[] = {
840 FUNCTION(gpio), 870 FUNCTION(gpio_periphs),
841 FUNCTION(sd_a), 871 FUNCTION(sd_a),
842 FUNCTION(sdxc_a), 872 FUNCTION(sdxc_a),
843 FUNCTION(pcm_a), 873 FUNCTION(pcm_a),
@@ -871,6 +901,7 @@ static struct meson_pmx_func meson8b_cbus_functions[] = {
871}; 901};
872 902
873static struct meson_pmx_func meson8b_aobus_functions[] = { 903static struct meson_pmx_func meson8b_aobus_functions[] = {
904 FUNCTION(gpio_aobus),
874 FUNCTION(uart_ao), 905 FUNCTION(uart_ao),
875 FUNCTION(uart_ao_b), 906 FUNCTION(uart_ao_b),
876 FUNCTION(i2c_slave_ao), 907 FUNCTION(i2c_slave_ao),