All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sander Vanheule <sander@svanheule.net>
To: Rob Herring <robh@kernel.org>
Cc: Pavel Machek <pavel@ucw.cz>, Lee Jones <lee.jones@linaro.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	linux-leds@vger.kernel.org, devicetree@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/5] dt-bindings: mfd: Binding for RTL8231
Date: Wed, 19 May 2021 18:53:21 +0200	[thread overview]
Message-ID: <3fd64248fbea981e19ccf80b8484ac4f71755824.camel@svanheule.net> (raw)
In-Reply-To: <20210517223801.GA3327704@robh.at.kernel.org>

On Mon, 2021-05-17 at 17:38 -0500, Rob Herring wrote:
> On Tue, May 11, 2021 at 02:25:20PM +0200, Sander Vanheule wrote:
> > Add a binding description for the Realtek RTL8231, a GPIO and LED
> > expander chip commonly used in ethernet switches based on a Realtek
> > switch SoC. These chips can be addressed via an MDIO or SMI bus, or used
> > as a plain 36-bit shift register.
> > 
> > This binding only describes the feature set provided by the MDIO/SMI
> > configuration, and covers the GPIO, PWM, and pin control properties. The
> > LED properties are defined in a separate binding.
> > 
> > Signed-off-by: Sander Vanheule <sander@svanheule.net>
> > ---
> >  .../bindings/mfd/realtek,rtl8231.yaml         | 202 ++++++++++++++++++
> >  1 file changed, 202 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
> > b/Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
> > new file mode 100644
> > index 000000000000..2023cfa887a3
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mfd/realtek,rtl8231.yaml
> > @@ -0,0 +1,202 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/mfd/realtek,rtl8231.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Realtek RTL8231 GPIO and LED expander.
> > +
> > +maintainers:
> > +  - Sander Vanheule <sander@svanheule.net>
> > +
> > +description: |
> > +  The RTL8231 is a GPIO and LED expander chip, providing up to 37 GPIOs, up
> > to
> > +  88 LEDs, and up to one PWM output. This device is frequently used
> > alongside
> > +  Realtek switch SoCs, to provide additional I/O capabilities.
> > +
> > +  To manage the RTL8231's features, its strapping pins can be used to
> > configure
> > +  it in one of three modes: shift register, MDIO device, or SMI device. The
> > +  shift register mode does not need special support. In MDIO or SMI mode,
> > most
> > +  pins can be configured as a GPIO output, LED matrix scan line/column, or
> > as a
> > +  PWM output.
> > +
> > +  The GPIO and pin control are part of the main node. PWM and LED support
> > are
> > +  configured as sub-nodes.
> > +
> > +properties:
> > +  compatible:
> > +    const: realtek,rtl8231
> > +
> > +  reg:
> > +    description: MDIO or SMI device address.
> > +    maxItems: 1
> > +
> > +  # GPIO support
> > +  gpio-controller: true
> > +
> > +  "#gpio-cells":
> > +    const: 2
> > +    description: |
> > +      The first cell is the pin number and the second cell is used to
> > specify
> > +      the gpio active state.
> > +
> > +  gpio-ranges:
> > +    description: |
> > +      Must reference itself, and provide a zero-based mapping for 37 pins.
> > +    maxItems: 1
> > +
> > +  # Pin muxing and configuration
> > +  realtek,drive-strength:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> 
> Use the standard 'drive-strength' property.

Ok, I wasn't sure I could do this, since it's normally used in a pin config, not
a pin controller config. I'll update this, as well as the suggested changes
below.

Best,
Sander


> 
> > +    description: |
> > +      Common drive strength used for all GPIO output pins, must be 4mA or
> > 8mA.
> > +      On reset, this value will default to 8mA.
> > +    enum: [4, 8]
> > +
> > +  # LED scanning matrix
> > +  leds:
> > +    $ref: ../leds/realtek,rtl8231-leds.yaml#
> > +
> > +  # PWM output
> > +  pwm:
> > +    type: object
> > +    description: |
> > +      Subnode describing the PWM peripheral. To use the PWM output, gpio35
> > must
> > +      be muxed to its 'pwm' function. Valid frequency values for consumers
> > are
> > +      1200, 1600, 2000, 2400, 2800, 3200, 4000, and 4800.
> > +
> > +    properties:
> > +      "#pwm-cells":
> > +        description: |
> > +          Twos cells with PWM index (must be 0) and PWM frequency in Hz.
> > +        const: 2
> > +
> > +    required:
> > +      - "#pwm-cells"
> 
> Just move this to the parent node. No reason for a child node or that 1 
> node can't be 2 providers.
> 
> > +
> > +patternProperties:
> > +  "-pins$":
> > +    type: object
> > +    $ref: ../pinctrl/pinmux-node.yaml#
> > +
> > +    properties:
> > +      pins:
> > +        items:
> > +          oneOf:
> 
> No need for oneOf when there's only 1 entry.
> 
> > +            - enum: ["gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5",
> > "gpio6",
> > +                     "gpio7", "gpio8", "gpio9", "gpio10", "gpio11",
> > "gpio12", "gpio13",
> > +                     "gpio14", "gpio15", "gpio16", "gpio17", "gpio18",
> > "gpio19", "gpio20",
> > +                     "gpio21", "gpio22", "gpio23", "gpio24", "gpio25",
> > "gpio26", "gpio27",
> > +                     "gpio28", "gpio29", "gpio30", "gpio31", "gpio32",
> > "gpio33", "gpio34",
> > +                     "gpio35", "gpio36"]
> > +        minItems: 1
> > +        maxItems: 37
> > +      function:
> > +        description: |
> > +          Select which function to use. "gpio" is supported for all pins,
> > "led" is supported
> > +          for pins 0-34, "pwm" is supported for for pin 35.
> > +        enum: ["gpio", "led", "pwm"]
> > +
> > +    required:
> > +      - pins
> > +      - function
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - gpio-controller
> > +  - "#gpio-cells"
> > +  - gpio-ranges
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    // Minimal example
> > +    mdio {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        expander0: expander@0 {
> > +            compatible = "realtek,rtl8231";
> > +            reg = <0>;
> > +
> > +            gpio-controller;
> > +            #gpio-cells = <2>;
> > +            gpio-ranges = <&expander0 0 0 37>;
> > +        };
> > +    };
> > +  - |
> > +    // All bells and whistles included
> > +    #include <dt-bindings/leds/common.h>
> > +    mdio {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        expander1: expander@1 {
> > +            compatible = "realtek,rtl8231";
> > +            reg = <1>;
> > +
> > +            gpio-controller;
> > +            #gpio-cells = <2>;
> > +            gpio-ranges = <&expander1 0 0 37>;
> > +
> > +            realtek,drive-strength = <4>;
> > +
> > +            button-pins {
> > +                pins = "gpio36";
> > +                function = "gpio";
> > +                input-debounce = "100000";
> > +            };
> > +
> > +            pwm-pins {
> > +                pins = "gpio35";
> > +                function = "pwm";
> > +            };
> > +
> > +            led-pins {
> > +                pins = "gpio0", "gpio1", "gpio3", "gpio4";
> > +                function = "led";
> > +            };
> > +
> > +            pwm {
> > +                #pwm-cells = <2>;
> > +            };
> > +
> > +            leds {
> > +                compatible = "realtek,rtl8231-leds";
> > +                #address-cells = <2>;
> > +                #size-cells = <0>;
> > +
> > +                realtek,led-scan-mode = "single-color";
> > +
> > +                led@0,0 {
> > +                    reg = <0 0>;
> > +                    color = <LED_COLOR_ID_GREEN>;
> > +                    function = LED_FUNCTION_LAN;
> > +                    function-enumerator = <0>;
> > +                };
> > +
> > +                led@0,1 {
> > +                    reg = <0 1>;
> > +                    color = <LED_COLOR_ID_AMBER>;
> > +                    function = LED_FUNCTION_LAN;
> > +                    function-enumerator = <0>;
> > +                };
> > +
> > +                led@1,0 {
> > +                    reg = <1 0>;
> > +                    color = <LED_COLOR_ID_GREEN>;
> > +                    function = LED_FUNCTION_LAN;
> > +                    function-enumerator = <1>;
> > +                };
> > +
> > +                led@1,1 {
> > +                    reg = <1 1>;
> > +                    color = <LED_COLOR_ID_AMBER>;
> > +                    function = LED_FUNCTION_LAN;
> > +                    function-enumerator = <1>;
> > +                };
> > +            };
> > +        };
> > +    };
> > -- 
> > 2.31.1
> > 



  reply	other threads:[~2021-05-19 16:53 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-11 12:25 [PATCH 0/5] RTL8231 GPIO expander support Sander Vanheule
2021-05-11 12:25 ` [PATCH 1/5] dt-bindings: leds: Binding for RTL8231 scan matrix Sander Vanheule
2021-05-17 22:31   ` Rob Herring
2021-05-19 16:39     ` Sander Vanheule
2021-05-11 12:25 ` [PATCH 2/5] dt-bindings: mfd: Binding for RTL8231 Sander Vanheule
2021-05-17 22:38   ` Rob Herring
2021-05-19 16:53     ` Sander Vanheule [this message]
2021-05-11 12:25 ` [PATCH 3/5] mfd: Add RTL8231 core device Sander Vanheule
2021-05-12 12:29   ` kernel test robot
2021-05-12 12:29     ` kernel test robot
2021-05-12 13:13   ` kernel test robot
2021-05-12 13:13     ` kernel test robot
2021-05-19 14:58     ` Lee Jones
2021-05-19 14:58       ` Lee Jones
2021-05-19 15:11       ` Sander Vanheule
2021-05-19 15:11         ` Sander Vanheule
2021-05-11 12:25 ` [PATCH 4/5] pinctrl: Add RTL8231 pin control and GPIO support Sander Vanheule
2021-05-11 12:25 ` [PATCH 5/5] leds: Add support for RTL8231 LED scan matrix Sander Vanheule
     [not found] ` <CAHp75VffoKyyPJbdtKMLx575c9LT0S8+EHOk7Mw36j=aTL6Q4Q@mail.gmail.com>
2021-05-16 21:40   ` [PATCH 0/5] RTL8231 GPIO expander support Sander Vanheule
2021-05-17  8:13     ` Andy Shevchenko
2021-05-17  8:50       ` Sander Vanheule
2021-05-17 19:32     ` Sander Vanheule
2021-05-17 19:28 ` [PATCH v2 0/7] " Sander Vanheule
2021-05-17 19:28   ` [PATCH v2 1/7] regmap: Add MDIO bus support Sander Vanheule
2021-05-19 16:12     ` Mark Brown
2021-05-17 19:28   ` [PATCH v2 2/7] gpio: regmap: Add configurable dir/value order Sander Vanheule
2021-05-17 21:06     ` Andy Shevchenko
2021-05-18  1:40     ` Andrew Lunn
2021-05-18 11:39       ` Sander Vanheule
2021-05-23 22:21       ` Sander Vanheule
2021-05-18  8:39     ` Michael Walle
2021-05-18 10:39       ` Andy Shevchenko
2021-05-23 21:19       ` Sander Vanheule
2021-05-17 19:28   ` [PATCH v2 3/7] dt-bindings: leds: Binding for RTL8231 scan matrix Sander Vanheule
2021-05-17 19:28   ` [PATCH v2 4/7] dt-bindings: mfd: Binding for RTL8231 Sander Vanheule
2021-05-18 22:02     ` Linus Walleij
2021-05-17 19:28   ` [PATCH v2 5/7] mfd: Add RTL8231 core device Sander Vanheule
2021-05-17 21:18     ` Andy Shevchenko
2021-05-23 21:28       ` Sander Vanheule
2021-05-24  7:49         ` Andy Shevchenko
2021-05-24  7:50       ` Sander Vanheule
2021-05-24  7:55         ` Andy Shevchenko
2021-05-24  8:04           ` Sander Vanheule
2021-05-17 19:28   ` [PATCH v2 6/7] pinctrl: Add RTL8231 pin control and GPIO support Sander Vanheule
2021-05-17 21:42     ` Andy Shevchenko
2021-05-17 21:46       ` Andy Shevchenko
2021-05-23 21:42       ` Sander Vanheule
2021-05-17 19:28   ` [PATCH v2 7/7] leds: Add support for RTL8231 LED scan matrix Sander Vanheule
2021-05-17 22:00     ` Andy Shevchenko
2021-05-23 21:53       ` Sander Vanheule
2021-05-19 16:10   ` (subset) [PATCH v2 0/7] RTL8231 GPIO expander support Mark Brown
2021-05-23 22:33 ` [PATCH v3 0/6] " Sander Vanheule
2021-05-23 22:33   ` [PATCH v3 1/6] gpio: regmap: Add quirk for output data register Sander Vanheule
2021-05-28  6:40     ` Michael Walle
2021-06-03 10:03       ` Sander Vanheule
2021-05-31  7:25     ` Bartosz Golaszewski
2021-05-23 22:34   ` [PATCH v3 2/6] dt-bindings: leds: Binding for RTL8231 scan matrix Sander Vanheule
2021-06-02 18:58     ` Rob Herring
2021-05-23 22:34   ` [PATCH v3 3/6] dt-bindings: mfd: Binding for RTL8231 Sander Vanheule
2021-05-27 23:31     ` Linus Walleij
2021-06-02 19:02     ` Rob Herring
2021-05-23 22:34   ` [PATCH v3 4/6] mfd: Add RTL8231 core device Sander Vanheule
2021-05-24  8:02     ` Andy Shevchenko
2021-05-24  8:23       ` Sander Vanheule
2021-05-24 10:18         ` Andy Shevchenko
2021-05-24 11:41           ` Sander Vanheule
2021-05-23 22:34   ` [PATCH v3 5/6] pinctrl: Add RTL8231 pin control and GPIO support Sander Vanheule
     [not found]     ` <CAHp75VfCCFd9SQwqv-JhdHMudYWdaa1tcVp4ZNescioWTaoXFQ@mail.gmail.com>
2021-05-24 11:32       ` Andy Shevchenko
2021-05-24 11:39         ` Sander Vanheule
2021-05-28  6:29     ` Michael Walle
2021-05-28  6:42       ` Sander Vanheule
2021-05-28  6:43         ` Michael Walle
2021-05-23 22:34   ` [PATCH v3 6/6] leds: Add support for RTL8231 LED scan matrix Sander Vanheule
2021-05-24 10:24     ` Andy Shevchenko
2021-05-24 12:04       ` Sander Vanheule
2021-05-24 12:47         ` Andy Shevchenko
2021-05-24 15:30           ` Sander Vanheule
2021-05-24  1:10   ` [PATCH v3 0/6] RTL8231 GPIO expander support Andrew Lunn
2021-05-24  7:53     ` Andy Shevchenko
2021-05-24 11:41       ` Sander Vanheule
2021-05-24 12:54         ` Andy Shevchenko
2021-05-24 15:03           ` Sander Vanheule
2021-05-24 16:30             ` Andy Shevchenko
2021-05-25 17:11               ` Andy Shevchenko
2021-05-25 18:00                 ` Sander Vanheule
2021-05-26 21:02                 ` Sander Vanheule
2021-05-27 10:38                   ` Andy Shevchenko
2021-05-27 10:41                     ` Hans de Goede
2021-05-24 15:20           ` Sander Vanheule
2021-05-28  6:37         ` Michael Walle
2021-05-30 16:19           ` Sander Vanheule
2021-05-30 16:51             ` Hans de Goede
2021-05-30 18:16               ` Andy Shevchenko
2021-05-30 21:22                 ` Michael Walle
2021-05-31  8:36                   ` Sander Vanheule
2021-05-31 10:02                     ` Michael Walle
     [not found]                       ` <CAHp75VfOrUBRQH1vrXEwHN4ZPojQfQju-_wp_3djZeozEaatug@mail.gmail.com>
2021-05-31 15:33                         ` [PATCH 0/5] " Sander Vanheule
2021-05-31 15:48                           ` Andy Shevchenko
2021-06-01 11:49                             ` Michael Walle
2021-06-01 15:24                               ` Andy Shevchenko
2021-06-02 20:20                                 ` Sander Vanheule
2021-06-01  9:59                 ` [PATCH v3 0/6] " Linus Walleij
2021-06-01 10:18                   ` Michael Walle
2021-06-01 10:51                     ` Linus Walleij
2021-06-01 11:41                       ` Michael Walle
2021-06-01 11:48                         ` Linus Walleij
2021-06-03 10:00 ` [PATCH v4 0/5] " Sander Vanheule
2021-06-03 10:00   ` [PATCH v4 1/5] dt-bindings: leds: Binding for RTL8231 scan matrix Sander Vanheule
2021-06-03 10:00   ` [PATCH v4 2/5] dt-bindings: mfd: Binding for RTL8231 Sander Vanheule
2021-06-03 10:00   ` [PATCH v4 3/5] mfd: Add RTL8231 core device Sander Vanheule
2021-06-03 10:58     ` Andy Shevchenko
2021-06-03 11:28       ` Sander Vanheule
2021-06-03 14:03         ` Andrew Lunn
2021-06-03 15:20           ` Sander Vanheule
2021-06-05 11:07       ` Sander Vanheule
2021-06-03 10:00   ` [PATCH v4 4/5] pinctrl: Add RTL8231 pin control and GPIO support Sander Vanheule
2021-06-03 10:18     ` Andy Shevchenko
2021-06-03 15:58     ` kernel test robot
2021-06-03 15:58       ` kernel test robot
2021-06-04  7:00       ` Sander Vanheule
2021-06-04  7:00         ` Sander Vanheule
2021-06-04 22:10     ` Linus Walleij
2021-06-03 10:00   ` [PATCH v4 5/5] leds: Add support for RTL8231 LED scan matrix Sander Vanheule
2021-06-03 11:01     ` Andy Shevchenko

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=3fd64248fbea981e19ccf80b8484ac4f71755824.camel@svanheule.net \
    --to=sander@svanheule.net \
    --cc=devicetree@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=robh@kernel.org \
    /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.