From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de> To: Linus Walleij <linus.walleij@linaro.org>, Bartosz Golaszewski <bgolaszewski@baylibre.com> Cc: linux-gpio@vger.kernel.org, kernel@pengutronix.de, linux-arm-kernel@lists.infradead.org Subject: [PATCH RFC] gpio: define gpio-init nodes to initialize pins similar to hogs Date: Mon, 9 Sep 2019 12:59:19 +0200 [thread overview] Message-ID: <20190909105919.30418-1-u.kleine-koenig@pengutronix.de> (raw) Sometimes it is handy to be able to easily define a "safe" state for a GPIO. This might for example be used to ensure that an ethernet phy is properly reset during startup or just that all pins have a defined state to minimize leakage current. As such a pin must be requestable (and changable) by a device driver, a gpio-hog cannot be used. So define a GPIO initializer with a syntax identical to a GPIO hog just using "gpio-init" as identifier instead of "gpio-hog". The usage I have in mind (and also implemented in a custom patch stack on top of barebox already) is targeting the bootloader and not necessarily Linux as such an boot-up initialisation should be done as early as possible. Not-yet-signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- Hello, maybe it also makes sense to use "gpio-safe"? Maybe it (then) makes sense to reset the gpio in the indicated state after it is released? Also it might be beneficial to make the wording more explicit in the description and for example tell that only one of gpio-hog and gpio-init must be provided. Best regards Uwe Documentation/devicetree/bindings/gpio/gpio.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index a8895d339bfe..5b7883f5520f 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt @@ -182,13 +182,16 @@ gpio-controller@00000000 { "poweroff", "reset"; } -The GPIO chip may contain GPIO hog definitions. GPIO hogging is a mechanism -providing automatic GPIO request and configuration as part of the -gpio-controller's driver probe function. +The GPIO chip may contain GPIO hog and init definitions. GPIO hogging is a +mechanism providing automatic GPIO request and configuration as part of the +gpio-controller's driver probe function. An GPIO initializer is similar but +doesn't prevent later requesting and reconfiguration. Each GPIO hog definition is represented as a child node of the GPIO controller. Required properties: - gpio-hog: A property specifying that this child node represents a GPIO hog. +- gpio-init: A property specifying that this child node represents a GPIO + initializer. - gpios: Store the GPIO information (id, flags, ...) for each GPIO to affect. Shall contain an integer multiple of the number of cells specified in its parent node (GPIO controller node). -- 2.23.0
WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de> To: Linus Walleij <linus.walleij@linaro.org>, Bartosz Golaszewski <bgolaszewski@baylibre.com> Cc: linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de Subject: [PATCH RFC] gpio: define gpio-init nodes to initialize pins similar to hogs Date: Mon, 9 Sep 2019 12:59:19 +0200 [thread overview] Message-ID: <20190909105919.30418-1-u.kleine-koenig@pengutronix.de> (raw) Sometimes it is handy to be able to easily define a "safe" state for a GPIO. This might for example be used to ensure that an ethernet phy is properly reset during startup or just that all pins have a defined state to minimize leakage current. As such a pin must be requestable (and changable) by a device driver, a gpio-hog cannot be used. So define a GPIO initializer with a syntax identical to a GPIO hog just using "gpio-init" as identifier instead of "gpio-hog". The usage I have in mind (and also implemented in a custom patch stack on top of barebox already) is targeting the bootloader and not necessarily Linux as such an boot-up initialisation should be done as early as possible. Not-yet-signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- Hello, maybe it also makes sense to use "gpio-safe"? Maybe it (then) makes sense to reset the gpio in the indicated state after it is released? Also it might be beneficial to make the wording more explicit in the description and for example tell that only one of gpio-hog and gpio-init must be provided. Best regards Uwe Documentation/devicetree/bindings/gpio/gpio.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/gpio.txt b/Documentation/devicetree/bindings/gpio/gpio.txt index a8895d339bfe..5b7883f5520f 100644 --- a/Documentation/devicetree/bindings/gpio/gpio.txt +++ b/Documentation/devicetree/bindings/gpio/gpio.txt @@ -182,13 +182,16 @@ gpio-controller@00000000 { "poweroff", "reset"; } -The GPIO chip may contain GPIO hog definitions. GPIO hogging is a mechanism -providing automatic GPIO request and configuration as part of the -gpio-controller's driver probe function. +The GPIO chip may contain GPIO hog and init definitions. GPIO hogging is a +mechanism providing automatic GPIO request and configuration as part of the +gpio-controller's driver probe function. An GPIO initializer is similar but +doesn't prevent later requesting and reconfiguration. Each GPIO hog definition is represented as a child node of the GPIO controller. Required properties: - gpio-hog: A property specifying that this child node represents a GPIO hog. +- gpio-init: A property specifying that this child node represents a GPIO + initializer. - gpios: Store the GPIO information (id, flags, ...) for each GPIO to affect. Shall contain an integer multiple of the number of cells specified in its parent node (GPIO controller node). -- 2.23.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2019-09-09 11:00 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-09 10:59 Uwe Kleine-König [this message] 2019-09-09 10:59 ` [PATCH RFC] gpio: define gpio-init nodes to initialize pins similar to hogs Uwe Kleine-König 2019-09-12 9:05 ` Linus Walleij 2019-09-12 9:05 ` Linus Walleij 2019-09-12 10:06 ` Uwe Kleine-König 2019-09-12 10:06 ` Uwe Kleine-König 2019-09-12 10:06 ` Uwe Kleine-König
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190909105919.30418-1-u.kleine-koenig@pengutronix.de \ --to=u.kleine-koenig@pengutronix.de \ --cc=bgolaszewski@baylibre.com \ --cc=kernel@pengutronix.de \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.