NAME

PINE64::GPIO - Perl interface to PineA64 and PineA64+ GPIO pins

SYNOPSIS

	use PINE64::GPIO;

	#instantiate PINE64::GPIO object
	my $p64 = PINE64::GPIO->new();
	
	#export pin 25 (physical pin 40) for output
	$p64->gpio_enable(25, 'out');

	#continuously blink LED
	for(;;){
		$p64->gpio_write(25, 1);
		sleep(1);
		$p64->gpio_write(25, 0);
		sleep(1);
	}#end for

DESCRIPTION

This module manipulates the GPIO file system interface of the PineA64
and PineA64+ single board computers so you can control the GPIO pins
on the PineA64's PI-2 bus.  

The PineA64's 40-pin PI-2 bus has the same pinout as the Raspberry Pi's
40-pin GPIO, however this module has it's own GPIO pin numbering
convention for the 26 GPIO pins as follows:

Module#		Physical#	A64 sys#
------------------------------------------
0		3		227
1		5		226
2		7		362
3		11		71
4		13		233
5		15		76
6		19		64
7		21		65
8		23		66
9		29		229
10		31		230
11		33		69
12		35		73
13		37		80
14		8		32
15		10		33
16		12		72
17		16		77
18		18		78
19		22		79
20		24		67
21		26		231
22		32		68
23		36		70
24		38		74
25		40		75

METHODS

new()

Returns a new C<PINE64::GPIO> object.  

gpio_enable($pin, 'out')

Takes the GPIO pin number and direction as arguments and exports it for use 
as either an input or output. 

Valid pin number arguments are 0-15, and the direction is either 'in' or 'out'.  

$p64->gpio_enable(25, 'out');

gpio_read($pin)

Takes pin number as an argument and returns the logic value on the pin. 

gpio_write($pin, $value)

Takes pin number and value as an argument and writes the value to the GPIO pin. 
Valid values are 0 or 1.

gpio_disable($pin)

Takes pin number as an argument and unexports the pin in the file system
interface.  

AUTHOR

Dustin La Ferney

LICENSE AND COPYRIGHT

This software is Copyright (c) 2020 by Dustin La Ferney.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)
