blob: f496c96d16c641a47c41ae35089bb533dc30ff7b [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0 */
Joe Hershberger0eb25b62015-03-22 17:08:59 -05002/*
3 * Copyright (c) 2015 National Instruments
4 *
5 * (C) Copyright 2015
6 * Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger0eb25b62015-03-22 17:08:59 -05007 */
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
Tom Rini1e8ce112023-12-14 13:16:57 -050016#include <linux/types.h>
17
Joe Hershberger0eb25b62015-03-22 17:08:59 -050018static 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}
Simon Glassa8efebe2023-12-31 08:25:54 -070031
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
Joe Hershberger0eb25b62015-03-22 17:08:59 -050049# endif
50
51#endif /* __MAPMEM_H */