X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/17c7b6c3fdc48301e50d22cc6138ede16bd1be24..f9e19ce2025f01bc4e2e9b9f5c17976d5c4ff1fb:/target/linux/ar7/files/drivers/char/ar7_gpio.c diff --git a/target/linux/ar7/files/drivers/char/ar7_gpio.c b/target/linux/ar7/files/drivers/char/ar7_gpio.c index a5245da35..a7d0a5534 100644 --- a/target/linux/ar7/files/drivers/char/ar7_gpio.c +++ b/target/linux/ar7/files/drivers/char/ar7_gpio.c @@ -1,18 +1,16 @@ /* - * linux/drivers/char/ar7_gpio.c - * - * Copyright (C) 2007 OpenWrt.org - * + * Copyright (C) 2007 Nicolas Thill + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA @@ -25,9 +23,8 @@ #include #include #include -#include -#include - +#include +#include #include #include #include @@ -39,7 +36,7 @@ MODULE_AUTHOR("Nicolas Thill "); MODULE_DESCRIPTION(LONGNAME); MODULE_LICENSE("GPL"); -static int ar7_gpio_major = 0; +static int ar7_gpio_major; static ssize_t ar7_gpio_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos) @@ -74,7 +71,7 @@ static ssize_t ar7_gpio_write(struct file *file, const char __user *buf, case 'o': case 'O': case '>': - gpio_direction_output(pin); + gpio_direction_output(pin, 0); break; default: return -EINVAL; @@ -84,8 +81,8 @@ static ssize_t ar7_gpio_write(struct file *file, const char __user *buf, return len; } -static ssize_t ar7_gpio_read(struct file *file, char __user * buf, - size_t len, loff_t * ppos) +static ssize_t ar7_gpio_read(struct file *file, char __user *buf, + size_t len, loff_t *ppos) { int pin = iminor(file->f_dentry->d_inode); int value; @@ -101,7 +98,7 @@ static int ar7_gpio_open(struct inode *inode, struct file *file) { int m = iminor(inode); - if (m >= AR7_GPIO_MAX) + if (m >= (ar7_is_titan() ? TITAN_GPIO_MAX : AR7_GPIO_MAX)) return -EINVAL; return nonseekable_open(inode, file); @@ -123,7 +120,7 @@ static const struct file_operations ar7_gpio_fops = { static struct platform_device *ar7_gpio_device; -static int __init ar7_gpio_init(void) +static int __init ar7_gpio_char_init(void) { int rc; @@ -151,11 +148,11 @@ out: return rc; } -static void __exit ar7_gpio_exit(void) +static void __exit ar7_gpio_char_exit(void) { unregister_chrdev(ar7_gpio_major, DRVNAME); platform_device_unregister(ar7_gpio_device); } -module_init(ar7_gpio_init); -module_exit(ar7_gpio_exit); +module_init(ar7_gpio_char_init); +module_exit(ar7_gpio_char_exit);