/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright 2015 Stephen Warren */ #ifndef _BUS_ADDR_H #define _BUS_ADDR_H #ifdef CONFIG_PHYS_TO_BUS unsigned long phys_to_bus(unsigned long phys); unsigned long bus_to_phys(unsigned long bus); #else static inline unsigned long phys_to_bus(unsigned long phys) { return phys; } static inline unsigned long bus_to_phys(unsigned long bus) { return bus; } #endif #if CONFIG_IS_ENABLED(DM) #include static inline dma_addr_t dev_phys_to_bus(struct udevice *dev, phys_addr_t phys) { return phys - dev_get_dma_offset(dev); } static inline phys_addr_t dev_bus_to_phys(struct udevice *dev, dma_addr_t bus) { return bus + dev_get_dma_offset(dev); } #else #define dev_phys_to_bus(_, _addr) _addr #define dev_bus_to_phys(_, _addr) _addr #endif #endif