* dt-bindings: ps2-gpio: convert binding to json-schema
@ 2022-02-15 18:08 Danilo Krummrich
2022-02-15 18:08 ` [PATCH v3 1/3] " Danilo Krummrich
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-15 18:08 UTC (permalink / raw)
To: krzysztof.kozlowski, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij
Changes since v1
================
- binding as separate patch (driver patch will be sent outside the scope of
this patch series)
- fixes requested by Krzysztof
- fix warnings/errors reported by 'make dt_binding_check'
Changes since v2
================
- add the driver patch to enforce open drain GPIO flags again
- fix additionalProperties: false
This series converts the ps2-gpio dt-binding to the json-schema.
Additionally, it documents (in the dt-binding) and enforces to flag the
given gpios as open drain, since the PS/2 bus is open drain by
definition.
Danilo Krummrich (3):
dt-bindings: ps2-gpio: convert binding to json-schema
dt-bindings: ps2-gpio: document bus signals open drain
input: ps2-gpio: enforce GPIOs flag open drain
Documentation/devicetree/bindings/serio/ps2-gpio.txt | 23 -----------------------
Documentation/devicetree/bindings/serio/ps2-gpio.yaml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
drivers/input/serio/ps2-gpio.c | 9 +++++++--
3 files changed, 71 insertions(+), 25 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.txt
create mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.yaml
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 1/3] dt-bindings: ps2-gpio: convert binding to json-schema
2022-02-15 18:08 dt-bindings: ps2-gpio: convert binding to json-schema Danilo Krummrich
@ 2022-02-15 18:08 ` Danilo Krummrich
2022-02-16 7:19 ` Krzysztof Kozlowski
2022-02-15 18:08 ` [PATCH v3 2/3] dt-bindings: ps2-gpio: document bus signals open drain Danilo Krummrich
2022-02-15 18:08 ` [PATCH v3 3/3] input: ps2-gpio: enforce GPIOs flag " Danilo Krummrich
2 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-15 18:08 UTC (permalink / raw)
To: krzysztof.kozlowski, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij, Danilo Krummrich
Convert the ps2-gpio dt-binding documentation to DT schema format using
the json-schema.
Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
---
.../devicetree/bindings/serio/ps2-gpio.txt | 23 --------
.../devicetree/bindings/serio/ps2-gpio.yaml | 58 +++++++++++++++++++
2 files changed, 58 insertions(+), 23 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.txt
create mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.yaml
diff --git a/Documentation/devicetree/bindings/serio/ps2-gpio.txt b/Documentation/devicetree/bindings/serio/ps2-gpio.txt
deleted file mode 100644
index 7b7bc9cdf986..000000000000
--- a/Documentation/devicetree/bindings/serio/ps2-gpio.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Device-Tree binding for ps/2 gpio device
-
-Required properties:
- - compatible = "ps2-gpio"
- - data-gpios: the data pin
- - clk-gpios: the clock pin
- - interrupts: Should trigger on the falling edge of the clock line.
-
-Optional properties:
- - write-enable: Indicates whether write function is provided
- to serio device. Possibly providing the write fn will not work, because
- of the tough timing requirements.
-
-Example nodes:
-
-ps2@0 {
- compatible = "ps2-gpio";
- interrupt-parent = <&gpio>;
- interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
- data-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
- clk-gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
- write-enable;
-};
diff --git a/Documentation/devicetree/bindings/serio/ps2-gpio.yaml b/Documentation/devicetree/bindings/serio/ps2-gpio.yaml
new file mode 100644
index 000000000000..304132fd30c5
--- /dev/null
+++ b/Documentation/devicetree/bindings/serio/ps2-gpio.yaml
@@ -0,0 +1,58 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/serio/ps2-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for GPIO based PS/2
+
+maintainers:
+ - Danilo Krummrich <danilokrummrich@dk-develop.de>
+
+properties:
+ compatible:
+ const: ps2-gpio
+
+ data-gpios:
+ description:
+ the gpio used for the data signal
+ maxItems: 1
+
+ clk-gpios:
+ description:
+ the gpio used for the clock signal
+ maxItems: 1
+
+ interrupts:
+ description:
+ The given interrupt should trigger on the falling edge of the clock line.
+ maxItems: 1
+
+ write-enable:
+ type: boolean
+ description:
+ Indicates whether write function is provided to serio device. Possibly
+ providing the write function will not work, because of the tough timing
+ requirements.
+
+required:
+ - compatible
+ - data-gpios
+ - clk-gpios
+ - interrupts
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ ps2 {
+ compatible = "ps2-gpio";
+ interrupt-parent = <&gpio>;
+ interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+ data-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
+ clk-gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
+ write-enable;
+ };
--
2.35.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 2/3] dt-bindings: ps2-gpio: document bus signals open drain
2022-02-15 18:08 dt-bindings: ps2-gpio: convert binding to json-schema Danilo Krummrich
2022-02-15 18:08 ` [PATCH v3 1/3] " Danilo Krummrich
@ 2022-02-15 18:08 ` Danilo Krummrich
2022-02-16 7:19 ` Krzysztof Kozlowski
2022-02-15 18:08 ` [PATCH v3 3/3] input: ps2-gpio: enforce GPIOs flag " Danilo Krummrich
2 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-15 18:08 UTC (permalink / raw)
To: krzysztof.kozlowski, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij, Danilo Krummrich
The PS/2 bus defines data and clock line to be open drain, this should
be reflected in the gpio flags set in the binding.
Especially, this is important since the clock line sometimes is driven
by the host while being used as interrupt source.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
---
.../devicetree/bindings/serio/ps2-gpio.yaml | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/serio/ps2-gpio.yaml b/Documentation/devicetree/bindings/serio/ps2-gpio.yaml
index 304132fd30c5..a63d9172346f 100644
--- a/Documentation/devicetree/bindings/serio/ps2-gpio.yaml
+++ b/Documentation/devicetree/bindings/serio/ps2-gpio.yaml
@@ -15,12 +15,18 @@ properties:
data-gpios:
description:
- the gpio used for the data signal
+ the gpio used for the data signal - this should be flagged as
+ active high using open drain with (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)
+ from <dt-bindings/gpio/gpio.h> since the signal is open drain by
+ definition
maxItems: 1
clk-gpios:
description:
- the gpio used for the clock signal
+ the gpio used for the clock signal - this should be flagged as
+ active high using open drain with (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)
+ from <dt-bindings/gpio/gpio.h> since the signal is open drain by
+ definition
maxItems: 1
interrupts:
@@ -52,7 +58,7 @@ examples:
compatible = "ps2-gpio";
interrupt-parent = <&gpio>;
interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
- data-gpios = <&gpio 24 GPIO_ACTIVE_HIGH>;
- clk-gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
+ data-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ clk-gpios = <&gpio 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
write-enable;
};
--
2.35.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v3 3/3] input: ps2-gpio: enforce GPIOs flag open drain
2022-02-15 18:08 dt-bindings: ps2-gpio: convert binding to json-schema Danilo Krummrich
2022-02-15 18:08 ` [PATCH v3 1/3] " Danilo Krummrich
2022-02-15 18:08 ` [PATCH v3 2/3] dt-bindings: ps2-gpio: document bus signals open drain Danilo Krummrich
@ 2022-02-15 18:08 ` Danilo Krummrich
2022-02-15 22:56 ` Dmitry Torokhov
2 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-15 18:08 UTC (permalink / raw)
To: krzysztof.kozlowski, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij, Danilo Krummrich
The PS/2 bus defines the data and clock line be open drain, therefore
for both enforce the particular GPIO flags in the driver.
Without enforcing to flag at least the clock gpio as open drain we run
into the following warning:
WARNING: CPU: 1 PID: 40 at drivers/gpio/gpiolib.c:3175 gpiochip_enable_irq+0x54/0x90
gpiochip_enable_irq() warns on a GPIO being configured as output while
serving as IRQ source without being flagged as open drain.
Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
---
drivers/input/serio/ps2-gpio.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/input/serio/ps2-gpio.c b/drivers/input/serio/ps2-gpio.c
index 8970b49ea09a..f562f396ba05 100644
--- a/drivers/input/serio/ps2-gpio.c
+++ b/drivers/input/serio/ps2-gpio.c
@@ -322,14 +322,19 @@ static irqreturn_t ps2_gpio_irq(int irq, void *dev_id)
static int ps2_gpio_get_props(struct device *dev,
struct ps2_gpio_data *drvdata)
{
- drvdata->gpio_data = devm_gpiod_get(dev, "data", GPIOD_IN);
+ enum gpiod_flags gflags;
+
+ /* Enforce open drain, since this is required by the PS/2 bus. */
+ gflags = GPIOD_IN | GPIOD_FLAGS_BIT_OPEN_DRAIN;
+
+ drvdata->gpio_data = devm_gpiod_get(dev, "data", gflags);
if (IS_ERR(drvdata->gpio_data)) {
dev_err(dev, "failed to request data gpio: %ld",
PTR_ERR(drvdata->gpio_data));
return PTR_ERR(drvdata->gpio_data);
}
- drvdata->gpio_clk = devm_gpiod_get(dev, "clk", GPIOD_IN);
+ drvdata->gpio_clk = devm_gpiod_get(dev, "clk", gflags);
if (IS_ERR(drvdata->gpio_clk)) {
dev_err(dev, "failed to request clock gpio: %ld",
PTR_ERR(drvdata->gpio_clk));
--
2.35.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 3/3] input: ps2-gpio: enforce GPIOs flag open drain
2022-02-15 18:08 ` [PATCH v3 3/3] input: ps2-gpio: enforce GPIOs flag " Danilo Krummrich
@ 2022-02-15 22:56 ` Dmitry Torokhov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Torokhov @ 2022-02-15 22:56 UTC (permalink / raw)
To: Danilo Krummrich
Cc: krzysztof.kozlowski, robh+dt, devicetree, linux-input,
linux-kernel, linus.walleij
On Tue, Feb 15, 2022 at 07:08:29PM +0100, Danilo Krummrich wrote:
> The PS/2 bus defines the data and clock line be open drain, therefore
> for both enforce the particular GPIO flags in the driver.
>
> Without enforcing to flag at least the clock gpio as open drain we run
> into the following warning:
>
> WARNING: CPU: 1 PID: 40 at drivers/gpio/gpiolib.c:3175 gpiochip_enable_irq+0x54/0x90
>
> gpiochip_enable_irq() warns on a GPIO being configured as output while
> serving as IRQ source without being flagged as open drain.
>
> Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
Applied, thank you.
--
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: ps2-gpio: convert binding to json-schema
2022-02-15 18:08 ` [PATCH v3 1/3] " Danilo Krummrich
@ 2022-02-16 7:19 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2022-02-16 7:19 UTC (permalink / raw)
To: Danilo Krummrich, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij
On 15/02/2022 19:08, Danilo Krummrich wrote:
> Convert the ps2-gpio dt-binding documentation to DT schema format using
> the json-schema.
>
> Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
> ---
> .../devicetree/bindings/serio/ps2-gpio.txt | 23 --------
> .../devicetree/bindings/serio/ps2-gpio.yaml | 58 +++++++++++++++++++
> 2 files changed, 58 insertions(+), 23 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.txt
> create mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.yaml
>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/3] dt-bindings: ps2-gpio: document bus signals open drain
2022-02-15 18:08 ` [PATCH v3 2/3] dt-bindings: ps2-gpio: document bus signals open drain Danilo Krummrich
@ 2022-02-16 7:19 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2022-02-16 7:19 UTC (permalink / raw)
To: Danilo Krummrich, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij
On 15/02/2022 19:08, Danilo Krummrich wrote:
> The PS/2 bus defines data and clock line to be open drain, this should
> be reflected in the gpio flags set in the binding.
>
> Especially, this is important since the clock line sometimes is driven
> by the host while being used as interrupt source.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> Signed-off-by: Danilo Krummrich <danilokrummrich@dk-develop.de>
> ---
> .../devicetree/bindings/serio/ps2-gpio.yaml | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: dt-bindings: ps2-gpio: convert binding to json-schema
2022-02-15 17:01 ` Krzysztof Kozlowski
@ 2022-02-15 17:46 ` Danilo Krummrich
0 siblings, 0 replies; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-15 17:46 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: dmitry.torokhov, robh+dt, devicetree, linux-input, linux-kernel,
linus.walleij
Hi Krzysztof,
On Tue, Feb 15, 2022 at 06:01:19PM +0100, Krzysztof Kozlowski wrote:
> On 15/02/2022 17:51, Danilo Krummrich wrote:
> > Changes since v1
> > ================
> > - binding as separate patch (driver patch will be sent outside the scope of
> > this patch series)
>
> Bindings patches are not a separate series, but a separate patches
> within the series, so driver should be posted here as well.
The changes are not dependent, as if a new property would have been added,
which is why I removed it from the series. However, they're at least related.
So if it's preferred, I'll add it to the series again.
>
> Best regards,
> Krzysztof
- Danilo
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: dt-bindings: ps2-gpio: convert binding to json-schema
2022-02-15 16:51 dt-bindings: ps2-gpio: convert binding to json-schema Danilo Krummrich
@ 2022-02-15 17:01 ` Krzysztof Kozlowski
2022-02-15 17:46 ` Danilo Krummrich
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2022-02-15 17:01 UTC (permalink / raw)
To: Danilo Krummrich, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij
On 15/02/2022 17:51, Danilo Krummrich wrote:
> Changes since v1
> ================
> - binding as separate patch (driver patch will be sent outside the scope of
> this patch series)
Bindings patches are not a separate series, but a separate patches
within the series, so driver should be posted here as well.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* dt-bindings: ps2-gpio: convert binding to json-schema
@ 2022-02-15 16:51 Danilo Krummrich
2022-02-15 17:01 ` Krzysztof Kozlowski
0 siblings, 1 reply; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-15 16:51 UTC (permalink / raw)
To: krzysztof.kozlowski, dmitry.torokhov, robh+dt, devicetree,
linux-input, linux-kernel
Cc: linus.walleij
Changes since v1
================
- binding as separate patch (driver patch will be sent outside the scope of
this patch series)
- fixes requested by Krzysztof
- fix warnings/errors reported by 'make dt_binding_check'
This series converts the ps2-gpio dt-binding to the json-schema.
Additionally, it documents to flag the given gpios as open drain, since the
PS/2 bus is open drain by definition.
Danilo Krummrich (2):
dt-bindings: ps2-gpio: convert binding to json-schema
dt-bindings: ps2-gpio: document bus signals open drain
Documentation/devicetree/bindings/serio/ps2-gpio.txt | 23 -----------------------
Documentation/devicetree/bindings/serio/ps2-gpio.yaml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 23 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.txt
create mode 100644 Documentation/devicetree/bindings/serio/ps2-gpio.yaml
^ permalink raw reply [flat|nested] 11+ messages in thread
* dt-bindings: ps2-gpio: convert binding to json-schema
@ 2022-02-11 23:31 Danilo Krummrich
0 siblings, 0 replies; 11+ messages in thread
From: Danilo Krummrich @ 2022-02-11 23:31 UTC (permalink / raw)
To: dmitry.torokhov, robh+dt, devicetree, linux-input, linux-kernel
Cc: linus.walleij
This series converts the ps2-gpio dt-binding to the json-schema.
Additionally, it documents (in the dt-binding) and enforces to flag the
given gpios as open drain, since the PS/2 bus is open drain by
definition.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-02-16 7:20 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-15 18:08 dt-bindings: ps2-gpio: convert binding to json-schema Danilo Krummrich
2022-02-15 18:08 ` [PATCH v3 1/3] " Danilo Krummrich
2022-02-16 7:19 ` Krzysztof Kozlowski
2022-02-15 18:08 ` [PATCH v3 2/3] dt-bindings: ps2-gpio: document bus signals open drain Danilo Krummrich
2022-02-16 7:19 ` Krzysztof Kozlowski
2022-02-15 18:08 ` [PATCH v3 3/3] input: ps2-gpio: enforce GPIOs flag " Danilo Krummrich
2022-02-15 22:56 ` Dmitry Torokhov
-- strict thread matches above, loose matches on Subject: below --
2022-02-15 16:51 dt-bindings: ps2-gpio: convert binding to json-schema Danilo Krummrich
2022-02-15 17:01 ` Krzysztof Kozlowski
2022-02-15 17:46 ` Danilo Krummrich
2022-02-11 23:31 Danilo Krummrich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).