[flashrom] [PATCH 2/5] rayer_spi: Add Xilinx DLC-5 buffered version
Kyösti Mälkki
kyosti.malkki at gmail.com
Mon Apr 1 23:55:57 CEST 2013
Pin 6 on LPT controls a pulldown on MISO/TDO signal.
Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
Acked-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
rayer_spi.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/rayer_spi.c b/rayer_spi.c
index cbbd5ce..28e8c9c 100644
--- a/rayer_spi.c
+++ b/rayer_spi.c
@@ -72,9 +72,22 @@ static struct rayer_pinout xilinx_dlc5 = {
.miso_bit = 4,
};
+static void dlc5b_preinit(void *);
+static int dlc5b_shutdown(void *);
+
+static struct rayer_pinout xilinx_dlc5b = {
+ .cs_bit = 2,
+ .sck_bit = 1,
+ .mosi_bit = 0,
+ .miso_bit = 4,
+ .preinit = dlc5b_preinit,
+ .shutdown = dlc5b_shutdown,
+};
+
static struct rayer_programmer rayer_spi_types[] = {
{"rayer", NT, "RayeR SPIPGM", &rayer_spipgm},
{"xilinx", NT, "Xilinx Parallel Cable III (DLC 5)", &xilinx_dlc5},
+ {"dlc-5b", NT, "Xilinx Parallel Cable III (DLC 5) (buffered)", &xilinx_dlc5b},
{0},
};
@@ -197,6 +210,21 @@ int rayer_spi_init(void)
return 0;
}
+static void dlc5b_preinit(void * data) {
+ msg_pdbg("dlc5b_preinit\n");
+ /* Assert pin 6 to receive MISO. */
+ lpt_outbyte |= (1<<4);
+ OUTB(lpt_outbyte, lpt_iobase);
+}
+
+static int dlc5b_shutdown(void * data) {
+ msg_pdbg("dlc5b_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
--
1.8.1.1
More information about the flashrom
mailing list