mirror of https://github.com/hak5/openwrt-owl.git
parent
1e570a9288
commit
0b84952303
|
@ -1,11 +1,12 @@
|
|||
--- /dev/null
|
||||
+++ b/include/linux/spi/spi_gpio.h
|
||||
@@ -0,0 +1,73 @@
|
||||
Index: linux-2.6.25.17/include/linux/spi/spi_gpio.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.25.17/include/linux/spi/spi_gpio.h 2008-10-18 23:32:31.000000000 +0200
|
||||
@@ -0,0 +1,72 @@
|
||||
+/*
|
||||
+ * spi_gpio interface to platform code
|
||||
+ *
|
||||
+ * Copyright (c) 2008 Piotr Skamruk
|
||||
+ * Copyright (c) 2008 Michael Buesch
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License version 2 as
|
||||
|
@ -74,14 +75,15 @@
|
|||
+int spi_gpio_next_id(void);
|
||||
+
|
||||
+#endif /* _LINUX_SPI_SPI_GPIO */
|
||||
--- /dev/null
|
||||
+++ b/drivers/spi/spi_gpio.c
|
||||
@@ -0,0 +1,251 @@
|
||||
Index: linux-2.6.25.17/drivers/spi/spi_gpio.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.25.17/drivers/spi/spi_gpio.c 2008-10-18 23:31:27.000000000 +0200
|
||||
@@ -0,0 +1,249 @@
|
||||
+/*
|
||||
+ * Bitbanging SPI bus driver using GPIO API
|
||||
+ *
|
||||
+ * Copyright (c) 2008 Piotr Skamruk
|
||||
+ * Copyright (c) 2008 Michael Buesch
|
||||
+ *
|
||||
+ * based on spi_s3c2410_gpio.c
|
||||
+ * Copyright (c) 2006 Ben Dooks
|
||||
|
@ -325,12 +327,13 @@
|
|||
+module_exit(spi_gpio_exit);
|
||||
+
|
||||
+MODULE_AUTHOR("Piot Skamruk <piotr.skamruk at gmail.com>");
|
||||
+MODULE_AUTHOR("Michael Buesch");
|
||||
+MODULE_DESCRIPTION("Platform independent GPIO bitbanging SPI driver");
|
||||
+MODULE_LICENSE("GPL v2");
|
||||
--- a/drivers/spi/Kconfig
|
||||
+++ b/drivers/spi/Kconfig
|
||||
@@ -100,6 +100,19 @@
|
||||
Index: linux-2.6.25.17/drivers/spi/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.25.17.orig/drivers/spi/Kconfig 2008-10-18 23:30:41.000000000 +0200
|
||||
+++ linux-2.6.25.17/drivers/spi/Kconfig 2008-10-18 23:30:43.000000000 +0200
|
||||
@@ -100,6 +100,19 @@ config SPI_BUTTERFLY
|
||||
inexpensive battery powered microcontroller evaluation board.
|
||||
This same cable can be used to flash new firmware.
|
||||
|
||||
|
@ -350,9 +353,11 @@
|
|||
config SPI_IMX
|
||||
tristate "Freescale iMX SPI controller"
|
||||
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
|
||||
--- a/drivers/spi/Makefile
|
||||
+++ b/drivers/spi/Makefile
|
||||
@@ -16,6 +16,7 @@
|
||||
Index: linux-2.6.25.17/drivers/spi/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.25.17.orig/drivers/spi/Makefile 2008-10-18 23:30:41.000000000 +0200
|
||||
+++ linux-2.6.25.17/drivers/spi/Makefile 2008-10-18 23:30:43.000000000 +0200
|
||||
@@ -16,6 +16,7 @@ obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.
|
||||
obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
|
||||
obj-$(CONFIG_SPI_AU1550) += au1550_spi.o
|
||||
obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o
|
||||
|
@ -360,17 +365,3 @@
|
|||
obj-$(CONFIG_SPI_IMX) += spi_imx.o
|
||||
obj-$(CONFIG_SPI_LM70_LLP) += spi_lm70llp.o
|
||||
obj-$(CONFIG_SPI_PXA2XX) += pxa2xx_spi.o
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -3685,6 +3685,11 @@
|
||||
L: spi-devel-general@lists.sourceforge.net
|
||||
S: Maintained
|
||||
|
||||
+SPI GPIO MASTER DRIVER
|
||||
+P: Michael Buesch
|
||||
+M: mb@bu3sch.de
|
||||
+S: Maintained
|
||||
+
|
||||
STABLE BRANCH:
|
||||
P: Greg Kroah-Hartman
|
||||
M: greg@kroah.com
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
--- /dev/null
|
||||
+++ b/drivers/mmc/host/gpiommc.c
|
||||
@@ -0,0 +1,608 @@
|
||||
Index: linux-2.6.25.17/drivers/mmc/host/gpiommc.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.25.17/drivers/mmc/host/gpiommc.c 2008-10-18 23:33:54.000000000 +0200
|
||||
@@ -0,0 +1,605 @@
|
||||
+/*
|
||||
+ * Driver an MMC/SD card on a bitbanging GPIO SPI bus.
|
||||
+ * This module hooks up the mmc_spi and spi_gpio modules and also
|
||||
+ * provides a configfs interface.
|
||||
+ *
|
||||
+ * Copyright 2008 Michael Buesch <mb@bu3sch.de>
|
||||
+ *
|
||||
+ * Licensed under the GNU/GPL. See COPYING for details.
|
||||
+ */
|
||||
+
|
||||
|
@ -32,7 +32,6 @@
|
|||
+
|
||||
+
|
||||
+MODULE_DESCRIPTION("GPIO based MMC driver");
|
||||
+MODULE_AUTHOR("Michael Buesch");
|
||||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
+
|
||||
|
@ -609,9 +608,11 @@
|
|||
+ platform_driver_unregister(&gpiommc_plat_driver);
|
||||
+}
|
||||
+module_exit(gpiommc_modexit);
|
||||
--- a/drivers/mmc/host/Kconfig
|
||||
+++ b/drivers/mmc/host/Kconfig
|
||||
@@ -130,3 +130,27 @@
|
||||
Index: linux-2.6.25.17/drivers/mmc/host/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.25.17.orig/drivers/mmc/host/Kconfig 2008-10-18 23:30:41.000000000 +0200
|
||||
+++ linux-2.6.25.17/drivers/mmc/host/Kconfig 2008-10-18 23:32:54.000000000 +0200
|
||||
@@ -130,3 +130,27 @@ config MMC_SPI
|
||||
|
||||
If unsure, or if your system has no SPI master driver, say N.
|
||||
|
||||
|
@ -639,22 +640,24 @@
|
|||
+ help
|
||||
+ This option automatically enables configfs support for gpiommc
|
||||
+ if configfs is available.
|
||||
--- a/drivers/mmc/host/Makefile
|
||||
+++ b/drivers/mmc/host/Makefile
|
||||
@@ -17,4 +17,4 @@
|
||||
Index: linux-2.6.25.17/drivers/mmc/host/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.25.17.orig/drivers/mmc/host/Makefile 2008-10-18 23:30:41.000000000 +0200
|
||||
+++ linux-2.6.25.17/drivers/mmc/host/Makefile 2008-10-18 23:32:54.000000000 +0200
|
||||
@@ -17,4 +17,4 @@ obj-$(CONFIG_MMC_OMAP) += omap.o
|
||||
obj-$(CONFIG_MMC_AT91) += at91_mci.o
|
||||
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
||||
obj-$(CONFIG_MMC_SPI) += mmc_spi.o
|
||||
-
|
||||
+obj-$(CONFIG_GPIOMMC) += gpiommc.o
|
||||
--- /dev/null
|
||||
+++ b/include/linux/mmc/gpiommc.h
|
||||
@@ -0,0 +1,71 @@
|
||||
Index: linux-2.6.25.17/include/linux/mmc/gpiommc.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.25.17/include/linux/mmc/gpiommc.h 2008-10-18 23:34:21.000000000 +0200
|
||||
@@ -0,0 +1,69 @@
|
||||
+/*
|
||||
+ * Device driver for MMC/SD cards driven over a GPIO bus.
|
||||
+ *
|
||||
+ * Copyright (c) 2008 Michael Buesch
|
||||
+ *
|
||||
+ * Licensed under the GNU/GPL version 2.
|
||||
+ */
|
||||
+#ifndef LINUX_GPIOMMC_H_
|
||||
|
@ -721,8 +724,10 @@
|
|||
+int gpiommc_next_id(void);
|
||||
+
|
||||
+#endif /* LINUX_GPIOMMC_H_ */
|
||||
--- /dev/null
|
||||
+++ b/Documentation/gpiommc.txt
|
||||
Index: linux-2.6.25.17/Documentation/gpiommc.txt
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.25.17/Documentation/gpiommc.txt 2008-10-18 23:32:54.000000000 +0200
|
||||
@@ -0,0 +1,97 @@
|
||||
+GPIOMMC - Driver for an MMC/SD card on a bitbanging GPIO SPI bus
|
||||
+================================================================
|
||||
|
@ -821,17 +826,3 @@
|
|||
+(/config/gpiommc/my_mmc in this example).
|
||||
+There's no need to first unregister the device before removing it. That will
|
||||
+be done automatically.
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -1736,6 +1736,11 @@
|
||||
W: http://gigaset307x.sourceforge.net/
|
||||
S: Maintained
|
||||
|
||||
+GPIOMMC DRIVER
|
||||
+P: Michael Buesch
|
||||
+M: mb@bu3sch.de
|
||||
+S: Maintained
|
||||
+
|
||||
HARDWARE MONITORING
|
||||
P: Mark M. Hoffman
|
||||
M: mhoffman@lightlink.com
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
The gpiommc configfs context structure needs locking, as configfs
|
||||
does not lock access between files.
|
||||
|
||||
--- a/drivers/mmc/host/gpiommc.c
|
||||
+++ b/drivers/mmc/host/gpiommc.c
|
||||
@@ -143,6 +143,8 @@
|
||||
Index: linux-2.6.25.17/drivers/mmc/host/gpiommc.c
|
||||
===================================================================
|
||||
--- linux-2.6.25.17.orig/drivers/mmc/host/gpiommc.c 2008-10-18 23:33:54.000000000 +0200
|
||||
+++ linux-2.6.25.17/drivers/mmc/host/gpiommc.c 2008-10-18 23:34:33.000000000 +0200
|
||||
@@ -140,6 +140,8 @@ struct gpiommc_configfs_device {
|
||||
struct platform_device *pdev;
|
||||
/* The configuration */
|
||||
struct gpiommc_platform_data pdata;
|
||||
|
@ -12,7 +14,7 @@ does not lock access between files.
|
|||
};
|
||||
|
||||
#define GPIO_INVALID -1
|
||||
@@ -233,6 +235,8 @@
|
||||
@@ -230,6 +232,8 @@ static ssize_t gpiommc_config_attr_show(
|
||||
unsigned int gpio;
|
||||
int err = 0;
|
||||
|
||||
|
@ -21,7 +23,7 @@ does not lock access between files.
|
|||
if (attr == &gpiommc_attr_DI) {
|
||||
gpio = dev->pdata.pins.gpio_di;
|
||||
if (gpio == GPIO_INVALID)
|
||||
@@ -293,6 +297,8 @@
|
||||
@@ -290,6 +294,8 @@ static ssize_t gpiommc_config_attr_show(
|
||||
WARN_ON(1);
|
||||
err = -ENOSYS;
|
||||
out:
|
||||
|
@ -30,7 +32,7 @@ does not lock access between files.
|
|||
return err ? err : count;
|
||||
}
|
||||
|
||||
@@ -352,6 +358,8 @@
|
||||
@@ -349,6 +355,8 @@ static ssize_t gpiommc_config_attr_store
|
||||
int err = -EINVAL;
|
||||
unsigned long data;
|
||||
|
||||
|
@ -39,7 +41,7 @@ does not lock access between files.
|
|||
if (attr == &gpiommc_attr_register) {
|
||||
err = strict_strtoul(page, 10, &data);
|
||||
if (err)
|
||||
@@ -477,6 +485,8 @@
|
||||
@@ -474,6 +482,8 @@ static ssize_t gpiommc_config_attr_store
|
||||
WARN_ON(1);
|
||||
err = -ENOSYS;
|
||||
out:
|
||||
|
@ -48,7 +50,7 @@ does not lock access between files.
|
|||
return err ? err : count;
|
||||
}
|
||||
|
||||
@@ -513,6 +523,7 @@
|
||||
@@ -510,6 +520,7 @@ static struct config_item *gpiommc_make_
|
||||
if (!dev)
|
||||
return NULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue