--- /dev/null
+BASE_DIR = ../base
+EXTBASE = wiringpi
+CFILES = wiringpi
+LDLIBS += -lwiringPi
+
+include ../base/extension.make
+
--- /dev/null
+/*
+ * wiringPi binding for Tcl
+ * Copyright 2016 Ian Jackson
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef WIRINGPITCL_H
+#define WIRINGPITCL_H
+
+#include "chiark-tcl.h"
+
+#include "wiringpi+tcmdif.h"
+
+#endif /*WIRINGPITCL_H*/
--- /dev/null
+/*
+ * wiringpi setup [MODE]
+ * MODE is one of -g -1 -p, as for gpio(1)
+ * optional, if not called is equivalent to saying just "setup"
+ * may not be called after any other wiringpi use in whole program
+ * there is no way to un-setup
+ *
+ * Most of the rest are very similar to gpio(1):
+ * boardRev => integer (see wiringPi.h)
+ * boardId => [list MODEL REV MEM MAKER OVERVOLTED]
+ * mode PIN MODE
+ * MODEs are
+ * in out pwm pwmTone clock up down tri off
+ * alt0 alt1 alt2 alt3 alt4 alt5
+ * read PIN => 0|1
+ * write PIN 0|1
+ * aread PIN => VAL
+ * write PIN VAL
+ * pwm PIN VAL
+ * clock PIN FREQ
+ * drive GROUP VALUE
+ * pwm-bal|pwm-ms PIN
+ * pwmr PIN RANGE
+ * pwmc PIN CLOCK
+ * pwmTone PIN FREQ
+ */
+/* ---8<--- end of documentation comment --8<-- */
+
+/*
+ * wiringpi.c - wiringPi binding for Tcl
+ * Copyright 2016 Ian Jackson
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+
+#include "chiark_tcl_wiringpi.h"
+
+/*---------- important types and forward declarations ----------*/
+
+/*---------- main hooks for tcl ----------*/
+
+CHT_INIT(wiringpi, {}, CHTI_COMMANDS(cht_wiringpitoplevel_entries))
--- /dev/null
+# wiringpi binding for Tcl
+# Copyright 2006-2012 Ian Jackson
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this library; if not, see <http://www.gnu.org/licenses/>.
+
+
+Table *wiringpitoplevel TopLevel_Command
+ gpio
+ dispatch(WiringPiTcl/_SubCommand, "wiringpi subcommand")
+
+Table wiringpitcl WiringPiTcl_SubCommand
+ setup
+ ... obj
+ boardRev
+ => int
+ boardId
+ => obj
+ mode
+ pin int
+ mode enum(WiringPiTcl_Mode/, "wiringpi pin mode")
+ read
+ pin int
+ => int
+ write
+ pin int
+ val int
+ aread
+ pin int
+ => int
+ awrite
+ pin int
+ val int
+ pwm
+ pin int
+ val int
+ clock
+ pin int
+ freq int
+ drive
+ group int
+ value int
+ pwm-bal
+ pin int
+ pwm-ms
+ pin int
+ pwmTone
+ pin int
+ val int
+ pwmr
+ pin int
+ val int
+ pwmc
+ pin int
+ clk int
+
+Table wiringpitcl_mode WiringPiTcl_Mode
+ in
+ out
+ pwm
+ pwmTone
+ clock
+ up
+ down
+ tri
+ off
+ alt0
+ alt1
+ alt2
+ alt3
+ alt4
+ alt5