| # 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 |
| description: | |
| Clock frequency the SPI peripheral is being driven at, in Hz. |
| "#address-cells": |
| required: true |
| const: 1 |
| "#size-cells": |
| required: true |
| const: 0 |
| cs-gpios: |
| type: phandle-array |
| 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. |