xref: /freebsd/sys/contrib/device-tree/Bindings/spi/cdns,xspi.yaml (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot# Copyright 2020-21 Cadence
38cc087a1SEmmanuel Vadot%YAML 1.2
48cc087a1SEmmanuel Vadot---
5*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/spi/cdns,xspi.yaml#
6*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
78cc087a1SEmmanuel Vadot
88cc087a1SEmmanuel Vadottitle: Cadence XSPI Controller
98cc087a1SEmmanuel Vadot
108cc087a1SEmmanuel Vadotmaintainers:
118cc087a1SEmmanuel Vadot  - Parshuram Thombare <pthombar@cadence.com>
128cc087a1SEmmanuel Vadot
138cc087a1SEmmanuel Vadotdescription: |
148cc087a1SEmmanuel Vadot  The XSPI controller allows SPI protocol communication in
158cc087a1SEmmanuel Vadot  single, dual, quad or octal wire transmission modes for
168cc087a1SEmmanuel Vadot  read/write access to slaves such as SPI-NOR flash.
178cc087a1SEmmanuel Vadot
188cc087a1SEmmanuel VadotallOf:
19*cb7aa33aSEmmanuel Vadot  - $ref: spi-controller.yaml#
208cc087a1SEmmanuel Vadot
218cc087a1SEmmanuel Vadotproperties:
228cc087a1SEmmanuel Vadot  compatible:
238cc087a1SEmmanuel Vadot    const: cdns,xspi-nor
248cc087a1SEmmanuel Vadot
258cc087a1SEmmanuel Vadot  reg:
268cc087a1SEmmanuel Vadot    items:
278cc087a1SEmmanuel Vadot      - description: address and length of the controller register set
288cc087a1SEmmanuel Vadot      - description: address and length of the Slave DMA data port
298cc087a1SEmmanuel Vadot      - description: address and length of the auxiliary registers
308cc087a1SEmmanuel Vadot
318cc087a1SEmmanuel Vadot  reg-names:
328cc087a1SEmmanuel Vadot    items:
338cc087a1SEmmanuel Vadot      - const: io
348cc087a1SEmmanuel Vadot      - const: sdma
358cc087a1SEmmanuel Vadot      - const: aux
368cc087a1SEmmanuel Vadot
378cc087a1SEmmanuel Vadot  interrupts:
388cc087a1SEmmanuel Vadot    maxItems: 1
398cc087a1SEmmanuel Vadot
408cc087a1SEmmanuel Vadotrequired:
418cc087a1SEmmanuel Vadot  - compatible
428cc087a1SEmmanuel Vadot  - reg
438cc087a1SEmmanuel Vadot  - interrupts
448cc087a1SEmmanuel Vadot
458cc087a1SEmmanuel VadotunevaluatedProperties: false
468cc087a1SEmmanuel Vadot
478cc087a1SEmmanuel Vadotexamples:
488cc087a1SEmmanuel Vadot  - |
498cc087a1SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
508cc087a1SEmmanuel Vadot    bus {
518cc087a1SEmmanuel Vadot        #address-cells = <2>;
528cc087a1SEmmanuel Vadot        #size-cells = <2>;
538cc087a1SEmmanuel Vadot
548cc087a1SEmmanuel Vadot        xspi: spi@a0010000 {
558cc087a1SEmmanuel Vadot            #address-cells = <1>;
568cc087a1SEmmanuel Vadot            #size-cells = <0>;
578cc087a1SEmmanuel Vadot            compatible = "cdns,xspi-nor";
588cc087a1SEmmanuel Vadot            reg = <0x0 0xa0010000 0x0 0x1040>,
598cc087a1SEmmanuel Vadot                  <0x0 0xb0000000 0x0 0x1000>,
608cc087a1SEmmanuel Vadot                  <0x0 0xa0020000 0x0 0x100>;
618cc087a1SEmmanuel Vadot            reg-names = "io", "sdma", "aux";
628cc087a1SEmmanuel Vadot            interrupts = <0 90 IRQ_TYPE_LEVEL_HIGH>;
638cc087a1SEmmanuel Vadot            interrupt-parent = <&gic>;
648cc087a1SEmmanuel Vadot
658cc087a1SEmmanuel Vadot            flash@0 {
668cc087a1SEmmanuel Vadot                compatible = "jedec,spi-nor";
678cc087a1SEmmanuel Vadot                spi-max-frequency = <75000000>;
688cc087a1SEmmanuel Vadot                reg = <0>;
698cc087a1SEmmanuel Vadot            };
708cc087a1SEmmanuel Vadot
718cc087a1SEmmanuel Vadot            flash@1 {
728cc087a1SEmmanuel Vadot                compatible = "jedec,spi-nor";
738cc087a1SEmmanuel Vadot                spi-max-frequency = <75000000>;
748cc087a1SEmmanuel Vadot                reg = <1>;
758cc087a1SEmmanuel Vadot            };
768cc087a1SEmmanuel Vadot        };
778cc087a1SEmmanuel Vadot    };
78