mbox series

[v2,0/6] dt-bindings: Convert mux bindings to schema

Message ID 20210526184839.2937899-1-robh@kernel.org
Headers show
Series dt-bindings: Convert mux bindings to schema | expand

Message

Rob Herring May 26, 2021, 6:48 p.m. UTC
This series converts the mux-controller and some i2c mux bindings to DT
schema. This was a rabbit hole of trying to fix undocumented (by schema)
compatibles (enabled by setting DT_CHECKER_FLAGS=-m). So this is mux
bindings, and then a few others that are used in the mux binding
examples.

I ended up converting the MDIO mux bindings[1], and Jonathan did the
IIO mux[2]. (Thanks!)

Rob

[1] https://lore.kernel.org/r/20210526181411.2888516-1-robh@kernel.org/
[2] https://lore.kernel.org/r/20210522112908.1611389-2-jic23@kernel.org/


Rob Herring (6):
  dt-bindings: mfd: ti,j721e-system-controller: Fix mux node errors
  dt-bindings: rtc: nxp,pcf8563: Convert to DT schema
  dt-bindings: mux: Convert mux controller bindings to schema
  dt-bindings: i2c: Convert i2c-mux bindings to DT schema
  dt-bindings: i2c: i2c-mux-pca954x: Convert to DT schema
  dt-bindings: i2c: maxim,max9286: Use the i2c-mux.yaml schema

 .../bindings/i2c/i2c-demux-pinctrl.txt        |   2 +-
 .../devicetree/bindings/i2c/i2c-mux-gpio.txt  |   4 +-
 .../devicetree/bindings/i2c/i2c-mux-gpmux.txt |  99 ----------
 .../bindings/i2c/i2c-mux-gpmux.yaml           | 124 ++++++++++++
 .../bindings/i2c/i2c-mux-ltc4306.txt          |   4 +-
 .../bindings/i2c/i2c-mux-pca954x.txt          |  74 -------
 .../bindings/i2c/i2c-mux-pca954x.yaml         | 110 +++++++++++
 .../bindings/i2c/i2c-mux-pinctrl.txt          |   4 +-
 .../devicetree/bindings/i2c/i2c-mux-reg.txt   |   4 +-
 .../devicetree/bindings/i2c/i2c-mux.txt       |  73 -------
 .../devicetree/bindings/i2c/i2c-mux.yaml      |  87 +++++++++
 .../iio/multiplexer/io-channel-mux.txt        |   2 +-
 .../bindings/media/i2c/maxim,max9286.yaml     |  23 +--
 .../mfd/ti,j721e-system-controller.yaml       |  19 +-
 .../devicetree/bindings/mtd/ti,am654-hbmc.txt |   2 +-
 .../devicetree/bindings/mux/adi,adg792a.txt   |   2 +-
 .../devicetree/bindings/mux/adi,adgs1408.txt  |   2 +-
 .../devicetree/bindings/mux/gpio-mux.txt      |  69 -------
 .../devicetree/bindings/mux/gpio-mux.yaml     |  92 +++++++++
 .../devicetree/bindings/mux/mux-consumer.yaml |  46 +++++
 .../bindings/mux/mux-controller.txt           | 157 ---------------
 .../bindings/mux/mux-controller.yaml          | 182 ++++++++++++++++++
 .../devicetree/bindings/mux/reg-mux.txt       | 129 -------------
 .../devicetree/bindings/mux/reg-mux.yaml      | 143 ++++++++++++++
 .../bindings/net/mdio-mux-multiplexer.txt     |   2 +-
 .../devicetree/bindings/rtc/nxp,pcf8563.yaml  |  56 ++++++
 .../devicetree/bindings/rtc/pcf8563.txt       |  29 ---
 27 files changed, 870 insertions(+), 670 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt
 create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml
 delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt
 create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
 delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux.txt
 create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux.yaml
 delete mode 100644 Documentation/devicetree/bindings/mux/gpio-mux.txt
 create mode 100644 Documentation/devicetree/bindings/mux/gpio-mux.yaml
 create mode 100644 Documentation/devicetree/bindings/mux/mux-consumer.yaml
 delete mode 100644 Documentation/devicetree/bindings/mux/mux-controller.txt
 create mode 100644 Documentation/devicetree/bindings/mux/mux-controller.yaml
 delete mode 100644 Documentation/devicetree/bindings/mux/reg-mux.txt
 create mode 100644 Documentation/devicetree/bindings/mux/reg-mux.yaml
 create mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml
 delete mode 100644 Documentation/devicetree/bindings/rtc/pcf8563.txt

-- 
2.27.0

Comments

Alexandre Belloni May 26, 2021, 7:56 p.m. UTC | #1
On 26/05/2021 13:48:35-0500, Rob Herring wrote:
> Convert the Philips PCF8563/Epson RTC8564 binding to DT schema format.
> 
> Add 'interrupts' and 'wakeup-source' as this device has an interrupt
> which was not documented, but in use. Add 'start-year' as well.
> 
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
> v2:
>  - Add reference to rtc.yaml and wakeup-source and start-year properties
> ---
>  .../devicetree/bindings/rtc/nxp,pcf8563.yaml  | 56 +++++++++++++++++++
>  .../devicetree/bindings/rtc/pcf8563.txt       | 29 ----------
>  2 files changed, 56 insertions(+), 29 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml
>  delete mode 100644 Documentation/devicetree/bindings/rtc/pcf8563.txt
> 
> diff --git a/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml b/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml
> new file mode 100644
> index 000000000000..a542b6c7ff44
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/rtc/nxp,pcf8563.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Philips PCF8563/Epson RTC8564 Real Time Clock
> +
> +maintainers:
> +  - Alexandre Belloni <alexandre.belloni@bootlin.com>
> +
> +allOf:
> +  - $ref: rtc.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - epson,rtc8564
> +      - microcrystal,rv8564
> +      - nxp,pcf8563
> +      - nxp,pca8565
> +
> +  reg:
> +    maxItems: 1
> +
> +  "#clock-cells":
> +    const: 0
> +
> +  clock-output-names:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  start-year: true
> +  wakeup-source: true
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        rtc@51 {
> +            compatible = "nxp,pcf8563";
> +            reg = <0x51>;
> +            #clock-cells = <0>;
> +        };
> +    };
> +...
> diff --git a/Documentation/devicetree/bindings/rtc/pcf8563.txt b/Documentation/devicetree/bindings/rtc/pcf8563.txt
> deleted file mode 100644
> index 0a900f7c8977..000000000000
> --- a/Documentation/devicetree/bindings/rtc/pcf8563.txt
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -* Philips PCF8563/Epson RTC8564 Real Time Clock
> -
> -Philips PCF8563/Epson RTC8564 Real Time Clock
> -
> -Required properties:
> -- compatible: Should contain "nxp,pcf8563",
> -	"epson,rtc8564" or
> -	"microcrystal,rv8564" or
> -	"nxp,pca8565"
> -- reg: I2C address for chip.
> -
> -Optional property:
> -- #clock-cells: Should be 0.
> -- clock-output-names:
> -  overwrite the default clock name "pcf8563-clkout"
> -
> -Example:
> -
> -pcf8563: pcf8563@51 {
> -	compatible = "nxp,pcf8563";
> -	reg = <0x51>;
> -	#clock-cells = <0>;
> -};
> -
> -device {
> -...
> -	clocks = <&pcf8563>;
> -...
> -};
> -- 
> 2.27.0
>
Wolfram Sang May 28, 2021, 8:45 a.m. UTC | #2
On Wed, May 26, 2021 at 01:48:33PM -0500, Rob Herring wrote:
> This series converts the mux-controller and some i2c mux bindings to DT
> schema. This was a rabbit hole of trying to fix undocumented (by schema)
> compatibles (enabled by setting DT_CHECKER_FLAGS=-m). So this is mux
> bindings, and then a few others that are used in the mux binding
> examples.

So, I assume this should all go via your tree? That would be fine with
me. Maybe Peter has some more comments, but for the procedure, here is
my ack for the I2C parts of this series:

Acked-by: Wolfram Sang <wsa@kernel.org>
Peter Rosin May 28, 2021, 9:20 p.m. UTC | #3
On 2021-05-28 10:45, Wolfram Sang wrote:
> On Wed, May 26, 2021 at 01:48:33PM -0500, Rob Herring wrote:
>> This series converts the mux-controller and some i2c mux bindings to DT
>> schema. This was a rabbit hole of trying to fix undocumented (by schema)
>> compatibles (enabled by setting DT_CHECKER_FLAGS=-m). So this is mux
>> bindings, and then a few others that are used in the mux binding
>> examples.
> 
> So, I assume this should all go via your tree? That would be fine with
> me. Maybe Peter has some more comments, but for the procedure, here is
> my ack for the I2C parts of this series:

Hi Rob,

Thanks for converting these!

I can't call what I have done a review, because the details escape me, and
I don't have time to spend at the moment. However, from where I'm looking,
it all looks splendid. Ignorance is bliss! So, for patches 3-5 (where I'm
the maintainer) you have my

Acked-by: Peter Rosin <peda@axentia.se>

Interesting times, being a maintainer of things I don't understand. I need
to fix that...

The main worry I have is the comment from Laurent about the intermediate
"i2c-mux" node, which also applies to i2c-gate which has been converted
to yaml before and to i2c-arb which is still in .txt format. I don't
remember exactly what the issue was that made me add the optional level,
but hopefully it is as you say, and that it is only MFD-type devices
that need them and that those can specify the intermediate level
themselves. My vision was to always have the intermediate level, since
I thought the bindings looked clearer that way. But that's just a personal
opinion, and it doesn't really matter...

However, I also worry that the information needed by future authors of
MFD bindings is lost and that they will have no readily available source
of the information that the intermediate nodes should be called i2c-mux,
i2c-arb or i2c-gate. The info was removed in the i2c-gate.txt -> .yaml
conversion. But that problem is not present in this series, since the
info is preserved in i2c-mux.txt -> .yaml conversion.

So, please go ahead with this series. Thanks again!

Cheers,
Peter