WIP FPC-III support
[linux/fpc-iii.git] / arch / powerpc / include / asm / dcr-mmio.h
blobfc6d93ef4a1370ecf2e797697c1c0b94982886d2
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3 * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp.
4 * <benh@kernel.crashing.org>
5 */
7 #ifndef _ASM_POWERPC_DCR_MMIO_H
8 #define _ASM_POWERPC_DCR_MMIO_H
9 #ifdef __KERNEL__
11 #include <asm/io.h>
13 typedef struct {
14 void __iomem *token;
15 unsigned int stride;
16 unsigned int base;
17 } dcr_host_mmio_t;
19 static inline bool dcr_map_ok_mmio(dcr_host_mmio_t host)
21 return host.token != NULL;
24 extern dcr_host_mmio_t dcr_map_mmio(struct device_node *dev,
25 unsigned int dcr_n,
26 unsigned int dcr_c);
27 extern void dcr_unmap_mmio(dcr_host_mmio_t host, unsigned int dcr_c);
29 static inline u32 dcr_read_mmio(dcr_host_mmio_t host, unsigned int dcr_n)
31 return in_be32(host.token + ((host.base + dcr_n) * host.stride));
34 static inline void dcr_write_mmio(dcr_host_mmio_t host,
35 unsigned int dcr_n,
36 u32 value)
38 out_be32(host.token + ((host.base + dcr_n) * host.stride), value);
41 #endif /* __KERNEL__ */
42 #endif /* _ASM_POWERPC_DCR_MMIO_H */