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 10unsigned long phys_to_bus(unsigned long phys); 11unsigned long bus_to_phys(unsigned long bus); 12#else 13static inline unsigned long phys_to_bus(unsigned long phys) 14{ 15 return phys; 16} 17 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 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 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