|
@@ -0,0 +1,52 @@
|
|
|
+/*
|
|
|
+ * arch/arm/include/asm/hardware/iop3xx.h
|
|
|
+ *
|
|
|
+ * Intel IOP32X and IOP33X register definitions
|
|
|
+ *
|
|
|
+ * Author: Rory Bolt <rorybolt@pacbell.net>
|
|
|
+ * Copyright (C) 2002 Rory Bolt
|
|
|
+ * Copyright (C) 2004 Intel Corp.
|
|
|
+ *
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License version 2 as
|
|
|
+ * published by the Free Software Foundation.
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef __IOP3XX_H
|
|
|
+#define __IOP3XX_H
|
|
|
+
|
|
|
+/*
|
|
|
+ * IOP3XX GPIO handling
|
|
|
+ */
|
|
|
+#define GPIO_IN 0
|
|
|
+#define GPIO_OUT 1
|
|
|
+#define GPIO_LOW 0
|
|
|
+#define GPIO_HIGH 1
|
|
|
+#define IOP3XX_GPIO_LINE(x) (x)
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+extern void gpio_line_config(int line, int direction);
|
|
|
+extern int gpio_line_get(int line);
|
|
|
+extern void gpio_line_set(int line, int value);
|
|
|
+extern int init_atu;
|
|
|
+extern int iop3xx_get_init_atu(void);
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
+/*
|
|
|
+ * IOP3XX processor registers
|
|
|
+ */
|
|
|
+#define IOP3XX_PERIPHERAL_PHYS_BASE 0xffffe000
|
|
|
+#define IOP3XX_PERIPHERAL_VIRT_BASE 0xfeffe000
|
|
|
+#define IOP3XX_PERIPHERAL_SIZE 0x00002000
|
|
|
+#define IOP3XX_PERIPHERAL_UPPER_PA (IOP3XX_PERIPHERAL_PHYS_BASE +\
|
|
|
+ IOP3XX_PERIPHERAL_SIZE - 1)
|
|
|
+#define IOP3XX_PERIPHERAL_UPPER_VA (IOP3XX_PERIPHERAL_VIRT_BASE +\
|
|
|
+ IOP3XX_PERIPHERAL_SIZE - 1)
|
|
|
+#define IOP3XX_PMMR_PHYS_TO_VIRT(addr) (u32) ((u32) (addr) -\
|
|
|
+ (IOP3XX_PERIPHERAL_PHYS_BASE\
|
|
|
+ - IOP3XX_PERIPHERAL_VIRT_BASE))
|
|
|
+#define IOP3XX_REG_ADDR(reg) (IOP3XX_PERIPHERAL_VIRT_BASE + (reg))
|
|
|
+
|
|
|
+/* Address Translation Unit */
|
|
|
+#define IOP3XX_ATUVID (volatile u16 *)IOP3XX_REG_ADDR(0x0100)
|