summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rayer_spi.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/rayer_spi.c b/rayer_spi.c
index f8dff95..189341a 100644
--- a/rayer_spi.c
+++ b/rayer_spi.c
@@ -63,11 +63,16 @@ static const struct rayer_pinout rayer_spipgm = {
.miso_bit = 6,
};
+static void dlc5_preinit(const void *);
+static int dlc5_shutdown(void *);
+
static const struct rayer_pinout xilinx_dlc5 = {
.cs_bit = 2,
.sck_bit = 1,
.mosi_bit = 0,
.miso_bit = 4,
+ .preinit = dlc5_preinit,
+ .shutdown = dlc5_shutdown,
};
static void byteblaster_preinit(const void *);
@@ -257,6 +262,21 @@ static int stk200_shutdown(void *data) {
return 0;
}
+static void dlc5_preinit(const void *data) {
+ msg_pdbg("dlc5_preinit\n");
+ /* Assert pin 6 to receive MISO. */
+ lpt_outbyte |= (1<<4);
+ OUTB(lpt_outbyte, lpt_iobase);
+}
+
+static int dlc5_shutdown(void *data) {
+ msg_pdbg("dlc5_shutdown\n");
+ /* De-assert pin 6 to force MISO low. */
+ lpt_outbyte &= ~(1<<4);
+ OUTB(lpt_outbyte, lpt_iobase);
+ return 0;
+}
+
#else
#error PCI port I/O access is not supported on this architecture yet.
#endif