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 phys_to_bus(unsigned long phys)13static inline unsigned long phys_to_bus(unsigned long phys) 14 { 15 return phys; 16 } 17 bus_to_phys(unsigned long bus)18static 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 dev_phys_to_bus(struct udevice * dev,phys_addr_t phys)27static 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 dev_bus_to_phys(struct udevice * dev,dma_addr_t bus)32static 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 42