]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: tegra186: Use generic macro for port definitions
authorKartik Rajput <kkartik@nvidia.com>
Fri, 10 Oct 2025 10:13:30 +0000 (15:43 +0530)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Thu, 16 Oct 2025 14:34:22 +0000 (16:34 +0200)
Introduce a generic macro TEGRA_GPIO_PORT to define SoC specific
ports macros. This simplifies the code and avoids unnecessary
duplication.

Suggested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Kartik Rajput <kkartik@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-tegra186.c

index 4d3db6e06eeb276b3dcc3e3ff3a717e6b6a17b13..7ea541d6d53779782b634134182444a55a1f28ea 100644 (file)
@@ -1002,14 +1002,17 @@ static int tegra186_gpio_probe(struct platform_device *pdev)
        return devm_gpiochip_add_data(&pdev->dev, &gpio->gpio, gpio);
 }
 
-#define TEGRA186_MAIN_GPIO_PORT(_name, _bank, _port, _pins)    \
-       [TEGRA186_MAIN_GPIO_PORT_##_name] = {                   \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
+#define TEGRA_GPIO_PORT(_prefix, _name, _bank, _port, _pins) \
+       [_prefix##_GPIO_PORT_##_name] = { \
+               .name = #_name, \
+               .bank = _bank, \
+               .port = _port, \
+               .pins = _pins, \
        }
 
+#define TEGRA186_MAIN_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA186_MAIN, _name, _bank, _port, _pins)
+
 static const struct tegra_gpio_port tegra186_main_ports[] = {
        TEGRA186_MAIN_GPIO_PORT( A, 2, 0, 7),
        TEGRA186_MAIN_GPIO_PORT( B, 3, 0, 7),
@@ -1045,13 +1048,8 @@ static const struct tegra_gpio_soc tegra186_main_soc = {
        .has_vm_support = false,
 };
 
-#define TEGRA186_AON_GPIO_PORT(_name, _bank, _port, _pins)     \
-       [TEGRA186_AON_GPIO_PORT_##_name] = {                    \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA186_AON_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA186_AON, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra186_aon_ports[] = {
        TEGRA186_AON_GPIO_PORT( S, 0, 1, 5),
@@ -1073,13 +1071,8 @@ static const struct tegra_gpio_soc tegra186_aon_soc = {
        .has_vm_support = false,
 };
 
-#define TEGRA194_MAIN_GPIO_PORT(_name, _bank, _port, _pins)    \
-       [TEGRA194_MAIN_GPIO_PORT_##_name] = {                   \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA194_MAIN_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA194_MAIN, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra194_main_ports[] = {
        TEGRA194_MAIN_GPIO_PORT( A, 1, 2, 8),
@@ -1129,13 +1122,8 @@ static const struct tegra_gpio_soc tegra194_main_soc = {
        .has_vm_support = true,
 };
 
-#define TEGRA194_AON_GPIO_PORT(_name, _bank, _port, _pins)     \
-       [TEGRA194_AON_GPIO_PORT_##_name] = {                    \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA194_AON_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA194_AON, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra194_aon_ports[] = {
        TEGRA194_AON_GPIO_PORT(AA, 0, 3, 8),
@@ -1155,13 +1143,8 @@ static const struct tegra_gpio_soc tegra194_aon_soc = {
        .has_vm_support = false,
 };
 
-#define TEGRA234_MAIN_GPIO_PORT(_name, _bank, _port, _pins)    \
-       [TEGRA234_MAIN_GPIO_PORT_##_name] = {                   \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA234_MAIN_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA234_MAIN, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra234_main_ports[] = {
        TEGRA234_MAIN_GPIO_PORT( A, 0, 0, 8),
@@ -1200,13 +1183,8 @@ static const struct tegra_gpio_soc tegra234_main_soc = {
        .has_vm_support = true,
 };
 
-#define TEGRA234_AON_GPIO_PORT(_name, _bank, _port, _pins)     \
-       [TEGRA234_AON_GPIO_PORT_##_name] = {                    \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA234_AON_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA234_AON, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra234_aon_ports[] = {
        TEGRA234_AON_GPIO_PORT(AA, 0, 4, 8),
@@ -1227,13 +1205,8 @@ static const struct tegra_gpio_soc tegra234_aon_soc = {
        .has_vm_support = false,
 };
 
-#define TEGRA241_MAIN_GPIO_PORT(_name, _bank, _port, _pins)    \
-       [TEGRA241_MAIN_GPIO_PORT_##_name] = {                   \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA241_MAIN_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA241_MAIN, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra241_main_ports[] = {
        TEGRA241_MAIN_GPIO_PORT(A, 0, 0, 8),
@@ -1258,13 +1231,8 @@ static const struct tegra_gpio_soc tegra241_main_soc = {
        .has_vm_support = false,
 };
 
-#define TEGRA241_AON_GPIO_PORT(_name, _bank, _port, _pins)     \
-       [TEGRA241_AON_GPIO_PORT_##_name] = {                    \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA241_AON_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA241_AON, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra241_aon_ports[] = {
        TEGRA241_AON_GPIO_PORT(AA, 0, 0, 8),
@@ -1280,13 +1248,8 @@ static const struct tegra_gpio_soc tegra241_aon_soc = {
        .has_vm_support = false,
 };
 
-#define TEGRA256_MAIN_GPIO_PORT(_name, _bank, _port, _pins)    \
-       [TEGRA256_MAIN_GPIO_PORT_##_name] = {                   \
-               .name = #_name,                                 \
-               .bank = _bank,                                  \
-               .port = _port,                                  \
-               .pins = _pins,                                  \
-       }
+#define TEGRA256_MAIN_GPIO_PORT(_name, _bank, _port, _pins) \
+       TEGRA_GPIO_PORT(TEGRA256_MAIN, _name, _bank, _port, _pins)
 
 static const struct tegra_gpio_port tegra256_main_ports[] = {
        TEGRA256_MAIN_GPIO_PORT(A, 0, 0, 8),