:orphan:

.. raw:: html

    <!--
    FIXME: do not limit page width until content uses another representation
    format other than tables
    -->
    <style>.wy-nav-content { max-width: none; !important }</style>

.. dtcompatible:: nordic,nrf-spis
.. _dtbinding_nordic_nrf_spis:

nordic,nrf-spis
###############

Vendor: :ref:`Nordic Semiconductor <dt_vendor_nordic>`

Description
***********

These nodes are "spi" bus nodes.

.. code-block:: none

   Nordic nRF family SPIS (SPI slave with EasyDMA)

Properties
**********

.. tabs::

   .. group-tab:: Node specific properties

      Properties not inherited from the base binding file.

      .. list-table::
         :widths: 1 1 4
         :header-rows: 1

         * - Name
           - Type
           - Details

         * - ``csn-pin``
           - ``int``
           - .. code-block:: none

                IMPORTANT: This option will only be used if the new pin control driver
                is not enabled. It will be deprecated in the future.

                The CSN pin to use. The pin numbering scheme is the same as
                the sck-pin property's.



         * - ``def-char``
           - ``int``
           - .. code-block:: none

                Default character. Character clocked out when the slave was not
                provided with buffers and is ignoring the transaction.



             This property is **required**.

         * - ``sck-pin``
           - ``int``
           - .. code-block:: none

                IMPORTANT: This option will only be used if the new pin control driver
                is not enabled. It will be deprecated in the future.

                The SCK pin to use.

                For pins P0.0 through P0.31, use the pin number. For example,
                to use P0.16 for SCK, set:

                    sck-pin = <16>;

                For pins P1.0 through P1.31, add 32 to the pin number. For
                example, to use P1.2 for SCK, set:

                    sck-pin = <34>;  /* 32 + 2 */



         * - ``mosi-pin``
           - ``int``
           - .. code-block:: none

                IMPORTANT: This option will only be used if the new pin control driver
                is not enabled. It will be deprecated in the future.

                The MOSI pin to use. The pin numbering scheme is the same as
                the sck-pin property's.



         * - ``miso-pin``
           - ``int``
           - .. code-block:: none

                IMPORTANT: This option will only be used if the new pin control driver
                is not enabled. It will be deprecated in the future.

                The MISO pin to use. The pin numbering scheme is the same as
                the sck-pin property's.



         * - ``clock-frequency``
           - ``int``
           - .. code-block:: none

                Clock frequency the SPI peripheral is being driven at, in Hz.



         * - ``cs-gpios``
           - ``phandle-array``
           - .. code-block:: none

                An array of chip select GPIOs to use. Each element
                in the array specifies a GPIO. The index in the array
                corresponds to the child node that the CS gpio controls.

                Example:

                  spi@... {
                          cs-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>,
                                        <&gpio1 10 GPIO_ACTIVE_LOW>,
                                        ...;

                          spi-device@0 {
                                  reg = <0>;
                                  ...
                          };
                          spi-device@1 {
                                  reg = <1>;
                                  ...
                          };
                          ...
                  };

                The child node "spi-device@0" specifies a SPI device with
                chip select controller gpio0, pin 23, and devicetree
                GPIO flags GPIO_ACTIVE_LOW. Similarly, "spi-device@1" has CS GPIO
                controller gpio1, pin 10, and flags GPIO_ACTIVE_LOW. Additional
                devices can be configured in the same way.

                If unsure about the flags cell, GPIO_ACTIVE_LOW is generally a safe
                choice for a typical "CSn" pin. GPIO_ACTIVE_HIGH may be used if
                intervening hardware inverts the signal to the peripheral device or
                the line itself is active high.

                If this property is not defined, no chip select GPIOs are set.
                SPI controllers with dedicated CS pins do not need to define
                the cs-gpios property.



         * - ``pinctrl-0``
           - ``phandles``
           - .. code-block:: none

                Pin configuration/s for the first state. Content is specific to the
                selected pin controller driver implementation.



         * - ``pinctrl-1``
           - ``phandles``
           - .. code-block:: none

                Pin configuration/s for the second state. See pinctrl-0.



         * - ``pinctrl-2``
           - ``phandles``
           - .. code-block:: none

                Pin configuration/s for the third state. See pinctrl-0.



         * - ``pinctrl-3``
           - ``phandles``
           - .. code-block:: none

                Pin configuration/s for the fourth state. See pinctrl-0.



         * - ``pinctrl-4``
           - ``phandles``
           - .. code-block:: none

                Pin configuration/s for the fifth state. See pinctrl-0.



         * - ``pinctrl-names``
           - ``string-array``
           - .. code-block:: none

                Names for the provided states. The number of names needs to match the
                number of states.





   .. group-tab:: Deprecated node specific properties

      Deprecated properties not inherited from the base binding file.

      (None)

   .. group-tab:: Base properties

      Properties inherited from the base binding file, which defines
      common properties that may be set on many nodes. Not all of these
      may apply to the "nordic,nrf-spis" compatible.

      .. list-table::
         :widths: 1 1 4
         :header-rows: 1

         * - Name
           - Type
           - Details

         * - ``reg``
           - ``array``
           - .. code-block:: none

                register space


             This property is **required**.

             See :ref:`dt-important-props` for more information.

         * - ``interrupts``
           - ``array``
           - .. code-block:: none

                interrupts for device


             This property is **required**.

             See :ref:`dt-important-props` for more information.

         * - ``#address-cells``
           - ``int``
           - .. code-block:: none

                number of address cells in reg property


             This property is **required**.

             Constant value: ``1``

         * - ``#size-cells``
           - ``int``
           - .. code-block:: none

                number of size cells in reg property


             This property is **required**.

         * - ``label``
           - ``string``
           - .. code-block:: none

                Human readable string describing the device (used as device_get_binding() argument)


             This property is **required**.

             See :ref:`dt-important-props` for more information.

         * - ``status``
           - ``string``
           - .. code-block:: none

                indicates the operational status of a device


             Legal values: ``'ok'``, ``'okay'``, ``'disabled'``, ``'reserved'``, ``'fail'``, ``'fail-sss'``

             See :ref:`dt-important-props` for more information.

         * - ``compatible``
           - ``string-array``
           - .. code-block:: none

                compatible strings


             This property is **required**.

             See :ref:`dt-important-props` for more information.

         * - ``reg-names``
           - ``string-array``
           - .. code-block:: none

                name of each register space


         * - ``interrupts-extended``
           - ``compound``
           - .. code-block:: none

                extended interrupt specifier for device


         * - ``interrupt-names``
           - ``string-array``
           - .. code-block:: none

                name of each interrupt


         * - ``interrupt-parent``
           - ``phandle``
           - .. code-block:: none

                phandle to interrupt controller node


         * - ``clocks``
           - ``phandle-array``
           - .. code-block:: none

                Clock gate information


         * - ``clock-names``
           - ``string-array``
           - .. code-block:: none

                name of each clock


         * - ``dmas``
           - ``phandle-array``
           - .. code-block:: none

                DMA channels specifiers


         * - ``dma-names``
           - ``string-array``
           - .. code-block:: none

                Provided names of DMA channel specifiers


         * - ``io-channels``
           - ``phandle-array``
           - .. code-block:: none

                IO channels specifiers


         * - ``io-channel-names``
           - ``string-array``
           - .. code-block:: none

                Provided names of IO channel specifiers


         * - ``mboxes``
           - ``phandle-array``
           - .. code-block:: none

                mailbox / IPM channels specifiers


         * - ``mbox-names``
           - ``string-array``
           - .. code-block:: none

                Provided names of mailbox / IPM channel specifiers


         * - ``wakeup-source``
           - ``boolean``
           - .. code-block:: none

                Property to identify that a device can be used as wake up source.

                When this property is provided a specific flag is set into the
                device that tells the system that the device is capable of
                wake up the system.

                Wake up capable devices are disabled (interruptions will not wake up
                the system) by default but they can be enabled at runtime if necessary.



         * - ``power-domain``
           - ``phandle``
           - .. code-block:: none


                Power domain the device belongs to.

                The device will be notified when the power domain it belongs to is either
                suspended or resumed.