summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2011-04-13 14:02:27 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2011-04-13 14:02:27 (GMT)
commit315a776715d3870391a829724b7f863bd0459b24 (patch)
treed4189dc7c3f87c83e2de0fb19558bff811169758
parent693a0bfd1526efdaf531992409b8138fdb12e195 (diff)
downloadopenipcam-315a776715d3870391a829724b7f863bd0459b24.zip
openipcam-315a776715d3870391a829724b7f863bd0459b24.tar.gz
openipcam-315a776715d3870391a829724b7f863bd0459b24.tar.bz2
No dos-line-endings!
-rw-r--r--uClinux-2.4.20-uc1/Makefile9
-rw-r--r--uClinux-2.4.20-uc1/drivers/gpio/Makefile28
-rw-r--r--uClinux-2.4.20-uc1/drivers/gpio/gpio_core.c622
3 files changed, 329 insertions, 330 deletions
diff --git a/uClinux-2.4.20-uc1/Makefile b/uClinux-2.4.20-uc1/Makefile
index a91c787..13aa4a2 100644
--- a/uClinux-2.4.20-uc1/Makefile
+++ b/uClinux-2.4.20-uc1/Makefile
@@ -5,14 +5,11 @@ EXTRAVERSION = -uc1
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-# ARCH := armnommu
+ARCH := armnommu
# ARCH := m68knommu
# ARCH := h8300
# ARCH := niosnommu
-ifndef ARCH
-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
-endif
KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -27,7 +24,7 @@ HOSTCC = unset GCC_EXEC_PREFIX; gcc
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
# CROSS_COMPILE = m68k-elf-
-# CROSS_COMPILE = arm-elf-
+CROSS_COMPILE = arm-elf-
# CROSS_COMPILE = h8300-elf-
# CROSS_COMPILE = nios-elf-
ifndef CROSS_COMPILE
@@ -324,6 +321,8 @@ $(LINUX): include/linux/version.h $(CONFIGURATION) init/main.o init/version.o in
--end-group \
-o $(LINUX)
$(NM) $(LINUX) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
+ rm -f linux.bin
+ arm-elf-objcopy -I elf32-littlearm -O binary linux linux.bin
symlinks:
rm -f include/asm
diff --git a/uClinux-2.4.20-uc1/drivers/gpio/Makefile b/uClinux-2.4.20-uc1/drivers/gpio/Makefile
index 4130dac..7e77e8e 100644
--- a/uClinux-2.4.20-uc1/drivers/gpio/Makefile
+++ b/uClinux-2.4.20-uc1/drivers/gpio/Makefile
@@ -1,14 +1,14 @@
-#
-# Makefile for the linux kernel.
-#
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
-#
-# Note 2! The CFLAGS definitions are now in the main makefile...
-
-O_TARGET := gpio.o
-
-obj-y += gpio_core.o
-
-include $(TOPDIR)/Rules.make
+#
+# Makefile for the linux kernel.
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (ie not a .c file).
+#
+# Note 2! The CFLAGS definitions are now in the main makefile...
+
+O_TARGET := gpio.o
+
+obj-y += gpio_core.o
+
+include $(TOPDIR)/Rules.make
diff --git a/uClinux-2.4.20-uc1/drivers/gpio/gpio_core.c b/uClinux-2.4.20-uc1/drivers/gpio/gpio_core.c
index 8042e4d..f8df1b0 100644
--- a/uClinux-2.4.20-uc1/drivers/gpio/gpio_core.c
+++ b/uClinux-2.4.20-uc1/drivers/gpio/gpio_core.c
@@ -1,311 +1,311 @@
-/*$6
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- */
-
-#include <linux/config.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/string.h>
-#include <linux/delay.h>
-#include <linux/locks.h>
-#include <linux/sched.h>
-
-#include <linux/slab.h> /* kmalloc */
-#include <asm/hardware.h>
-#include <linux/spinlock.h>
-#include <linux/init.h>
-#include <asm/uaccess.h>
-#include <asm/system.h>
-#include <asm/io.h>
-#include <gpio/gpio_interface.h>
-
-/*
- ===============================================================================
- ===============================================================================
- */
-
-void init_EBI(void) /* lsshi 2003-12-29 16:40 */
-{
-#if 0
- DWORD_WRITE(EXT0CON, EXT0CON_DATA);
- DWORD_WRITE(EXT1CON, EXT1CON_DATA);
- DWORD_WRITE(EXT2CON, EXT2CON_DATA);
- DWORD_WRITE(EXT3CON, EXT3CON_DATA);
-#endif
- return;
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel0_3(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_0_3) | (mode & 0x3)
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel4_9(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_9_4) | ((mode & 0x3) << 2)
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel10_11(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_11_10) | (mode & 0x3) << 4
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel12(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_12) | (mode & 0x3) << 6
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel13(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_13) | (mode & 0x3) << 8
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel14(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_14) | (mode & 0x3) << 10
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel15_16(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_16_15) | (mode & 0x3) << 12
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- With IRQ capability
- ===============================================================================
- */
-int GPIO_EnableChannel17(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_17) | (mode & 0x3) << 14
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel18(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_18) | (mode & 0x3) << 16
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- mode=0x01 enable IRQ mode
- ===============================================================================
- */
-int GPIO_EnableChannel19(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_19) | (mode & 0x3) << 18
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_EnableChannel20(int mode)
-{
- if(mode > 3) return GPIO_ERROR;
- DWORD_WRITE
- (
- GPIO_CFG,
- (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_20) | (mode & 0x3) << 20
- );
- return(GPIO_OK);
-}
-
-/*
- ===============================================================================
- gpio inline functions
- ===============================================================================
- */
-void GPIO_Enable_Channel(int channel) /* normal I/O mode */
-{
- DWORD_WRITE(GPIO_CFG, (DWORD_READ(GPIO_CFG) & channel));
- return;
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int Set_Dir(int channel, int dir)
-{
- if(dir) /* out */
- {
- DWORD_WRITE(GPIO_DIR, DWORD_READ(GPIO_DIR) | (1 << channel));
- }
- else /* in */
- {
- DWORD_WRITE(GPIO_DIR, DWORD_READ(GPIO_DIR) &~(1 << channel));
- }
-
- return GPIO_OK;
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_Data_Out(int channel, int dataout)
-{
- Set_Dir(channel, GPIO_OUT);
-
- if(dataout > 1) return GPIO_ERROR;
- if(dataout) /* write "1" */
- {
- DWORD_WRITE(GPIO_DATAOUT, DWORD_READ(GPIO_DATAOUT) | (1 << channel));
- }
- else /* write "0" */
- {
- DWORD_WRITE(GPIO_DATAOUT, DWORD_READ(GPIO_DATAOUT) &~(1 << channel));
- }
-
- return GPIO_OK;
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_Data_In(int channel)
-{
- Set_Dir(channel, GPIO_IN);
- return(DWORD_READ(GPIO_DATAIN) & (1 << channel));
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-void GPIO_SET(int line, int sig_status)
-{
- GPIO_Data_Out(line, sig_status);
-
- return;
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int GPIO_GET(int line)
-{
- return GPIO_Data_In(line);
-}
-
-/*
- ===============================================================================
- ===============================================================================
- */
-int check_irq_self(int main_type, int irq_type)
-{
- /*--------------------------*/
- volatile unsigned int value;
- volatile unsigned char c;
- /*--------------------------*/
-#if 0
- value = CSR_READ_OFFSET(SHARE_IRQ_ADDR, main_type);
- c = value & 0x0F;
- printk("main_type=%d,check_irq_self=%x\n",main_type,c);
-
- if(c==0x0f)
- return 0;
-
- if(irq_type & c)
- return 1;
- else
- return 0;
-#endif
-}
+/*$6
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ */
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/types.h>
+#include <linux/string.h>
+#include <linux/delay.h>
+#include <linux/locks.h>
+#include <linux/sched.h>
+
+#include <linux/slab.h> /* kmalloc */
+#include <asm/hardware.h>
+#include <linux/spinlock.h>
+#include <linux/init.h>
+#include <asm/uaccess.h>
+#include <asm/system.h>
+#include <asm/io.h>
+#include <gpio/gpio_interface.h>
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+
+void init_EBI(void) /* lsshi 2003-12-29 16:40 */
+{
+#if 0
+ DWORD_WRITE(EXT0CON, EXT0CON_DATA);
+ DWORD_WRITE(EXT1CON, EXT1CON_DATA);
+ DWORD_WRITE(EXT2CON, EXT2CON_DATA);
+ DWORD_WRITE(EXT3CON, EXT3CON_DATA);
+#endif
+ return;
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel0_3(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_0_3) | (mode & 0x3)
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel4_9(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_9_4) | ((mode & 0x3) << 2)
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel10_11(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_11_10) | (mode & 0x3) << 4
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel12(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_12) | (mode & 0x3) << 6
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel13(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_13) | (mode & 0x3) << 8
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel14(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_14) | (mode & 0x3) << 10
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel15_16(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_16_15) | (mode & 0x3) << 12
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ With IRQ capability
+ ===============================================================================
+ */
+int GPIO_EnableChannel17(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_17) | (mode & 0x3) << 14
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel18(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_18) | (mode & 0x3) << 16
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ mode=0x01 enable IRQ mode
+ ===============================================================================
+ */
+int GPIO_EnableChannel19(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_19) | (mode & 0x3) << 18
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_EnableChannel20(int mode)
+{
+ if(mode > 3) return GPIO_ERROR;
+ DWORD_WRITE
+ (
+ GPIO_CFG,
+ (DWORD_READ(GPIO_CFG) & GPIO_CHANNEL_20) | (mode & 0x3) << 20
+ );
+ return(GPIO_OK);
+}
+
+/*
+ ===============================================================================
+ gpio inline functions
+ ===============================================================================
+ */
+void GPIO_Enable_Channel(int channel) /* normal I/O mode */
+{
+ DWORD_WRITE(GPIO_CFG, (DWORD_READ(GPIO_CFG) & channel));
+ return;
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int Set_Dir(int channel, int dir)
+{
+ if(dir) /* out */
+ {
+ DWORD_WRITE(GPIO_DIR, DWORD_READ(GPIO_DIR) | (1 << channel));
+ }
+ else /* in */
+ {
+ DWORD_WRITE(GPIO_DIR, DWORD_READ(GPIO_DIR) &~(1 << channel));
+ }
+
+ return GPIO_OK;
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_Data_Out(int channel, int dataout)
+{
+ Set_Dir(channel, GPIO_OUT);
+
+ if(dataout > 1) return GPIO_ERROR;
+ if(dataout) /* write "1" */
+ {
+ DWORD_WRITE(GPIO_DATAOUT, DWORD_READ(GPIO_DATAOUT) | (1 << channel));
+ }
+ else /* write "0" */
+ {
+ DWORD_WRITE(GPIO_DATAOUT, DWORD_READ(GPIO_DATAOUT) &~(1 << channel));
+ }
+
+ return GPIO_OK;
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_Data_In(int channel)
+{
+ Set_Dir(channel, GPIO_IN);
+ return(DWORD_READ(GPIO_DATAIN) & (1 << channel));
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+void GPIO_SET(int line, int sig_status)
+{
+ GPIO_Data_Out(line, sig_status);
+
+ return;
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int GPIO_GET(int line)
+{
+ return GPIO_Data_In(line);
+}
+
+/*
+ ===============================================================================
+ ===============================================================================
+ */
+int check_irq_self(int main_type, int irq_type)
+{
+ /*--------------------------*/
+ volatile unsigned int value;
+ volatile unsigned char c;
+ /*--------------------------*/
+#if 0
+ value = CSR_READ_OFFSET(SHARE_IRQ_ADDR, main_type);
+ c = value & 0x0F;
+ printk("main_type=%d,check_irq_self=%x\n",main_type,c);
+
+ if(c==0x0f)
+ return 0;
+
+ if(irq_type & c)
+ return 1;
+ else
+ return 0;
+#endif
+}