From nobody Thu Oct 2 23:50:51 2025 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3787830F554 for ; Wed, 10 Sep 2025 07:13:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488407; cv=none; b=s5ouSH3z0ryaR5K0eFUQA1V2aEq6zxgOeoG36cJrCNSeqxod5XIM/qntdWPzQWwdpsyxr+YSP2tbP3c6eojEBoMnNisrb80xuaLPj3NPHLpiW1rkhikb8L2n86n0KJ2zJs1Di1i48nYfU67IkkHqra6w88JAa+GZimRCLpnS9Vc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757488407; c=relaxed/simple; bh=HibveWzwd76lNGw0hoPtFesB/eis3CiQnF9lnEPr4gs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Hmrdnd1IleCIassJ5jIzK2Vhv0bk3uAlY94Dnh73TPq4eyBKRYGIqNniYvhXWGaRzCcu4n/7hzz87GMIGclkh7+KAUcHY/FemkpVwwNG0eqBV0feIBd+uDA2ktEuQNSxZQbs6P8ga24eap5D2HwmRP7pYXhyOng+D516iLV0uOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=vA+B/bNb; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="vA+B/bNb" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-45cb5e5e71eso33013995e9.2 for ; Wed, 10 Sep 2025 00:13:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1757488404; x=1758093204; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PgdrM4aJRYrczpVTjbdMrpsxOv5ioO0+n1bSkbQmCXA=; b=vA+B/bNbiZu7bdrvlpeUmw1JmImq8u0fymaMMsBQetW7/1iItk9i8sdMI4J3DF8aBT MXsO+NEGvqaAWDbMgTGV0yBSPhFFQjccj5E1dGjUanpaiMd6vK1ApyBc8NaZZ/COFsJu vKuE4Gx4h4Hi/mjuREa3qGgxQ06mwPA2UEY6kw8bu4IQMAfDe3aJswIIXrcKa+zaCXc3 U3rYGY2h+8puHKA6QtAQjPUeQHKxt4GI0zNfGVTodok6WIPKYxBIJMsRHfh4mMmU8ljb HnohN7Na3I1jts2CxJzaYvegsCwnFxyyX9joyH5/vdpRY0iqHVIanXQ1ImFQp4nRB3b5 AsxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757488404; x=1758093204; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PgdrM4aJRYrczpVTjbdMrpsxOv5ioO0+n1bSkbQmCXA=; b=UIkNHgY9bomNq0NEI/ihOjKFU7b6FYbQ8NvimotXo+qFOUahslAZQ6EgwgiNt53Ktk jr8JF9GRrcWNztXPvThizbbQnxeUVAt+xMu/ALA2+NUqkvGOo27JkX2+h1Jr2h0TauQC KP3OE4HdcFpuHhk/bDYb+V8jJltMhFhkYXqevEzD0XfkXEBioaRtwKmTOJp7nOO17Zx4 Y6ploUBznCZnxb4RftO5hb8Bff2cbxpaeSFxIo5kdlq3G7dLxV7+c1nH/RgzvFckQj1B TxDju8dnrBYxy5Y+DDLqz2s8b/GVuF6I/fz3p/rkIBdm7a791dY5Qe17hj3NsJku5ja6 EJ3g== X-Forwarded-Encrypted: i=1; AJvYcCVzFZmW1w7msClJC+COrSTj+czjIHpFjqf05XCRDR0Ec50P6HClvjk5gEYIuJD01Owgik4OVphDcC8TXBw=@vger.kernel.org X-Gm-Message-State: AOJu0Yyk8vD10tHJKL7VWNzB++dNEnSa58cT2jIxnvtfCgNthl6WE8of vTj+ofqhUA5FcLl7S8HhYqUdJbDMVwwDiFtR1uZwNm4hGTqdUwbYiHWtlQBdCi5dzXU= X-Gm-Gg: ASbGncv/aygG5Kn819lM3GDu0z2QjPOKh1WU5IugiD6OgHG4vgykM/ghxJHLL+N4eyz OKSgWMpqy0mRJBYcT+7L2zXJgQ8oPKTMzSQckFYLSTt9j74+XAQjGXrtxPN0iNqWJ77G7ViX6cs 921TfpwAmQSOubWZ/RqJnz21ieWvuYohh3k8vQYG8o9jR7Z0FSmb802RUiPHI2JEOKgZTFHKZAb 6acnXiFxqxToS+j3wekpOfrX4c3RF1pM6WlbhDkom+EdMNTILwIb+0KSOtVDXYocgtFWTF5X54D CsXytdEvlGthOrCOlGPLV7BOTtxw++kezgD2IexqGLNVF7SHU+LtwLTjyVA1vRWxgSj2zTC0XKB 3go/DYwpVyPpGt5P6/5qSxEtwKf79oRnpQITrDw== X-Google-Smtp-Source: AGHT+IH52c0NDjTg92BlFI1StBbf2SlfXbs3hSBtxvJaf6s0LfTwWHF4zDme3188iCv7fISkb9TvkA== X-Received: by 2002:a05:600c:548a:b0:458:bfb1:1fb6 with SMTP id 5b1f17b1804b1-45ddde6a471mr110866285e9.2.1757488403590; Wed, 10 Sep 2025 00:13:23 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:3936:709a:82c4:3e38]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45df81d20d2sm16357035e9.8.2025.09.10.00.13.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Sep 2025 00:13:22 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 10 Sep 2025 09:12:50 +0200 Subject: [PATCH v2 14/15] gpio: mmio: use new generic GPIO chip API Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250910-gpio-mmio-gpio-conv-part4-v2-14-f3d1a4c57124@linaro.org> References: <20250910-gpio-mmio-gpio-conv-part4-v2-0-f3d1a4c57124@linaro.org> In-Reply-To: <20250910-gpio-mmio-gpio-conv-part4-v2-0-f3d1a4c57124@linaro.org> To: Linus Walleij , Bartosz Golaszewski , Keguang Zhang , Alban Bedel , Doug Berger , Florian Fainelli , Broadcom internal kernel review list , Matthias Brugger , AngeloGioacchino Del Regno , Paul Walmsley , Samuel Holland , Yixun Lan , Andy Shevchenko Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2870; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=jTYzXHXb5czFalzYciLNM7kw2y7Wfknx1rBEQWD7H2o=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBowSTvYeCo2U5//1kw2eyb8GaFucYbACnhM1h1b j06xC/+zTqJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaMEk7wAKCRARpy6gFHHX cjZVD/9AFqlvniqbT8HvF7F7bzr3GPnqTQ0kCgmRscqp7Q9nkhIRz798jAllvC7arbNGc6Bd/RR C64IshK/9T6PmCTb+thHDxg39m28kKBoWH+p2PNkHLz4ekmmyLblZKGwCzUYg2qMavLi1t7OOgr 3QuG/P4WFoXwe9ty7Z44O2ZITUKFWF+aq45RponrykKQtLfyg+257GPvlx+qj5oTiXV5jxsaEbM 0Lptqy1v/MepVKY7QL9OW5xP4U2OnpLLHcIaxF7bN9z28L4JcII4h3oJn6B3NDss+cLn3uVNSX2 4vCnNMIiibPIFdgzJvDuIU0HP4Rgvge9/sJZdobf/KwcIf1ZlrnqH7trBjzQ+v8tXlMhY44M8mE mSYlYN77g00pU1hZMXt2ptHkrBwtY+oknQfieQe31B9bzQT4nLf/yW7hohCkD8oR1YcVIPEoHGX 4zh+hMw/Z9e6srBa1u0J0TMB7l6igulBC6BiOqd1qoxvJzxS1KvcYCKGv0bnjbEDiu94Ad+KF4F JUSl6rEBXpdR4lLTQ8P0T8cgh+b+v0l9cz6IpL2gRujbwWSF8wWko1Oe+l8Ob9qw673A1dV2UTI ELiQzt6TSguDmVitgU2Yu2NxFJAoOQfbuBnYqdqbb7DaNGlNAxUxeZNc8EpHHrdQNm5PMxraSAM iP+AJ2/RibBc5cg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Convert the driver to using the new generic GPIO chip interfaces from linux/gpio/generic.h. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mmio.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/drivers/gpio/gpio-mmio.c b/drivers/gpio/gpio-mmio.c index 79e1be149c94842cb6fa6b657343b11e78701220..b4f0ab0daaeb11bd88723f8b1c1= 5bd09225f1d97 100644 --- a/drivers/gpio/gpio-mmio.c +++ b/drivers/gpio/gpio-mmio.c @@ -57,6 +57,7 @@ o ` ~~~~\___/~~~~ ` control= ler in FPGA is ,.` #include =20 #include +#include =20 #include "gpiolib.h" =20 @@ -737,6 +738,8 @@ MODULE_DEVICE_TABLE(of, bgpio_of_match); =20 static int bgpio_pdev_probe(struct platform_device *pdev) { + struct gpio_generic_chip_config config; + struct gpio_generic_chip *gen_gc; struct device *dev =3D &pdev->dev; struct resource *r; void __iomem *dat; @@ -748,7 +751,6 @@ static int bgpio_pdev_probe(struct platform_device *pde= v) unsigned long flags =3D 0; unsigned int base; int err; - struct gpio_chip *gc; const char *label; =20 r =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "dat"); @@ -777,8 +779,8 @@ static int bgpio_pdev_probe(struct platform_device *pde= v) if (IS_ERR(dirin)) return PTR_ERR(dirin); =20 - gc =3D devm_kzalloc(&pdev->dev, sizeof(*gc), GFP_KERNEL); - if (!gc) + gen_gc =3D devm_kzalloc(&pdev->dev, sizeof(*gen_gc), GFP_KERNEL); + if (!gen_gc) return -ENOMEM; =20 if (device_is_big_endian(dev)) @@ -787,13 +789,24 @@ static int bgpio_pdev_probe(struct platform_device *p= dev) if (device_property_read_bool(dev, "no-output")) flags |=3D BGPIOF_NO_OUTPUT; =20 - err =3D bgpio_init(gc, dev, sz, dat, set, clr, dirout, dirin, flags); + config =3D (struct gpio_generic_chip_config) { + .dev =3D dev, + .sz =3D sz, + .dat =3D dat, + .set =3D set, + .clr =3D clr, + .dirout =3D dirout, + .dirin =3D dirin, + .flags =3D flags, + }; + + err =3D gpio_generic_chip_init(gen_gc, &config); if (err) return err; =20 err =3D device_property_read_string(dev, "label", &label); if (!err) - gc->label =3D label; + gen_gc->gc.label =3D label; =20 /* * This property *must not* be used in device-tree sources, it's only @@ -801,11 +814,11 @@ static int bgpio_pdev_probe(struct platform_device *p= dev) */ err =3D device_property_read_u32(dev, "gpio-mmio,base", &base); if (!err && base <=3D INT_MAX) - gc->base =3D base; + gen_gc->gc.base =3D base; =20 - platform_set_drvdata(pdev, gc); + platform_set_drvdata(pdev, &gen_gc->gc); =20 - return devm_gpiochip_add_data(&pdev->dev, gc, NULL); + return devm_gpiochip_add_data(&pdev->dev, &gen_gc->gc, NULL); } =20 static const struct platform_device_id bgpio_id_table[] =3D { --=20 2.48.1