Re: [PATCH v14 07/16] dt-bindings: fix sifive gpio properties
From: Sean Anderson <seanga2@gmail.com>
Date: 2021-02-02 23:55:35
Also in:
linux-riscv
On 2/2/21 1:45 PM, Atish Patra wrote:
On Tue, Feb 2, 2021 at 2:37 AM Damien Le Moal [off-list ref] wrote:quoted
The sifive gpio IP block supports up to 32 GPIOs. Reflect that in theThe spec here says 16 GPIOs https://static.dev.sifive.com/FU540-C000-v1.0.pdf Is there a updated spec available ?
This GPIO device is (AFAICT) from [1]. While the version instantiated on SiFive's cores has 16 GPIOs, the actual number of GPIOs is configurable. In Canaan's version, there are 32 GPIOs. Unfortunately, I am not aware of any non-implementation-specific documentation for this device. --Sean [1] https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/gpio
quoted
interrupts property description and maxItems. Also add the standard ngpios property to describe the number of GPIOs available on the implementation. Also add the "canaan,k210-gpiohs" compatible string to indicate the use of this gpio controller in the Canaan Kendryte K210 SoC. If this compatible string is used, do not define the clocks property as required as the K210 SoC does not have a software controllable clock for the Sifive gpio IP block. Cc: Paul Walmsley <redacted> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Signed-off-by: Damien Le Moal <redacted> --- .../devicetree/bindings/gpio/sifive,gpio.yaml | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-)diff --git a/Documentation/devicetree/bindings/gpio/sifive,gpio.yaml b/Documentation/devicetree/bindings/gpio/sifive,gpio.yaml index ab22056f8b44..2cef18ca737c 100644 --- a/Documentation/devicetree/bindings/gpio/sifive,gpio.yaml +++ b/Documentation/devicetree/bindings/gpio/sifive,gpio.yaml@@ -16,6 +16,7 @@ properties: - enum: - sifive,fu540-c000-gpio - sifive,fu740-c000-gpio + - canaan,k210-gpiohs - const: sifive,gpio0 reg:@@ -23,9 +24,9 @@ properties: interrupts: description: - interrupt mapping one per GPIO. Maximum 16 GPIOs. + interrupt mapping one per GPIO. Maximum 32 GPIOs. minItems: 1 - maxItems: 16 + maxItems: 32 interrupt-controller: true@@ -38,6 +39,10 @@ properties: "#gpio-cells": const: 2 + ngpios: + minimum: 1 + maximum: 32 + gpio-controller: true required:@@ -46,10 +51,20 @@ required: - interrupts - interrupt-controller - "#interrupt-cells" - - clocks - "#gpio-cells" - gpio-controller +if: + properties: + compatible: + contains: + enum: + - sifive,fu540-c000-gpio + - sifive,fu740-c000-gpio +then: + required: + - clocks + additionalProperties: false examples: --2.29.2 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv