/* * Copyright 2000, 2001, 2002 Brian S. Dean * 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. * * THIS SOFTWARE IS PROVIDED BY BRIAN S. DEAN ``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 BRIAN S. DEAN 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. * */ /* $Id$ */ #ifndef __ppi_h__ #define __ppi_h__ #include "config.h" /* * PPI registers */ enum { PPIDATA, PPICTRL, PPISTATUS }; int ppi_getops (int reg, unsigned long * get, unsigned long * set); int ppi_set (int fd, int reg, int bit); int ppi_clr (int fd, int reg, int bit); int ppi_get (int fd, int reg, int bit); int ppi_toggle (int fd, int reg, int bit); int ppi_getall (int fd, int reg); int ppi_setall (int fd, int reg, int val); int ppi_pulse (int fd, int reg, int bit); int ppi_setpin (int fd, int pin, int value); int ppi_getpin (int fd, int pin); int ppi_pulsepin (int fd, int pin); int ppi_getpinmask(int pin); int ppi_getpinreg (int pin); int ppi_sense (int fd); void ppi_initpgm (PROGRAMMER * pgm); int ppi_rdy_led (PROGRAMMER * pgm, int value); int ppi_err_led (PROGRAMMER * pgm, int value); int ppi_pgm_led (PROGRAMMER * pgm, int value); int ppi_vfy_led (PROGRAMMER * pgm, int value); int ppi_cmd (PROGRAMMER * pgm, unsigned char cmd[4], unsigned char res[4]); int ppi_chip_erase (PROGRAMMER * pgm, AVRPART * p); int ppi_program_enable (PROGRAMMER * pgm, AVRPART * p); void ppi_powerup (PROGRAMMER * pgm); void ppi_powerdown (PROGRAMMER * pgm); int ppi_initialize (PROGRAMMER * pgm, AVRPART * p); int ppi_save (PROGRAMMER * pgm); void ppi_restore (PROGRAMMER * pgm); void ppi_disable (PROGRAMMER * pgm); void ppi_enable (PROGRAMMER * pgm); void ppi_open (PROGRAMMER * pgm, char * port); void ppi_close (PROGRAMMER * pgm); void ppi_initpgm (PROGRAMMER * pgm); #endif