diff options
Diffstat (limited to 'target/linux/etrax/patches/cris/020-syscalls.patch')
-rw-r--r-- | target/linux/etrax/patches/cris/020-syscalls.patch | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/target/linux/etrax/patches/cris/020-syscalls.patch b/target/linux/etrax/patches/cris/020-syscalls.patch new file mode 100644 index 0000000..5e674a6 --- /dev/null +++ b/target/linux/etrax/patches/cris/020-syscalls.patch @@ -0,0 +1,166 @@ +diff -urN linux-2.6.19.2.orig/include/asm-cris/unistd.h linux-2.6.19.2/include/asm/unistd.h +--- linux-2.6.19.2.orig/include/asm-cris/unistd.h 2007-06-16 23:59:11.000000000 +0200 ++++ linux-2.6.19.2/include/asm/unistd.h 2007-06-17 03:43:10.000000000 +0200 +@@ -325,9 +325,52 @@ + #define __NR_getcpu 318 + #define __NR_epoll_pwait 319 + ++#ifdef CONFIG_ETRAX_GPIO ++ #ifdef CONFIG_FOXBONE ++ #define __NR_gpiosetbits 320 ++ #define __NR_gpioclearbits 321 ++ #define __NR_gpiosetdir 322 ++ #define __NR_gpiotogglebit 323 ++ #define __NR_gpiogetbits 324 ++ #define __NR_foxboneread 325 ++ #define __NR_foxbonewrite 326 ++ #define __NR_foxbonebulkread 327 ++ #define __NR_foxbonebulkwrite 328 ++ #define __NR_foxbonereset 329 ++ #define __NR_foxboneintreg 330 ++ #define __NR_foxboneintcheck 331 ++ #define __NR_foxboneintwait 332 ++ #define NR_syscalls 333 ++ ++ #else ++ #define __NR_gpiosetbits 320 ++ #define __NR_gpioclearbits 321 ++ #define __NR_gpiosetdir 322 ++ #define __NR_gpiotogglebit 323 ++ #define __NR_gpiogetbits 324 ++ ++ #define NR_syscalls 325 ++ #endif ++#else ++ #ifdef CONFIG_FOXBONE ++ #define __NR_foxboneread 320 ++ #define __NR_foxbonewrite 321 ++ #define __NR_foxbonebulkread 322 ++ #define __NR_foxbonebulkwrite 323 ++ #define __NR_foxboneintreg 324 ++ #define __NR_foxboneintcheck 325 ++ #define __NR_foxboneintwait 326 ++ ++ #define NR_syscalls 327 ++ ++ #else ++ ++ #define NR_syscalls 320 ++ #endif ++#endif ++ + #ifdef __KERNEL__ + +-#define NR_syscalls 320 + + #include <asm/arch/unistd.h> + +--- linux-2.6.19.2.orig/include/linux/gpio_syscalls.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.19.2/include/linux/gpio_syscalls.h 2007-06-17 03:44:49.000000000 +0200 +@@ -0,0 +1,75 @@ ++#ifndef __LINUX_SYSCALL_GPIO ++#define __LINUX_SYSCALL_GPIO ++#include <linux/autoconf.h> ++#include <linux/kernel.h> ++#include <linux/errno.h> ++#include <asm/unistd.h> ++ ++// port defines ++#define PORTA 'A' ++#define PORTB 'B' ++#define PORTG 'G' ++ ++//direction defines ++#define DIRIN 'I' ++#define DIROUT 'O' ++ ++// pin defines for PORTG ++#define PG0 (1<<0) ++#define PG1 (1<<1) ++#define PG2 (1<<2) ++#define PG3 (1<<3) ++#define PG4 (1<<4) ++#define PG5 (1<<5) ++#define PG6 (1<<6) ++#define PG7 (1<<7) ++#define PG8 (1<<8) ++#define PG9 (1<<9) ++#define PG10 (1<<10) ++#define PG11 (1<<11) ++#define PG12 (1<<12) ++#define PG13 (1<<13) ++#define PG14 (1<<14) ++#define PG15 (1<<15) ++#define PG16 (1<<16) ++#define PG17 (1<<17) ++#define PG18 (1<<18) ++#define PG19 (1<<19) ++#define PG20 (1<<20) ++#define PG21 (1<<21) ++#define PG22 (1<<22) ++#define PG23 (1<<23) ++#define PG24 (1<<24) ++ ++#define PG8_15 0x00ff00 ++#define PG16_23 0xff0000 ++ ++ ++// pin defines for PORTA ++#define PA0 (1<<0) ++#define PA1 (1<<1) ++#define PA2 (1<<2) ++#define PA3 (1<<3) ++#define PA4 (1<<4) ++#define PA5 (1<<5) ++#define PA6 (1<<6) ++#define PA7 (1<<7) ++ ++// pin defines for PORTB ++#define PB0 (1<<0) ++#define PB1 (1<<1) ++#define PB2 (1<<2) ++#define PB3 (1<<3) ++#define PB4 (1<<4) ++#define PB5 (1<<5) ++#define PB6 (1<<6) ++#define PB7 (1<<7) ++ ++int errno; ++_syscall2(void, gpiosetbits, unsigned char, port, unsigned int, bits); ++_syscall2(void, gpioclearbits, unsigned char, port, unsigned int, bits); ++_syscall3(void, gpiosetdir, unsigned char, port, unsigned char, dir, unsigned int, bits); ++_syscall2(void, gpiotogglebit, unsigned char, port, unsigned int, bits); ++_syscall2(unsigned int, gpiogetbits, unsigned char, port, unsigned int, bits); ++ ++#endif +--- linux-2.6.19.2.orig/arch/cris/arch-v10/kernel/entry.S 2007-06-16 23:58:14.000000000 +0200 ++++ linux-2.6.19.2/arch/cris/arch-v10/kernel/entry.S 2007-06-17 03:48:21.000000000 +0200 +@@ -1200,6 +1200,23 @@ + .long sys_move_pages + .long sys_getcpu + .long sys_epoll_pwait ++#ifdef CONFIG_ETRAX_GPIO ++ .long sys_gpiosetbits ++ .long sys_gpioclearbits ++ .long sys_gpiosetdir ++ .long sys_gpiotogglebit ++ .long sys_gpiogetbits ++#endif ++#ifdef CONFIG_FOXBONE ++ .long sys_foxboneread ++ .long sys_foxbonewrite ++ .long sys_foxbonebulkread ++ .long sys_foxbonebulkwrite ++ .long sys_foxbonereset ++ .long sys_foxboneintreg ++ .long sys_foxboneintcheck ++ .long sys_foxboneintwait ++#endif + + /* + * NOTE!! This doesn't have to be exact - we just have +diff linux-2.6.19.2.orig/arch/cris/arch-v10/drivers/Makefile linux-2.6.19.2/arch/cris/arch-v10/drivers/Makefile +--- linux-2.6.19.2.orig/arch/cris/arch-v10/drivers/Makefile 2007-06-16 23:58:14.000000000 +0200 ++++ linux-2.6.19.2/arch/cris/arch-v10/drivers/Makefile 2007-06-17 03:48:21.000000000 +0200 +8a9 +> obj-$(CONFIG_ETRAX_GPIO) += gpio_syscalls.o |