Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp17315ybv; Fri, 21 Feb 2020 22:06:15 -0800 (PST) X-Google-Smtp-Source: APXvYqymgNejCXDIXXs3LqkHdTgIeC4a7/yXRk4bkD+jMjMdM/wtnWz+mhR56f9zNZBtYuUZEjob X-Received: by 2002:aca:d4c1:: with SMTP id l184mr5080322oig.172.1582351575789; Fri, 21 Feb 2020 22:06:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582351575; cv=none; d=google.com; s=arc-20160816; b=IkuaiW1gmEScjqyiPS3xZfUgp+aOBV49K1qN0yvPJbTytT1cBEayuCtvQuYLJ6OMrP etBwEBlWScTWuHhtKlNZzAr0ioAF2W4lfyPLkrkFmhgK5mtQHlpaYq+/s72Qv7yjyU5q WrsR5T5sZ6I6vNKo0cpoC7W+NzAVLYkFD8v25dG70ff2bt57yR0duUIQYC7Qe7az02Eh 47ssKXRy6ddngBcZyValEsRkQpQkclpaacmA0o3TQn5Y/H9vOzT8rxUQBcyET6U9txpk aZF786dX8zAjWtXJVKR2SH56I2vRrDSz5shKw+9MOxl+UTeb+5yCZ/P5HNYGTEJS/0y5 JtLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:dkim-filter; bh=QDsj9fQRh1dUOvTWAuvPScwGCLineeDyL2Vs+90dfww=; b=Ls8arkCYUIJw0TQr2LT1En8wGn3HUYw0W4JFPajpDM3B9KDs3J4I2D54cTR1Uvg83b /7NxdwU4TdvL6ebnKguOolY/7SDMjLhAq5Z+D8H2eY9jUDdRuJZNgUg98zMQ6+e5lKiG wBGnv0cX1SWm5WQyhQacGRM8wyAO/301L8w9ibWiJgR8JNeAEB4AR3Vu23LOwfmpaWM0 xVCL3VQlikPgW8C/EP+UNIoJeT4YjVYC3M2PikF6oaeghY3Cyi+MaPY35120c6SpKnEP 4PoEm0Z5TVVR1ID/Rdce7sh52HZ0yYv5slnOJsKxd6vt2pBtz1o6UODvpOyWyG2FQ+P1 UlOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=brdOKtaq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t130si1818741oib.202.2020.02.21.22.06.03; Fri, 21 Feb 2020 22:06:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=brdOKtaq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727124AbgBVGF4 (ORCPT + 99 others); Sat, 22 Feb 2020 01:05:56 -0500 Received: from conuserg-11.nifty.com ([210.131.2.78]:42396 "EHLO conuserg-11.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726196AbgBVGFy (ORCPT ); Sat, 22 Feb 2020 01:05:54 -0500 X-Greylist: delayed 100448 seconds by postgrey-1.27 at vger.kernel.org; Sat, 22 Feb 2020 01:05:52 EST Received: from grover.flets-west.jp (softbank126093102113.bbtec.net [126.93.102.113]) (authenticated) by conuserg-11.nifty.com with ESMTP id 01M64cSK007264; Sat, 22 Feb 2020 15:04:39 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-11.nifty.com 01M64cSK007264 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1582351480; bh=QDsj9fQRh1dUOvTWAuvPScwGCLineeDyL2Vs+90dfww=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=brdOKtaqTcaIBKZLJlFWtWmuZ/ritj3jrT5KxuqiYwuCbJ2G3yDExIZ9Hy7qIkzT0 dWnOlIFIJLcvozpjwWswrg/jQoYJa4aV7onyLY3Vaq0rPTvpco738GyON1s4cUHOyQ /I6LEYeQAIbcJkCym07tVMqjM+6q1H5iFhgA60uBm/tltZV7CKDBIvmTueMhDX0WbM i4XfJ1eeovVtPx+042/VZew8LZkbikZteg1Fe4mq/TuW64W+FZKl1Inb7oisAsbmoJ fC2RkMoD7pfauf+DeC87iYIKvwx9dQ9ZpSXNDIMbmyn79zZH2iRbyzY4QRP8rqVCuZ 8U5bKZdQd2Zeg== X-Nifty-SrcIP: [126.93.102.113] From: Masahiro Yamada To: Rob Herring , devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Masahiro Yamada , Bartosz Golaszewski , "David S. Miller" , Greg Kroah-Hartman , Jonathan Cameron , Linus Walleij , Mark Rutland , Mauro Carvalho Chehab , linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org Subject: [PATCH v2 2/3] dt-bindings: gpio: Convert UniPhier GPIO to json-schema Date: Sat, 22 Feb 2020 15:04:34 +0900 Message-Id: <20200222060435.971-2-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200222060435.971-1-yamada.masahiro@socionext.com> References: <20200222060435.971-1-yamada.masahiro@socionext.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Convert the UniPhier GPIO controller binding to DT schema format. I omitted the 'gpio-ranges' property because it is defined in the dt-schema project (/schemas/gpio/gpio.yaml). As of writing, the 'gpio-ranges-group-names' is not defined in that file despite it is a common property described in Documentation/devicetree/bindings/gpio/gpio.txt So, I defined it in this schema. Signed-off-by: Masahiro Yamada --- Changes in v2: - fix the build error in the example .../bindings/gpio/gpio-uniphier.txt | 51 ---------- .../gpio/socionext,uniphier-gpio.yaml | 92 +++++++++++++++++++ MAINTAINERS | 2 +- 3 files changed, 93 insertions(+), 52 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-uniphier.txt create mode 100644 Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml diff --git a/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt b/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt deleted file mode 100644 index f281f12dac18..000000000000 --- a/Documentation/devicetree/bindings/gpio/gpio-uniphier.txt +++ /dev/null @@ -1,51 +0,0 @@ -UniPhier GPIO controller - -Required properties: -- compatible: Should be "socionext,uniphier-gpio". -- reg: Specifies offset and length of the register set for the device. -- gpio-controller: Marks the device node as a GPIO controller. -- #gpio-cells: Should be 2. The first cell is the pin number and the second - cell is used to specify optional parameters. -- interrupt-controller: Marks the device node as an interrupt controller. -- #interrupt-cells: Should be 2. The first cell defines the interrupt number. - The second cell bits[3:0] is used to specify trigger type as follows: - 1 = low-to-high edge triggered - 2 = high-to-low edge triggered - 4 = active high level-sensitive - 8 = active low level-sensitive - Valid combinations are 1, 2, 3, 4, 8. -- ngpios: Specifies the number of GPIO lines. -- gpio-ranges: Mapping to pin controller pins (as described in gpio.txt) -- socionext,interrupt-ranges: Specifies an interrupt number mapping between - this GPIO controller and its interrupt parent, in the form of arbitrary - number of triplets. - -Optional properties: -- gpio-ranges-group-names: Used for named gpio ranges (as described in gpio.txt) - -Example: - gpio: gpio@55000000 { - compatible = "socionext,uniphier-gpio"; - reg = <0x55000000 0x200>; - interrupt-parent = <&aidet>; - interrupt-controller; - #interrupt-cells = <2>; - gpio-controller; - #gpio-cells = <2>; - gpio-ranges = <&pinctrl 0 0 0>; - gpio-ranges-group-names = "gpio_range"; - ngpios = <248>; - socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>; - }; - -Consumer Example: - - sdhci0_pwrseq { - compatible = "mmc-pwrseq-emmc"; - reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>; - }; - -Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC document. -Unfortunately, only the one's place is octal in the port numbering. (That is, -PORT 8, 9, 18, 19, 28, 29, ... are missing.) UNIPHIER_GPIO_PORT() is a helper -macro to calculate 29 * 8 + 4. diff --git a/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml b/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml new file mode 100644 index 000000000000..580a39e09d39 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml @@ -0,0 +1,92 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/socionext,uniphier-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: UniPhier GPIO controller + +maintainers: + - Masahiro Yamada + +properties: + $nodename: + pattern: "^gpio@[0-9a-f]+$" + + compatible: + const: socionext,uniphier-gpio + + reg: + maxItems: 1 + + gpio-controller: true + + "#gpio-cells": + const: 2 + + interrupt-controller: true + + "#interrupt-cells": + description: | + The first cell defines the interrupt number. + The second cell bits[3:0] is used to specify trigger type as follows: + 1 = low-to-high edge triggered + 2 = high-to-low edge triggered + 4 = active high level-sensitive + 8 = active low level-sensitive + Valid combinations are 1, 2, 3, 4, 8. + const: 2 + + ngpios: + minimum: 0 + maximum: 512 + + gpio-ranges-group-names: + $ref: /schemas/types.yaml#/definitions/string-array + + socionext,interrupt-ranges: + description: | + Specifies an interrupt number mapping between this GPIO controller and + its interrupt parent, in the form of arbitrary number of + triplets. + $ref: /schemas/types.yaml#/definitions/uint32-matrix + +required: + - compatible + - reg + - gpio-controller + - "#gpio-cells" + - interrupt-controller + - "#interrupt-cells" + - ngpios + - gpio-ranges + - socionext,interrupt-ranges + +examples: + - | + #include + #include + + gpio: gpio@55000000 { + compatible = "socionext,uniphier-gpio"; + reg = <0x55000000 0x200>; + interrupt-parent = <&aidet>; + interrupt-controller; + #interrupt-cells = <2>; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&pinctrl 0 0 0>; + gpio-ranges-group-names = "gpio_range"; + ngpios = <248>; + socionext,interrupt-ranges = <0 48 16>, <16 154 5>, <21 217 3>; + }; + + // Consumer: + // Please note UNIPHIER_GPIO_PORT(29, 4) represents PORT294 in the SoC + // document. Unfortunately, only the one's place is octal in the port + // numbering. (That is, PORT 8, 9, 18, 19, 28, 29, ... do not exist.) + // UNIPHIER_GPIO_PORT() is a helper macro to calculate 29 * 8 + 4. + sdhci0_pwrseq { + compatible = "mmc-pwrseq-emmc"; + reset-gpios = <&gpio UNIPHIER_GPIO_PORT(29, 4) GPIO_ACTIVE_LOW>; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 93ccb6708ae9..3cb4c8a9107d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2547,7 +2547,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier.git S: Maintained F: Documentation/devicetree/bindings/arm/socionext/uniphier.yaml -F: Documentation/devicetree/bindings/gpio/gpio-uniphier.txt +F: Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml F: Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt F: arch/arm/boot/dts/uniphier* F: arch/arm/include/asm/hardware/cache-uniphier.h -- 2.17.1