All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Paul Cercueil <paul@crapouillou.net>
Cc: od@zcrc.me, 周琰杰 <zhouyanjie@wanyeetech.com>,
	linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-i2c@vger.kernel.org, linux-mtd@lists.infradead.org,
	linux-gpio@vger.kernel.org, linux-serial@vger.kernel.org,
	linux-mips@vger.kernel.org
Subject: Re: [PATCH 4/8] dt-bindings: memory: Convert ingenic,jz4780-nemc.txt to YAML
Date: Mon, 11 May 2020 17:54:36 -0500	[thread overview]
Message-ID: <20200511225436.GB19685@bogus> (raw)
In-Reply-To: <20200426185856.38826-4-paul@crapouillou.net>

On Sun, Apr 26, 2020 at 08:58:52PM +0200, Paul Cercueil wrote:
> Convert the ingenic,jz4780-nemc.txt doc file to ingenic,nemc.yaml.
> 
> The ingenic,jz4725b-nemc compatible string was added in the process,
> with a fallback to ingenic,jz4740-nemc.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  .../ingenic,jz4780-nemc.txt                   | 76 ---------------
>  .../ingenic,nemc-client.yaml                  | 45 +++++++++
>  .../memory-controllers/ingenic,nemc.yaml      | 95 +++++++++++++++++++
>  3 files changed, 140 insertions(+), 76 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt b/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
> deleted file mode 100644
> index 59b8dcc118ee..000000000000
> --- a/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -* Ingenic JZ4780 NAND/external memory controller (NEMC)
> -
> -This file documents the device tree bindings for the NEMC external memory
> -controller in Ingenic JZ4780
> -
> -Required properties:
> -- compatible: Should be set to one of:
> -    "ingenic,jz4740-nemc" (JZ4740)
> -    "ingenic,jz4780-nemc" (JZ4780)
> -- reg: Should specify the NEMC controller registers location and length.
> -- clocks: Clock for the NEMC controller.
> -- #address-cells: Must be set to 2.
> -- #size-cells: Must be set to 1.
> -- ranges: A set of ranges for each bank describing the physical memory layout.
> -  Each should specify the following 4 integer values:
> -
> -    <cs number> 0 <physical address of mapping> <size of mapping>
> -
> -Each child of the NEMC node describes a device connected to the NEMC.
> -
> -Required child node properties:
> -- reg: Should contain at least one register specifier, given in the following
> -  format:
> -
> -    <cs number> <offset> <size>
> -
> -  Multiple registers can be specified across multiple banks. This is needed,
> -  for example, for packaged NAND devices with multiple dies. Such devices
> -  should be grouped into a single node.
> -
> -Optional child node properties:
> -- ingenic,nemc-bus-width: Specifies the bus width in bits. Defaults to 8 bits.
> -- ingenic,nemc-tAS: Address setup time in nanoseconds.
> -- ingenic,nemc-tAH: Address hold time in nanoseconds.
> -- ingenic,nemc-tBP: Burst pitch time in nanoseconds.
> -- ingenic,nemc-tAW: Access wait time in nanoseconds.
> -- ingenic,nemc-tSTRV: Static memory recovery time in nanoseconds.
> -
> -If a child node references multiple banks in its "reg" property, the same value
> -for all optional parameters will be configured for all banks. If any optional
> -parameters are omitted, they will be left unchanged from whatever they are
> -configured to when the NEMC device is probed (which may be the reset value as
> -given in the hardware reference manual, or a value configured by the boot
> -loader).
> -
> -Example (NEMC node with a NAND child device attached at CS1):
> -
> -nemc: nemc@13410000 {
> -	compatible = "ingenic,jz4780-nemc";
> -	reg = <0x13410000 0x10000>;
> -
> -	#address-cells = <2>;
> -	#size-cells = <1>;
> -
> -	ranges = <1 0 0x1b000000 0x1000000
> -		  2 0 0x1a000000 0x1000000
> -		  3 0 0x19000000 0x1000000
> -		  4 0 0x18000000 0x1000000
> -		  5 0 0x17000000 0x1000000
> -		  6 0 0x16000000 0x1000000>;
> -
> -	clocks = <&cgu JZ4780_CLK_NEMC>;
> -
> -	nand: nand@1 {
> -		compatible = "ingenic,jz4780-nand";
> -		reg = <1 0 0x1000000>;
> -
> -		ingenic,nemc-tAS = <10>;
> -		ingenic,nemc-tAH = <5>;
> -		ingenic,nemc-tBP = <10>;
> -		ingenic,nemc-tAW = <15>;
> -		ingenic,nemc-tSTRV = <100>;
> -
> -		...
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
> new file mode 100644
> index 000000000000..682e6f7e74fa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc-client.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title:
> +  Ingenic SoCs NAND / External Memory Controller (NEMC)
> +  client-specific properties
> +
> +maintainers:
> +  - Paul Cercueil <paul@crapouillou.net>
> +
> +description:
> +  This document lists the various properties that child nodes of the NEMC node
> +  can use.
> +
> +properties:

What about 'reg'? That should be required.

> +  ingenic,nemc-bus-width:
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint32
> +      - enum: [8, 16]
> +    description: Specifies the bus width in bits.
> +
> +  ingenic,nemc-tAS:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address setup time in nanoseconds.
> +
> +  ingenic,nemc-tAH:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address hold time in nanoseconds.
> +
> +  ingenic,nemc-tBP:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Burst pitch time in nanoseconds.
> +
> +  ingenic,nemc-tAW:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address wait time in nanoseconds.
> +
> +  ingenic,nemc-tSTRV:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Static memory recovery time in nanoseconds.

I think I'd just combine this into 1 file.

> +
> +...
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> new file mode 100644
> index 000000000000..c7fd28462fd8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings
> +
> +maintainers:
> +  - Paul Cercueil <paul@crapouillou.net>
> +
> +properties:
> +  $nodename:
> +    pattern: "^memory-controller@[0-9a-f]+$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +        - ingenic,jz4740-nemc
> +        - ingenic,jz4780-nemc
> +      - items:
> +        - const: ingenic,jz4725b-nemc
> +        - const: ingenic,jz4740-nemc
> +
> +  "#address-cells":
> +    const: 2
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges: true
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +patternProperties:
> +  "^(nand-controller|ethernet)@[0-9]+$":

Presumably you could have other types of child nodes?

> +    type: object
> +    allOf:
> +      - $ref: ingenic,nemc-client.yaml#
> +
> +required:
> +  - compatible
> +  - "#address-cells"
> +  - "#size-cells"
> +  - ranges
> +  - reg
> +  - clocks
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/jz4780-cgu.h>
> +    #include <dt-bindings/gpio/gpio.h>
> +    nemc: memory-controller@13410000 {
> +      compatible = "ingenic,jz4780-nemc";
> +      reg = <0x13410000 0x10000>;
> +      #address-cells = <2>;
> +      #size-cells = <1>;
> +      ranges = <1 0 0x1b000000 0x1000000>,
> +         <2 0 0x1a000000 0x1000000>,
> +         <3 0 0x19000000 0x1000000>,
> +         <4 0 0x18000000 0x1000000>,
> +         <5 0 0x17000000 0x1000000>,
> +         <6 0 0x16000000 0x1000000>;
> +
> +      clocks = <&cgu JZ4780_CLK_NEMC>;
> +
> +      ethernet@6 {
> +        compatible = "davicom,dm9000";
> +        davicom,no-eeprom;
> +
> +        pinctrl-names = "default";
> +        pinctrl-0 = <&pins_nemc_cs6>;
> +
> +        reg = <6 0 1>, /* addr */
> +              <6 2 1>; /* data */
> +
> +        ingenic,nemc-tAS = <15>;
> +        ingenic,nemc-tAH = <10>;
> +        ingenic,nemc-tBP = <20>;
> +        ingenic,nemc-tAW = <50>;
> +        ingenic,nemc-tSTRV = <100>;
> +
> +        reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>;
> +        vcc-supply = <&eth0_power>;
> +
> +        interrupt-parent = <&gpe>;
> +        interrupts = <19 4>;
> +      };
> +    };
> -- 
> 2.26.2
> 

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Paul Cercueil <paul@crapouillou.net>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, 周琰杰 <zhouyanjie@wanyeetech.com>,
	linux-gpio@vger.kernel.org, od@zcrc.me,
	linux-mtd@lists.infradead.org, linux-i2c@vger.kernel.org,
	linux-serial@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-clk@vger.kernel.org
Subject: Re: [PATCH 4/8] dt-bindings: memory: Convert ingenic, jz4780-nemc.txt to YAML
Date: Mon, 11 May 2020 17:54:36 -0500	[thread overview]
Message-ID: <20200511225436.GB19685@bogus> (raw)
In-Reply-To: <20200426185856.38826-4-paul@crapouillou.net>

On Sun, Apr 26, 2020 at 08:58:52PM +0200, Paul Cercueil wrote:
> Convert the ingenic,jz4780-nemc.txt doc file to ingenic,nemc.yaml.
> 
> The ingenic,jz4725b-nemc compatible string was added in the process,
> with a fallback to ingenic,jz4740-nemc.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  .../ingenic,jz4780-nemc.txt                   | 76 ---------------
>  .../ingenic,nemc-client.yaml                  | 45 +++++++++
>  .../memory-controllers/ingenic,nemc.yaml      | 95 +++++++++++++++++++
>  3 files changed, 140 insertions(+), 76 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt b/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
> deleted file mode 100644
> index 59b8dcc118ee..000000000000
> --- a/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -* Ingenic JZ4780 NAND/external memory controller (NEMC)
> -
> -This file documents the device tree bindings for the NEMC external memory
> -controller in Ingenic JZ4780
> -
> -Required properties:
> -- compatible: Should be set to one of:
> -    "ingenic,jz4740-nemc" (JZ4740)
> -    "ingenic,jz4780-nemc" (JZ4780)
> -- reg: Should specify the NEMC controller registers location and length.
> -- clocks: Clock for the NEMC controller.
> -- #address-cells: Must be set to 2.
> -- #size-cells: Must be set to 1.
> -- ranges: A set of ranges for each bank describing the physical memory layout.
> -  Each should specify the following 4 integer values:
> -
> -    <cs number> 0 <physical address of mapping> <size of mapping>
> -
> -Each child of the NEMC node describes a device connected to the NEMC.
> -
> -Required child node properties:
> -- reg: Should contain at least one register specifier, given in the following
> -  format:
> -
> -    <cs number> <offset> <size>
> -
> -  Multiple registers can be specified across multiple banks. This is needed,
> -  for example, for packaged NAND devices with multiple dies. Such devices
> -  should be grouped into a single node.
> -
> -Optional child node properties:
> -- ingenic,nemc-bus-width: Specifies the bus width in bits. Defaults to 8 bits.
> -- ingenic,nemc-tAS: Address setup time in nanoseconds.
> -- ingenic,nemc-tAH: Address hold time in nanoseconds.
> -- ingenic,nemc-tBP: Burst pitch time in nanoseconds.
> -- ingenic,nemc-tAW: Access wait time in nanoseconds.
> -- ingenic,nemc-tSTRV: Static memory recovery time in nanoseconds.
> -
> -If a child node references multiple banks in its "reg" property, the same value
> -for all optional parameters will be configured for all banks. If any optional
> -parameters are omitted, they will be left unchanged from whatever they are
> -configured to when the NEMC device is probed (which may be the reset value as
> -given in the hardware reference manual, or a value configured by the boot
> -loader).
> -
> -Example (NEMC node with a NAND child device attached at CS1):
> -
> -nemc: nemc@13410000 {
> -	compatible = "ingenic,jz4780-nemc";
> -	reg = <0x13410000 0x10000>;
> -
> -	#address-cells = <2>;
> -	#size-cells = <1>;
> -
> -	ranges = <1 0 0x1b000000 0x1000000
> -		  2 0 0x1a000000 0x1000000
> -		  3 0 0x19000000 0x1000000
> -		  4 0 0x18000000 0x1000000
> -		  5 0 0x17000000 0x1000000
> -		  6 0 0x16000000 0x1000000>;
> -
> -	clocks = <&cgu JZ4780_CLK_NEMC>;
> -
> -	nand: nand@1 {
> -		compatible = "ingenic,jz4780-nand";
> -		reg = <1 0 0x1000000>;
> -
> -		ingenic,nemc-tAS = <10>;
> -		ingenic,nemc-tAH = <5>;
> -		ingenic,nemc-tBP = <10>;
> -		ingenic,nemc-tAW = <15>;
> -		ingenic,nemc-tSTRV = <100>;
> -
> -		...
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
> new file mode 100644
> index 000000000000..682e6f7e74fa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc-client.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title:
> +  Ingenic SoCs NAND / External Memory Controller (NEMC)
> +  client-specific properties
> +
> +maintainers:
> +  - Paul Cercueil <paul@crapouillou.net>
> +
> +description:
> +  This document lists the various properties that child nodes of the NEMC node
> +  can use.
> +
> +properties:

What about 'reg'? That should be required.

> +  ingenic,nemc-bus-width:
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint32
> +      - enum: [8, 16]
> +    description: Specifies the bus width in bits.
> +
> +  ingenic,nemc-tAS:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address setup time in nanoseconds.
> +
> +  ingenic,nemc-tAH:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address hold time in nanoseconds.
> +
> +  ingenic,nemc-tBP:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Burst pitch time in nanoseconds.
> +
> +  ingenic,nemc-tAW:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address wait time in nanoseconds.
> +
> +  ingenic,nemc-tSTRV:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Static memory recovery time in nanoseconds.

I think I'd just combine this into 1 file.

> +
> +...
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> new file mode 100644
> index 000000000000..c7fd28462fd8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings
> +
> +maintainers:
> +  - Paul Cercueil <paul@crapouillou.net>
> +
> +properties:
> +  $nodename:
> +    pattern: "^memory-controller@[0-9a-f]+$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +        - ingenic,jz4740-nemc
> +        - ingenic,jz4780-nemc
> +      - items:
> +        - const: ingenic,jz4725b-nemc
> +        - const: ingenic,jz4740-nemc
> +
> +  "#address-cells":
> +    const: 2
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges: true
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +patternProperties:
> +  "^(nand-controller|ethernet)@[0-9]+$":

Presumably you could have other types of child nodes?

> +    type: object
> +    allOf:
> +      - $ref: ingenic,nemc-client.yaml#
> +
> +required:
> +  - compatible
> +  - "#address-cells"
> +  - "#size-cells"
> +  - ranges
> +  - reg
> +  - clocks
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/jz4780-cgu.h>
> +    #include <dt-bindings/gpio/gpio.h>
> +    nemc: memory-controller@13410000 {
> +      compatible = "ingenic,jz4780-nemc";
> +      reg = <0x13410000 0x10000>;
> +      #address-cells = <2>;
> +      #size-cells = <1>;
> +      ranges = <1 0 0x1b000000 0x1000000>,
> +         <2 0 0x1a000000 0x1000000>,
> +         <3 0 0x19000000 0x1000000>,
> +         <4 0 0x18000000 0x1000000>,
> +         <5 0 0x17000000 0x1000000>,
> +         <6 0 0x16000000 0x1000000>;
> +
> +      clocks = <&cgu JZ4780_CLK_NEMC>;
> +
> +      ethernet@6 {
> +        compatible = "davicom,dm9000";
> +        davicom,no-eeprom;
> +
> +        pinctrl-names = "default";
> +        pinctrl-0 = <&pins_nemc_cs6>;
> +
> +        reg = <6 0 1>, /* addr */
> +              <6 2 1>; /* data */
> +
> +        ingenic,nemc-tAS = <15>;
> +        ingenic,nemc-tAH = <10>;
> +        ingenic,nemc-tBP = <20>;
> +        ingenic,nemc-tAW = <50>;
> +        ingenic,nemc-tSTRV = <100>;
> +
> +        reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>;
> +        vcc-supply = <&eth0_power>;
> +
> +        interrupt-parent = <&gpe>;
> +        interrupts = <19 4>;
> +      };
> +    };
> -- 
> 2.26.2
> 

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Paul Cercueil <paul@crapouillou.net>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, 周琰杰 <zhouyanjie@wanyeetech.com>,
	linux-gpio@vger.kernel.org, od@zcrc.me,
	linux-mtd@lists.infradead.org, linux-i2c@vger.kernel.org,
	linux-serial@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-clk@vger.kernel.org
Subject: Re: [PATCH 4/8] dt-bindings: memory: Convert ingenic, jz4780-nemc.txt to YAML
Date: Mon, 11 May 2020 17:54:36 -0500	[thread overview]
Message-ID: <20200511225436.GB19685@bogus> (raw)
In-Reply-To: <20200426185856.38826-4-paul@crapouillou.net>

On Sun, Apr 26, 2020 at 08:58:52PM +0200, Paul Cercueil wrote:
> Convert the ingenic,jz4780-nemc.txt doc file to ingenic,nemc.yaml.
> 
> The ingenic,jz4725b-nemc compatible string was added in the process,
> with a fallback to ingenic,jz4740-nemc.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  .../ingenic,jz4780-nemc.txt                   | 76 ---------------
>  .../ingenic,nemc-client.yaml                  | 45 +++++++++
>  .../memory-controllers/ingenic,nemc.yaml      | 95 +++++++++++++++++++
>  3 files changed, 140 insertions(+), 76 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
>  create mode 100644 Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> 
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt b/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
> deleted file mode 100644
> index 59b8dcc118ee..000000000000
> --- a/Documentation/devicetree/bindings/memory-controllers/ingenic,jz4780-nemc.txt
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -* Ingenic JZ4780 NAND/external memory controller (NEMC)
> -
> -This file documents the device tree bindings for the NEMC external memory
> -controller in Ingenic JZ4780
> -
> -Required properties:
> -- compatible: Should be set to one of:
> -    "ingenic,jz4740-nemc" (JZ4740)
> -    "ingenic,jz4780-nemc" (JZ4780)
> -- reg: Should specify the NEMC controller registers location and length.
> -- clocks: Clock for the NEMC controller.
> -- #address-cells: Must be set to 2.
> -- #size-cells: Must be set to 1.
> -- ranges: A set of ranges for each bank describing the physical memory layout.
> -  Each should specify the following 4 integer values:
> -
> -    <cs number> 0 <physical address of mapping> <size of mapping>
> -
> -Each child of the NEMC node describes a device connected to the NEMC.
> -
> -Required child node properties:
> -- reg: Should contain at least one register specifier, given in the following
> -  format:
> -
> -    <cs number> <offset> <size>
> -
> -  Multiple registers can be specified across multiple banks. This is needed,
> -  for example, for packaged NAND devices with multiple dies. Such devices
> -  should be grouped into a single node.
> -
> -Optional child node properties:
> -- ingenic,nemc-bus-width: Specifies the bus width in bits. Defaults to 8 bits.
> -- ingenic,nemc-tAS: Address setup time in nanoseconds.
> -- ingenic,nemc-tAH: Address hold time in nanoseconds.
> -- ingenic,nemc-tBP: Burst pitch time in nanoseconds.
> -- ingenic,nemc-tAW: Access wait time in nanoseconds.
> -- ingenic,nemc-tSTRV: Static memory recovery time in nanoseconds.
> -
> -If a child node references multiple banks in its "reg" property, the same value
> -for all optional parameters will be configured for all banks. If any optional
> -parameters are omitted, they will be left unchanged from whatever they are
> -configured to when the NEMC device is probed (which may be the reset value as
> -given in the hardware reference manual, or a value configured by the boot
> -loader).
> -
> -Example (NEMC node with a NAND child device attached at CS1):
> -
> -nemc: nemc@13410000 {
> -	compatible = "ingenic,jz4780-nemc";
> -	reg = <0x13410000 0x10000>;
> -
> -	#address-cells = <2>;
> -	#size-cells = <1>;
> -
> -	ranges = <1 0 0x1b000000 0x1000000
> -		  2 0 0x1a000000 0x1000000
> -		  3 0 0x19000000 0x1000000
> -		  4 0 0x18000000 0x1000000
> -		  5 0 0x17000000 0x1000000
> -		  6 0 0x16000000 0x1000000>;
> -
> -	clocks = <&cgu JZ4780_CLK_NEMC>;
> -
> -	nand: nand@1 {
> -		compatible = "ingenic,jz4780-nand";
> -		reg = <1 0 0x1000000>;
> -
> -		ingenic,nemc-tAS = <10>;
> -		ingenic,nemc-tAH = <5>;
> -		ingenic,nemc-tBP = <10>;
> -		ingenic,nemc-tAW = <15>;
> -		ingenic,nemc-tSTRV = <100>;
> -
> -		...
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
> new file mode 100644
> index 000000000000..682e6f7e74fa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc-client.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc-client.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title:
> +  Ingenic SoCs NAND / External Memory Controller (NEMC)
> +  client-specific properties
> +
> +maintainers:
> +  - Paul Cercueil <paul@crapouillou.net>
> +
> +description:
> +  This document lists the various properties that child nodes of the NEMC node
> +  can use.
> +
> +properties:

What about 'reg'? That should be required.

> +  ingenic,nemc-bus-width:
> +    allOf:
> +      - $ref: /schemas/types.yaml#/definitions/uint32
> +      - enum: [8, 16]
> +    description: Specifies the bus width in bits.
> +
> +  ingenic,nemc-tAS:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address setup time in nanoseconds.
> +
> +  ingenic,nemc-tAH:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address hold time in nanoseconds.
> +
> +  ingenic,nemc-tBP:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Burst pitch time in nanoseconds.
> +
> +  ingenic,nemc-tAW:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Address wait time in nanoseconds.
> +
> +  ingenic,nemc-tSTRV:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: Static memory recovery time in nanoseconds.

I think I'd just combine this into 1 file.

> +
> +...
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> new file mode 100644
> index 000000000000..c7fd28462fd8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ingenic,nemc.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings
> +
> +maintainers:
> +  - Paul Cercueil <paul@crapouillou.net>
> +
> +properties:
> +  $nodename:
> +    pattern: "^memory-controller@[0-9a-f]+$"
> +
> +  compatible:
> +    oneOf:
> +      - enum:
> +        - ingenic,jz4740-nemc
> +        - ingenic,jz4780-nemc
> +      - items:
> +        - const: ingenic,jz4725b-nemc
> +        - const: ingenic,jz4740-nemc
> +
> +  "#address-cells":
> +    const: 2
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges: true
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +patternProperties:
> +  "^(nand-controller|ethernet)@[0-9]+$":

Presumably you could have other types of child nodes?

> +    type: object
> +    allOf:
> +      - $ref: ingenic,nemc-client.yaml#
> +
> +required:
> +  - compatible
> +  - "#address-cells"
> +  - "#size-cells"
> +  - ranges
> +  - reg
> +  - clocks
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/jz4780-cgu.h>
> +    #include <dt-bindings/gpio/gpio.h>
> +    nemc: memory-controller@13410000 {
> +      compatible = "ingenic,jz4780-nemc";
> +      reg = <0x13410000 0x10000>;
> +      #address-cells = <2>;
> +      #size-cells = <1>;
> +      ranges = <1 0 0x1b000000 0x1000000>,
> +         <2 0 0x1a000000 0x1000000>,
> +         <3 0 0x19000000 0x1000000>,
> +         <4 0 0x18000000 0x1000000>,
> +         <5 0 0x17000000 0x1000000>,
> +         <6 0 0x16000000 0x1000000>;
> +
> +      clocks = <&cgu JZ4780_CLK_NEMC>;
> +
> +      ethernet@6 {
> +        compatible = "davicom,dm9000";
> +        davicom,no-eeprom;
> +
> +        pinctrl-names = "default";
> +        pinctrl-0 = <&pins_nemc_cs6>;
> +
> +        reg = <6 0 1>, /* addr */
> +              <6 2 1>; /* data */
> +
> +        ingenic,nemc-tAS = <15>;
> +        ingenic,nemc-tAH = <10>;
> +        ingenic,nemc-tBP = <20>;
> +        ingenic,nemc-tAW = <50>;
> +        ingenic,nemc-tSTRV = <100>;
> +
> +        reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>;
> +        vcc-supply = <&eth0_power>;
> +
> +        interrupt-parent = <&gpe>;
> +        interrupts = <19 4>;
> +      };
> +    };
> -- 
> 2.26.2
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-05-11 22:54 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-26 18:58 [PATCH 1/8] dt-bindings: clock: Convert ingenic,cgu.txt to YAML Paul Cercueil
2020-04-26 18:58 ` Paul Cercueil
2020-04-26 18:58 ` Paul Cercueil
2020-04-26 18:58 ` [PATCH 2/8] dt-bindings: intc: Convert ingenic,intc.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-04-27  9:11   ` Sergei Shtylyov
2020-04-27  9:11     ` Sergei Shtylyov
2020-04-27  9:11     ` Sergei Shtylyov
2020-04-28 14:10     ` Paul Cercueil
2020-04-28 14:10       ` Paul Cercueil
2020-04-28 14:10       ` Paul Cercueil
2020-05-11 22:34   ` Rob Herring
2020-05-11 22:34     ` Rob Herring
2020-05-11 22:34     ` Rob Herring
2020-04-26 18:58 ` [PATCH 3/8] dt-bindings: pinctrl: Convert ingenic,pinctrl.txt " Paul Cercueil
2020-04-26 18:58   ` [PATCH 3/8] dt-bindings: pinctrl: Convert ingenic, pinctrl.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-05-11 22:47   ` [PATCH 3/8] dt-bindings: pinctrl: Convert ingenic,pinctrl.txt " Rob Herring
2020-05-11 22:47     ` [PATCH 3/8] dt-bindings: pinctrl: Convert ingenic, pinctrl.txt " Rob Herring
2020-05-11 22:47     ` Rob Herring
2020-04-26 18:58 ` [PATCH 4/8] dt-bindings: memory: Convert ingenic,jz4780-nemc.txt " Paul Cercueil
2020-04-26 18:58   ` [PATCH 4/8] dt-bindings: memory: Convert ingenic, jz4780-nemc.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-05-11 22:54   ` Rob Herring [this message]
2020-05-11 22:54     ` Rob Herring
2020-05-11 22:54     ` Rob Herring
2020-04-26 18:58 ` [PATCH 5/8] dt-bindings: mtd: Convert ingenic,jz4780-nand.txt " Paul Cercueil
2020-04-26 18:58   ` [PATCH 5/8] dt-bindings: mtd: Convert ingenic, jz4780-nand.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-05-11 22:58   ` [PATCH 5/8] dt-bindings: mtd: Convert ingenic,jz4780-nand.txt " Rob Herring
2020-05-11 22:58     ` [PATCH 5/8] dt-bindings: mtd: Convert ingenic, jz4780-nand.txt " Rob Herring
2020-05-11 22:58     ` Rob Herring
2020-04-26 18:58 ` [PATCH 6/8] dt-bindings: i2c: Convert i2c-jz4780.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-05-11 23:00   ` Rob Herring
2020-05-11 23:00     ` Rob Herring
2020-05-11 23:00     ` Rob Herring
2020-04-26 18:58 ` [PATCH 7/8] dt-bindings: serial: Convert ingenic,uart.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-05-11 23:03   ` Rob Herring
2020-05-11 23:03     ` [PATCH 7/8] dt-bindings: serial: Convert ingenic, uart.txt " Rob Herring
2020-05-11 23:03     ` Rob Herring
2020-04-26 18:58 ` [PATCH 8/8] dt-bindings: display: Convert ingenic,lcd.txt " Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-04-26 18:58   ` Paul Cercueil
2020-04-28 14:12   ` Paul Cercueil
2020-04-28 14:12     ` [PATCH 8/8] dt-bindings: display: Convert ingenic, lcd.txt " Paul Cercueil
2020-04-28 14:12     ` Paul Cercueil
2020-05-11 23:05     ` [PATCH 8/8] dt-bindings: display: Convert ingenic,lcd.txt " Rob Herring
2020-05-11 23:05       ` [PATCH 8/8] dt-bindings: display: Convert ingenic, lcd.txt " Rob Herring
2020-05-11 23:05       ` Rob Herring
2020-05-11 22:33 ` [PATCH 1/8] dt-bindings: clock: Convert ingenic,cgu.txt " Rob Herring
2020-05-11 22:33   ` Rob Herring
2020-05-11 22:33   ` Rob Herring

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=20200511225436.GB19685@bogus \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=od@zcrc.me \
    --cc=paul@crapouillou.net \
    --cc=zhouyanjie@wanyeetech.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.