From: Rob Herring <robh@kernel.org>
To: "Álvaro Fernández Rojas" <noltari@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Michael Walle <michael@walle.cc>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Florian Fainelli <f.fainelli@gmail.com>,
bcm-kernel-feedback-list@broadcom.com,
Jonas Gorski <jonas.gorski@gmail.com>,
Necip Fazil Yildiran <fazilyildiran@gmail.com>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 04/15] dt-bindings: add BCM6328 pincontroller binding documentation
Date: Mon, 8 Mar 2021 15:44:58 -0700 [thread overview]
Message-ID: <20210308224458.GA3077562@robh.at.kernel.org> (raw)
In-Reply-To: <20210306155712.4298-5-noltari@gmail.com>
On Sat, Mar 06, 2021 at 04:57:01PM +0100, Álvaro Fernández Rojas wrote:
> Add binding documentation for the pincontrol core found in BCM6328 SoCs.
>
> Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
> Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com>
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> ---
> v5: change Documentation to dt-bindings in commit title
> v4: no changes
> v3: add new gpio node
> v2: remove interrupts
>
> .../pinctrl/brcm,bcm6328-pinctrl.yaml | 171 ++++++++++++++++++
> 1 file changed, 171 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml
> new file mode 100644
> index 000000000000..d4e3c7897f19
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml
> @@ -0,0 +1,171 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/brcm,bcm6328-pinctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom BCM6328 pin controller
> +
> +maintainers:
> + - Álvaro Fernández Rojas <noltari@gmail.com>
> + - Jonas Gorski <jonas.gorski@gmail.com>
> +
> +description: |+
> + The pin controller node should be the child of a syscon node.
> +
> + Refer to the the bindings described in
> + Documentation/devicetree/bindings/mfd/syscon.yaml
> +
> +properties:
> + compatible:
> + const: brcm,bcm6328-pinctrl
> +
> +patternProperties:
> + '^gpio$':
Not a pattern, move to 'properties'
> + type: object
> + properties:
> + compatible:
> + const: brcm,bcm6328-gpio
> +
> + data:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Offset in the register map for the data register (in bytes).
> +
> + dirout:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Offset in the register map for the dirout register (in bytes).
> +
> + gpio-controller: true
> +
> + "#gpio-cells":
> + const: 2
> +
> + gpio-ranges:
> + maxItems: 1
> +
> + required:
> + - gpio-controller
> + - gpio-ranges
> + - '#gpio-cells'
> +
> + '^.*$':
> + if:
> + type: object
> + then:
Instead of this hack (which shouldn't work because 'gpio' is also a
node), use some defined node name pattern (e.g. '-pins$')
You need an 'additionalProperties: false' at this level.
> + properties:
> + function:
> + $ref: "/schemas/types.yaml#/definitions/string"
Reference the pinctrl schemas which define these properties.
> + enum: [ serial_led_data, serial_led_clk, inet_act_led, pcie_clkreq,
> + led, ephy0_act_led, ephy1_act_led, ephy2_act_led,
> + ephy3_act_led, hsspi_cs1, usb_device_port, usb_host_port ]
> +
> + pins:
> + $ref: "/schemas/types.yaml#/definitions/string"
> + enum: [ gpio6, gpio7, gpio11, gpio16, gpio17, gpio18, gpio19,
> + gpio20, gpio25, gpio26, gpio27, gpio28, hsspi_cs1,
> + usb_port1 ]
> +
> +required:
> + - compatible
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + gpio_cntl@10000080 {
> + compatible = "syscon", "simple-mfd";
syscon needs a specific compatible for the SoC block.
What else is in this block besides pinctrl?
> + reg = <0x10000080 0x80>;
> +
> + pinctrl: pinctrl {
> + compatible = "brcm,bcm6328-pinctrl";
Is there a register range of just pinctrl registers? If so, add 'reg'
and define the sub-range.
> +
> + gpio {
> + compatible = "brcm,bcm6328-gpio";
> + data = <0xc>;
> + dirout = <0x4>;
> +
> + gpio-controller;
> + gpio-ranges = <&pinctrl 0 0 32>;
> + #gpio-cells = <2>;
> + };
> +
> + pinctrl_serial_led: serial_led {
> + pinctrl_serial_led_data: serial_led_data {
> + function = "serial_led_data";
> + pins = "gpio6";
> + };
> +
> + pinctrl_serial_led_clk: serial_led_clk {
> + function = "serial_led_clk";
> + pins = "gpio7";
> + };
> + };
> +
> + pinctrl_inet_act_led: inet_act_led {
> + function = "inet_act_led";
> + pins = "gpio11";
> + };
> +
> + pinctrl_pcie_clkreq: pcie_clkreq {
> + function = "pcie_clkreq";
> + pins = "gpio16";
> + };
> +
> + pinctrl_ephy0_spd_led: ephy0_spd_led {
> + function = "led";
> + pins = "gpio17";
> + };
> +
> + pinctrl_ephy1_spd_led: ephy1_spd_led {
> + function = "led";
> + pins = "gpio18";
> + };
> +
> + pinctrl_ephy2_spd_led: ephy2_spd_led {
> + function = "led";
> + pins = "gpio19";
> + };
> +
> + pinctrl_ephy3_spd_led: ephy3_spd_led {
> + function = "led";
> + pins = "gpio20";
> + };
> +
> + pinctrl_ephy0_act_led: ephy0_act_led {
> + function = "ephy0_act_led";
> + pins = "gpio25";
> + };
> +
> + pinctrl_ephy1_act_led: ephy1_act_led {
> + function = "ephy1_act_led";
> + pins = "gpio26";
> + };
> +
> + pinctrl_ephy2_act_led: ephy2_act_led {
> + function = "ephy2_act_led";
> + pins = "gpio27";
> + };
> +
> + pinctrl_ephy3_act_led: ephy3_act_led {
> + function = "ephy3_act_led";
> + pins = "gpio28";
> + };
> +
> + pinctrl_hsspi_cs1: hsspi_cs1 {
> + function = "hsspi_cs1";
> + pins = "hsspi_cs1";
> + };
> +
> + pinctrl_usb_port1_device: usb_port1_device {
> + function = "usb_device_port";
> + pins = "usb_port1";
> + };
> +
> + pinctrl_usb_port1_host: usb_port1_host {
> + function = "usb_host_port";
> + pins = "usb_port1";
> + };
> + };
> + };
> --
> 2.20.1
>
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: "Álvaro Fernández Rojas" <noltari@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Michael Walle <michael@walle.cc>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>,
Florian Fainelli <f.fainelli@gmail.com>,
bcm-kernel-feedback-list@broadcom.com,
Jonas Gorski <jonas.gorski@gmail.com>,
Necip Fazil Yildiran <fazilyildiran@gmail.com>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 04/15] dt-bindings: add BCM6328 pincontroller binding documentation
Date: Mon, 8 Mar 2021 15:44:58 -0700 [thread overview]
Message-ID: <20210308224458.GA3077562@robh.at.kernel.org> (raw)
In-Reply-To: <20210306155712.4298-5-noltari@gmail.com>
On Sat, Mar 06, 2021 at 04:57:01PM +0100, Álvaro Fernández Rojas wrote:
> Add binding documentation for the pincontrol core found in BCM6328 SoCs.
>
> Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
> Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com>
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> ---
> v5: change Documentation to dt-bindings in commit title
> v4: no changes
> v3: add new gpio node
> v2: remove interrupts
>
> .../pinctrl/brcm,bcm6328-pinctrl.yaml | 171 ++++++++++++++++++
> 1 file changed, 171 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml
> new file mode 100644
> index 000000000000..d4e3c7897f19
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml
> @@ -0,0 +1,171 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/brcm,bcm6328-pinctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom BCM6328 pin controller
> +
> +maintainers:
> + - Álvaro Fernández Rojas <noltari@gmail.com>
> + - Jonas Gorski <jonas.gorski@gmail.com>
> +
> +description: |+
> + The pin controller node should be the child of a syscon node.
> +
> + Refer to the the bindings described in
> + Documentation/devicetree/bindings/mfd/syscon.yaml
> +
> +properties:
> + compatible:
> + const: brcm,bcm6328-pinctrl
> +
> +patternProperties:
> + '^gpio$':
Not a pattern, move to 'properties'
> + type: object
> + properties:
> + compatible:
> + const: brcm,bcm6328-gpio
> +
> + data:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Offset in the register map for the data register (in bytes).
> +
> + dirout:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Offset in the register map for the dirout register (in bytes).
> +
> + gpio-controller: true
> +
> + "#gpio-cells":
> + const: 2
> +
> + gpio-ranges:
> + maxItems: 1
> +
> + required:
> + - gpio-controller
> + - gpio-ranges
> + - '#gpio-cells'
> +
> + '^.*$':
> + if:
> + type: object
> + then:
Instead of this hack (which shouldn't work because 'gpio' is also a
node), use some defined node name pattern (e.g. '-pins$')
You need an 'additionalProperties: false' at this level.
> + properties:
> + function:
> + $ref: "/schemas/types.yaml#/definitions/string"
Reference the pinctrl schemas which define these properties.
> + enum: [ serial_led_data, serial_led_clk, inet_act_led, pcie_clkreq,
> + led, ephy0_act_led, ephy1_act_led, ephy2_act_led,
> + ephy3_act_led, hsspi_cs1, usb_device_port, usb_host_port ]
> +
> + pins:
> + $ref: "/schemas/types.yaml#/definitions/string"
> + enum: [ gpio6, gpio7, gpio11, gpio16, gpio17, gpio18, gpio19,
> + gpio20, gpio25, gpio26, gpio27, gpio28, hsspi_cs1,
> + usb_port1 ]
> +
> +required:
> + - compatible
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + gpio_cntl@10000080 {
> + compatible = "syscon", "simple-mfd";
syscon needs a specific compatible for the SoC block.
What else is in this block besides pinctrl?
> + reg = <0x10000080 0x80>;
> +
> + pinctrl: pinctrl {
> + compatible = "brcm,bcm6328-pinctrl";
Is there a register range of just pinctrl registers? If so, add 'reg'
and define the sub-range.
> +
> + gpio {
> + compatible = "brcm,bcm6328-gpio";
> + data = <0xc>;
> + dirout = <0x4>;
> +
> + gpio-controller;
> + gpio-ranges = <&pinctrl 0 0 32>;
> + #gpio-cells = <2>;
> + };
> +
> + pinctrl_serial_led: serial_led {
> + pinctrl_serial_led_data: serial_led_data {
> + function = "serial_led_data";
> + pins = "gpio6";
> + };
> +
> + pinctrl_serial_led_clk: serial_led_clk {
> + function = "serial_led_clk";
> + pins = "gpio7";
> + };
> + };
> +
> + pinctrl_inet_act_led: inet_act_led {
> + function = "inet_act_led";
> + pins = "gpio11";
> + };
> +
> + pinctrl_pcie_clkreq: pcie_clkreq {
> + function = "pcie_clkreq";
> + pins = "gpio16";
> + };
> +
> + pinctrl_ephy0_spd_led: ephy0_spd_led {
> + function = "led";
> + pins = "gpio17";
> + };
> +
> + pinctrl_ephy1_spd_led: ephy1_spd_led {
> + function = "led";
> + pins = "gpio18";
> + };
> +
> + pinctrl_ephy2_spd_led: ephy2_spd_led {
> + function = "led";
> + pins = "gpio19";
> + };
> +
> + pinctrl_ephy3_spd_led: ephy3_spd_led {
> + function = "led";
> + pins = "gpio20";
> + };
> +
> + pinctrl_ephy0_act_led: ephy0_act_led {
> + function = "ephy0_act_led";
> + pins = "gpio25";
> + };
> +
> + pinctrl_ephy1_act_led: ephy1_act_led {
> + function = "ephy1_act_led";
> + pins = "gpio26";
> + };
> +
> + pinctrl_ephy2_act_led: ephy2_act_led {
> + function = "ephy2_act_led";
> + pins = "gpio27";
> + };
> +
> + pinctrl_ephy3_act_led: ephy3_act_led {
> + function = "ephy3_act_led";
> + pins = "gpio28";
> + };
> +
> + pinctrl_hsspi_cs1: hsspi_cs1 {
> + function = "hsspi_cs1";
> + pins = "hsspi_cs1";
> + };
> +
> + pinctrl_usb_port1_device: usb_port1_device {
> + function = "usb_device_port";
> + pins = "usb_port1";
> + };
> +
> + pinctrl_usb_port1_host: usb_port1_host {
> + function = "usb_host_port";
> + pins = "usb_port1";
> + };
> + };
> + };
> --
> 2.20.1
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-03-08 22:45 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-06 15:56 [PATCH v5 00/15] pinctrl: add BCM63XX pincontrol support Álvaro Fernández Rojas
2021-03-06 15:56 ` Álvaro Fernández Rojas
2021-03-06 15:56 ` [PATCH v5 01/15] gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP Álvaro Fernández Rojas
2021-03-06 15:56 ` Álvaro Fernández Rojas
2021-03-09 23:08 ` Michael Walle
2021-03-09 23:08 ` Michael Walle
2021-03-06 15:56 ` [PATCH v5 02/15] gpio: regmap: set gpio_chip of_node Álvaro Fernández Rojas
2021-03-06 15:56 ` Álvaro Fernández Rojas
2021-03-06 16:26 ` Andy Shevchenko
2021-03-06 16:26 ` Andy Shevchenko
2021-03-20 1:47 ` kernel test robot
2021-03-06 15:57 ` [PATCH v5 03/15] pinctrl: bcm: add bcm63xx base code Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-07 19:05 ` Andy Shevchenko
2021-03-07 19:05 ` Andy Shevchenko
2021-03-10 7:25 ` Álvaro Fernández Rojas
2021-03-10 7:25 ` Álvaro Fernández Rojas
2021-03-10 23:59 ` Linus Walleij
2021-03-10 23:59 ` Linus Walleij
2021-03-06 15:57 ` [PATCH v5 04/15] dt-bindings: add BCM6328 pincontroller binding documentation Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-08 22:44 ` Rob Herring [this message]
2021-03-08 22:44 ` Rob Herring
2021-03-06 15:57 ` [PATCH v5 05/15] pinctrl: add a pincontrol driver for BCM6328 Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 06/15] dt-bindings: add BCM6358 pincontroller binding documentation Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 07/15] pinctrl: add a pincontrol driver for BCM6358 Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 08/15] dt-bindings: add BCM6362 pincontroller binding documentation Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 09/15] pinctrl: add a pincontrol driver for BCM6362 Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 10/15] dt-bindings: add BCM6368 pincontroller binding documentation Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 11/15] pinctrl: add a pincontrol driver for BCM6368 Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 12/15] dt-bindings: add BCM63268 pincontroller binding documentation Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 13/15] pinctrl: add a pincontrol driver for BCM63268 Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-06 15:57 ` [PATCH v5 14/15] dt-bindings: add BCM6318 pincontroller binding documentation Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
2021-03-08 22:50 ` Rob Herring
2021-03-08 22:50 ` Rob Herring
2021-03-06 15:57 ` [PATCH v5 15/15] pinctrl: add a pincontrol driver for BCM6318 Álvaro Fernández Rojas
2021-03-06 15:57 ` Álvaro Fernández Rojas
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=20210308224458.GA3077562@robh.at.kernel.org \
--to=robh@kernel.org \
--cc=andy.shevchenko@gmail.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bgolaszewski@baylibre.com \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=fazilyildiran@gmail.com \
--cc=jonas.gorski@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael@walle.cc \
--cc=noltari@gmail.com \
/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: link
Be 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.