mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.0 KiB
44 lines
1.0 KiB
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|
/* |
|
* (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp. |
|
* <[email protected]> |
|
*/ |
|
|
|
#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); |
|
} |
|
|
|
#endif /* __KERNEL__ */ |
|
#endif /* _ASM_POWERPC_DCR_MMIO_H */ |
|
|
|
|
|
|