64 lines
2.2 KiB
YAML
64 lines
2.2 KiB
YAML
# Copyright (c) 2018 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Common fields for Nordic nRF family SPI peripherals
|
|
|
|
include: [spi-controller.yaml, pinctrl-device.yaml, nordic-clockpin.yaml]
|
|
|
|
properties:
|
|
reg:
|
|
required: true
|
|
|
|
interrupts:
|
|
required: true
|
|
|
|
pinctrl-0:
|
|
required: true
|
|
|
|
pinctrl-names:
|
|
required: true
|
|
|
|
max-frequency:
|
|
type: int
|
|
required: true
|
|
description: |
|
|
Maximum data rate the SPI peripheral can be driven at, in Hz. This
|
|
property must be set at SoC level DTS files.
|
|
|
|
overrun-character:
|
|
default: 0xff
|
|
description: |
|
|
Configurable, defaults to 0xff (line high), the most common value used
|
|
in SPI transfers.
|
|
|
|
easydma-maxcnt-bits:
|
|
type: int
|
|
required: true
|
|
description: |
|
|
Maximum number of bits available in the EasyDMA MAXCNT register. This
|
|
property must be set at SoC level DTS files.
|
|
|
|
wake-gpios:
|
|
type: phandle-array
|
|
description: |
|
|
Optional bi-directional line that allows SPI master to indicate to SPI
|
|
slave (by setting the line high) that a transfer is to occur, so that
|
|
the latter can prepare (and indicate its readiness) for handling that
|
|
transfer when it is actually needed, and stay in any desired low-power
|
|
state otherwise.
|
|
The protocol is as follows:
|
|
- initially, SPI slave configures its WAKE line pin as an input and SPI
|
|
master keeps the line in the low state
|
|
- when a transfer is to be performed, SPI master configures its WAKE
|
|
line pin as an input with pull-up; this changes the line state to
|
|
high but allows SPI slave to override that state
|
|
- when SPI slave detects the high state of the WAKE line, it prepares
|
|
for the transfer and when everything is ready, it drives the WAKE
|
|
line low by configuring its pin as an output
|
|
- the generated high-to-low transition on the WAKE line is a signal
|
|
to SPI master that it can proceed with the transfer
|
|
- SPI slave releases the line by configuring its pin back to be an input
|
|
and SPI master again keeps the line in the low state
|
|
Please note that the line must be configured and properly handled on
|
|
both sides for the mechanism to work correctly.
|