64 lines
1.9 KiB
YAML
64 lines
1.9 KiB
YAML
# Copyright (c) 2018, I-SENSE group of ICCS
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Common fields for SPI controllers
|
|
|
|
include: base.yaml
|
|
|
|
bus: spi
|
|
|
|
properties:
|
|
clock-frequency:
|
|
type: int
|
|
required: false
|
|
description: |
|
|
Clock frequency the SPI peripheral is being driven at, in Hz.
|
|
"#address-cells":
|
|
required: true
|
|
const: 1
|
|
"#size-cells":
|
|
required: true
|
|
const: 0
|
|
label:
|
|
required: true
|
|
cs-gpios:
|
|
type: phandle-array
|
|
required: false
|
|
description: |
|
|
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.
|