# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/nfc/marvell,nci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell International Ltd. NCI NFC controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

properties:
  compatible:
    enum:
      - marvell,nfc-i2c
      - marvell,nfc-spi
      - marvell,nfc-uart

  hci-muxed:
    type: boolean
    description: |
      Specifies that the chip is muxing NCI over HCI frames

  interrupts:
    maxItems: 1

  reg:
    maxItems: 1

  reset-n-io:
    $ref: "/schemas/types.yaml#/definitions/phandle-array"
    maxItems: 1
    description: |
      Output GPIO pin used to reset the chip (active low)

  i2c-int-falling:
    type: boolean
    description: |
      For I2C type of connection. Specifies that the chip read event shall be
      trigged on falling edge.

  i2c-int-rising:
    type: boolean
    description: |
      For I2C type of connection.  Specifies that the chip read event shall be
      trigged on rising edge.

  break-control:
    type: boolean
    description: |
      For UART type of connection. Specifies that the chip needs specific break
      management.

  flow-control:
    type: boolean
    description: |
      For UART type of connection. Specifies that the chip is using RTS/CTS.

  spi-cpha: true
  spi-cpol: true
  spi-max-frequency: true

required:
  - compatible

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: marvell,nfc-i2c
    then:
      properties:
        break-control: false
        flow-control: false
        spi-cpha: false
        spi-cpol: false
        spi-max-frequency: false
      required:
        - reg

  - if:
      properties:
        compatible:
          contains:
            const: marvell,nfc-spi
    then:
      properties:
        break-control: false
        flow-control: false
        i2c-int-falling: false
        i2c-int-rising: false
      required:
        - reg

  - if:
      properties:
        compatible:
          contains:
            const: marvell,nfc-uart
    then:
      properties:
        i2c-int-falling: false
        i2c-int-rising: false
        interrupts: false
        spi-cpha: false
        spi-cpol: false
        spi-max-frequency: false
        reg: false

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        nfc@8 {
            compatible = "marvell,nfc-i2c";
            reg = <0x8>;

            interrupt-parent = <&gpio3>;
            interrupts = <21 IRQ_TYPE_EDGE_RISING>;

            i2c-int-rising;

            reset-n-io = <&gpio3 19 GPIO_ACTIVE_HIGH>;
        };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        nfc@0 {
            compatible = "marvell,nfc-spi";
            reg = <0>;

            spi-max-frequency = <3000000>;
            spi-cpha;
            spi-cpol;

            interrupt-parent = <&gpio1>;
            interrupts = <17 IRQ_TYPE_EDGE_RISING>;

            reset-n-io = <&gpio3 19 GPIO_ACTIVE_HIGH>;
        };
    };

  - |
    #include <dt-bindings/gpio/gpio.h>

    uart {
        nfc {
            compatible = "marvell,nfc-uart";

            reset-n-io = <&gpio3 16 GPIO_ACTIVE_HIGH>;

            hci-muxed;
            flow-control;
        };
    };
