From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A374367F39 for ; Wed, 11 Feb 2026 10:58:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.171.202.116 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770807527; cv=none; b=paIeaTsWhcg00Dz0DqBl+F+rtIlErpIyl51UWF6Aacp4jo/mjbCv2Df5fXqgLp2mE8jVU+1ZPMLXkj3zfRlTdQifWQ6laFaa+uvzN3gt0XDffkRd1Qq00ji008+BozLY8Ahlb4YWVX8ogM4kUuOq8vushRsm2g2gUh4Pev5hVEw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770807527; c=relaxed/simple; bh=wiBnKzGmkKejPRVzA4JzkrvhZirsvgKktO17sAb5qjI=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aPaDwl1OIy4Z9vbXH6CF+x7arI/+M4eHTnHkbSu/QEfdjk/78V/+qxSfqy+liH+orYInlWTn2qVvNkuPDJGSCiTG6d4SJzfKcLZdWHGHJPkpGTzkawctgm4EQsqWQFYLcJgt4W03feUzpIFkkOq66zBRagGtbtmSmaD0GZ3cGYk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=rXZ2glk4; arc=none smtp.client-ip=185.171.202.116 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="rXZ2glk4" Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-04.galae.net (Postfix) with ESMTPS id 73DC7C243AB; Wed, 11 Feb 2026 10:58:51 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 948BD606BE; Wed, 11 Feb 2026 10:58:42 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id B041711948CDE; Wed, 11 Feb 2026 11:58:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1770807521; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=sUiIQ8yvJ1tDaH4jiMQ9ZLLPcRdaOjCdIjoUMLb16/o=; b=rXZ2glk4DGqvdeb0MLGVtFABZtah+qWCKK6xMHbZ5pdfLqL7ImtKtcGCAJx36Y08x8WUDJ ZqV4g8z5dUBTtAB+/B4FAbutN8t02/v7P+ch6f2OUnwUr+fzcAEzHEhxGWriw6/n2GDSvi pgRtOC+WuOmFwrx9OmGvXjR/mN+Y+TXAqr1Lwgt4yepqTZ2Dehhq3yBhNb7GQrXC5ocUB6 UWr36P0kffTsvOArU1bCSLgTFECZ8ZahS/rzZmZgaWlQrIcoO79n68VjGVy3klzr9jQJUS 5R7mJfT/EK+qbEHku92XAbeYNKcuhJyVcq9nTfuKML84jKa2QbwQQGagBzHl3g== Date: Wed, 11 Feb 2026 11:58:37 +0100 From: Herve Codina To: Geert Uytterhoeven Cc: James Hilliard , linux-gpio@vger.kernel.org, Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alexander Stein , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] dt-bindings: gpio: add gpio-aggregator binding Message-ID: <20260211115837.265c46cd@bootlin.com> In-Reply-To: References: <20260211081355.3028947-1-james.hilliard1@gmail.com> <20260211105735.0e8e65b4@bootlin.com> Organization: Bootlin X-Mailer: Claws Mail 4.3.1 (GTK 3.24.49; x86_64-redhat-linux-gnu) 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: 8bit X-Last-TLS-Session-Version: TLSv1.3 On Wed, 11 Feb 2026 11:01:24 +0100 Geert Uytterhoeven wrote: > Hi Hervé, > > On Wed, 11 Feb 2026 at 10:57, Herve Codina wrote: > > On Wed, 11 Feb 2026 10:47:53 +0100 > > Geert Uytterhoeven wrote: > > > On Wed, 11 Feb 2026 at 09:35, James Hilliard wrote: > > > > On Wed, Feb 11, 2026 at 1:26 AM Geert Uytterhoeven wrote: > > > > > On Wed, 11 Feb 2026 at 09:14, James Hilliard wrote: > > > > > > Document the gpio-aggregator virtual GPIO controller with a dedicated > > > > > > schema and compatible string. > > > > > > > > > > > > Also extend the GPIO AGGREGATOR MAINTAINERS entry to cover the new > > > > > > binding file. > > > > > > > > > > > > Signed-off-by: James Hilliard > > > > > > > > > > > --- /dev/null > > > > > > +++ b/Documentation/devicetree/bindings/gpio/gpio-aggregator.yaml > > > > > > @@ -0,0 +1,54 @@ > > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > > +%YAML 1.2 > > > > > > +--- > > > > > > +$id: http://devicetree.org/schemas/gpio/gpio-aggregator.yaml# > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > + > > > > > > +title: GPIO aggregator controller > > > > > > + > > > > > > +maintainers: > > > > > > + - Alexander Stein > > > > > > + > > > > > > +description: > > > > > > + GPIO aggregator forwards selected GPIO lines from one or more GPIO > > > > > > + controllers and exposes them as a virtual GPIO controller. > > > > > > > > > > > +examples: > > > > > > + - | > > > > > > + #include > > > > > > + > > > > > > + gpio_agg: gpio-aggregator { > > > > > > + compatible = "gpio-aggregator"; > > > > > > + #gpio-cells = <2>; > > > > > > + gpio-controller; > > > > > > + gpios = <&gpio0 3 GPIO_ACTIVE_LOW>, > > > > > > + <&gpio3 1 GPIO_ACTIVE_HIGH>; > > > > > > + gpio-line-names = "modem-reset", "modem-enable"; > > > > > > + }; > > > > > > > > > > Looking at the example, it seems you intend to use the gpio-aggregator > > > > > as a "Generic GPIO Driver", like in the example in the documentation[1]. > > > > > Hence I think you should not introduce and abuse the "gpio-aggregator" > > > > > compatible value for this, but instead: > > > > > 1. Use a proper compatible value that matches your device, > > > > > 2. Write proper DT bindings for the device, > > > > > 3. Add the proper device's compatible value to the gpio-aggregator > > > > > driver's match table. > > > > > The above is very similar to how spidev is handled, which also forbids > > > > > using the spidev compatible value in DTS. > > > > > > > > Isn't this gpio-aggregator driver supposed to be non-hardware > > > > specific? > > > > > > > > I'm trying to use it as described here, I noticed the compatible > > > > in the blog post was missing and just needed adding to the > > > > driver: https://bootlin.com/blog/gpio-aggregator-a-virtual-gpio-chip/ > > > > > > Let's kick Hervé to fix that ;-) > > > > Where is it missing ? > > In the driver ;-) > > DTS must never use 'compatible = "gpio-aggregator"'. Why? gpio-aggregator can be used as a virtual device to aggregate GPIOs for user-space. I think we should have 'compatible = "gpio-aggregator"' in dts. Best regards, Hervé