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

pinctrl: meson-gxl: add tsin_a pins

Add Tsin A pins to bank DV and X.
We don't have a driver for the tsin yet but since the tsin A pinmux is
enabled by default at boot time, declaring this pinmux is required to
properly operate on GPIOX.

Without this change, GPIOX 8, 9, 10 and 11 can't be driven as GPIO output
as the tsin A seems to have priority.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Jerome Brunet and committed by
Linus Walleij
5a6ae9b8 19a8a777

+36
+36
drivers/pinctrl/meson/pinctrl-meson-gxl.c
··· 243 243 static const unsigned int eth_link_led_pins[] = { PIN(GPIOZ_14, EE_OFF) }; 244 244 static const unsigned int eth_act_led_pins[] = { PIN(GPIOZ_15, EE_OFF) }; 245 245 246 + static const unsigned int tsin_a_d0_pins[] = { PIN(GPIODV_0, EE_OFF) }; 247 + static const unsigned int tsin_a_d0_x_pins[] = { PIN(GPIOX_10, EE_OFF) }; 248 + static const unsigned int tsin_a_clk_pins[] = { PIN(GPIODV_8, EE_OFF) }; 249 + static const unsigned int tsin_a_clk_x_pins[] = { PIN(GPIOX_11, EE_OFF) }; 250 + static const unsigned int tsin_a_sop_pins[] = { PIN(GPIODV_9, EE_OFF) }; 251 + static const unsigned int tsin_a_sop_x_pins[] = { PIN(GPIOX_8, EE_OFF) }; 252 + static const unsigned int tsin_a_d_valid_pins[] = { PIN(GPIODV_10, EE_OFF) }; 253 + static const unsigned int tsin_a_d_valid_x_pins[] = { PIN(GPIOX_9, EE_OFF) }; 254 + static const unsigned int tsin_a_fail_pins[] = { PIN(GPIODV_11, EE_OFF) }; 255 + static const unsigned int tsin_a_dp_pins[] = { 256 + PIN(GPIODV_1, EE_OFF), 257 + PIN(GPIODV_2, EE_OFF), 258 + PIN(GPIODV_3, EE_OFF), 259 + PIN(GPIODV_4, EE_OFF), 260 + PIN(GPIODV_5, EE_OFF), 261 + PIN(GPIODV_6, EE_OFF), 262 + PIN(GPIODV_7, EE_OFF), 263 + }; 264 + 246 265 static const struct pinctrl_pin_desc meson_gxl_aobus_pins[] = { 247 266 MESON_PIN(GPIOAO_0, 0), 248 267 MESON_PIN(GPIOAO_1, 0), ··· 440 421 GROUP(spi_miso, 5, 2), 441 422 GROUP(spi_ss0, 5, 1), 442 423 GROUP(spi_sclk, 5, 0), 424 + GROUP(tsin_a_sop_x, 6, 3), 425 + GROUP(tsin_a_d_valid_x, 6, 2), 426 + GROUP(tsin_a_d0_x, 6, 1), 427 + GROUP(tsin_a_clk_x, 6, 0), 443 428 444 429 /* Bank Z */ 445 430 GROUP(eth_mdio, 4, 23), ··· 492 469 GROUP(i2c_sck_c, 1, 10), 493 470 GROUP(pwm_b, 2, 11), 494 471 GROUP(pwm_d, 2, 12), 472 + GROUP(tsin_a_d0, 2, 4), 473 + GROUP(tsin_a_dp, 2, 3), 474 + GROUP(tsin_a_clk, 2, 2), 475 + GROUP(tsin_a_sop, 2, 1), 476 + GROUP(tsin_a_d_valid, 2, 0), 477 + GROUP(tsin_a_fail, 1, 31), 495 478 496 479 /* Bank BOOT */ 497 480 GROUP(emmc_nand_d07, 7, 31), ··· 704 675 "eth_link_led", "eth_act_led", 705 676 }; 706 677 678 + static const char * const tsin_a_groups[] = { 679 + "tsin_a_clk", "tsin_a_clk_x", "tsin_a_sop", "tsin_a_sop_x", 680 + "tsin_a_d_valid", "tsin_a_d_valid_x", "tsin_a_d0", "tsin_a_d0_x", 681 + "tsin_a_dp", "tsin_a_fail", 682 + }; 683 + 707 684 static const char * const gpio_aobus_groups[] = { 708 685 "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4", 709 686 "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9", ··· 782 747 FUNCTION(i2s_out), 783 748 FUNCTION(spdif_out), 784 749 FUNCTION(eth_led), 750 + FUNCTION(tsin_a), 785 751 }; 786 752 787 753 static struct meson_pmx_func meson_gxl_aobus_functions[] = {