diff mbox series

[2/2] dt-bindings: bus: renesas-bsc: convert bindings to json-schema

Message ID 20190916153357.3880-3-horms+renesas@verge.net.au (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series dt-bindings: bus: simple-pm-bus, renesas-bsc: convert bindings to json-schema | expand

Commit Message

Simon Horman Sept. 16, 2019, 3:33 p.m. UTC
Convert Renesas Bus State Controller (BSC) bindings documentation to
json-schema.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
* Tested using:
  # ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
  # ARCH=arm   make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
---
 .../devicetree/bindings/bus/renesas,bsc.txt        | 46 -----------------
 .../devicetree/bindings/bus/renesas,bsc.yaml       | 57 ++++++++++++++++++++++
 2 files changed, 57 insertions(+), 46 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.txt
 create mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.yaml

Comments

Ulrich Hecht Sept. 17, 2019, 10:43 a.m. UTC | #1
> On September 16, 2019 at 5:33 PM Simon Horman <horms+renesas@verge.net.au> wrote:
> 
> 
> Convert Renesas Bus State Controller (BSC) bindings documentation to
> json-schema.
> 
> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> ---
> * Tested using:
>   # ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
>   # ARCH=arm   make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> ---
>  .../devicetree/bindings/bus/renesas,bsc.txt        | 46 -----------------
>  .../devicetree/bindings/bus/renesas,bsc.yaml       | 57 ++++++++++++++++++++++
>  2 files changed, 57 insertions(+), 46 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.txt
>  create mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.txt b/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> deleted file mode 100644
> index 90e947269437..000000000000
> --- a/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -Renesas Bus State Controller (BSC)
> -==================================
> -
> -The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> -Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
> -It provides an external bus for connecting multiple external devices to the
> -SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
> -
> -While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
> -domain, and may have a gateable functional clock.
> -Before a device connected to the BSC can be accessed, the PM domain
> -containing the BSC must be powered on, and the functional clock
> -driving the BSC must be enabled.
> -
> -The bindings for the BSC extend the bindings for "simple-pm-bus".
> -
> -
> -Required properties
> -  - compatible: Must contain an SoC-specific value, and "renesas,bsc" and
> -		"simple-pm-bus" as fallbacks.
> -                SoC-specific values can be:
> -		"renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
> -		"renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
> -  - #address-cells, #size-cells, ranges: Must describe the mapping between
> -		parent address and child address spaces.
> -  - reg: Must contain the base address and length to access the bus controller.
> -
> -Optional properties:
> -  - interrupts: Must contain a reference to the BSC interrupt, if available.
> -  - clocks: Must contain a reference to the functional clock, if available.
> -  - power-domains: Must contain a reference to the PM domain, if available.
> -
> -
> -Example:
> -
> -	bsc: bus@fec10000 {
> -		compatible = "renesas,bsc-sh73a0", "renesas,bsc",
> -			     "simple-pm-bus";
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -		ranges = <0 0 0x20000000>;
> -		reg = <0xfec10000 0x400>;
> -		interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&zb_clk>;
> -		power-domains = <&pd_a4s>;
> -	};
> diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.yaml b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> new file mode 100644
> index 000000000000..0231a15cac47
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> @@ -0,0 +1,57 @@
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Renesas Bus State Controller (BSC)
> +
> +maintainers:
> +  - Geert Uytterhoeven <geert+renesas@glider.be>
> +
> +description: |
> +  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> +  Bridge", or "External Bus Interface") can be found in several Renesas ARM
> +  SoCs.  It provides an external bus for connecting multiple external
> +  devices to the SoC, driving several chip select lines, for e.g. NOR
> +  FLASH, Ethernet and USB.
> +
> +  While the BSC is a fairly simple memory-mapped bus, it may be part of a
> +  PM domain, and may have a gateable functional clock.  Before a device
> +  connected to the BSC can be accessed, the PM domain containing the BSC
> +  must be powered on, and the functional clock driving the BSC must be
> +  enabled.
> +
> +  The bindings for the BSC extend the bindings for "simple-pm-bus".
> +
> +allOf:
> +  - $ref: simple-pm-bus.yaml#
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
> +          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
> +      - const: renesas,bsc
> +      - const: simple-pm-bus
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +

Shouldn't there be a "required:" section here?

> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    bsc: bus@fec10000 {
> +        compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0 0 0x20000000>;
> +        reg = <0xfec10000 0x400>;
> +        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> +        clocks = <&zb_clk>;
> +        power-domains = <&pd_a4s>;
> +    };
> -- 
> 2.11.0
>

CU
Uli
Simon Horman Sept. 17, 2019, 11:08 a.m. UTC | #2
On Tue, Sep 17, 2019 at 12:43:42PM +0200, Ulrich Hecht wrote:
> 
> > On September 16, 2019 at 5:33 PM Simon Horman <horms+renesas@verge.net.au> wrote:
> > 
> > 
> > Convert Renesas Bus State Controller (BSC) bindings documentation to
> > json-schema.
> > 
> > Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> > ---
> > * Tested using:
> >   # ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> >   # ARCH=arm   make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > ---
> >  .../devicetree/bindings/bus/renesas,bsc.txt        | 46 -----------------
> >  .../devicetree/bindings/bus/renesas,bsc.yaml       | 57 ++++++++++++++++++++++
> >  2 files changed, 57 insertions(+), 46 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.txt
> >  create mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.txt b/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > deleted file mode 100644
> > index 90e947269437..000000000000
> > --- a/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > +++ /dev/null
> > @@ -1,46 +0,0 @@
> > -Renesas Bus State Controller (BSC)
> > -==================================
> > -
> > -The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> > -Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
> > -It provides an external bus for connecting multiple external devices to the
> > -SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
> > -
> > -While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
> > -domain, and may have a gateable functional clock.
> > -Before a device connected to the BSC can be accessed, the PM domain
> > -containing the BSC must be powered on, and the functional clock
> > -driving the BSC must be enabled.
> > -
> > -The bindings for the BSC extend the bindings for "simple-pm-bus".
> > -
> > -
> > -Required properties
> > -  - compatible: Must contain an SoC-specific value, and "renesas,bsc" and
> > -		"simple-pm-bus" as fallbacks.
> > -                SoC-specific values can be:
> > -		"renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
> > -		"renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
> > -  - #address-cells, #size-cells, ranges: Must describe the mapping between
> > -		parent address and child address spaces.
> > -  - reg: Must contain the base address and length to access the bus controller.
> > -
> > -Optional properties:
> > -  - interrupts: Must contain a reference to the BSC interrupt, if available.
> > -  - clocks: Must contain a reference to the functional clock, if available.
> > -  - power-domains: Must contain a reference to the PM domain, if available.
> > -
> > -
> > -Example:
> > -
> > -	bsc: bus@fec10000 {
> > -		compatible = "renesas,bsc-sh73a0", "renesas,bsc",
> > -			     "simple-pm-bus";
> > -		#address-cells = <1>;
> > -		#size-cells = <1>;
> > -		ranges = <0 0 0x20000000>;
> > -		reg = <0xfec10000 0x400>;
> > -		interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> > -		clocks = <&zb_clk>;
> > -		power-domains = <&pd_a4s>;
> > -	};
> > diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.yaml b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > new file mode 100644
> > index 000000000000..0231a15cac47
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > @@ -0,0 +1,57 @@
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Renesas Bus State Controller (BSC)
> > +
> > +maintainers:
> > +  - Geert Uytterhoeven <geert+renesas@glider.be>
> > +
> > +description: |
> > +  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> > +  Bridge", or "External Bus Interface") can be found in several Renesas ARM
> > +  SoCs.  It provides an external bus for connecting multiple external
> > +  devices to the SoC, driving several chip select lines, for e.g. NOR
> > +  FLASH, Ethernet and USB.
> > +
> > +  While the BSC is a fairly simple memory-mapped bus, it may be part of a
> > +  PM domain, and may have a gateable functional clock.  Before a device
> > +  connected to the BSC can be accessed, the PM domain containing the BSC
> > +  must be powered on, and the functional clock driving the BSC must be
> > +  enabled.
> > +
> > +  The bindings for the BSC extend the bindings for "simple-pm-bus".
> > +
> > +allOf:
> > +  - $ref: simple-pm-bus.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
> > +          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
> > +      - const: renesas,bsc
> > +      - const: simple-pm-bus
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> 
> Shouldn't there be a "required:" section here?

Thanks, I will add:

required:
  - compatible
  - '#address-cells'
  - '#size-cells'
  - ranges
  - reg

> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +    bsc: bus@fec10000 {
> > +        compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
> > +        #address-cells = <1>;
> > +        #size-cells = <1>;
> > +        ranges = <0 0 0x20000000>;
> > +        reg = <0xfec10000 0x400>;
> > +        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> > +        clocks = <&zb_clk>;
> > +        power-domains = <&pd_a4s>;
> > +    };
> > -- 
> > 2.11.0
> >
> 
> CU
> Uli
>
Simon Horman Sept. 17, 2019, 11:09 a.m. UTC | #3
On Mon, Sep 16, 2019 at 05:33:57PM +0200, Simon Horman wrote:
> Convert Renesas Bus State Controller (BSC) bindings documentation to
> json-schema.
> 
> Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> ---
> * Tested using:
>   # ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
>   # ARCH=arm   make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> ---
>  .../devicetree/bindings/bus/renesas,bsc.txt        | 46 -----------------
>  .../devicetree/bindings/bus/renesas,bsc.yaml       | 57 ++++++++++++++++++++++
>  2 files changed, 57 insertions(+), 46 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.txt
>  create mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.txt b/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> deleted file mode 100644
> index 90e947269437..000000000000
> --- a/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -Renesas Bus State Controller (BSC)
> -==================================
> -
> -The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> -Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
> -It provides an external bus for connecting multiple external devices to the
> -SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
> -
> -While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
> -domain, and may have a gateable functional clock.
> -Before a device connected to the BSC can be accessed, the PM domain
> -containing the BSC must be powered on, and the functional clock
> -driving the BSC must be enabled.
> -
> -The bindings for the BSC extend the bindings for "simple-pm-bus".
> -
> -

There is an extra blank line above,
I plan to remove it in v2.

> -Required properties
> -  - compatible: Must contain an SoC-specific value, and "renesas,bsc" and
> -		"simple-pm-bus" as fallbacks.
> -                SoC-specific values can be:
> -		"renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
> -		"renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
> -  - #address-cells, #size-cells, ranges: Must describe the mapping between
> -		parent address and child address spaces.
> -  - reg: Must contain the base address and length to access the bus controller.
> -
> -Optional properties:
> -  - interrupts: Must contain a reference to the BSC interrupt, if available.
> -  - clocks: Must contain a reference to the functional clock, if available.
> -  - power-domains: Must contain a reference to the PM domain, if available.
> -
> -
> -Example:
> -
> -	bsc: bus@fec10000 {
> -		compatible = "renesas,bsc-sh73a0", "renesas,bsc",
> -			     "simple-pm-bus";
> -		#address-cells = <1>;
> -		#size-cells = <1>;
> -		ranges = <0 0 0x20000000>;
> -		reg = <0xfec10000 0x400>;
> -		interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&zb_clk>;
> -		power-domains = <&pd_a4s>;
> -	};
> diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.yaml b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> new file mode 100644
> index 000000000000..0231a15cac47
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> @@ -0,0 +1,57 @@
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Renesas Bus State Controller (BSC)
> +
> +maintainers:
> +  - Geert Uytterhoeven <geert+renesas@glider.be>
> +
> +description: |
> +  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> +  Bridge", or "External Bus Interface") can be found in several Renesas ARM
> +  SoCs.  It provides an external bus for connecting multiple external
> +  devices to the SoC, driving several chip select lines, for e.g. NOR
> +  FLASH, Ethernet and USB.
> +
> +  While the BSC is a fairly simple memory-mapped bus, it may be part of a
> +  PM domain, and may have a gateable functional clock.  Before a device
> +  connected to the BSC can be accessed, the PM domain containing the BSC
> +  must be powered on, and the functional clock driving the BSC must be
> +  enabled.
> +
> +  The bindings for the BSC extend the bindings for "simple-pm-bus".
> +
> +allOf:
> +  - $ref: simple-pm-bus.yaml#
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
> +          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
> +      - const: renesas,bsc
> +      - const: simple-pm-bus
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    bsc: bus@fec10000 {
> +        compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +        ranges = <0 0 0x20000000>;
> +        reg = <0xfec10000 0x400>;
> +        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> +        clocks = <&zb_clk>;
> +        power-domains = <&pd_a4s>;
> +    };
> -- 
> 2.11.0
>
Simon Horman Sept. 17, 2019, 11:12 a.m. UTC | #4
On Tue, Sep 17, 2019 at 01:09:29PM +0200, Simon Horman wrote:
> On Mon, Sep 16, 2019 at 05:33:57PM +0200, Simon Horman wrote:
> > Convert Renesas Bus State Controller (BSC) bindings documentation to
> > json-schema.
> > 
> > Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> > ---
> > * Tested using:
> >   # ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> >   # ARCH=arm   make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > ---
> >  .../devicetree/bindings/bus/renesas,bsc.txt        | 46 -----------------
> >  .../devicetree/bindings/bus/renesas,bsc.yaml       | 57 ++++++++++++++++++++++
> >  2 files changed, 57 insertions(+), 46 deletions(-)
> >  delete mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.txt
> >  create mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.txt b/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > deleted file mode 100644
> > index 90e947269437..000000000000
> > --- a/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > +++ /dev/null
> > @@ -1,46 +0,0 @@
> > -Renesas Bus State Controller (BSC)
> > -==================================
> > -
> > -The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> > -Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
> > -It provides an external bus for connecting multiple external devices to the
> > -SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
> > -
> > -While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
> > -domain, and may have a gateable functional clock.
> > -Before a device connected to the BSC can be accessed, the PM domain
> > -containing the BSC must be powered on, and the functional clock
> > -driving the BSC must be enabled.
> > -
> > -The bindings for the BSC extend the bindings for "simple-pm-bus".
> > -
> > -
> 
> There is an extra blank line above,
> I plan to remove it in v2.

Please ignore that comment, its clearly incorrect.

> 
> > -Required properties
> > -  - compatible: Must contain an SoC-specific value, and "renesas,bsc" and
> > -		"simple-pm-bus" as fallbacks.
> > -                SoC-specific values can be:
> > -		"renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
> > -		"renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
> > -  - #address-cells, #size-cells, ranges: Must describe the mapping between
> > -		parent address and child address spaces.
> > -  - reg: Must contain the base address and length to access the bus controller.
> > -
> > -Optional properties:
> > -  - interrupts: Must contain a reference to the BSC interrupt, if available.
> > -  - clocks: Must contain a reference to the functional clock, if available.
> > -  - power-domains: Must contain a reference to the PM domain, if available.
> > -
> > -
> > -Example:
> > -
> > -	bsc: bus@fec10000 {
> > -		compatible = "renesas,bsc-sh73a0", "renesas,bsc",
> > -			     "simple-pm-bus";
> > -		#address-cells = <1>;
> > -		#size-cells = <1>;
> > -		ranges = <0 0 0x20000000>;
> > -		reg = <0xfec10000 0x400>;
> > -		interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> > -		clocks = <&zb_clk>;
> > -		power-domains = <&pd_a4s>;
> > -	};
> > diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.yaml b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > new file mode 100644
> > index 000000000000..0231a15cac47
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > @@ -0,0 +1,57 @@
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Renesas Bus State Controller (BSC)
> > +
> > +maintainers:
> > +  - Geert Uytterhoeven <geert+renesas@glider.be>
> > +
> > +description: |
> > +  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> > +  Bridge", or "External Bus Interface") can be found in several Renesas ARM
> > +  SoCs.  It provides an external bus for connecting multiple external
> > +  devices to the SoC, driving several chip select lines, for e.g. NOR
> > +  FLASH, Ethernet and USB.
> > +
> > +  While the BSC is a fairly simple memory-mapped bus, it may be part of a
> > +  PM domain, and may have a gateable functional clock.  Before a device
> > +  connected to the BSC can be accessed, the PM domain containing the BSC
> > +  must be powered on, and the functional clock driving the BSC must be
> > +  enabled.
> > +
> > +  The bindings for the BSC extend the bindings for "simple-pm-bus".
> > +
> > +allOf:
> > +  - $ref: simple-pm-bus.yaml#
> > +
> > +properties:
> > +  compatible:
> > +    items:
> > +      - enum:
> > +          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
> > +          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
> > +      - const: renesas,bsc
> > +      - const: simple-pm-bus
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +    bsc: bus@fec10000 {
> > +        compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
> > +        #address-cells = <1>;
> > +        #size-cells = <1>;
> > +        ranges = <0 0 0x20000000>;
> > +        reg = <0xfec10000 0x400>;
> > +        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> > +        clocks = <&zb_clk>;
> > +        power-domains = <&pd_a4s>;
> > +    };
> > -- 
> > 2.11.0
> > 
>
Rob Herring Sept. 17, 2019, 12:41 p.m. UTC | #5
On Tue, Sep 17, 2019 at 6:08 AM Simon Horman <horms@verge.net.au> wrote:
>
> On Tue, Sep 17, 2019 at 12:43:42PM +0200, Ulrich Hecht wrote:
> >
> > > On September 16, 2019 at 5:33 PM Simon Horman <horms+renesas@verge.net.au> wrote:
> > >
> > >
> > > Convert Renesas Bus State Controller (BSC) bindings documentation to
> > > json-schema.
> > >
> > > Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
> > > ---
> > > * Tested using:
> > >   # ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > >   # ARCH=arm   make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > > ---
> > >  .../devicetree/bindings/bus/renesas,bsc.txt        | 46 -----------------
> > >  .../devicetree/bindings/bus/renesas,bsc.yaml       | 57 ++++++++++++++++++++++
> > >  2 files changed, 57 insertions(+), 46 deletions(-)
> > >  delete mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > >  create mode 100644 Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.txt b/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > > deleted file mode 100644
> > > index 90e947269437..000000000000
> > > --- a/Documentation/devicetree/bindings/bus/renesas,bsc.txt
> > > +++ /dev/null
> > > @@ -1,46 +0,0 @@
> > > -Renesas Bus State Controller (BSC)
> > > -==================================
> > > -
> > > -The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> > > -Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
> > > -It provides an external bus for connecting multiple external devices to the
> > > -SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
> > > -
> > > -While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
> > > -domain, and may have a gateable functional clock.
> > > -Before a device connected to the BSC can be accessed, the PM domain
> > > -containing the BSC must be powered on, and the functional clock
> > > -driving the BSC must be enabled.
> > > -
> > > -The bindings for the BSC extend the bindings for "simple-pm-bus".
> > > -
> > > -
> > > -Required properties
> > > -  - compatible: Must contain an SoC-specific value, and "renesas,bsc" and
> > > -           "simple-pm-bus" as fallbacks.
> > > -                SoC-specific values can be:
> > > -           "renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
> > > -           "renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
> > > -  - #address-cells, #size-cells, ranges: Must describe the mapping between
> > > -           parent address and child address spaces.
> > > -  - reg: Must contain the base address and length to access the bus controller.
> > > -
> > > -Optional properties:
> > > -  - interrupts: Must contain a reference to the BSC interrupt, if available.
> > > -  - clocks: Must contain a reference to the functional clock, if available.
> > > -  - power-domains: Must contain a reference to the PM domain, if available.
> > > -
> > > -
> > > -Example:
> > > -
> > > -   bsc: bus@fec10000 {
> > > -           compatible = "renesas,bsc-sh73a0", "renesas,bsc",
> > > -                        "simple-pm-bus";
> > > -           #address-cells = <1>;
> > > -           #size-cells = <1>;
> > > -           ranges = <0 0 0x20000000>;
> > > -           reg = <0xfec10000 0x400>;
> > > -           interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
> > > -           clocks = <&zb_clk>;
> > > -           power-domains = <&pd_a4s>;
> > > -   };
> > > diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.yaml b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > > new file mode 100644
> > > index 000000000000..0231a15cac47
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
> > > @@ -0,0 +1,57 @@
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: Renesas Bus State Controller (BSC)
> > > +
> > > +maintainers:
> > > +  - Geert Uytterhoeven <geert+renesas@glider.be>
> > > +
> > > +description: |
> > > +  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
> > > +  Bridge", or "External Bus Interface") can be found in several Renesas ARM
> > > +  SoCs.  It provides an external bus for connecting multiple external
> > > +  devices to the SoC, driving several chip select lines, for e.g. NOR
> > > +  FLASH, Ethernet and USB.
> > > +
> > > +  While the BSC is a fairly simple memory-mapped bus, it may be part of a
> > > +  PM domain, and may have a gateable functional clock.  Before a device
> > > +  connected to the BSC can be accessed, the PM domain containing the BSC
> > > +  must be powered on, and the functional clock driving the BSC must be
> > > +  enabled.
> > > +
> > > +  The bindings for the BSC extend the bindings for "simple-pm-bus".
> > > +
> > > +allOf:
> > > +  - $ref: simple-pm-bus.yaml#
> > > +
> > > +properties:
> > > +  compatible:
> > > +    items:
> > > +      - enum:
> > > +          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
> > > +          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
> > > +      - const: renesas,bsc
> > > +      - const: simple-pm-bus
> > > +
> > > +  reg:
> > > +    maxItems: 1
> > > +
> > > +  interrupts:
> > > +    maxItems: 1
> > > +
> >
> > Shouldn't there be a "required:" section here?
>
> Thanks, I will add:
>
> required:
>   - compatible
>   - '#address-cells'
>   - '#size-cells'
>   - ranges

No need for all these as the simple-pm-bus binding already does.

>   - reg
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.txt b/Documentation/devicetree/bindings/bus/renesas,bsc.txt
deleted file mode 100644
index 90e947269437..000000000000
--- a/Documentation/devicetree/bindings/bus/renesas,bsc.txt
+++ /dev/null
@@ -1,46 +0,0 @@ 
-Renesas Bus State Controller (BSC)
-==================================
-
-The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
-Bridge", or "External Bus Interface") can be found in several Renesas ARM SoCs.
-It provides an external bus for connecting multiple external devices to the
-SoC, driving several chip select lines, for e.g. NOR FLASH, Ethernet and USB.
-
-While the BSC is a fairly simple memory-mapped bus, it may be part of a PM
-domain, and may have a gateable functional clock.
-Before a device connected to the BSC can be accessed, the PM domain
-containing the BSC must be powered on, and the functional clock
-driving the BSC must be enabled.
-
-The bindings for the BSC extend the bindings for "simple-pm-bus".
-
-
-Required properties
-  - compatible: Must contain an SoC-specific value, and "renesas,bsc" and
-		"simple-pm-bus" as fallbacks.
-                SoC-specific values can be:
-		"renesas,bsc-r8a73a4" for R-Mobile APE6 (r8a73a4)
-		"renesas,bsc-sh73a0" for SH-Mobile AG5 (sh73a0)
-  - #address-cells, #size-cells, ranges: Must describe the mapping between
-		parent address and child address spaces.
-  - reg: Must contain the base address and length to access the bus controller.
-
-Optional properties:
-  - interrupts: Must contain a reference to the BSC interrupt, if available.
-  - clocks: Must contain a reference to the functional clock, if available.
-  - power-domains: Must contain a reference to the PM domain, if available.
-
-
-Example:
-
-	bsc: bus@fec10000 {
-		compatible = "renesas,bsc-sh73a0", "renesas,bsc",
-			     "simple-pm-bus";
-		#address-cells = <1>;
-		#size-cells = <1>;
-		ranges = <0 0 0x20000000>;
-		reg = <0xfec10000 0x400>;
-		interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
-		clocks = <&zb_clk>;
-		power-domains = <&pd_a4s>;
-	};
diff --git a/Documentation/devicetree/bindings/bus/renesas,bsc.yaml b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
new file mode 100644
index 000000000000..0231a15cac47
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/renesas,bsc.yaml
@@ -0,0 +1,57 @@ 
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/renesas,bsc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas Bus State Controller (BSC)
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description: |
+  The Renesas Bus State Controller (BSC, sometimes called "LBSC within Bus
+  Bridge", or "External Bus Interface") can be found in several Renesas ARM
+  SoCs.  It provides an external bus for connecting multiple external
+  devices to the SoC, driving several chip select lines, for e.g. NOR
+  FLASH, Ethernet and USB.
+
+  While the BSC is a fairly simple memory-mapped bus, it may be part of a
+  PM domain, and may have a gateable functional clock.  Before a device
+  connected to the BSC can be accessed, the PM domain containing the BSC
+  must be powered on, and the functional clock driving the BSC must be
+  enabled.
+
+  The bindings for the BSC extend the bindings for "simple-pm-bus".
+
+allOf:
+  - $ref: simple-pm-bus.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - renesas,bsc-r8a73a4  # R-Mobile APE6 (r8a73a4)
+          - renesas,bsc-sh73a0   # SH-Mobile AG5 (sh73a0)
+      - const: renesas,bsc
+      - const: simple-pm-bus
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    bsc: bus@fec10000 {
+        compatible = "renesas,bsc-sh73a0", "renesas,bsc", "simple-pm-bus";
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges = <0 0 0x20000000>;
+        reg = <0xfec10000 0x400>;
+        interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&zb_clk>;
+        power-domains = <&pd_a4s>;
+    };