-#define VRC4173_PIU_CLOCK 0x0001
-#define VRC4173_KIU_CLOCK 0x0002
-#define VRC4173_AIU_CLOCK 0x0004
-#define VRC4173_PS2CH1_CLOCK 0x0008
-#define VRC4173_PS2CH2_CLOCK 0x0010
-#define VRC4173_USBU_PCI_CLOCK 0x0020
-#define VRC4173_CARDU1_PCI_CLOCK 0x0040
-#define VRC4173_CARDU2_PCI_CLOCK 0x0080
-#define VRC4173_AC97U_PCI_CLOCK 0x0100
-#define VRC4173_USBU_48MHz_CLOCK 0x0400
-#define VRC4173_EXT_48MHz_CLOCK 0x0800
-#define VRC4173_48MHz_CLOCK 0x1000
-
-extern void vrc4173_clock_supply(u16 mask);
-extern void vrc4173_clock_mask(u16 mask);
+typedef enum vrc4173_clock {
+ VRC4173_PIU_CLOCK,
+ VRC4173_KIU_CLOCK,
+ VRC4173_AIU_CLOCK,
+ VRC4173_PS2_CH1_CLOCK,
+ VRC4173_PS2_CH2_CLOCK,
+ VRC4173_USBU_PCI_CLOCK,
+ VRC4173_CARDU1_PCI_CLOCK,
+ VRC4173_CARDU2_PCI_CLOCK,
+ VRC4173_AC97U_PCI_CLOCK,
+ VRC4173_USBU_48MHz_CLOCK,
+ VRC4173_EXT_48MHz_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