1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (c) 2015 National Instruments
4 *
5 * (C) Copyright 2015
6 * Joe Hershberger <joe.hershberger@ni.com>
7 */
8
9#ifndef __MAPMEM_H
10#define __MAPMEM_H
11
12/* Define a null map_sysmem() if the architecture doesn't use it */
13# ifdef CONFIG_ARCH_MAP_SYSMEM
14#include <asm/io.h>
15# else
16#include <linux/types.h>
17
18static inline void *map_sysmem(phys_addr_t paddr, unsigned long len)
19{
20	return (void *)(uintptr_t)paddr;
21}
22
23static inline void unmap_sysmem(const void *vaddr)
24{
25}
26
27static inline phys_addr_t map_to_sysmem(const void *ptr)
28{
29	return (phys_addr_t)(uintptr_t)ptr;
30}
31
32/**
33 * nomap_sysmem() - pass through an address unchanged
34 *
35 * This is used to indicate an address which should NOT be mapped, e.g. in
36 * SMBIOS tables. Using this function instead of a case shows that the sandbox
37 * conversion has been done
38 */
39static inline void *nomap_sysmem(phys_addr_t paddr, unsigned long len)
40{
41	return (void *)(uintptr_t)paddr;
42}
43
44static inline phys_addr_t nomap_to_sysmem(const void *ptr)
45{
46	return (phys_addr_t)(uintptr_t)ptr;
47}
48
49# endif
50
51#endif /* __MAPMEM_H */
52