Module Name: src Committed By: mbalmer Date: Sat Oct 26 10:48:19 UTC 2013
Modified Files: src/distrib/sets/lists/man: mi src/share/man/man3lua: Makefile Added Files: src/share/man/man3lua: gpio.3lua Log Message: first shot at documenting gpio(3lua) To generate a diff of this commit: cvs rdiff -u -r1.1442 -r1.1443 src/distrib/sets/lists/man/mi cvs rdiff -u -r1.1 -r1.2 src/share/man/man3lua/Makefile cvs rdiff -u -r0 -r1.1 src/share/man/man3lua/gpio.3lua Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/man/mi diff -u src/distrib/sets/lists/man/mi:1.1442 src/distrib/sets/lists/man/mi:1.1443 --- src/distrib/sets/lists/man/mi:1.1442 Sat Oct 26 09:16:19 2013 +++ src/distrib/sets/lists/man/mi Sat Oct 26 10:48:19 2013 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1442 2013/10/26 09:16:19 nonaka Exp $ +# $NetBSD: mi,v 1.1443 2013/10/26 10:48:19 mbalmer Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -637,6 +637,16 @@ ./usr/share/man/cat3/atari/ahdi_writelabel.0 man-obsolete obsolete ./usr/share/man/cat3/i386 man-obsolete obsolete ./usr/share/man/cat3/i386/keycap.0 man-obsolete obsolete +./usr/share/man/cat3lua/gpio.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.open.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.info.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.close.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.set.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.unset.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.read.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.write.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.toggle.0 man-sys-catman .cat +./usr/share/man/cat3lua/gpio.attach.0 man-sys-catman .cat ./usr/share/man/cat3lua/intro.0 man-sys-catman .cat ./usr/share/man/cat4/aac.0 man-sys-catman .cat ./usr/share/man/cat4/ac97.0 man-sys-catman .cat @@ -3670,6 +3680,16 @@ ./usr/share/man/html1/zgrep.html man-util-htmlman html ./usr/share/man/html1/zmore.html man-util-htmlman html ./usr/share/man/html1/znew.html man-util-htmlman html +./usr/share/man/html3lua/gpio.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.open.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.info.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.close.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.set.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.unset.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.read.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.write.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.toggle.html man-sys-htmlman html +./usr/share/man/html3lua/gpio.attach.html man-sys-htmlman html ./usr/share/man/html3lua/intro.html man-sys-htmlman html ./usr/share/man/html4/aac.html man-sys-htmlman html ./usr/share/man/html4/ac97.html man-sys-htmlman html @@ -6377,6 +6397,16 @@ ./usr/share/man/man3/atari/ahdi_writelabel.3 man-obsolete obsolete ./usr/share/man/man3/i386 man-obsolete obsolete ./usr/share/man/man3/i386/keycap.3 man-obsolete obsolete +./usr/share/man/man3lua/gpio.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.open.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.info.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.close.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.set.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.unset.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.read.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.write.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.toggle.3lua man-sys-man .man +./usr/share/man/man3lua/gpio.attach.3lua man-sys-man .man ./usr/share/man/man3lua/intro.3lua man-sys-man .man ./usr/share/man/man4/aac.4 man-sys-man .man ./usr/share/man/man4/ac97.4 man-sys-man .man Index: src/share/man/man3lua/Makefile diff -u src/share/man/man3lua/Makefile:1.1 src/share/man/man3lua/Makefile:1.2 --- src/share/man/man3lua/Makefile:1.1 Fri Oct 25 15:27:03 2013 +++ src/share/man/man3lua/Makefile Sat Oct 26 10:48:19 2013 @@ -1,6 +1,16 @@ -# $NetBSD: Makefile,v 1.1 2013/10/25 15:27:03 mbalmer Exp $ +# $NetBSD: Makefile,v 1.2 2013/10/26 10:48:19 mbalmer Exp $ -MAN= intro.3lua +MAN= gpio.3lua intro.3lua + +MLINKS+=gpio.3lua gpio.open.3lua \ + gpio.3lua gpio.info.3lua \ + gpio.3lua gpio.close.3lua \ + gpio.3lua gpio.set.3lua \ + gpio.3lua gpio.unset.3lua \ + gpio.3lua gpio.read.3lua \ + gpio.3lua gpio.write.3lua \ + gpio.3lua gpio.toggle.3lua \ + gpio.3lua gpio.attach.3lua .include <bsd.man.mk> .include <bsd.subdir.mk> Added files: Index: src/share/man/man3lua/gpio.3lua diff -u /dev/null src/share/man/man3lua/gpio.3lua:1.1 --- /dev/null Sat Oct 26 10:48:19 2013 +++ src/share/man/man3lua/gpio.3lua Sat Oct 26 10:48:19 2013 @@ -0,0 +1,178 @@ +.\" $NetBSD: gpio.3lua,v 1.1 2013/10/26 10:48:19 mbalmer Exp $ +.\" +.\" Copyright (c) 2013 Marc Balmer <mbal...@netbsd.org>. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" +.Dd October 26, 2013 +.Dt GPIO 3lua +.Os +.Sh NAME +.Nm gpio +.Nd access +.Xr gpio 4 +pins from Lua +.Sh SYNOPSIS +.Cd "require 'gpio'" +.Pp +.Bl -tag -width XXXX -compact +.It Dv gpiodev = gpio.open(path) +.It Dv pins = gpio.info(gpiodev) +.It Dv gpio.close(gpiodev) +.It Dv gpio.set(gpiodev, pin, flags) +.It Dv gpio.unset(gpiodev, pin) +.It Dv state = gpio.read(gpiodev, pin) +.It Dv oldstate = gpio.write(gpiodev, pin, state) +.It Dv gpio.toggle(gpiodev, pin) +.It Dv gpio.attach(gpiodev, driver, offset, mask [, flags]) +.El +.Sh DESCRIPTION +The +.Nm +Lua provides access to a +.Xr gpio 4 +device using the +.Xr ioctl 2 +interface. +.Pp +.Bl -tag -width XXXX -compact +.Pp +.It Dv gpiodev = gpio.open(path) +Open the gpio device and return an object to access its pins. +.Pp +.It Dv pins = gpio.info(gpiodev) +Returns the number of pins. +As with all remaining functions, this can also be called using the : +notation, i.e. as +.Em gpiodev:info() . +.Pp +.It Dv gpio.close(gpiodev) +Close the gpio device. +.Pp +.It Dv gpio.set(gpiodev, pin, flags) +Set gpio pin flags. +Note that the pin number in this and all remaining functions is zero based and +not one based, this to avoid confusion with tools like +.Xr gpioctl 8 +which also number pins starting at zero. +The following flags are defined: +.Pp +.Bl -tag -width XXXX -compact +.It Dv gpio.PIN_INPUT +Pin is an input. +.Pp +.It Dv gpio.PIN_OUTPUT +Pin is an output. +.Pp +.It Dv gpio.PIN_INOUT +Pin is birectional. +.Pp +.It Dv gpio.PIN_OPENDRAIN +Pin is an open-drain output. +.Pp +.It Dv gpio.PIN_PUSHPULL +Pin is a push-pull output. +.Pp +.It Dv gpio.PIN_TRISTATE +Pin is tri-state (output disabled). +.Pp +.It Dv gpio.PIN_PULLUP +Pin has an internal pull-up enabled. +.Pp +.It Dv gpio.PIN_PULLDOWN +Pin has an internal pull-down enabled. +.Pp +.It Dv gpio.PIN_INVIN +Invert input. +.Pp +.It Dv gpio.PIN_INVOUT +Invert output. +.Pp +.It Dv gpio.PIN_USER +Pin accessible by users. +.Pp +.It Dv gpio.PIN_PULSATE +Pulsate pin at a hardware set frequency. +.Pp +.It Dv gpio.PIN_SET +Pin is set. +.El +.Pp +.It Dv gpio.unset(gpiodev, pin) +Unset gpio pin. +.Pp +.It Dv stat = gpio.read(gpiodev, pin) +Read the current pin state. +.Pp +.It Dv oldstate = gpio.write(gpiodev, pin, state) +Write the pin state returning the old state. +The following states are defined: +.Pp +.Bl -tag -width XXXX -compact +.It Dv gpio.PIN_LOW +Pin is in the low state. +.Pp +.It Dv gpio.PIN_HIGH +Pin is in the high state. +.El +.Pp +.It Dv gpio.toggle(gpiodev, pin) +Toggle pin state. +.Pp +.It Dv gpio.attach(gpiodev, driver, offset, mask [, flags]) +Attach a device driver with offset, mask, and optional flags at a pin. +.El +.Sh EXAMPLES +The following example code opens +.Pa /dev/gpio0 +and prints all pin values: +.Bd -literal +local gpio = require 'gpio' + +gpiodev = gpio.open('/dev/gpio0') + +local npins = gpiodev:info() + +for n = 1, npins do + print('pin ' .. n .. ': ' .. gpiodev:read(n - 1)) +end +.Ed +.Sh SEE ALSO +.Xr lua 1 , +.Xr luac 1 , +.Xr intro 3lua , +.Xr gpio 4 +.Sh HISTORY +An +.Nm +manual appeared in +.Nx 7.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +Lua binding was written by +.An Marc Balmer Aq Mt mbal...@netbsd.org .