From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C9F49CD5BAA for ; Wed, 20 May 2026 18:39:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=OihGU8GjnijwcJjYa7+wFrCgBMw2htDhLPLO3V9LDKo=; b=QIkhp9xcEMvnILofzXNcVZdqmd a/NFo6bVvVTuAHAzJIO/VTJJgMlTaKmgRZhJcaoEgm9SGCRIF470JaZbEDuczS8kGhOQfOg/P/WMP NQvuHtN2WPQRoAMcc9StSYI9uidIBD8T1rgUfYzzUYm0K1mGUhHsl8rA55Z6h9HkBgjxA8pG9HtTY 2MzQMn7nD2SYKtSB0LfOzGHtYGQnDsJuHirOZdCMt2nLIthE+LvBPMtRBPMfC3xi4q7EgReWPX2p4 NzP4P5HPLSe+RbeobTHH92yvF000wvanLAQLdjNx5bn1TyHHIzaFoRHCHbztKLTFuf2qB3zk935x5 br/CfD4Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wPlpD-00000005U9R-0zg7; Wed, 20 May 2026 18:39:23 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wPloh-00000005Syl-2nTo for linux-arm-kernel@lists.infradead.org; Wed, 20 May 2026 18:38:52 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id EEAF140246; Wed, 20 May 2026 18:38:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id EDED81F000E9; Wed, 20 May 2026 18:38:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1779302330; bh=OihGU8GjnijwcJjYa7+wFrCgBMw2htDhLPLO3V9LDKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=KXZeHaPRR8PFRf6v3WbMGaE4h2e+phVAjclh6YrbU8/Lh30S1WnQh6D2cAZsKIvx3 ooj+c0nJ5zgvzWmRJtXqVxMBBqg9VEHsMzArwyApKImyeWf4TQYfxl+Uo9OuezgSS4 gHjbr0aoTi1PDTKJd0y2VdCVlbE/5NcqLEvW7W0Pvet4GQJvAYRxypzeWuWo2SHz0Q 20hjYFyodZ8pxrxtrPPKTwGKsDOCTTBMWx68/BeTG134a3OwHTK/ypOJ5GqSXxa9oz cHUc0Iawh0eeXsRkWgBW5jl1dOmZpPBPpo/qu8NUpG6lAJP5it3ASNgYGBDT+qSeAD htUD0N1w+PRRw== From: Arnd Bergmann To: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Arnd Bergmann , Christian Lamparter , Johannes Berg , Aaro Koskinen , Andreas Kemnade , Kevin Hilman , Roger Quadros , Tony Lindgren , Thomas Bogendoerfer , John Paul Adrian Glaubitz , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Linus Walleij , Bartosz Golaszewski , Dmitry Torokhov , Lee Jones , Pavel Machek , Matti Vaittinen , Florian Fainelli , Jonas Gorski , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , linux-wireless@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-sh@vger.kernel.org, linux-input@vger.kernel.org, linux-leds@vger.kernel.org, netdev@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 01/10] [v2] [net-next] net: dsa: b53: hide legacy gpiolib usage on non-mips Date: Wed, 20 May 2026 20:38:06 +0200 Message-Id: <20260520183815.2510387-2-arnd@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260520183815.2510387-1-arnd@kernel.org> References: <20260520183815.2510387-1-arnd@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260520_113851_748833_0C3F97B2 X-CRM114-Status: GOOD ( 19.81 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Arnd Bergmann The MIPS bcm53xx platform still uses the legacy gpiolib interfaces based on gpio numbers, but other platforms do not. Hide these interfaces inside of the existing #ifdef block and use the modern interfaces in the common parts of the driver to allow building it when the gpio_set_value() is left out of the kernel. Reviewed-by: Jonas Gorski Reviewed-by: Linus Walleij Reviewed-by: Florian Fainelli Reviewed-by: Bartosz Golaszewski Signed-off-by: Arnd Bergmann --- drivers/net/dsa/b53/b53_common.c | 17 +++++------------ drivers/net/dsa/b53/b53_priv.h | 25 +++++++++++++++++++------ 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 2c4131ed7e30..d838511ae674 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include @@ -965,17 +965,17 @@ EXPORT_SYMBOL(b53_configure_vlan); static void b53_switch_reset_gpio(struct b53_device *dev) { - int gpio = dev->reset_gpio; + struct gpio_desc *gpio = dev->reset_gpio; - if (gpio < 0) + if (IS_ERR(gpio)) return; /* Reset sequence: RESET low(50ms)->high(20ms) */ - gpio_set_value(gpio, 0); + gpiod_set_value(gpio, 0); mdelay(50); - gpio_set_value(gpio, 1); + gpiod_set_value(gpio, 1); mdelay(20); dev->current_page = 0xff; @@ -3092,7 +3092,6 @@ static int b53_switch_init(struct b53_device *dev) { u32 chip_id = dev->chip_id; unsigned int i; - int ret; if (is63xx(dev)) chip_id = BCM63XX_DEVICE_ID; @@ -3173,12 +3172,6 @@ static int b53_switch_init(struct b53_device *dev) return -ENOMEM; dev->reset_gpio = b53_switch_get_reset_gpio(dev); - if (dev->reset_gpio >= 0) { - ret = devm_gpio_request_one(dev->dev, dev->reset_gpio, - GPIOF_OUT_INIT_HIGH, "robo_reset"); - if (ret) - return ret; - } return 0; } diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index bd6849e5bb93..cd27a7344e89 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -148,7 +148,7 @@ struct b53_device { u8 duplex_reg; u8 jumbo_pm_reg; u8 jumbo_size_reg; - int reset_gpio; + struct gpio_desc *reset_gpio; u8 num_arl_bins; u16 num_arl_buckets; enum dsa_tag_protocol tag_protocol; @@ -467,23 +467,36 @@ static inline void b53_arl_search_read(struct b53_device *dev, u8 idx, #ifdef CONFIG_BCM47XX #include +#include #include -static inline int b53_switch_get_reset_gpio(struct b53_device *dev) +static inline struct gpio_desc *b53_switch_get_reset_gpio(struct b53_device *dev) { enum bcm47xx_board board = bcm47xx_board_get(); + int gpio, ret; switch (board) { case BCM47XX_BOARD_LINKSYS_WRT300NV11: case BCM47XX_BOARD_LINKSYS_WRT310NV1: - return 8; + gpio = 8; + break; default: - return bcm47xx_nvram_gpio_pin("robo_reset"); + gpio = bcm47xx_nvram_gpio_pin("robo_reset"); } + + if (!gpio_is_valid(gpio)) + return ERR_PTR(-EINVAL); + + ret = devm_gpio_request_one(dev->dev, gpio, + GPIOF_OUT_INIT_HIGH, "robo_reset"); + if (ret) + return ERR_PTR(ret); + + return gpio_to_desc(gpio); } #else -static inline int b53_switch_get_reset_gpio(struct b53_device *dev) +static inline struct gpio_desc *b53_switch_get_reset_gpio(struct b53_device *dev) { - return -ENOENT; + return ERR_PTR(-ENODEV); } #endif -- 2.39.5