diff options
Diffstat (limited to 'target')
3 files changed, 1 insertions, 149 deletions
| diff --git a/target/linux/adm8668/files/arch/mips/adm8668/Makefile b/target/linux/adm8668/files/arch/mips/adm8668/Makefile index e8f6d6bf2..515c3a499 100644 --- a/target/linux/adm8668/files/arch/mips/adm8668/Makefile +++ b/target/linux/adm8668/files/arch/mips/adm8668/Makefile @@ -2,5 +2,5 @@  # something witty  --neutronscott  # -obj-y	 	:= irq.o prom.o platform.o proc.o \ +obj-y	 	:= irq.o prom.o platform.o gpio.o \  		   setup.o clock.o time.o early_printk.o \ diff --git a/target/linux/adm8668/files/arch/mips/adm8668/proc.c b/target/linux/adm8668/files/arch/mips/adm8668/proc.c deleted file mode 100644 index 77dbb1faf..000000000 --- a/target/linux/adm8668/files/arch/mips/adm8668/proc.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2010 Scott Nicholas <neutronscott@scottn.us> - * - * This file is subject to the terms and conditions of the GNU General Public - * License.  See the file "COPYING" in the main directory of this archive - * for more details. - */ - -#include <linux/module.h> -#include <linux/kernel.h> -#include <linux/init.h> -#include <linux/proc_fs.h> -#include <asm/uaccess.h> -#include <adm8668.h> - -int adm8668_sesled_write_proc(struct file *file, const char *buffer, unsigned long count, void *data) -{ -	char buf[8]; -	int num; - -	num = (count < 8) ? count : 8; - -	if (copy_from_user(buf, buffer, num)) -	{ -		printk("copy_from_user failed"); -                return -EFAULT; -	} -	num = simple_strtoul(buf, NULL, 16); -	switch (num) -	{ -		case 0: -			GPIO_SET_LOW(0); -			CRGPIO_SET_LOW(2); -			break; -		case 1: -			GPIO_SET_LOW(0); -			CRGPIO_SET_HI(2); -			break; -		case 2: -			GPIO_SET_HI(0); -			CRGPIO_SET_HI(2); -			break; -		default: -			break; -	} - -	return count; -} - -int adm8668_sesled_read_proc(char *buf, char **start, off_t offset, int count, int *eof, void *data) -{ -	int len = 0; -	int led_state = 0; - -	led_state = (ADM8668_CONFIG_REG(CRGPIO_REG) & 0x100) ? 1 : 0; -	led_state += (ADM8668_WLAN_REG(GPIO_REG) & 0x40) ? 2 : 0; -	len += sprintf(buf+len, "%s\n", -		(led_state&1) ? -			((led_state&2) ? "ORANGE" : "GREEN") : "OFF"); - -	return len; -} - -int adm8668_button_read_proc(char *buf, char **start, off_t offset, -	int count, int *eof, void *data) -{ -	int len = 0; -	int read_once = ADM8668_CONFIG_REG(CRGPIO_REG); -	int button_flip = (read_once >> 20) & 0x3; -	int button_state = read_once & 0x3; - -	len += sprintf(buf+len, "SES: %s %s\nRESET: %s %s\n", -		(button_state&2) ? "UP" : "DOWN", -		(button_flip&2) ? "FLIP" : "", -		(button_state&1) ? "UP" : "DOWN", -		(button_flip&1) ? "FLIP" : ""); - -	return len; -} - -int __init adm8668_init_proc(void) -{ -	struct proc_dir_entry *adm8668_proc_dir = NULL; -	struct proc_dir_entry *sesled = NULL; -	int __maybe_unused bogus; - -	/* these are known to be lights. rest are input...? */ -	ADM8668_CONFIG_REG(CRGPIO_REG)	= GPIO2_OUTPUT_ENABLE; -	ADM8668_WLAN_REG(GPIO_REG)	= GPIO0_OUTPUT_ENABLE; - -	/* inital read off of the flipper switcher on the button thingie */ -	bogus = ADM8668_CONFIG_REG(CRGPIO_REG); - -	adm8668_proc_dir = proc_mkdir("adm8668", 0); -	if (adm8668_proc_dir == NULL) { -		printk(KERN_ERR "ADM8668 proc: unable to create proc dir.\n"); -		return 0; -	} -	create_proc_read_entry("buttons", 0444, adm8668_proc_dir, -					adm8668_button_read_proc, NULL); -	sesled = create_proc_entry("sesled", S_IRUGO|S_IWUGO, adm8668_proc_dir); -	if (sesled) { -		sesled->read_proc = adm8668_sesled_read_proc; -		sesled->write_proc = adm8668_sesled_write_proc; -	} - -	return 0; -} - -module_init(adm8668_init_proc); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Scott Nicholas <neutronscott@scottn.us>"); -MODULE_DESCRIPTION("ADM8668 ghetto button driver"); diff --git a/target/linux/adm8668/files/arch/mips/include/asm/mach-adm8668/adm8668.h b/target/linux/adm8668/files/arch/mips/include/asm/mach-adm8668/adm8668.h index 65ed0b5d3..e39addfd6 100644 --- a/target/linux/adm8668/files/arch/mips/include/asm/mach-adm8668/adm8668.h +++ b/target/linux/adm8668/files/arch/mips/include/asm/mach-adm8668/adm8668.h @@ -46,12 +46,6 @@  #define INT_LVL_MAX		INT_LVL_USB  /* register access macros */ -#define ADM8668_LAN_REG(_reg)		\ -	(*((volatile unsigned int *)(KSEG1ADDR(ADM8668_LAN_BASE + (_reg))))) -#define ADM8668_WAN_REG(_reg)		\ -	(*((volatile unsigned int *)(KSEG1ADDR(ADM8668_WAN_BASE + (_reg))))) -#define ADM8668_WLAN_REG(_reg)		\ -	(*((volatile unsigned int *)(KSEG1ADDR(ADM8668_WLAN_BASE + (_reg)))))  #define ADM8668_CONFIG_REG(_reg)	\  	(*((volatile unsigned int *)(KSEG1ADDR(ADM8668_CONFIG_BASE + (_reg))))) @@ -69,34 +63,6 @@  /** For GPIO control **/  #define	GPIO_REG		0x5C	/* on WLAN */  #define CRGPIO_REG		0x20	/* on CPU */ -#define GPIO0_OUTPUT_ENABLE	0x1000 -#define GPIO1_OUTPUT_ENABLE	0x2000 -#define GPIO2_OUTPUT_ENABLE	0x4000 -#define GPIO_OUTPUT_ENABLE_ALL	0x7000 -#define GPIO0_OUTPUT_1		0x40 -#define GPIO1_OUTPUT_1		0x80 -#define GPIO2_OUTPUT_1		0x100 -#define GPIO0_INPUT_1		0x1 -#define GPIO1_INPUT_1		0x2 -#define GPIO2_INPUT_1		0x4 - -#define GPIO_SET_HI(num)	\ -	ADM8668_WLAN_REG(GPIO_REG) |= (1 << (6 + num)) - -#define GPIO_SET_LOW(num)	\ -	ADM8668_WLAN_REG(GPIO_REG) &= ~(1 << (6 + num)) - -#define GPIO_TOGGLE(num)	\ -	ADM8668_WLAN_REG(GPIO_REG) ^= (1 << (6 + num)) - -#define CRGPIO_SET_HI(num)	\ -	ADM8668_CONFIG_REG(CRGPIO_REG) |= (1 << (6 + num)) - -#define CRGPIO_SET_LOW(num)	\ -	ADM8668_CONFIG_REG(CRGPIO_REG) &= ~(1 << (6 + num)) - -#define CRGPIO_TOGGLE(num)	\ -	ADM8668_CONFIG_REG(CRGPIO_REG) ^= (1 << (6 + num))  void adm8668_init_clocks(void); | 
