From d74d9e647e9f3b3e6f130e4a7374d178d84f9608 Mon Sep 17 00:00:00 2001
From: Joerg Wunsch <j@uriah.heep.sax.de>
Date: Wed, 24 Aug 2011 07:40:48 +0000
Subject: [PATCH] Add Darell's email address, so it's consistent with the other
 authors.

Add the forgotten tpi.h file.



git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@978 81a1dc3b-b13d-400b-aceb-764788c761c2
---
 AUTHORS     |  2 +-
 Makefile.am |  1 +
 avr.c       |  2 +-
 bitbang.c   |  2 +-
 bitbang.h   |  2 +-
 tpi.h       | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 77 insertions(+), 4 deletions(-)
 create mode 100644 tpi.h

diff --git a/AUTHORS b/AUTHORS
index a6f1db07..ed8aef03 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -15,7 +15,7 @@ Contributors:
 	Thomas Fischl <tfischl@gmx.de>
 	David Hoerl <dhoerl@mac.com>
 	Michal Ludvig <mludvig@logix.net.nz>
-	Darell Tan
+	Darell Tan <darell.tan@gmail.com>
 
 For minor contributions, please see the ChangeLog files.
 
diff --git a/Makefile.am b/Makefile.am
index cd0388c7..efc48eb2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -140,6 +140,7 @@ libavrdude_a_SOURCES = \
 	stk500v2_private.h \
 	stk500generic.c \
 	stk500generic.h \
+	tpi.h \
 	usbasp.c \
 	usbasp.h \
 	usbdevs.h \
diff --git a/avr.c b/avr.c
index d2451def..09dab1fe 100644
--- a/avr.c
+++ b/avr.c
@@ -1,7 +1,7 @@
 /*
  * avrdude - A Downloader/Uploader for AVR device programmers
  * Copyright (C) 2000-2004  Brian S. Dean <bsd@bsdhome.com>
- * Copyright 2011 Darell Tan
+ * Copyright (C) 2011 Darell Tan <darell.tan@gmail.com>
  *
  * 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
diff --git a/bitbang.c b/bitbang.c
index 39fbf592..ada885ac 100644
--- a/bitbang.c
+++ b/bitbang.c
@@ -2,7 +2,7 @@
  * avrdude - A Downloader/Uploader for AVR device programmers
  * Copyright (C) 2000, 2001, 2002, 2003  Brian S. Dean <bsd@bsdhome.com>
  * Copyright (C) 2005 Michael Holzt <kju-avr@fqdn.org>
- * Copyright 2011 Darell Tan
+ * Copyright (C) 2011 Darell Tan <darell.tan@gmail.com>
  *
  * 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
diff --git a/bitbang.h b/bitbang.h
index ae05a89c..20159009 100644
--- a/bitbang.h
+++ b/bitbang.h
@@ -2,7 +2,7 @@
  * avrdude - A Downloader/Uploader for AVR device programmers
  * Copyright (C) 2000, 2001, 2002, 2003  Brian S. Dean <bsd@bsdhome.com>
  * Copyright (C) 2005 Michael Holzt <kju-avr@fqdn.org>
- * Copyright 2011 Darell Tan
+ * Copyright (C) 2011 Darell Tan <darell.tan@gmail.com>
  *
  * 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
diff --git a/tpi.h b/tpi.h
new file mode 100644
index 00000000..e99d091a
--- /dev/null
+++ b/tpi.h
@@ -0,0 +1,72 @@
+/*
+ * avrdude - A Downloader/Uploader for AVR device programmers
+ * Copyright (C) 2011  Darell Tan <darell.tan@gmail.com>
+ *
+ * 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/* $Id$ */
+
+#ifndef tpi_h
+#define tpi_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static const unsigned char tpi_skey[] = { 0x12, 0x89, 0xAB, 0x45, 0xCD, 0xD8, 0x88, 0xFF };
+
+/* registers */
+#define TPI_REG_TPIIR	0x0F
+#define TPI_REG_TPIPCR	0x02
+#define TPI_REG_TPISR	0x00
+
+#define TPI_REG_TPISR_NVMEN		(1 << 1)
+
+/* TPI commands */
+#define TPI_CMD_SLD		0x20
+#define TPI_CMD_SLD_PI	0x24
+#define TPI_CMD_SIN		0x10
+#define TPI_CMD_SOUT	0x90
+#define TPI_CMD_SSTCS	0xC0
+#define TPI_CMD_SST		0x60
+#define TPI_CMD_SST_PI	0x64
+
+#define TPI_CMD_SLDCS	0x80
+#define TPI_CMD_SSTPR	0x68
+#define TPI_CMD_SKEY	0xE0
+
+/* for TPI_CMD_SIN & TPI_CMD_SOUT */
+#define TPI_SIO_ADDR(x) ((x & 0x30) << 1 | (x & 0x0F)) 
+
+/* ATtiny4/5/9/10 I/O registers */
+#define TPI_IOREG_NVMCSR		0x32
+#define TPI_IOREG_NVMCMD		0x33
+
+/* bit for NVMCSR */
+#define TPI_IOREG_NVMCSR_NVMBSY	(1 << 7)
+
+/* NVM commands */
+#define TPI_NVMCMD_NO_OPERATION		0x00
+#define TPI_NVMCMD_CHIP_ERASE		0x10
+#define TPI_NVMCMD_SECTION_ERASE	0x14
+#define TPI_NVMCMD_WORD_WRITE		0x1D
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+