summaryrefslogtreecommitdiff
path: root/packages/linux/linux-2.6.26/boc01/011-081105-gpio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-2.6.26/boc01/011-081105-gpio.patch')
-rw-r--r--packages/linux/linux-2.6.26/boc01/011-081105-gpio.patch161
1 files changed, 0 insertions, 161 deletions
diff --git a/packages/linux/linux-2.6.26/boc01/011-081105-gpio.patch b/packages/linux/linux-2.6.26/boc01/011-081105-gpio.patch
deleted file mode 100644
index 86bf4ff84b..0000000000
--- a/packages/linux/linux-2.6.26/boc01/011-081105-gpio.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-diff -Nru linux-2.6.26-officiel/drivers/char/Kconfig /home/guilig/workspace/kernel-goobie-2.6.26/src/drivers/char/Kconfig
---- linux-2.6.26-officiel/drivers/char/Kconfig 2008-07-13 23:51:29.000000000 +0200
-+++ /home/guilig/workspace/kernel-goobie-2.6.26/src/drivers/char/Kconfig 2008-09-26 14:44:59.000000000 +0200
-@@ -1006,6 +1006,14 @@
- tristate "NEC VR4100 series General-purpose I/O Unit support"
- depends on CPU_VR41XX
-
-+config GPIO_MPC8313
-+ tristate "mpc8313e gpio"
-+ depends on PPC_MPC831x
-+ select INPUT
-+ default y
-+ help
-+ test
-+
- config RAW_DRIVER
- tristate "RAW driver (/dev/raw/rawN)"
- depends on BLOCK
-diff -Nru linux-2.6.26-officiel/drivers/char/Makefile /home/guilig/workspace/kernel-goobie-2.6.26/src/drivers/char/Makefile
---- linux-2.6.26-officiel/drivers/char/Makefile 2008-07-13 23:51:29.000000000 +0200
-+++ /home/guilig/workspace/kernel-goobie-2.6.26/src/drivers/char/Makefile 2008-09-26 14:44:59.000000000 +0200
-@@ -111,6 +111,8 @@
- obj-$(CONFIG_PS3_FLASH) += ps3flash.o
-
- obj-$(CONFIG_JS_RTC) += js-rtc.o
-+
-+obj-$(CONFIG_GPIO_MPC8313) += mpc8313e_gpio.o
- js-rtc-y = rtc.o
-
- # Files generated that shall be removed upon make clean
-diff -Nru linux-2.6.26-officiel/drivers/char/mpc8313e_gpio.c /home/guilig/workspace/kernel-goobie-2.6.26/src/drivers/char/mpc8313e_gpio.c
---- linux-2.6.26-officiel/drivers/char/mpc8313e_gpio.c 1970-01-01 01:00:00.000000000 +0100
-+++ /home/guilig/workspace/kernel-goobie-2.6.26/src/drivers/char/mpc8313e_gpio.c 2008-09-26 14:44:59.000000000 +0200
-@@ -0,0 +1,127 @@
-+/* linux/drivers/char/mpc8313e_gpio.c
-+
-+ Allows a user space process to control the GPIO pins.
-+
-+
-+*/
-+
-+#include <linux/fs.h>
-+#include <linux/module.h>
-+#include <linux/errno.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <asm/uaccess.h>
-+#include <asm/io.h>
-+#include <linux/of_platform.h>
-+#include <sysdev/fsl_soc.h>
-+
-+MODULE_AUTHOR("Alexandre Coffignal <alexandre.coffignal@cenosys.com>");
-+MODULE_DESCRIPTION("mpc8313e GPIO");
-+MODULE_LICENSE("GPL");
-+
-+static int major = 0;
-+struct gpio {
-+ __be32 gpdir;
-+ __be32 gpodr;
-+ __be32 gpdat;
-+ __be32 gpier;
-+ __be32 gpimr;
-+ __be32 gpicr;
-+} __attribute__ ((packed));
-+static struct gpio *gpio_regs;
-+
-+static ssize_t mpc8313e_gpio_write(struct file *file, const char __user *data, size_t len, loff_t *ppos)
-+{
-+ unsigned m = iminor(file->f_path.dentry->d_inode);
-+ size_t i;
-+ int err = 0;
-+
-+ for (i = 0; i < len; ++i) {
-+ char c;
-+ if (get_user(c, data + i))
-+ return -EFAULT;
-+ /* set GPIO as output */
-+ setbits32(&gpio_regs->gpdir, 1 << (31 - m));
-+ clrbits32(&gpio_regs->gpodr, 1 << (31 - m));
-+ switch (c) {
-+ case '0':
-+ /*Set GPIO level */
-+ clrbits32(&gpio_regs->gpdat, 1 << (31 - m));
-+ break;
-+ case '1':
-+ /*Set GPIO level */
-+ setbits32(&gpio_regs->gpdat, 1 << (31 - m));
-+ break;
-+ default:
-+ printk(KERN_DEBUG "io%2d bad setting: chr<0x%2x>\n",
-+ m, (int)c);
-+ err++;
-+ }
-+ }
-+ if (err)
-+ return -EINVAL;
-+
-+ return len;
-+}
-+
-+static ssize_t mpc8313e_gpio_read(struct file *file, char __user * buf, size_t len, loff_t * ppos)
-+{
-+ unsigned m = iminor(file->f_path.dentry->d_inode);
-+ int value;
-+ value=in_be32(&gpio_regs->gpdat)&(1 << (31 - m));
-+ if (value)
-+ put_user(1, buf);
-+ else
-+ put_user(0, buf);
-+
-+ return 0;
-+
-+}
-+
-+static int mpc8313e_gpio_open(struct inode *inode, struct file *file)
-+{
-+ return 0;
-+}
-+
-+static int mpc8313e_gpio_close(struct inode *inode, struct file *file)
-+{
-+ printk(KERN_DEBUG "close()\n");
-+ return 0;
-+}
-+
-+struct file_operations fops =
-+{
-+ .read = mpc8313e_gpio_read,
-+ .write = mpc8313e_gpio_write,
-+ .open = mpc8313e_gpio_open,
-+ .release = mpc8313e_gpio_close /* correspond a close */
-+};
-+
-+static int __init mpc8313e_gpio_init(void)
-+{
-+ int ret;
-+
-+ ret = register_chrdev(major, "gpio", &fops);
-+ if(ret < 0)
-+ {
-+ printk(KERN_WARNING "Probleme sur le major\n");
-+ return ret;
-+ }
-+
-+ /* System I/O Configuration Register Low */
-+ gpio_regs = ioremap(get_immrbase() + 0xc00, 0x20);
-+ if (!gpio_regs)
-+ return -ENOMEM;
-+ return 0;
-+
-+}
-+
-+static void __exit mpc8313e_gpio_cleanup(void)
-+{
-+ unregister_chrdev(major, "gpio");
-+}
-+
-+module_init(mpc8313e_gpio_init);
-+module_exit(mpc8313e_gpio_cleanup);
-+
-+