fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-arm / arch-ixp4xx / platform.h
index daf9790..ab194e5 100644 (file)
@@ -38,6 +38,33 @@ extern unsigned long ixp4xx_exp_bus_size;
 #define        IXP4XX_EXP_BUS_BASE(region)\
                (IXP4XX_EXP_BUS_BASE_PHYS + ((region) * ixp4xx_exp_bus_size))
 
+#define IXP4XX_EXP_BUS_END(region)\
+               (IXP4XX_EXP_BUS_BASE(region) + ixp4xx_exp_bus_size - 1)
+
+/* Those macros can be used to adjust timing and configure
+ * other features for each region.
+ */
+
+#define IXP4XX_EXP_BUS_RECOVERY_T(x)   (((x) & 0x0f) << 16)
+#define IXP4XX_EXP_BUS_HOLD_T(x)       (((x) & 0x03) << 20)
+#define IXP4XX_EXP_BUS_STROBE_T(x)     (((x) & 0x0f) << 22)
+#define IXP4XX_EXP_BUS_SETUP_T(x)      (((x) & 0x03) << 26)
+#define IXP4XX_EXP_BUS_ADDR_T(x)       (((x) & 0x03) << 28)
+#define IXP4XX_EXP_BUS_SIZE(x)         (((x) & 0x0f) << 10)
+#define IXP4XX_EXP_BUS_CYCLES(x)       (((x) & 0x03) << 14)
+
+#define IXP4XX_EXP_BUS_CS_EN           (1L << 31)
+#define IXP4XX_EXP_BUS_BYTE_RD16       (1L << 6)
+#define IXP4XX_EXP_BUS_HRDY_POL                (1L << 5)
+#define IXP4XX_EXP_BUS_MUX_EN          (1L << 4)
+#define IXP4XX_EXP_BUS_SPLT_EN         (1L << 3)
+#define IXP4XX_EXP_BUS_WR_EN           (1L << 1)
+#define IXP4XX_EXP_BUS_BYTE_EN         (1L << 0)
+
+#define IXP4XX_EXP_BUS_CYCLES_INTEL    0x00
+#define IXP4XX_EXP_BUS_CYCLES_MOTOROLA 0x01
+#define IXP4XX_EXP_BUS_CYCLES_HPI      0x02
+
 #define IXP4XX_FLASH_WRITABLE  (0x2)
 #define IXP4XX_FLASH_DEFAULT   (0xbcd23c40)
 #define IXP4XX_FLASH_WRITE     (0xbcd23c42)
@@ -59,9 +86,27 @@ struct ixp4xx_i2c_pins {
        unsigned long scl_pin;
 };
 
+/*
+ * This structure provide a means for the board setup code
+ * to give information to th pata_ixp4xx driver. It is
+ * passed as platform_data.
+ */
+struct ixp4xx_pata_data {
+       volatile u32    *cs0_cfg;
+       volatile u32    *cs1_cfg;
+       unsigned long   cs0_bits;
+       unsigned long   cs1_bits;
+       void __iomem    *cs0;
+       void __iomem    *cs1;
+};
 
 struct sys_timer;
 
+/*
+ * Frequency of clock used for primary clocksource
+ */
+extern unsigned long ixp4xx_timer_freq;
+
 /*
  * Functions used by platform-level setup code
  */