* [PATCH 0/4] gpio: dwapb: Fix reference clocks usage
@ 2020-03-06 13:24 Sergey.Semin
2020-03-12 13:58 ` Linus Walleij
` (2 more replies)
0 siblings, 3 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-06 13:24 UTC (permalink / raw)
Cc: Serge Semin, Serge Semin, Alexey Malahov, Maxim Kaurkin,
Pavel Parkhomenko, Ramil Zaripov, Ekaterina Skachko, Vadim Vlasov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Hoan Tran,
Linus Walleij, Bartosz Golaszewski, Philipp Zabel, Rob Herring,
Mark Rutland, linux-gpio, devicetree, linux-kernel
From: Serge Semin <fancer.lancer@gmail.com>
There is no need in any fixes to have the Baikal-T1 SoC DW GPIO controllers
supported by the kernel DW APB GPIO driver. It works for them just fine with
no modifications. But still there is a room for optimizations there.
First of all as it tends to be traditional for all Baikal-T1 SoC related
patchset we replaced the legacy plain text-based dt-binding file with
yaml-based one. Baikal-T1 DW GPIO port A supports a debounce functionality,
but in order to use it the corresponding reference clock must be enabled.
We added support of that clock in the driver and made sure the dt-bindings
had its declaration. In addition seeing both APB and debounce reference
clocks are optional, we replaced the standard devm_clk_get() usage with
the function of optional clocks acquisition.
This patchset is rebased and tested on the mainline Linux kernel 5.6-rc4:
commit 98d54f81e36b ("Linux 5.6-rc4").
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Signed-off-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Maxim Kaurkin <Maxim.Kaurkin@baikalelectronics.ru>
Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Cc: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
Cc: Ekaterina Skachko <Ekaterina.Skachko@baikalelectronics.ru>
Cc: Vadim Vlasov <V.Vlasov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Hoan Tran <hoan@os.amperecomputing.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-gpio@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Serge Semin (4):
dt-bindings: gpio: Replace DW APB GPIO legacy bindings with YAML-based
one
dt-bindings: gpio: Add DW GPIO debounce clocks bindings
gpio: dwapb: Use optional-clocks interface for APB ref-clocks
gpio: dwapb: Add debounce reference clock support
.../bindings/gpio/snps,dw-apb-gpio.yaml | 140 ++++++++++++++++++
.../bindings/gpio/snps-dwapb-gpio.txt | 65 --------
drivers/gpio/gpio-dwapb.c | 41 +++--
3 files changed, 166 insertions(+), 80 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
--
2.25.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/4] gpio: dwapb: Fix reference clocks usage
2020-03-06 13:24 [PATCH 0/4] gpio: dwapb: Fix reference clocks usage Sergey.Semin
@ 2020-03-12 13:58 ` Linus Walleij
2020-03-13 15:29 ` Sergey Semin
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
2020-04-15 21:27 ` [PATCH 0/4] " Linus Walleij
2 siblings, 1 reply; 16+ messages in thread
From: Linus Walleij @ 2020-03-12 13:58 UTC (permalink / raw)
To: Sergey.Semin
Cc: Serge Semin, Alexey Malahov, Maxim Kaurkin, Pavel Parkhomenko,
Ramil Zaripov, Ekaterina Skachko, Vadim Vlasov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Hoan Tran,
Bartosz Golaszewski, Philipp Zabel, Rob Herring, Mark Rutland,
open list:GPIO SUBSYSTEM,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
linux-kernel@vger.kernel.org
On Fri, Mar 6, 2020 at 2:25 PM <Sergey.Semin@baikalelectronics.ru> wrote:
> From: Serge Semin <fancer.lancer@gmail.com>
>
> There is no need in any fixes to have the Baikal-T1 SoC DW GPIO controllers
> supported by the kernel DW APB GPIO driver. It works for them just fine with
> no modifications. But still there is a room for optimizations there.
>
> First of all as it tends to be traditional for all Baikal-T1 SoC related
> patchset we replaced the legacy plain text-based dt-binding file with
> yaml-based one. Baikal-T1 DW GPIO port A supports a debounce functionality,
> but in order to use it the corresponding reference clock must be enabled.
> We added support of that clock in the driver and made sure the dt-bindings
> had its declaration. In addition seeing both APB and debounce reference
> clocks are optional, we replaced the standard devm_clk_get() usage with
> the function of optional clocks acquisition.
>
> This patchset is rebased and tested on the mainline Linux kernel 5.6-rc4:
> commit 98d54f81e36b ("Linux 5.6-rc4").
>
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Signed-off-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> Cc: Maxim Kaurkin <Maxim.Kaurkin@baikalelectronics.ru>
> Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
> Cc: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
> Cc: Ekaterina Skachko <Ekaterina.Skachko@baikalelectronics.ru>
> Cc: Vadim Vlasov <V.Vlasov@baikalelectronics.ru>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: Paul Burton <paulburton@kernel.org>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Hoan Tran <hoan@os.amperecomputing.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: linux-gpio@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
I like these patches, once Rob is happy with the bindings I'll be
happy to merge them. I haven't heard from Hoan Tran in a while,
so if we don't hear from him this time either I would suggest you
also add yourself as maintainer for this driver, if you don't mind.
Thanks,
Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/4] gpio: dwapb: Fix reference clocks usage
2020-03-12 13:58 ` Linus Walleij
@ 2020-03-13 15:29 ` Sergey Semin
0 siblings, 0 replies; 16+ messages in thread
From: Sergey Semin @ 2020-03-13 15:29 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexey Malahov, Maxim Kaurkin, Pavel Parkhomenko, Ramil Zaripov,
Ekaterina Skachko, Vadim Vlasov, Thomas Bogendoerfer, Paul Burton,
Ralf Baechle, Hoan Tran, Bartosz Golaszewski, Philipp Zabel,
Rob Herring, Mark Rutland, open list:GPIO SUBSYSTEM,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
linux-kernel@vger.kernel.org
On Thu, Mar 12, 2020 at 02:58:33PM +0100, Linus Walleij wrote:
> On Fri, Mar 6, 2020 at 2:25 PM <Sergey.Semin@baikalelectronics.ru> wrote:
>
> > From: Serge Semin <fancer.lancer@gmail.com>
> >
> > There is no need in any fixes to have the Baikal-T1 SoC DW GPIO controllers
> > supported by the kernel DW APB GPIO driver. It works for them just fine with
> > no modifications. But still there is a room for optimizations there.
> >
> > First of all as it tends to be traditional for all Baikal-T1 SoC related
> > patchset we replaced the legacy plain text-based dt-binding file with
> > yaml-based one. Baikal-T1 DW GPIO port A supports a debounce functionality,
> > but in order to use it the corresponding reference clock must be enabled.
> > We added support of that clock in the driver and made sure the dt-bindings
> > had its declaration. In addition seeing both APB and debounce reference
> > clocks are optional, we replaced the standard devm_clk_get() usage with
> > the function of optional clocks acquisition.
> >
> > This patchset is rebased and tested on the mainline Linux kernel 5.6-rc4:
> > commit 98d54f81e36b ("Linux 5.6-rc4").
> >
> > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> > Signed-off-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> > Cc: Maxim Kaurkin <Maxim.Kaurkin@baikalelectronics.ru>
> > Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
> > Cc: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
> > Cc: Ekaterina Skachko <Ekaterina.Skachko@baikalelectronics.ru>
> > Cc: Vadim Vlasov <V.Vlasov@baikalelectronics.ru>
> > Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> > Cc: Paul Burton <paulburton@kernel.org>
> > Cc: Ralf Baechle <ralf@linux-mips.org>
> > Cc: Hoan Tran <hoan@os.amperecomputing.com>
> > Cc: Linus Walleij <linus.walleij@linaro.org>
> > Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > Cc: Philipp Zabel <p.zabel@pengutronix.de>
> > Cc: Rob Herring <robh+dt@kernel.org>
> > Cc: Mark Rutland <mark.rutland@arm.com>
> > Cc: linux-gpio@vger.kernel.org
> > Cc: devicetree@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org
>
> I like these patches, once Rob is happy with the bindings I'll be
> happy to merge them. I haven't heard from Hoan Tran in a while,
> so if we don't hear from him this time either I would suggest you
> also add yourself as maintainer for this driver, if you don't mind.
>
> Thanks,
> Linus Walleij
Hello Linus,
Thanks for positive response. I'll resend the patchset soon in the
email-threaded form together with two extra patches, which will
add me to the MAINTAINERS list and to the dt-schema of the driver.
If Hoan Tran will show up before you merge them, just drop these two
new patches.
Regards,
-Sergey
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v2 0/6] gpio: dwapb: Fix reference clocks usage
2020-03-06 13:24 [PATCH 0/4] gpio: dwapb: Fix reference clocks usage Sergey.Semin
2020-03-12 13:58 ` Linus Walleij
@ 2020-03-23 18:06 ` Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
` (3 more replies)
2020-04-15 21:27 ` [PATCH 0/4] " Linus Walleij
2 siblings, 4 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 18:06 UTC (permalink / raw)
Cc: Serge Semin, Serge Semin, Alexey Malahov, Maxim Kaurkin,
Pavel Parkhomenko, Ramil Zaripov, Ekaterina Skachko, Vadim Vlasov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Hoan Tran,
Linus Walleij, Bartosz Golaszewski, Philipp Zabel, Rob Herring,
Mark Rutland, linux-gpio, devicetree, linux-kernel
From: Serge Semin <fancer.lancer@gmail.com>
There is no need in any fixes to have the Baikal-T1 SoC DW GPIO controllers
supported by the kernel DW APB GPIO driver. It works for them just fine with
no modifications. But still there is a room for optimizations there.
First of all as it tends to be traditional for all Baikal-T1 SoC related
patchset we replaced the legacy plain text-based dt-binding file with
yaml-based one. Baikal-T1 DW GPIO port A supports a debounce functionality,
but in order to use it the corresponding reference clock must be enabled.
We added support of that clock in the driver and made sure the dt-bindings
had its declaration. In addition seeing both APB and debounce reference
clocks are optional, we replaced the standard devm_clk_get() usage with
the function of optional clocks acquisition.
This patchset is rebased and tested on the mainline Linux kernel 5.6-rc4:
commit 98d54f81e36b ("Linux 5.6-rc4").
Changelog v2:
- Use a shorter summary describing the DT bindings conversion patch.
- Add myself to the MAINTAINERS file as a maintainer of the DW APB GPIO driver.
- Add myself to the maintainers list of the DW APB GPIO driver DT schema.
- Print error instead of info-message if APB/debounce clocks either
failed to be acquired or couldn't be enabled.
- Rearrange the SoB tags.
- Make sure DT schema defines the lowercase hex numbers in the main dt-node
name and in the sub-node names.
- Use "allOf:" statement to apply uint32 and "minimum/maximum" limitations
on the "snps,nr-gpios" property of the DW APB GPIO DT schema.
- Discard "interrupts-extended" property from the DT schema.
- Make sure the sub-nodes have names with either 'gpio-port' or
'gpio-controller' prefixes.
- Our corporate email server doesn't change Message-Id anymore, so the patchset
is resubmitted being in the cover-letter-threaded format.
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Maxim Kaurkin <Maxim.Kaurkin@baikalelectronics.ru>
Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Cc: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
Cc: Ekaterina Skachko <Ekaterina.Skachko@baikalelectronics.ru>
Cc: Vadim Vlasov <V.Vlasov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Hoan Tran <hoan@os.amperecomputing.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-gpio@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Serge Semin (6):
dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema
dt-bindings: gpio: Add DW GPIO debounce clock property
dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers
gpio: dwapb: Use optional-clocks interface for APB ref-clock
gpio: dwapb: Add debounce reference clock support
MAINTAINERS: Add Segey Semin to maintainers of DW APB GPIO driver
.../bindings/gpio/snps,dw-apb-gpio.yaml | 134 ++++++++++++++++++
.../bindings/gpio/snps-dwapb-gpio.txt | 65 ---------
MAINTAINERS | 1 +
drivers/gpio/gpio-dwapb.c | 41 ++++--
4 files changed, 161 insertions(+), 80 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
--
2.25.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v2 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
@ 2020-03-23 18:06 ` Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property Sergey.Semin
` (2 subsequent siblings)
3 siblings, 0 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 18:06 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Rob Herring, Mark Rutland,
Hoan Tran
Cc: Serge Semin, Serge Semin, Alexey Malahov, Thomas Bogendoerfer,
Paul Burton, Ralf Baechle, Rob Herring, linux-gpio, devicetree,
linux-kernel
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Modern device tree bindings are supposed to be created as YAML-files
in accordance with DT schema. This commit replaces Synopsys DW GPIO
legacy bare text binding with YAML file. As before the binding file
states that the corresponding dts node is supposed to be compatible
with generic DW I2C controller indicated by the "snps,dw-apb-gpio"
compatible string and to provide a mandatory registers memory range.
It may also have an optional clock and reset phandle references.
There must be specified at least one subnode with
"snps,dw-apb-gpio-port" compatible string indicating the GPIO port,
which would actually export the GPIO controller functionality. Such
nodes should have traditional GPIO controller properties together
with optional interrupt-controller attributes if the corresponding
controller was synthesized to detect and report the input values
change to the parental IRQ controller.
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
---
Changelog v2:
- Use lowercase hex numbers in the main node name and in the sub-node names.
- Use "allOf:" statement to apply uint32 and "minimum/maximum" limitations
on the "snps,nr-gpios" property.
- Discard "interrupts-extended" property.
- Make sure the sub-nodes have names with either 'gpio-port' or
'gpio-controller' prefixes.
The DT scheme provided by this patch will pass the dt_binding_check
command after the next patches are merged to the dt-schema repo:
--- a/schemas/gpio/gpio.yaml
+++ b/schemas/gpio/gpio.yaml
@@ -34,7 +34,7 @@ properties:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
patternProperties:
- ".*-gpios?$":
+ "(?<!,nr)-gpios?$":
$ref: "/schemas/types.yaml#/definitions/phandle-array"
"^gpios$":
$ref: "/schemas/types.yaml#/definitions/phandle-array"
--- a/meta-schemas/gpios.yaml 2020-03-13 20:20:10.072900019 +0300
+++ b/meta-schemas/gpios.yaml 2020-03-13 20:20:16.000953216 +0300
@@ -19,9 +19,7 @@
$ref: "cell.yaml#array"
patternProperties:
- '.*-gpio$':
- $ref: "cell.yaml#array"
- '.*-gpios$':
+ '(?<!,nr)-gpios?$':
$ref: "cell.yaml#array"
dependencies:
---
.../bindings/gpio/snps,dw-apb-gpio.yaml | 129 ++++++++++++++++++
.../bindings/gpio/snps-dwapb-gpio.txt | 65 ---------
2 files changed, 129 insertions(+), 65 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
diff --git a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
new file mode 100644
index 000000000000..f84f92c4dd53
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
@@ -0,0 +1,129 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/snps,dw-apb-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Synopsys DesignWare APB GPIO controller
+
+description: |
+ Synopsys DesignWare GPIO controllers have a configurable number of ports,
+ each of which are intended to be represented as child nodes with the generic
+ GPIO-controller properties as desribed in this bindings file.
+
+maintainers:
+ - Hoan Tran <hoan@os.amperecomputing.com>
+
+properties:
+ $nodename:
+ pattern: "^gpio@[0-9a-f]+$"
+
+ compatible:
+ const: snps,dw-apb-gpio
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: APB interface clock source
+
+ clock-names:
+ items:
+ - const: bus
+
+ resets:
+ maxItems: 1
+
+patternProperties:
+ "^gpio-(port|controller)@[0-9a-f]+$":
+ type: object
+ properties:
+ compatible:
+ const: snps,dw-apb-gpio-port
+
+ reg:
+ maxItems: 1
+
+ gpio-controller: true
+
+ '#gpio-cells':
+ const: 2
+
+ snps,nr-gpios:
+ description: The number of GPIO pins exported by the port.
+ default: 32
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ - minimum: 1
+ maximum: 32
+
+ interrupts:
+ description: |
+ The interrupts to the parent controller raised when GPIOs generate
+ the interrupts. If the controller provides one combined interrupt
+ for all GPIOs, specify a single interrupt. If the controller provides
+ one interrupt for each GPIO, provide a list of interrupts that
+ correspond to each of the GPIO pins.
+ minItems: 1
+ maxItems: 32
+
+ interrupt-controller: true
+
+ '#interrupt-cells':
+ const: 2
+
+ required:
+ - compatible
+ - reg
+ - gpio-controller
+ - '#gpio-cells'
+
+ dependencies:
+ interrupt-controller: [ interrupts ]
+
+ additionalProperties: false
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+
+examples:
+ - |
+ gpio: gpio@20000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x20000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ porta: gpio-port@0 {
+ compatible = "snps,dw-apb-gpio-port";
+ reg = <0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <8>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&vic1>;
+ interrupts = <0>;
+ };
+
+ portb: gpio-port@1 {
+ compatible = "snps,dw-apb-gpio-port";
+ reg = <1>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <8>;
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt b/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
deleted file mode 100644
index 839dd32ffe11..000000000000
--- a/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-* Synopsys DesignWare APB GPIO controller
-
-Required properties:
-- compatible : Should contain "snps,dw-apb-gpio"
-- reg : Address and length of the register set for the device.
-- #address-cells : should be 1 (for addressing port subnodes).
-- #size-cells : should be 0 (port subnodes).
-
-The GPIO controller has a configurable number of ports, each of which are
-represented as child nodes with the following properties:
-
-Required properties:
-- compatible : "snps,dw-apb-gpio-port"
-- gpio-controller : Marks the device node as a gpio controller.
-- #gpio-cells : Should be two. The first cell is the pin number and
- the second cell is used to specify the gpio polarity:
- 0 = active high
- 1 = active low
-- reg : The integer port index of the port, a single cell.
-
-Optional properties:
-- interrupt-controller : The first port may be configured to be an interrupt
-controller.
-- #interrupt-cells : Specifies the number of cells needed to encode an
- interrupt. Shall be set to 2. The first cell defines the interrupt number,
- the second encodes the triger flags encoded as described in
- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
-- interrupts : The interrupts to the parent controller raised when GPIOs
- generate the interrupts. If the controller provides one combined interrupt
- for all GPIOs, specify a single interrupt. If the controller provides one
- interrupt for each GPIO, provide a list of interrupts that correspond to each
- of the GPIO pins. When specifying multiple interrupts, if any are unconnected,
- use the interrupts-extended property to specify the interrupts and set the
- interrupt controller handle for unused interrupts to 0.
-- snps,nr-gpios : The number of pins in the port, a single cell.
-- resets : Reset line for the controller.
-
-Example:
-
-gpio: gpio@20000 {
- compatible = "snps,dw-apb-gpio";
- reg = <0x20000 0x1000>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- porta: gpio@0 {
- compatible = "snps,dw-apb-gpio-port";
- gpio-controller;
- #gpio-cells = <2>;
- snps,nr-gpios = <8>;
- reg = <0>;
- interrupt-controller;
- #interrupt-cells = <2>;
- interrupt-parent = <&vic1>;
- interrupts = <0>;
- };
-
- portb: gpio@1 {
- compatible = "snps,dw-apb-gpio-port";
- gpio-controller;
- #gpio-cells = <2>;
- snps,nr-gpios = <8>;
- reg = <1>;
- };
-};
--
2.25.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
@ 2020-03-23 18:06 ` Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
3 siblings, 0 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 18:06 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Rob Herring, Mark Rutland
Cc: Serge Semin, Serge Semin, Rob Herring, Alexey Malahov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, linux-gpio,
devicetree, linux-kernel
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Port A of the DW GPIO controller may optionally have a debounce
logic enabled if it was synthesized with that functionality enabled.
In this case a dedicated reference clock should be declared in the
node with corresponding "db" name presented in the clock-names
property.
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Acked-by: Rob Herring <robh@kernel.org>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
---
Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
index f84f92c4dd53..58a8df367623 100644
--- a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
+++ b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
@@ -31,12 +31,16 @@ properties:
maxItems: 1
clocks:
+ minItems: 1
items:
- description: APB interface clock source
+ - description: DW GPIO debounce reference clock source
clock-names:
+ minItems: 1
items:
- const: bus
+ - const: db
resets:
maxItems: 1
--
2.25.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property Sergey.Semin
@ 2020-03-23 18:06 ` Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
3 siblings, 0 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 18:06 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Rob Herring, Mark Rutland
Cc: Serge Semin, Serge Semin, Hoan Tran, Alexey Malahov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Rob Herring,
linux-gpio, devicetree, linux-kernel
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Seeing Hoan has been silent for a long time Linus suggested to me
to be also maintaining the driver. This patch adds myself to the list
of maintainers in the DT schema of the driver.
Suggested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Hoan Tran <hoan@os.amperecomputing.com>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
---
Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
index 58a8df367623..04a3c51e1dc1 100644
--- a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
+++ b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
@@ -13,6 +13,7 @@ description: |
maintainers:
- Hoan Tran <hoan@os.amperecomputing.com>
+ - Serge Semin <fancer.lancer@gmail.com>
properties:
$nodename:
--
2.25.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
` (2 preceding siblings ...)
2020-03-23 18:06 ` [PATCH v2 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
@ 2020-03-23 19:53 ` Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
` (3 more replies)
3 siblings, 4 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 19:53 UTC (permalink / raw)
Cc: Serge Semin, Serge Semin, Alexey Malahov, Maxim Kaurkin,
Pavel Parkhomenko, Ramil Zaripov, Ekaterina Skachko, Vadim Vlasov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Hoan Tran,
Linus Walleij, Bartosz Golaszewski, Philipp Zabel, Rob Herring,
Mark Rutland, Andy Shevchenko, linux-gpio, devicetree,
linux-kernel
From: Serge Semin <fancer.lancer@gmail.com>
There is no need in any fixes to have the Baikal-T1 SoC DW GPIO controllers
supported by the kernel DW APB GPIO driver. It works for them just fine with
no modifications. But still there is a room for optimizations there.
First of all as it tends to be traditional for all Baikal-T1 SoC related
patchset we replaced the legacy plain text-based dt-binding file with
yaml-based one. Baikal-T1 DW GPIO port A supports a debounce functionality,
but in order to use it the corresponding reference clock must be enabled.
We added support of that clock in the driver and made sure the dt-bindings
had its declaration. In addition seeing both APB and debounce reference
clocks are optional, we replaced the standard devm_clk_get() usage with
the function of optional clocks acquisition.
This patchset is rebased and tested on the mainline Linux kernel 5.6-rc4:
commit 98d54f81e36b ("Linux 5.6-rc4").
Changelog v2:
- Use a shorter summary describing the DT bindings conversion patch.
- Add myself to the MAINTAINERS file as a maintainer of the DW APB GPIO driver.
- Add myself to the maintainers list of the DW APB GPIO driver DT schema.
- Print error instead of info-message if APB/debounce clocks either
failed to be acquired or couldn't be enabled.
- Rearrange the SoB tags.
- Make sure DT schema defines the lowercase hex numbers in the main dt-node
name and in the sub-node names.
- Use "allOf:" statement to apply uint32 and "minimum/maximum" limitations
on the "snps,nr-gpios" property of the DW APB GPIO DT schema.
- Discard "interrupts-extended" property from the DT schema.
- Make sure the sub-nodes have names with either 'gpio-port' or
'gpio-controller' prefixes.
- Our corporate email server doesn't change Message-Id anymore, so the patchset
is resubmitted being in the cover-letter-threaded format.
Changelog v3:
- Replace S: with M: section entry in the MAINTAINERS file.
- Cc Andy to all patches he isn't added by the auto "cc-cmd" command.
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Maxim Kaurkin <Maxim.Kaurkin@baikalelectronics.ru>
Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Cc: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
Cc: Ekaterina Skachko <Ekaterina.Skachko@baikalelectronics.ru>
Cc: Vadim Vlasov <V.Vlasov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Hoan Tran <hoan@os.amperecomputing.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Cc: linux-gpio@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Serge Semin (6):
dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema
dt-bindings: gpio: Add DW GPIO debounce clock property
dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers
gpio: dwapb: Use optional-clocks interface for APB ref-clock
gpio: dwapb: Add debounce reference clock support
MAINTAINERS: Add Segey Semin to maintainers of DW APB GPIO driver
.../bindings/gpio/snps,dw-apb-gpio.yaml | 134 ++++++++++++++++++
.../bindings/gpio/snps-dwapb-gpio.txt | 65 ---------
MAINTAINERS | 1 +
drivers/gpio/gpio-dwapb.c | 41 ++++--
4 files changed, 161 insertions(+), 80 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
--
2.25.1
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
@ 2020-03-23 19:53 ` Sergey.Semin
2020-03-31 19:24 ` Rob Herring
2020-03-23 19:53 ` [PATCH v3 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property Sergey.Semin
` (2 subsequent siblings)
3 siblings, 1 reply; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 19:53 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Rob Herring, Mark Rutland,
Hoan Tran, Serge Semin
Cc: Serge Semin, Alexey Malahov, Thomas Bogendoerfer, Paul Burton,
Ralf Baechle, Andy Shevchenko, Rob Herring, linux-gpio,
devicetree, linux-kernel
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Modern device tree bindings are supposed to be created as YAML-files
in accordance with DT schema. This commit replaces Synopsys DW GPIO
legacy bare text binding with YAML file. As before the binding file
states that the corresponding dts node is supposed to be compatible
with generic DW I2C controller indicated by the "snps,dw-apb-gpio"
compatible string and to provide a mandatory registers memory range.
It may also have an optional clock and reset phandle references.
There must be specified at least one subnode with
"snps,dw-apb-gpio-port" compatible string indicating the GPIO port,
which would actually export the GPIO controller functionality. Such
nodes should have traditional GPIO controller properties together
with optional interrupt-controller attributes if the corresponding
controller was synthesized to detect and report the input values
change to the parental IRQ controller.
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
Changelog v2:
- Use lowercase hex numbers in the main node name and in the sub-node names.
- Use "allOf:" statement to apply uint32 and "minimum/maximum" limitations
on the "snps,nr-gpios" property.
- Discard "interrupts-extended" property.
- Make sure the sub-nodes have names with either 'gpio-port' or
'gpio-controller' prefixes.
The DT scheme provided by this patch will pass the dt_binding_check
command after the next patches are merged to the dt-schema repo:
--- a/schemas/gpio/gpio.yaml
+++ b/schemas/gpio/gpio.yaml
@@ -34,7 +34,7 @@ properties:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
patternProperties:
- ".*-gpios?$":
+ "(?<!,nr)-gpios?$":
$ref: "/schemas/types.yaml#/definitions/phandle-array"
"^gpios$":
$ref: "/schemas/types.yaml#/definitions/phandle-array"
--- a/meta-schemas/gpios.yaml 2020-03-13 20:20:10.072900019 +0300
+++ b/meta-schemas/gpios.yaml 2020-03-13 20:20:16.000953216 +0300
@@ -19,9 +19,7 @@
$ref: "cell.yaml#array"
patternProperties:
- '.*-gpio$':
- $ref: "cell.yaml#array"
- '.*-gpios$':
+ '(?<!,nr)-gpios?$':
$ref: "cell.yaml#array"
dependencies:
---
.../bindings/gpio/snps,dw-apb-gpio.yaml | 129 ++++++++++++++++++
.../bindings/gpio/snps-dwapb-gpio.txt | 65 ---------
2 files changed, 129 insertions(+), 65 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
diff --git a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
new file mode 100644
index 000000000000..f84f92c4dd53
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
@@ -0,0 +1,129 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/snps,dw-apb-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Synopsys DesignWare APB GPIO controller
+
+description: |
+ Synopsys DesignWare GPIO controllers have a configurable number of ports,
+ each of which are intended to be represented as child nodes with the generic
+ GPIO-controller properties as desribed in this bindings file.
+
+maintainers:
+ - Hoan Tran <hoan@os.amperecomputing.com>
+
+properties:
+ $nodename:
+ pattern: "^gpio@[0-9a-f]+$"
+
+ compatible:
+ const: snps,dw-apb-gpio
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: APB interface clock source
+
+ clock-names:
+ items:
+ - const: bus
+
+ resets:
+ maxItems: 1
+
+patternProperties:
+ "^gpio-(port|controller)@[0-9a-f]+$":
+ type: object
+ properties:
+ compatible:
+ const: snps,dw-apb-gpio-port
+
+ reg:
+ maxItems: 1
+
+ gpio-controller: true
+
+ '#gpio-cells':
+ const: 2
+
+ snps,nr-gpios:
+ description: The number of GPIO pins exported by the port.
+ default: 32
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ - minimum: 1
+ maximum: 32
+
+ interrupts:
+ description: |
+ The interrupts to the parent controller raised when GPIOs generate
+ the interrupts. If the controller provides one combined interrupt
+ for all GPIOs, specify a single interrupt. If the controller provides
+ one interrupt for each GPIO, provide a list of interrupts that
+ correspond to each of the GPIO pins.
+ minItems: 1
+ maxItems: 32
+
+ interrupt-controller: true
+
+ '#interrupt-cells':
+ const: 2
+
+ required:
+ - compatible
+ - reg
+ - gpio-controller
+ - '#gpio-cells'
+
+ dependencies:
+ interrupt-controller: [ interrupts ]
+
+ additionalProperties: false
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - "#address-cells"
+ - "#size-cells"
+
+examples:
+ - |
+ gpio: gpio@20000 {
+ compatible = "snps,dw-apb-gpio";
+ reg = <0x20000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ porta: gpio-port@0 {
+ compatible = "snps,dw-apb-gpio-port";
+ reg = <0>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <8>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&vic1>;
+ interrupts = <0>;
+ };
+
+ portb: gpio-port@1 {
+ compatible = "snps,dw-apb-gpio-port";
+ reg = <1>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ snps,nr-gpios = <8>;
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt b/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
deleted file mode 100644
index 839dd32ffe11..000000000000
--- a/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-* Synopsys DesignWare APB GPIO controller
-
-Required properties:
-- compatible : Should contain "snps,dw-apb-gpio"
-- reg : Address and length of the register set for the device.
-- #address-cells : should be 1 (for addressing port subnodes).
-- #size-cells : should be 0 (port subnodes).
-
-The GPIO controller has a configurable number of ports, each of which are
-represented as child nodes with the following properties:
-
-Required properties:
-- compatible : "snps,dw-apb-gpio-port"
-- gpio-controller : Marks the device node as a gpio controller.
-- #gpio-cells : Should be two. The first cell is the pin number and
- the second cell is used to specify the gpio polarity:
- 0 = active high
- 1 = active low
-- reg : The integer port index of the port, a single cell.
-
-Optional properties:
-- interrupt-controller : The first port may be configured to be an interrupt
-controller.
-- #interrupt-cells : Specifies the number of cells needed to encode an
- interrupt. Shall be set to 2. The first cell defines the interrupt number,
- the second encodes the triger flags encoded as described in
- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
-- interrupts : The interrupts to the parent controller raised when GPIOs
- generate the interrupts. If the controller provides one combined interrupt
- for all GPIOs, specify a single interrupt. If the controller provides one
- interrupt for each GPIO, provide a list of interrupts that correspond to each
- of the GPIO pins. When specifying multiple interrupts, if any are unconnected,
- use the interrupts-extended property to specify the interrupts and set the
- interrupt controller handle for unused interrupts to 0.
-- snps,nr-gpios : The number of pins in the port, a single cell.
-- resets : Reset line for the controller.
-
-Example:
-
-gpio: gpio@20000 {
- compatible = "snps,dw-apb-gpio";
- reg = <0x20000 0x1000>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- porta: gpio@0 {
- compatible = "snps,dw-apb-gpio-port";
- gpio-controller;
- #gpio-cells = <2>;
- snps,nr-gpios = <8>;
- reg = <0>;
- interrupt-controller;
- #interrupt-cells = <2>;
- interrupt-parent = <&vic1>;
- interrupts = <0>;
- };
-
- portb: gpio@1 {
- compatible = "snps,dw-apb-gpio-port";
- gpio-controller;
- #gpio-cells = <2>;
- snps,nr-gpios = <8>;
- reg = <1>;
- };
-};
--
2.25.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v3 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
@ 2020-03-23 19:53 ` Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
2020-03-23 21:39 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Andy Shevchenko
3 siblings, 0 replies; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 19:53 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Rob Herring, Mark Rutland
Cc: Serge Semin, Serge Semin, Rob Herring, Alexey Malahov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Andy Shevchenko,
linux-gpio, devicetree, linux-kernel
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Port A of the DW GPIO controller may optionally have a debounce
logic enabled if it was synthesized with that functionality enabled.
In this case a dedicated reference clock should be declared in the
node with corresponding "db" name presented in the clock-names
property.
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Acked-by: Rob Herring <robh@kernel.org>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
index f84f92c4dd53..58a8df367623 100644
--- a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
+++ b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
@@ -31,12 +31,16 @@ properties:
maxItems: 1
clocks:
+ minItems: 1
items:
- description: APB interface clock source
+ - description: DW GPIO debounce reference clock source
clock-names:
+ minItems: 1
items:
- const: bus
+ - const: db
resets:
maxItems: 1
--
2.25.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v3 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property Sergey.Semin
@ 2020-03-23 19:53 ` Sergey.Semin
2020-03-31 19:25 ` Rob Herring
2020-03-23 21:39 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Andy Shevchenko
3 siblings, 1 reply; 16+ messages in thread
From: Sergey.Semin @ 2020-03-23 19:53 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski, Rob Herring, Mark Rutland
Cc: Serge Semin, Serge Semin, Hoan Tran, Alexey Malahov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Andy Shevchenko,
Rob Herring, linux-gpio, devicetree, linux-kernel
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Seeing Hoan has been silent for a long time Linus suggested to me
to be also maintaining the driver. This patch adds myself to the list
of maintainers in the DT schema of the driver.
Suggested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Hoan Tran <hoan@os.amperecomputing.com>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
index 58a8df367623..04a3c51e1dc1 100644
--- a/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
+++ b/Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
@@ -13,6 +13,7 @@ description: |
maintainers:
- Hoan Tran <hoan@os.amperecomputing.com>
+ - Serge Semin <fancer.lancer@gmail.com>
properties:
$nodename:
--
2.25.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
` (2 preceding siblings ...)
2020-03-23 19:53 ` [PATCH v3 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
@ 2020-03-23 21:39 ` Andy Shevchenko
3 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2020-03-23 21:39 UTC (permalink / raw)
To: Sergey.Semin
Cc: Serge Semin, Alexey Malahov, Maxim Kaurkin, Pavel Parkhomenko,
Ramil Zaripov, Ekaterina Skachko, Vadim Vlasov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Hoan Tran,
Linus Walleij, Bartosz Golaszewski, Philipp Zabel, Rob Herring,
Mark Rutland, Andy Shevchenko, open list:GPIO SUBSYSTEM,
devicetree, Linux Kernel Mailing List
On Mon, Mar 23, 2020 at 9:55 PM <Sergey.Semin@baikalelectronics.ru> wrote:
>
> From: Serge Semin <fancer.lancer@gmail.com>
>
> There is no need in any fixes to have the Baikal-T1 SoC DW GPIO controllers
> supported by the kernel DW APB GPIO driver. It works for them just fine with
> no modifications. But still there is a room for optimizations there.
>
> First of all as it tends to be traditional for all Baikal-T1 SoC related
> patchset we replaced the legacy plain text-based dt-binding file with
> yaml-based one. Baikal-T1 DW GPIO port A supports a debounce functionality,
> but in order to use it the corresponding reference clock must be enabled.
> We added support of that clock in the driver and made sure the dt-bindings
> had its declaration. In addition seeing both APB and debounce reference
> clocks are optional, we replaced the standard devm_clk_get() usage with
> the function of optional clocks acquisition.
>
> This patchset is rebased and tested on the mainline Linux kernel 5.6-rc4:
> commit 98d54f81e36b ("Linux 5.6-rc4").
Thank you!
FWIW,
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
>
> Changelog v2:
> - Use a shorter summary describing the DT bindings conversion patch.
> - Add myself to the MAINTAINERS file as a maintainer of the DW APB GPIO driver.
> - Add myself to the maintainers list of the DW APB GPIO driver DT schema.
> - Print error instead of info-message if APB/debounce clocks either
> failed to be acquired or couldn't be enabled.
> - Rearrange the SoB tags.
> - Make sure DT schema defines the lowercase hex numbers in the main dt-node
> name and in the sub-node names.
> - Use "allOf:" statement to apply uint32 and "minimum/maximum" limitations
> on the "snps,nr-gpios" property of the DW APB GPIO DT schema.
> - Discard "interrupts-extended" property from the DT schema.
> - Make sure the sub-nodes have names with either 'gpio-port' or
> 'gpio-controller' prefixes.
> - Our corporate email server doesn't change Message-Id anymore, so the patchset
> is resubmitted being in the cover-letter-threaded format.
>
> Changelog v3:
> - Replace S: with M: section entry in the MAINTAINERS file.
> - Cc Andy to all patches he isn't added by the auto "cc-cmd" command.
>
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> Cc: Maxim Kaurkin <Maxim.Kaurkin@baikalelectronics.ru>
> Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
> Cc: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
> Cc: Ekaterina Skachko <Ekaterina.Skachko@baikalelectronics.ru>
> Cc: Vadim Vlasov <V.Vlasov@baikalelectronics.ru>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: Paul Burton <paulburton@kernel.org>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Hoan Tran <hoan@os.amperecomputing.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
> Cc: linux-gpio@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
>
> Serge Semin (6):
> dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema
> dt-bindings: gpio: Add DW GPIO debounce clock property
> dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers
> gpio: dwapb: Use optional-clocks interface for APB ref-clock
> gpio: dwapb: Add debounce reference clock support
> MAINTAINERS: Add Segey Semin to maintainers of DW APB GPIO driver
>
> .../bindings/gpio/snps,dw-apb-gpio.yaml | 134 ++++++++++++++++++
> .../bindings/gpio/snps-dwapb-gpio.txt | 65 ---------
> MAINTAINERS | 1 +
> drivers/gpio/gpio-dwapb.c | 41 ++++--
> 4 files changed, 161 insertions(+), 80 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
> delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
>
> --
> 2.25.1
>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema
2020-03-23 19:53 ` [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
@ 2020-03-31 19:24 ` Rob Herring
0 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-03-31 19:24 UTC (permalink / raw)
To: Sergey.Semin
Cc: Linus Walleij, Bartosz Golaszewski, Mark Rutland, Hoan Tran,
Serge Semin, Alexey Malahov, Thomas Bogendoerfer, Paul Burton,
Ralf Baechle, Andy Shevchenko, linux-gpio, devicetree,
linux-kernel
On Mon, Mar 23, 2020 at 10:53:56PM +0300, Sergey.Semin@baikalelectronics.ru wrote:
> From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
>
> Modern device tree bindings are supposed to be created as YAML-files
> in accordance with DT schema. This commit replaces Synopsys DW GPIO
> legacy bare text binding with YAML file. As before the binding file
> states that the corresponding dts node is supposed to be compatible
> with generic DW I2C controller indicated by the "snps,dw-apb-gpio"
> compatible string and to provide a mandatory registers memory range.
> It may also have an optional clock and reset phandle references.
>
> There must be specified at least one subnode with
> "snps,dw-apb-gpio-port" compatible string indicating the GPIO port,
> which would actually export the GPIO controller functionality. Such
> nodes should have traditional GPIO controller properties together
> with optional interrupt-controller attributes if the corresponding
> controller was synthesized to detect and report the input values
> change to the parental IRQ controller.
>
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: Paul Burton <paulburton@kernel.org>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> ---
>
> Changelog v2:
> - Use lowercase hex numbers in the main node name and in the sub-node names.
> - Use "allOf:" statement to apply uint32 and "minimum/maximum" limitations
> on the "snps,nr-gpios" property.
> - Discard "interrupts-extended" property.
> - Make sure the sub-nodes have names with either 'gpio-port' or
> 'gpio-controller' prefixes.
>
> The DT scheme provided by this patch will pass the dt_binding_check
> command after the next patches are merged to the dt-schema repo:
Merged now.
> ---
> .../bindings/gpio/snps,dw-apb-gpio.yaml | 129 ++++++++++++++++++
> .../bindings/gpio/snps-dwapb-gpio.txt | 65 ---------
> 2 files changed, 129 insertions(+), 65 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml
> delete mode 100644 Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v3 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers
2020-03-23 19:53 ` [PATCH v3 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
@ 2020-03-31 19:25 ` Rob Herring
0 siblings, 0 replies; 16+ messages in thread
From: Rob Herring @ 2020-03-31 19:25 UTC (permalink / raw)
To: Sergey.Semin
Cc: Linus Walleij, Bartosz Golaszewski, Mark Rutland, Serge Semin,
Serge Semin, Hoan Tran, Alexey Malahov, Thomas Bogendoerfer,
Paul Burton, Ralf Baechle, Andy Shevchenko, linux-gpio,
devicetree, linux-kernel
On Mon, 23 Mar 2020 22:53:58 +0300, <Sergey.Semin@baikalelectronics.ru> wrote:
> From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
>
> Seeing Hoan has been silent for a long time Linus suggested to me
> to be also maintaining the driver. This patch adds myself to the list
> of maintainers in the DT schema of the driver.
>
> Suggested-by: Linus Walleij <linus.walleij@linaro.org>
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Hoan Tran <hoan@os.amperecomputing.com>
> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: Paul Burton <paulburton@kernel.org>
> Cc: Ralf Baechle <ralf@linux-mips.org>
> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> Documentation/devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/4] gpio: dwapb: Fix reference clocks usage
2020-03-06 13:24 [PATCH 0/4] gpio: dwapb: Fix reference clocks usage Sergey.Semin
2020-03-12 13:58 ` Linus Walleij
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
@ 2020-04-15 21:27 ` Linus Walleij
2020-04-16 5:09 ` Sergey Semin
2 siblings, 1 reply; 16+ messages in thread
From: Linus Walleij @ 2020-04-15 21:27 UTC (permalink / raw)
To: Sergey.Semin
Cc: Serge Semin, Alexey Malahov, Maxim Kaurkin, Pavel Parkhomenko,
Ramil Zaripov, Ekaterina Skachko, Vadim Vlasov,
Thomas Bogendoerfer, Paul Burton, Ralf Baechle, Hoan Tran,
Bartosz Golaszewski, Philipp Zabel, Rob Herring, Mark Rutland,
open list:GPIO SUBSYSTEM,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
linux-kernel@vger.kernel.org
I have applied the v3 version of the patch set after some tinkering
with the b4 tool.
For some reason some patches are missing in my inbox and also
on som mailing lists, they are not in my spamfolder even.
Anyways with some help from Konstantin I managed to get the
series out using the b4 tool and applied it.
Thanks!
Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/4] gpio: dwapb: Fix reference clocks usage
2020-04-15 21:27 ` [PATCH 0/4] " Linus Walleij
@ 2020-04-16 5:09 ` Sergey Semin
0 siblings, 0 replies; 16+ messages in thread
From: Sergey Semin @ 2020-04-16 5:09 UTC (permalink / raw)
To: Linus Walleij
Cc: Alexey Malahov, Maxim Kaurkin, Pavel Parkhomenko, Ramil Zaripov,
Ekaterina Skachko, Vadim Vlasov, Thomas Bogendoerfer, Paul Burton,
Ralf Baechle, Hoan Tran, Bartosz Golaszewski, Philipp Zabel,
Rob Herring, Mark Rutland, open list:GPIO SUBSYSTEM,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
linux-kernel@vger.kernel.org
On Wed, Apr 15, 2020 at 11:27:49PM +0200, Linus Walleij wrote:
> I have applied the v3 version of the patch set after some tinkering
> with the b4 tool.
>
> For some reason some patches are missing in my inbox and also
> on som mailing lists, they are not in my spamfolder even.
>
> Anyways with some help from Konstantin I managed to get the
> series out using the b4 tool and applied it.
Thanks Linus.
Regarding missing the messages in your inbox. It's weird. I double checked.
All messages were sent to your email. Regarding missing them in the devicetree
mailing list. It's my mistake. Forgot to add it to Cc'es. Next time I'll
keep in mind that this is necessary.
Regards,
-Sergey
>
> Thanks!
> Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2020-04-16 5:09 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-06 13:24 [PATCH 0/4] gpio: dwapb: Fix reference clocks usage Sergey.Semin
2020-03-12 13:58 ` Linus Walleij
2020-03-13 15:29 ` Sergey Semin
2020-03-23 18:06 ` [PATCH v2 0/6] " Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property Sergey.Semin
2020-03-23 18:06 ` [PATCH v2 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 1/6] dt-bindings: gpio: Convert snps,dw-apb-gpio to DT schema Sergey.Semin
2020-03-31 19:24 ` Rob Herring
2020-03-23 19:53 ` [PATCH v3 2/6] dt-bindings: gpio: Add DW GPIO debounce clock property Sergey.Semin
2020-03-23 19:53 ` [PATCH v3 3/6] dt-bindings: gpio: Add Sergey Semin to DW APB GPIO driver maintainers Sergey.Semin
2020-03-31 19:25 ` Rob Herring
2020-03-23 21:39 ` [PATCH v3 0/6] gpio: dwapb: Fix reference clocks usage Andy Shevchenko
2020-04-15 21:27 ` [PATCH 0/4] " Linus Walleij
2020-04-16 5:09 ` Sergey Semin
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).