]> git.sur5r.net Git - u-boot/blobdiff - drivers/pinctrl/meson/pinctrl-meson-gxbb.c
usb: ohci: change the NUM_EDs from 8 to 32
[u-boot] / drivers / pinctrl / meson / pinctrl-meson-gxbb.c
index 2fa840c21a787a02d2a7773f16a39096c29e015a..a8e47e3c4e824a71248021ae32fe0c8b5c5ac3e8 100644 (file)
@@ -1,10 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2016 - Beniamino Galvani <b.galvani@gmail.com>
  *
  * Based on code from Linux kernel:
  *   Copyright (C) 2016 Endless Mobile, Inc.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -14,7 +13,7 @@
 
 #include "pinctrl-meson.h"
 
-#define EE_OFF 14
+#define EE_OFF 15
 
 static const unsigned int emmc_nand_d07_pins[] = {
        PIN(BOOT_0, EE_OFF), PIN(BOOT_1, EE_OFF), PIN(BOOT_2, EE_OFF),
@@ -319,8 +318,6 @@ static const char * const gpio_periphs_groups[] = {
        "GPIOX_10", "GPIOX_11", "GPIOX_12", "GPIOX_13", "GPIOX_14",
        "GPIOX_15", "GPIOX_16", "GPIOX_17", "GPIOX_18", "GPIOX_19",
        "GPIOX_20", "GPIOX_21", "GPIOX_22",
-
-       "GPIO_TEST_N",
 };
 
 static const char * const emmc_groups[] = {
@@ -355,6 +352,8 @@ static const char * const gpio_aobus_groups[] = {
        "GPIOAO_0", "GPIOAO_1", "GPIOAO_2", "GPIOAO_3", "GPIOAO_4",
        "GPIOAO_5", "GPIOAO_6", "GPIOAO_7", "GPIOAO_8", "GPIOAO_9",
        "GPIOAO_10", "GPIOAO_11", "GPIOAO_12", "GPIOAO_13",
+
+       "GPIO_TEST_N",
 };
 
 static const char * const uart_ao_groups[] = {
@@ -391,14 +390,33 @@ static struct meson_pmx_func meson_gxbb_aobus_functions[] = {
        FUNCTION(i2c_slave_ao),
 };
 
+static struct meson_bank meson_gxbb_periphs_banks[] = {
+       /*   name    first                      last                    pullen  pull    dir     out     in  */
+       BANK("X",    PIN(GPIOX_0, EE_OFF),      PIN(GPIOX_22, EE_OFF),  4,  0,  4,  0,  12, 0,  13, 0,  14, 0),
+       BANK("Y",    PIN(GPIOY_0, EE_OFF),      PIN(GPIOY_16, EE_OFF),  1,  0,  1,  0,  3,  0,  4,  0,  5,  0),
+       BANK("DV",   PIN(GPIODV_0, EE_OFF),     PIN(GPIODV_29, EE_OFF), 0,  0,  0,  0,  0,  0,  1,  0,  2,  0),
+       BANK("H",    PIN(GPIOH_0, EE_OFF),      PIN(GPIOH_3, EE_OFF),   1, 20,  1, 20,  3, 20,  4, 20,  5, 20),
+       BANK("Z",    PIN(GPIOZ_0, EE_OFF),      PIN(GPIOZ_15, EE_OFF),  3,  0,  3,  0,  9,  0,  10, 0, 11,  0),
+       BANK("CARD", PIN(CARD_0, EE_OFF),       PIN(CARD_6, EE_OFF),    2, 20,  2, 20,  6, 20,  7, 20,  8, 20),
+       BANK("BOOT", PIN(BOOT_0, EE_OFF),       PIN(BOOT_17, EE_OFF),   2,  0,  2,  0,  6,  0,  7,  0,  8,  0),
+       BANK("CLK",  PIN(GPIOCLK_0, EE_OFF),    PIN(GPIOCLK_3, EE_OFF), 3, 28,  3, 28,  9, 28, 10, 28, 11, 28),
+};
+
+static struct meson_bank meson_gxbb_aobus_banks[] = {
+       /*   name    first              last               pullen  pull    dir     out     in  */
+       BANK("AO",   PIN(GPIOAO_0, 0),  PIN(GPIOAO_13, 0), 0,  0,  0, 16,  0,  0,  0, 16,  1,  0),
+};
+
 struct meson_pinctrl_data meson_gxbb_periphs_pinctrl_data = {
        .name           = "periphs-banks",
-       .pin_base       = 14,
+       .pin_base       = 15,
        .groups         = meson_gxbb_periphs_groups,
        .funcs          = meson_gxbb_periphs_functions,
-       .num_pins       = 120,
+       .banks          = meson_gxbb_periphs_banks,
+       .num_pins       = 119,
        .num_groups     = ARRAY_SIZE(meson_gxbb_periphs_groups),
        .num_funcs      = ARRAY_SIZE(meson_gxbb_periphs_functions),
+       .num_banks      = ARRAY_SIZE(meson_gxbb_periphs_banks),
 };
 
 struct meson_pinctrl_data meson_gxbb_aobus_pinctrl_data = {
@@ -406,9 +424,11 @@ struct meson_pinctrl_data meson_gxbb_aobus_pinctrl_data = {
        .pin_base       = 0,
        .groups         = meson_gxbb_aobus_groups,
        .funcs          = meson_gxbb_aobus_functions,
-       .num_pins       = 14,
+       .banks          = meson_gxbb_aobus_banks,
+       .num_pins       = 15,
        .num_groups     = ARRAY_SIZE(meson_gxbb_aobus_groups),
        .num_funcs      = ARRAY_SIZE(meson_gxbb_aobus_functions),
+       .num_banks      = ARRAY_SIZE(meson_gxbb_aobus_banks),
 };
 
 static const struct udevice_id meson_gxbb_pinctrl_match[] = {