>From e24b6fa25ad8917549b5d72c16baee0bff0ae9c6 Mon Sep 17 00:00:00 2001
From: Maksim Kuleshov <mmcx(a)mail.ru>
Date: Sun, 31 Mar 2013 15:37:34 +0400
Subject: [PATCH 5/7] integration lpt_bitbang_spi to Makefile, flashrom.c,
programmer.h
Signed-off-by: Maksim Kuleshov <mmcx(a)mail.ru>
---
Makefile | 25 +++++++++++++++++++++++++
flashrom.c | 13 +++++++++++++
programmer.h | 11 +++++++++++
3 files changed, 49 insertions(+)
diff --git a/Makefile b/Makefile
index b948996..6505f28 100644
--- a/Makefile
+++ b/Makefile
@@ -155,6 +155,11 @@ UNSUPPORTED_FEATURES += CONFIG_RAYER_SPI=yes
else
override CONFIG_RAYER_SPI = no
endif
+ifeq ($(CONFIG_LPT_BITBANG_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_LPT_BITBANG_SPI=yes
+else
+override CONFIG_LPT_BITBANG_SPI = no
+endif
ifeq ($(CONFIG_NIC3COM), yes)
UNSUPPORTED_FEATURES += CONFIG_NIC3COM=yes
else
@@ -279,6 +284,11 @@ UNSUPPORTED_FEATURES += CONFIG_RAYER_SPI=yes
else
override CONFIG_RAYER_SPI = no
endif
+ifeq ($(CONFIG_LPT_BITBANG_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_LPT_BITBANG_SPI=yes
+else
+override CONFIG_LPT_BITBANG_SPI = no
+endif
ifeq ($(CONFIG_ATAHPT), yes)
UNSUPPORTED_FEATURES += CONFIG_ATAHPT=yes
else
@@ -330,6 +340,9 @@ CONFIG_SERPROG ?= yes
# RayeR SPIPGM hardware support
CONFIG_RAYER_SPI ?= yes
+# LPT_BITBANG_SPI hardware support
+CONFIG_LPT_BITBANG_SPI ?= yes
+
# PonyProg2000 SPI hardware support
CONFIG_PONY_SPI ?= yes
@@ -389,6 +402,9 @@ CONFIG_PRINT_WIKI ?= no
ifeq ($(CONFIG_RAYER_SPI), yes)
override CONFIG_BITBANG_SPI = yes
else
+ifeq ($(CONFIG_LPT_BITBANG_SPI), yes)
+override CONFIG_BITBANG_SPI = yes
+else
ifeq ($(CONFIG_PONY_SPI), yes)
override CONFIG_BITBANG_SPI = yes
else
@@ -407,6 +423,7 @@ endif
endif
endif
endif
+endif
###############################################################################
# Programmer drivers and programmer support infrastructure.
@@ -438,6 +455,14 @@ PROGRAMMER_OBJS += rayer_spi.o
NEED_PCI := yes
endif
+ifeq ($(CONFIG_LPT_BITBANG_SPI), yes)
+FEATURE_CFLAGS += -D'CONFIG_LPT_BITBANG_SPI=1'
+PROGRAMMER_OBJS += lpt_io.o
+PROGRAMMER_OBJS += lpt_bitbang_spi.o
+# Actually, NEED_PCI is wrong. NEED_IOPORT_ACCESS would be more correct.
+NEED_PCI := yes
+endif
+
ifeq ($(CONFIG_PONY_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_PONY_SPI=1'
PROGRAMMER_OBJS += pony_spi.o
diff --git a/flashrom.c b/flashrom.c
index 225b6f0..b0c73f9 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -235,6 +235,19 @@ const struct programmer_entry programmer_table[] = {
},
#endif
+#if CONFIG_LPT_BITBANG_SPI == 1
+ {
+ .name = "lpt_bitbang_spi",
+ .type = OTHER,
+ /* FIXME */
+ .devs.note = "generic parallel port spi programmers\n",
+ .init = lpt_bitbang_spi_init,
+ .map_flash_region = fallback_map,
+ .unmap_flash_region = fallback_unmap,
+ .delay = internal_delay,
+ },
+#endif
+
#if CONFIG_PONY_SPI == 1
{
.name = "pony_spi",
diff --git a/programmer.h b/programmer.h
index 51a8c80..8c9350b 100644
--- a/programmer.h
+++ b/programmer.h
@@ -69,6 +69,9 @@ enum programmer {
#if CONFIG_RAYER_SPI == 1
PROGRAMMER_RAYER_SPI,
#endif
+#if CONFIG_LPT_BITBANG_SPI == 1
+ PROGRAMMER_LPT_BITBANG_SPI,
+#endif
#if CONFIG_PONY_SPI == 1
PROGRAMMER_PONY_SPI,
#endif
@@ -130,6 +133,9 @@ enum bitbang_spi_master_type {
#if CONFIG_RAYER_SPI == 1
BITBANG_SPI_MASTER_RAYER,
#endif
+#if CONFIG_LPT_BITBANG_SPI == 1
+ BITBANG_SPI_MASTER_LPT_BITBANG,
+#endif
#if CONFIG_PONY_SPI == 1
BITBANG_SPI_MASTER_PONY,
#endif
@@ -436,6 +442,11 @@ extern const struct dev_entry devs_ft2232spi[];
int rayer_spi_init(void);
#endif
+/* lpt_bitbang_spi.c */
+#if CONFIG_LPT_BITBANG_SPI == 1
+int lpt_bitbang_spi_init(void);
+#endif
+
/* pony_spi.c */
#if CONFIG_PONY_SPI == 1
int pony_spi_init(void);
--
1.7.10.4