# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2019,2020 Lubomir Rintel <lkundrak@v3.sk>
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/marvell,mmp2-ssp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: PXA2xx SSP SPI Controller

maintainers:
  - Lubomir Rintel <lkundrak@v3.sk>

properties:
  compatible:
    enum:
      - marvell,mmp2-ssp
      - mrvl,ce4100-ssp
      - mvrl,pxa168-ssp
      - mrvl,pxa25x-ssp
      - mvrl,pxa25x-nssp
      - mrvl,pxa27x-ssp
      - mrvl,pxa3xx-ssp
      - mrvl,pxa910-ssp

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  dmas:
    items:
      - description: Receive DMA
      - description: Transmit DMA

  dma-names:
    items:
      - const: rx
      - const: tx

  ready-gpios:
    description: |
      GPIO used to signal a SPI master that the FIFO is filled and we're
      ready to service a transfer. Only useful in slave mode.
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks

dependencies:
  ready-gpios: [ spi-slave ]

allOf:
  - $ref: spi-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: marvell,mmp2-ssp
    then:
      properties:
        dmas: false
        dma-names: false

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/marvell,mmp2.h>
    spi@d4035000 {
        compatible = "marvell,mmp2-ssp";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0xd4035000 0x1000>;
        clocks = <&soc_clocks MMP2_CLK_SSP0>;
        interrupts = <0>;
    };

...
