xref: /freebsd-src/sys/contrib/device-tree/Bindings/net/nfc/marvell,nci.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/net/nfc/marvell,nci.yaml#
58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
78cc087a1SEmmanuel Vadottitle: Marvell International Ltd. NCI NFC controller
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
118cc087a1SEmmanuel Vadot
128cc087a1SEmmanuel Vadotproperties:
138cc087a1SEmmanuel Vadot  compatible:
148cc087a1SEmmanuel Vadot    enum:
158cc087a1SEmmanuel Vadot      - marvell,nfc-i2c
168cc087a1SEmmanuel Vadot      - marvell,nfc-spi
178cc087a1SEmmanuel Vadot      - marvell,nfc-uart
188cc087a1SEmmanuel Vadot
198cc087a1SEmmanuel Vadot  hci-muxed:
208cc087a1SEmmanuel Vadot    type: boolean
218cc087a1SEmmanuel Vadot    description: |
228cc087a1SEmmanuel Vadot      Specifies that the chip is muxing NCI over HCI frames
238cc087a1SEmmanuel Vadot
248cc087a1SEmmanuel Vadot  interrupts:
258cc087a1SEmmanuel Vadot    maxItems: 1
268cc087a1SEmmanuel Vadot
278cc087a1SEmmanuel Vadot  reg:
288cc087a1SEmmanuel Vadot    maxItems: 1
298cc087a1SEmmanuel Vadot
308cc087a1SEmmanuel Vadot  reset-n-io:
31fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
328cc087a1SEmmanuel Vadot    maxItems: 1
338cc087a1SEmmanuel Vadot    description: |
348cc087a1SEmmanuel Vadot      Output GPIO pin used to reset the chip (active low)
358cc087a1SEmmanuel Vadot
368cc087a1SEmmanuel Vadot  i2c-int-falling:
378cc087a1SEmmanuel Vadot    type: boolean
388cc087a1SEmmanuel Vadot    description: |
398cc087a1SEmmanuel Vadot      For I2C type of connection. Specifies that the chip read event shall be
40*aa1a8ff2SEmmanuel Vadot      triggered on falling edge.
418cc087a1SEmmanuel Vadot
428cc087a1SEmmanuel Vadot  i2c-int-rising:
438cc087a1SEmmanuel Vadot    type: boolean
448cc087a1SEmmanuel Vadot    description: |
458cc087a1SEmmanuel Vadot      For I2C type of connection.  Specifies that the chip read event shall be
46*aa1a8ff2SEmmanuel Vadot      triggered on rising edge.
478cc087a1SEmmanuel Vadot
488cc087a1SEmmanuel Vadot  break-control:
498cc087a1SEmmanuel Vadot    type: boolean
508cc087a1SEmmanuel Vadot    description: |
518cc087a1SEmmanuel Vadot      For UART type of connection. Specifies that the chip needs specific break
528cc087a1SEmmanuel Vadot      management.
538cc087a1SEmmanuel Vadot
548cc087a1SEmmanuel Vadot  flow-control:
558cc087a1SEmmanuel Vadot    type: boolean
568cc087a1SEmmanuel Vadot    description: |
578cc087a1SEmmanuel Vadot      For UART type of connection. Specifies that the chip is using RTS/CTS.
588cc087a1SEmmanuel Vadot
598cc087a1SEmmanuel Vadot  spi-cpha: true
608cc087a1SEmmanuel Vadot  spi-cpol: true
618cc087a1SEmmanuel Vadot
628cc087a1SEmmanuel Vadotrequired:
638cc087a1SEmmanuel Vadot  - compatible
648cc087a1SEmmanuel Vadot
658cc087a1SEmmanuel VadotallOf:
668cc087a1SEmmanuel Vadot  - if:
678cc087a1SEmmanuel Vadot      properties:
688cc087a1SEmmanuel Vadot        compatible:
698cc087a1SEmmanuel Vadot          contains:
708cc087a1SEmmanuel Vadot            const: marvell,nfc-i2c
718cc087a1SEmmanuel Vadot    then:
728cc087a1SEmmanuel Vadot      properties:
738cc087a1SEmmanuel Vadot        break-control: false
748cc087a1SEmmanuel Vadot        flow-control: false
758cc087a1SEmmanuel Vadot        spi-cpha: false
768cc087a1SEmmanuel Vadot        spi-cpol: false
778cc087a1SEmmanuel Vadot        spi-max-frequency: false
788cc087a1SEmmanuel Vadot      required:
798cc087a1SEmmanuel Vadot        - reg
808cc087a1SEmmanuel Vadot
818cc087a1SEmmanuel Vadot  - if:
828cc087a1SEmmanuel Vadot      properties:
838cc087a1SEmmanuel Vadot        compatible:
848cc087a1SEmmanuel Vadot          contains:
858cc087a1SEmmanuel Vadot            const: marvell,nfc-spi
868cc087a1SEmmanuel Vadot    then:
87b97ee269SEmmanuel Vadot      $ref: /schemas/spi/spi-peripheral-props.yaml#
888cc087a1SEmmanuel Vadot      properties:
898cc087a1SEmmanuel Vadot        break-control: false
908cc087a1SEmmanuel Vadot        flow-control: false
918cc087a1SEmmanuel Vadot        i2c-int-falling: false
928cc087a1SEmmanuel Vadot        i2c-int-rising: false
938cc087a1SEmmanuel Vadot      required:
948cc087a1SEmmanuel Vadot        - reg
958cc087a1SEmmanuel Vadot
968cc087a1SEmmanuel Vadot  - if:
978cc087a1SEmmanuel Vadot      properties:
988cc087a1SEmmanuel Vadot        compatible:
998cc087a1SEmmanuel Vadot          contains:
1008cc087a1SEmmanuel Vadot            const: marvell,nfc-uart
1018cc087a1SEmmanuel Vadot    then:
1028cc087a1SEmmanuel Vadot      properties:
1038cc087a1SEmmanuel Vadot        i2c-int-falling: false
1048cc087a1SEmmanuel Vadot        i2c-int-rising: false
1058cc087a1SEmmanuel Vadot        interrupts: false
1068cc087a1SEmmanuel Vadot        spi-cpha: false
1078cc087a1SEmmanuel Vadot        spi-cpol: false
1088cc087a1SEmmanuel Vadot        spi-max-frequency: false
1098cc087a1SEmmanuel Vadot        reg: false
1108cc087a1SEmmanuel Vadot
111b97ee269SEmmanuel VadotunevaluatedProperties: false
1128cc087a1SEmmanuel Vadot
1138cc087a1SEmmanuel Vadotexamples:
1148cc087a1SEmmanuel Vadot  - |
1158cc087a1SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1168cc087a1SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1178cc087a1SEmmanuel Vadot
1188cc087a1SEmmanuel Vadot    i2c {
1198cc087a1SEmmanuel Vadot        #address-cells = <1>;
1208cc087a1SEmmanuel Vadot        #size-cells = <0>;
1218cc087a1SEmmanuel Vadot
1228cc087a1SEmmanuel Vadot        nfc@8 {
1238cc087a1SEmmanuel Vadot            compatible = "marvell,nfc-i2c";
1248cc087a1SEmmanuel Vadot            reg = <0x8>;
1258cc087a1SEmmanuel Vadot
1268cc087a1SEmmanuel Vadot            interrupt-parent = <&gpio3>;
1278cc087a1SEmmanuel Vadot            interrupts = <21 IRQ_TYPE_EDGE_RISING>;
1288cc087a1SEmmanuel Vadot
1298cc087a1SEmmanuel Vadot            i2c-int-rising;
1308cc087a1SEmmanuel Vadot
1317ef62cebSEmmanuel Vadot            reset-n-io = <&gpio3 19 GPIO_ACTIVE_LOW>;
1328cc087a1SEmmanuel Vadot        };
1338cc087a1SEmmanuel Vadot    };
1348cc087a1SEmmanuel Vadot
1358cc087a1SEmmanuel Vadot  - |
1368cc087a1SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1378cc087a1SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1388cc087a1SEmmanuel Vadot
1398cc087a1SEmmanuel Vadot    spi {
1408cc087a1SEmmanuel Vadot        #address-cells = <1>;
1418cc087a1SEmmanuel Vadot        #size-cells = <0>;
1428cc087a1SEmmanuel Vadot
1438cc087a1SEmmanuel Vadot        nfc@0 {
1448cc087a1SEmmanuel Vadot            compatible = "marvell,nfc-spi";
1458cc087a1SEmmanuel Vadot            reg = <0>;
1468cc087a1SEmmanuel Vadot
1478cc087a1SEmmanuel Vadot            spi-max-frequency = <3000000>;
1488cc087a1SEmmanuel Vadot            spi-cpha;
1498cc087a1SEmmanuel Vadot            spi-cpol;
1508cc087a1SEmmanuel Vadot
1518cc087a1SEmmanuel Vadot            interrupt-parent = <&gpio1>;
1528cc087a1SEmmanuel Vadot            interrupts = <17 IRQ_TYPE_EDGE_RISING>;
1538cc087a1SEmmanuel Vadot
1547ef62cebSEmmanuel Vadot            reset-n-io = <&gpio3 19 GPIO_ACTIVE_LOW>;
1558cc087a1SEmmanuel Vadot        };
1568cc087a1SEmmanuel Vadot    };
1578cc087a1SEmmanuel Vadot
1588cc087a1SEmmanuel Vadot  - |
1598cc087a1SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
1608cc087a1SEmmanuel Vadot
1618cc087a1SEmmanuel Vadot    uart {
1628cc087a1SEmmanuel Vadot        nfc {
1638cc087a1SEmmanuel Vadot            compatible = "marvell,nfc-uart";
1648cc087a1SEmmanuel Vadot
1657ef62cebSEmmanuel Vadot            reset-n-io = <&gpio3 16 GPIO_ACTIVE_LOW>;
1668cc087a1SEmmanuel Vadot
1678cc087a1SEmmanuel Vadot            hci-muxed;
1688cc087a1SEmmanuel Vadot            flow-control;
1698cc087a1SEmmanuel Vadot        };
1708cc087a1SEmmanuel Vadot    };
171