vserver 1.9.5.x5
[linux-2.6.git] / include / asm-mips / vr41xx / vrc4173.h
index b14ef03..58e193c 100644 (file)
@@ -5,6 +5,7 @@
  *  Copyright (C) 2001-2003 Montavista Software Inc.
  *    Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com>
  *  Copyright (C) 2004  Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
+ *  Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -23,6 +24,7 @@
 #ifndef __NEC_VRC4173_H 
 #define __NEC_VRC4173_H 
 
+#include <linux/config.h>
 #include <asm/io.h>
 
 /*
@@ -48,6 +50,8 @@
 /*
  * PCI I/O accesses
  */
+#ifdef CONFIG_VRC4173
+
 extern unsigned long vrc4173_io_offset;
 
 #define set_vrc4173_io_offset(offset)  do { vrc4173_io_offset = (offset); } while (0)
@@ -74,6 +78,34 @@ extern unsigned long vrc4173_io_offset;
 #define vrc4173_insw(port,addr,count)  insw(vrc4173_io_offset+(port),(addr),(count))
 #define vrc4173_insl(port,addr,count)  insl(vrc4173_io_offset+(port),(addr),(count))
 
+#else
+
+#define set_vrc4173_io_offset(offset)  do {} while (0)
+
+#define vrc4173_outb(val,port)         do {} while (0)
+#define vrc4173_outw(val,port)         do {} while (0)
+#define vrc4173_outl(val,port)         do {} while (0)
+#define vrc4173_outb_p(val,port)       do {} while (0)
+#define vrc4173_outw_p(val,port)       do {} while (0)
+#define vrc4173_outl_p(val,port)       do {} while (0)
+
+#define vrc4173_inb(port)              0
+#define vrc4173_inw(port)              0
+#define vrc4173_inl(port)              0
+#define vrc4173_inb_p(port)            0
+#define vrc4173_inw_p(port)            0
+#define vrc4173_inl_p(port)            0
+
+#define vrc4173_outsb(port,addr,count) do {} while (0)
+#define vrc4173_outsw(port,addr,count) do {} while (0)
+#define vrc4173_outsl(port,addr,count) do {} while (0)
+
+#define vrc4173_insb(port,addr,count)  do {} while (0)
+#define vrc4173_insw(port,addr,count)  do {} while (0)
+#define vrc4173_insl(port,addr,count)  do {} while (0)
+
+#endif
+
 /*
  * Clock Mask Unit
  */
@@ -92,9 +124,77 @@ typedef enum vrc4173_clock {
        VRC4173_48MHz_CLOCK,
 } vrc4173_clock_t;
 
+#ifdef CONFIG_VRC4173
+
 extern void vrc4173_supply_clock(vrc4173_clock_t clock);
 extern void vrc4173_mask_clock(vrc4173_clock_t clock);
 
+#else
+
+static inline void vrc4173_supply_clock(vrc4173_clock_t clock) {}
+static inline void vrc4173_mask_clock(vrc4173_clock_t clock) {}
+
+#endif
+
+/*
+ * Interupt Control Unit
+ */
+
+#define VRC4173_PIUINT_COMMAND         0x0040
+#define VRC4173_PIUINT_DATA            0x0020
+#define VRC4173_PIUINT_PAGE1           0x0010
+#define VRC4173_PIUINT_PAGE0           0x0008
+#define VRC4173_PIUINT_DATALOST                0x0004
+#define VRC4173_PIUINT_STATUSCHANGE    0x0001
+
+#ifdef CONFIG_VRC4173
+
+extern void vrc4173_enable_piuint(uint16_t mask);
+extern void vrc4173_disable_piuint(uint16_t mask);
+
+#else
+
+static inline void vrc4173_enable_piuint(uint16_t mask) {}
+static inline void vrc4173_disable_piuint(uint16_t mask) {}
+
+#endif
+
+#define VRC4173_AIUINT_INPUT_DMAEND    0x0800
+#define VRC4173_AIUINT_INPUT_DMAHALT   0x0400
+#define VRC4173_AIUINT_INPUT_DATALOST  0x0200
+#define VRC4173_AIUINT_INPUT_DATA      0x0100
+#define VRC4173_AIUINT_OUTPUT_DMAEND   0x0008
+#define VRC4173_AIUINT_OUTPUT_DMAHALT  0x0004
+#define VRC4173_AIUINT_OUTPUT_NODATA   0x0002
+
+#ifdef CONFIG_VRC4173
+
+extern void vrc4173_enable_aiuint(uint16_t mask);
+extern void vrc4173_disable_aiuint(uint16_t mask);
+
+#else
+
+static inline void vrc4173_enable_aiuint(uint16_t mask) {}
+static inline void vrc4173_disable_aiuint(uint16_t mask) {}
+
+#endif
+
+#define VRC4173_KIUINT_DATALOST                0x0004
+#define VRC4173_KIUINT_DATAREADY       0x0002
+#define VRC4173_KIUINT_SCAN            0x0001
+
+#ifdef CONFIG_VRC4173
+
+extern void vrc4173_enable_kiuint(uint16_t mask);
+extern void vrc4173_disable_kiuint(uint16_t mask);
+
+#else
+
+static inline void vrc4173_enable_kiuint(uint16_t mask) {}
+static inline void vrc4173_disable_kiuint(uint16_t mask) {}
+
+#endif
+
 /*
  * General-Purpose I/O Unit
  */
@@ -109,6 +209,14 @@ typedef enum vrc4173_function {
        GPIO_16_20PINS,
 } vrc4173_function_t;
 
+#ifdef CONFIG_VRC4173
+
 extern void vrc4173_select_function(vrc4173_function_t function);
 
+#else
+
+static inline void vrc4173_select_function(vrc4173_function_t function) {}
+
+#endif
+
 #endif /* __NEC_VRC4173_H */