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 --- 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 +#include +#include +#include + +// 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