summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/dcr-mmio.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-08-04 17:25:06 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-08-04 17:25:06 -0700
commit2acb802b0c5485aedb46e23b2b45e49573454c09 (patch)
tree82afbba3d073ce903cb737412b6eccdf8adab4b5 /arch/powerpc/include/asm/dcr-mmio.h
parentd8f4b819c3a5b54a978c6fe5249a17cff490c4a1 (diff)
parent9c4cb82515130c62224e23fdf7c13c8f6c59c614 (diff)
downloadop-kernel-dev-2acb802b0c5485aedb46e23b2b45e49573454c09.zip
op-kernel-dev-2acb802b0c5485aedb46e23b2b45e49573454c09.tar.gz
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: powerpc: Remove use of CONFIG_PPC_MERGE powerpc: Force printing of 'total_memory' to unsigned long long powerpc: Fix compiler warning in arch/powerpc/mm/mem.c powerpc: Move include files to arch/powerpc/include/asm
Diffstat (limited to 'arch/powerpc/include/asm/dcr-mmio.h')
-rw-r--r--arch/powerpc/include/asm/dcr-mmio.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/dcr-mmio.h b/arch/powerpc/include/asm/dcr-mmio.h
new file mode 100644
index 0000000..acd491d
--- /dev/null
+++ b/arch/powerpc/include/asm/dcr-mmio.h
@@ -0,0 +1,61 @@
+/*
+ * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp.
+ * <benh@kernel.crashing.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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+ * the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef _ASM_POWERPC_DCR_MMIO_H
+#define _ASM_POWERPC_DCR_MMIO_H
+#ifdef __KERNEL__
+
+#include <asm/io.h>
+
+typedef struct {
+ void __iomem *token;
+ unsigned int stride;
+ unsigned int base;
+} dcr_host_mmio_t;
+
+static inline bool dcr_map_ok_mmio(dcr_host_mmio_t host)
+{
+ return host.token != NULL;
+}
+
+extern dcr_host_mmio_t dcr_map_mmio(struct device_node *dev,
+ unsigned int dcr_n,
+ unsigned int dcr_c);
+extern void dcr_unmap_mmio(dcr_host_mmio_t host, unsigned int dcr_c);
+
+static inline u32 dcr_read_mmio(dcr_host_mmio_t host, unsigned int dcr_n)
+{
+ return in_be32(host.token + ((host.base + dcr_n) * host.stride));
+}
+
+static inline void dcr_write_mmio(dcr_host_mmio_t host,
+ unsigned int dcr_n,
+ u32 value)
+{
+ out_be32(host.token + ((host.base + dcr_n) * host.stride), value);
+}
+
+extern u64 of_translate_dcr_address(struct device_node *dev,
+ unsigned int dcr_n,
+ unsigned int *stride);
+
+#endif /* __KERNEL__ */
+#endif /* _ASM_POWERPC_DCR_MMIO_H */
+
+
OpenPOWER on IntegriCloud