Commit 78693ff6 authored by Frank Li's avatar Frank Li Committed by Miquel Raynal
Browse files

dt-bindings: mtd: convert vf610-nfc to yaml format



Convert binding doc vf610-nfc to yaml format.

Additional changes:
- ref to nand-controller.yaml.
- include arm-gic.h and vf610-clock.h in examples.
- add clocks and clock-names description.
- remove #address-cells, #size-cells assigned-clocks and
assigned-clock-rates.

Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
parent 0af2f6be
Loading
Loading
Loading
Loading
+89 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/fsl,vf610-nfc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale's NAND flash controller (NFC)

description:
  This variant of the Freescale NAND flash controller (NFC) can be found on
  Vybrid (vf610), MPC5125, MCF54418 and Kinetis K70.

maintainers:
  - Frank Li <Frank.Li@nxp.com>

properties:
  compatible:
    enum:
      - fsl,vf610-nfc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: nfc

patternProperties:
  "^nand@[a-f0-9]$":
    type: object
    $ref: raw-nand-chip.yaml

    properties:
      compatible:
        const: fsl,vf610-nfc-nandcs

      reg:
        const: 0

      nand-ecc-strength:
        enum: [24, 32]

      nand-ecc-step-size:
        const: 2048

    unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts

allOf:
  - $ref: nand-controller.yaml

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/vf610-clock.h>

    nand-controller@400e0000 {
        compatible = "fsl,vf610-nfc";
        reg = <0x400e0000 0x4000>;
        #address-cells = <1>;
        #size-cells = <0>;
        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clks VF610_CLK_NFC>;
        clock-names = "nfc";
        assigned-clocks = <&clks VF610_CLK_NFC>;
        assigned-clock-rates = <33000000>;

        nand@0 {
            compatible = "fsl,vf610-nfc-nandcs";
            reg = <0>;
            nand-bus-width = <8>;
            nand-ecc-mode = "hw";
            nand-ecc-strength = <32>;
            nand-ecc-step-size = <2048>;
            nand-on-flash-bbt;
        };
    };
+0 −59
Original line number Diff line number Diff line
Freescale's NAND flash controller (NFC)

This variant of the Freescale NAND flash controller (NFC) can be found on
Vybrid (vf610), MPC5125, MCF54418 and Kinetis K70.

Required properties:
- compatible: Should be set to "fsl,vf610-nfc".
- reg: address range of the NFC.
- interrupts: interrupt of the NFC.
- #address-cells: shall be set to 1. Encode the nand CS.
- #size-cells : shall be set to 0.
- assigned-clocks: main clock from the SoC, for Vybrid <&clks VF610_CLK_NFC>;
- assigned-clock-rates: The NAND bus timing is derived from this clock
    rate and should not exceed maximum timing for any NAND memory chip
    in a board stuffing. Typical NAND memory timings derived from this
    clock are found in the SoC hardware reference manual. Furthermore,
    there might be restrictions on maximum rates when using hardware ECC.

- #address-cells, #size-cells : Must be present if the device has sub-nodes
  representing partitions.

Required children nodes:
Children nodes represent the available nand chips. Currently the driver can
only handle one NAND chip.

Required properties:
- compatible: Should be set to "fsl,vf610-nfc-cs".
- nand-bus-width: see nand-controller.yaml
- nand-ecc-mode: see nand-controller.yaml

Required properties for hardware ECC:
- nand-ecc-strength: supported strengths are 24 and 32 bit (see nand-controller.yaml)
- nand-ecc-step-size: step size equals page size, currently only 2k pages are
    supported
- nand-on-flash-bbt: see nand-controller.yaml

Example:

	nfc: nand@400e0000 {
		compatible = "fsl,vf610-nfc";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x400e0000 0x4000>;
		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clks VF610_CLK_NFC>;
		clock-names = "nfc";
		assigned-clocks = <&clks VF610_CLK_NFC>;
		assigned-clock-rates = <33000000>;

		nand@0 {
			compatible = "fsl,vf610-nfc-nandcs";
			reg = <0>;
			nand-bus-width = <8>;
			nand-ecc-mode = "hw";
			nand-ecc-strength = <32>;
			nand-ecc-step-size = <2048>;
			nand-on-flash-bbt;
		};
	};