1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp.
4  *                    <benh@kernel.crashing.org>
5  */
6 
7 #ifndef _ASM_POWERPC_DCR_GENERIC_H
8 #define _ASM_POWERPC_DCR_GENERIC_H
9 #ifdef __KERNEL__
10 #ifndef __ASSEMBLY__
11 
12 enum host_type_t {DCR_HOST_MMIO, DCR_HOST_NATIVE, DCR_HOST_INVALID};
13 
14 typedef struct {
15 	enum host_type_t type;
16 	union {
17 		dcr_host_mmio_t mmio;
18 		dcr_host_native_t native;
19 	} host;
20 } dcr_host_t;
21 
22 extern bool dcr_map_ok_generic(dcr_host_t host);
23 
24 extern dcr_host_t dcr_map_generic(struct device_node *dev, unsigned int dcr_n,
25 			  unsigned int dcr_c);
26 extern void dcr_unmap_generic(dcr_host_t host, unsigned int dcr_c);
27 
28 extern u32 dcr_read_generic(dcr_host_t host, unsigned int dcr_n);
29 
30 extern void dcr_write_generic(dcr_host_t host, unsigned int dcr_n, u32 value);
31 
32 #endif /* __ASSEMBLY__ */
33 #endif /* __KERNEL__ */
34 #endif /* _ASM_POWERPC_DCR_GENERIC_H */
35 
36 
37