mxic,multi-itfc-v009-nand-controller.yaml 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/mtd/mxic,multi-itfc-v009-nand-controller.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Macronix Raw NAND Controller
  7. maintainers:
  8. - Mason Yang <masonccyang@mxic.com.tw>
  9. description:
  10. The Macronix Multi-Interface Raw NAND Controller is a versatile flash
  11. memory controller for embedding in SoCs, capable of interfacing with
  12. various NAND devices. It requires dedicated clock inputs for core, data
  13. transmit, and delayed transmit paths along with register space and an
  14. interrupt line for operation.
  15. allOf:
  16. - $ref: nand-controller.yaml#
  17. properties:
  18. compatible:
  19. const: mxic,multi-itfc-v009-nand-controller
  20. reg:
  21. maxItems: 1
  22. interrupts:
  23. maxItems: 1
  24. "#address-cells":
  25. const: 1
  26. "#size-cells":
  27. const: 0
  28. clocks:
  29. minItems: 3
  30. maxItems: 3
  31. clock-names:
  32. items:
  33. - const: ps
  34. - const: send
  35. - const: send_dly
  36. required:
  37. - compatible
  38. - reg
  39. - interrupts
  40. - "#address-cells"
  41. - "#size-cells"
  42. - clocks
  43. - clock-names
  44. unevaluatedProperties: false
  45. examples:
  46. - |
  47. #include <dt-bindings/interrupt-controller/arm-gic.h>
  48. nand-controller@43c30000 {
  49. compatible = "mxic,multi-itfc-v009-nand-controller";
  50. reg = <0x43c30000 0x10000>;
  51. #address-cells = <1>;
  52. #size-cells = <0>;
  53. interrupts = <GIC_SPI 0x1d IRQ_TYPE_EDGE_RISING>;
  54. clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>;
  55. clock-names = "ps", "send", "send_dly";
  56. nand@0 {
  57. reg = <0>;
  58. nand-ecc-mode = "soft";
  59. nand-ecc-algo = "bch";
  60. };
  61. };
  62. ...