blob: ec19771eca68fa945a7fcd24636fcc536f74783b [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library ddk.protocol.spiimpl;
using zx;
/// Low-level protocol for spi drivers.
[Layout = "ddk-protocol"]
protocol SpiImpl {
/// Returns the number of chip select lines available or provided by the driver instance.
/// To be used as a limit on the acceptable values for the `cs' field in the Exchange() method.
GetChipSelectCount() -> (uint32 count);
/// Perform a SPI bus transaction of the specified length. Either txdata or rxdata may be
/// NULL, in which case the transaction will be half-duplex in the appropriate direction.
/// Regardless, both vectors must have the same length.
Exchange(uint32 cs, vector<uint8>? txdata) -> (zx.status status,
vector<uint8> rxdata);