NAME

Device::Chip::Adapter::LinuxKernel - A Device::Chip::Adapter implementation

DESCRIPTION

This class implements the Device::Chip::Adapter interface for the LinuxKernel, allowing an instance of Device::Chip driver to communicate with the actual chip hardware by using the Linux Kernel interfaces for GPIO, I2C (SMbus), and SPI. Suitble for use on any Linux system including Raspberry PI (RPI), Beaglebone, Banana PI or any other single board computer that exposes IO via the standard Linux Kernel interfaces.

CONSTRUCTOR

new

$adapter = Device::Chip::Adapter::LinuxKernel->new( %args )
i2c_bus - Optional, which i2c bus to connect to. i2c-0, i2c-1, ...
spi_bus - Optional, which spi controller to use. spidev0.0, ...

Returns a new instance of a Device::Chip::Adapter::LinuxKernel.

KNOWN ISSUES

I2C reading likely doesn't work properly
GPIO performance is probably horrendous. We re-open the /value file in sysfs over and over for every action. This could be better by storing the filehandles

PLANS AHEAD

I'm going to release a companion module to this for Raspberry PI devices. It'll automatically detect which set of hardware you're on and select the appropriate busses for you. I'll also be working to add "interrupt" support for the GPIO so that you can use poll(2) or select(2) to get a trigger on edge detection on some GPIO devices.

AUTHOR

Ryan Voots <ryan@voots.org>

Stephen Cavilia <sac+cpan@atomicradi.us>

Paul "LeoNerd" Evans <pevans@cpan.org>

COPYRIGHT AND LICENSE

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.