uboot/include/phys2bus.h
<<
>>
Prefs
   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