blob: 12c9559a8a60142932e44a9eda22cc7ba88043b8 [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 fuchsia.hardware.ftdi;
/// Each one of these represents an I2cDevice that will exist
/// on the newly created bus. The I2C bus will try and bind
/// a driver on the bus with the given VID, PID, DID.
struct I2cDevice {
uint32 address;
uint32 vid;
uint32 pid;
uint32 did;
};
/// This represents the data necessary for the FTDI device
/// to create an I2C bus.
struct I2cBusLayout {
uint32 scl;
/// The FTDI needs two pins to be able to drive input and output for
/// SDA. Please specify the two pins here. They *must* be physically
/// tied together on the board with a jumper wire.
uint32 sda_out;
uint32 sda_in;
};
protocol Device {
/// Create an I2c bus on the FTDI device with a given `layout` and
/// with `device` attached to it.
CreateI2C(I2cBusLayout layout, I2cDevice device);
};