summaryrefslogtreecommitdiffstats
path: root/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745
diff options
context:
space:
mode:
Diffstat (limited to 'uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745')
-rw-r--r--uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/Makefile21
-rw-r--r--uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/arch.c24
-rw-r--r--uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/irq.c39
-rw-r--r--uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/time.c30
4 files changed, 114 insertions, 0 deletions
diff --git a/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/Makefile b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/Makefile
new file mode 100644
index 0000000..498b599
--- /dev/null
+++ b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/Makefile
@@ -0,0 +1,21 @@
+#
+# 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).
+
+USE_STANDARD_AS_RULE := true
+
+O_TARGET := W90N745.o
+
+# Object file lists.
+
+obj-y := $(patsubst %.c, %.o, $(wildcard *.c))
+obj-m :=
+obj-n :=
+obj- :=
+
+export-objs :=
+
+include $(TOPDIR)/Rules.make
diff --git a/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/arch.c b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/arch.c
new file mode 100644
index 0000000..815beb8
--- /dev/null
+++ b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/arch.c
@@ -0,0 +1,24 @@
+/*
+ * linux/arch/arm/mach-W90N745/arch.c
+ *
+ * Architecture specific fixups. This is where any
+ * parameters in the params struct are fixed up, or
+ * any additional architecture specific information
+ * is pulled from the params struct.
+ */
+#include <linux/tty.h>
+#include <linux/delay.h>
+#include <linux/pm.h>
+#include <linux/init.h>
+
+#include <asm/elf.h>
+#include <asm/setup.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+
+extern void genarch_init_irq(void);
+
+MACHINE_START(W90N745, "W90N745")
+ MAINTAINER("Shirley yu")
+ INITIRQ(genarch_init_irq)
+MACHINE_END
diff --git a/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/irq.c b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/irq.c
new file mode 100644
index 0000000..f8c34be
--- /dev/null
+++ b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/irq.c
@@ -0,0 +1,39 @@
+/*
+* linux/arch/armnommu/mach-W90N745/irq.c
+* 2003 clyu <clyu2@winbond.com.tw>
+*/
+#include <linux/init.h>
+
+#include <asm/mach/irq.h>
+#include <asm/hardware.h>
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/system.h>
+
+void W90N745_mask_irq(unsigned int irq)
+{
+ INT_DISABLE(irq);
+}
+
+void W90N745_unmask_irq(unsigned int irq)
+{
+ INT_ENABLE(irq);
+}
+
+void W90N745_mask_ack_irq(unsigned int irq)
+{
+ INT_DISABLE(irq);
+}
+
+void W90N745_int_init()
+{
+ //int i=0;
+ //IntPend = 0x1FFFFF;
+ CSR_WRITE(AIC_MDCR,0xFFFFFFFF);
+ CSR_WRITE(AIC_SCR9,0x41);
+ CSR_WRITE(AIC_SCR13,0x41);
+ //for(i=6;i<=18;i++)
+ // IntScr(i,0x41);
+ //IntMode = INT_MODE_IRQ;
+ //INT_ENABLE(INT_GLOBAL);
+}
diff --git a/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/time.c b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/time.c
new file mode 100644
index 0000000..067085f
--- /dev/null
+++ b/uClinux-2.4.20-uc1/arch/armnommu/mach-W90N745/time.c
@@ -0,0 +1,30 @@
+/*
+ * time.c Timer functions for Winbond W90N745
+ */
+
+#include <linux/time.h>
+#include <linux/timex.h>
+#include <linux/types.h>
+#include <linux/sched.h>
+#include <asm/io.h>
+#include <asm/arch/hardware.h>
+#include <linux/interrupt.h>
+
+struct irqaction watchdog_irq = {
+ name: "watchdog",
+};
+
+unsigned long winbond_gettimeoffset (void)
+{
+ return 0;
+}
+
+void winbond_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+{
+ do_timer(regs);
+}
+
+void winbond_watchdog_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+{
+ CSR_WRITE(WTCR, (CSR_READ(WTCR)&0xF7)|0x01);
+}