Merge branch '2022-04-21-further-cleanups'
[platform/kernel/u-boot.git] / include / phys2bus.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright 2015 Stephen Warren
4  */
5
6 #ifndef _BUS_ADDR_H
7 #define _BUS_ADDR_H
8
9 #ifdef CONFIG_PHYS_TO_BUS
10 unsigned long phys_to_bus(unsigned long phys);
11 unsigned long bus_to_phys(unsigned long bus);
12 #else
13 static inline unsigned long phys_to_bus(unsigned long phys)
14 {
15         return phys;
16 }
17
18 static inline unsigned long bus_to_phys(unsigned long bus)
19 {
20         return bus;
21 }
22 #endif
23
24 #if CONFIG_IS_ENABLED(DM)
25 #include <dm/device.h>
26
27 static inline dma_addr_t dev_phys_to_bus(struct udevice *dev, phys_addr_t phys)
28 {
29         return phys - dev_get_dma_offset(dev);
30 }
31
32 static inline phys_addr_t dev_bus_to_phys(struct udevice *dev, dma_addr_t bus)
33 {
34         return bus + dev_get_dma_offset(dev);
35 }
36 #else
37 #define dev_phys_to_bus(_, _addr)       _addr
38 #define dev_bus_to_phys(_, _addr)       _addr
39 #endif
40
41 #endif