initial commit, start with iceprog as a base
[ecpprog.git] / mpsse.h
1 /*
2 * iceprog -- simple programming tool for FTDI-based Lattice iCE programmers
3 *
4 * Copyright (C) 2015 Clifford Wolf <clifford@clifford.at>
5 * Copyright (C) 2018 Piotr Esden-Tempski <piotr@esden.net>
6 *
7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 */
19
20 #ifndef MPSSE_H
21 #define MPSSE_H
22
23 #include <stdint.h>
24
25 void mpsse_check_rx(void);
26 void mpsse_error(int status);
27 uint8_t mpsse_recv_byte(void);
28 void mpsse_send_byte(uint8_t data);
29 void mpsse_send_spi(uint8_t *data, int n);
30 void mpsse_xfer_spi(uint8_t *data, int n);
31 uint8_t mpsse_xfer_spi_bits(uint8_t data, int n);
32 void mpsse_set_gpio(uint8_t gpio, uint8_t direction);
33 int mpsse_readb_low(void);
34 int mpsse_readb_high(void);
35 void mpsse_send_dummy_bytes(uint8_t n);
36 void mpsse_send_dummy_bit(void);
37 void mpsse_init(int ifnum, const char *devstr, bool slow_clock);
38 void mpsse_close(void);
39
40 #endif /* MPSSE_H */