NAME
    `Device::Chip' - an abstraction of a hardware chip IO driver

DESCRIPTION
      Note: this document is currently under heavy development. Details will
      be added, changed, and evolved as it progresses. Be warned that
      currently anything may be changed from one version to the next.

    This package describes an interface that classes can use to implement a
    driver to talk to a specific hardware chip or module. An instance
    implementing this interface would communicate with the actual hardware
    device via some instance of the related interface,
    Device::Chip::Adapter.

    The documentation in this file is aimed primarily at users of
    `Device::Chip' subclasses. For more information on authoring such a
    module, see instead Device::Chip::Authoring.

  USING A CHIP DRIVER
    To actually use a chip driver to talk to a specific piece of hardware
    that is connected to the computer, an adapter must be supplied. This
    will be an instance of some class that satisfies the
    Device::Chip::Adapter interface. The chip driver will use this adapter
    instance to access the underlying hardware port used to electrically
    connect to the chip and communicate with it. This is supplied by
    invoking the mount method. For example:

       my $chip = Device::Chip::MAX7219->new;

       my $adapter = Device::Chip::Adapter::FTDI->new;

       $chip->mount( $adapter )->get;

CONSTRUCTOR
  new
       $chip = Device::Chip->new

    Returns a new instance of a chip driver object.

METHODS
    The following methods documented with a trailing call to `->get' return
    Future instances.

    This allows them to easily be used as a simple synchronous method by
    using the trailing Future call. Alternatively, if the underlying adapter
    allows a fully asynchronous mode of operation, they can be combined in
    the usual ways for futures to provide more asynchronous use of the
    device.

  mount
       $chip = $chip->mount( $adapter, %params )->get

    Supplies the chip driver with the means to actually communicate with the
    connected device, via some electrical interface connected to the
    computer.

    The parameters given in `%params' will vary depending on the specific
    chip in question, and should be documented there.

  mount_from_paramstr
       $chip = $chip->mount_from_paramstr( $adapter, $paramstr )->get

    A variant of mount that parses its options from the given string. This
    string should be a comma-separated list of parameters, where each is
    given as a name and value separated by equals sign. If there is no
    equals sign, the value is implied as `1', as a convenience for
    parameters that are simple boolean flags.

AUTHOR
    Paul Evans <leonerd@leonerd.org.uk>

