Commit 927c1fa2 authored by Stephen Warren's avatar Stephen Warren Committed by Marek Vasut

Create API to map between CPU physical and bus addresses

On some SoCs, DMA-capable peripherals see a different address space to
the CPU's physical address space. Create an API to allow platform-agnostic
drivers to convert between the two address spaces when programming DMA
operations.

This API will exist on all platforms, but will have a dummy implementation
when this feature is not required. Other platforms will enable
CONFIG_PHYS_TO_BUS and provide the required implementation.
Signed-off-by: 's avatarStephen Warren <swarren@wwwdotorg.org>
parent fc909c05
......@@ -53,3 +53,11 @@ source "drivers/crypto/Kconfig"
source "drivers/thermal/Kconfig"
endmenu
config PHYS_TO_BUS
bool
help
Some SoCs use a different address map for CPU physical addresses and
peripheral DMA master accesses. If yours does, select this option in
your platform's Kconfig, and implement the appropriate mapping
functions in your platform's support code.
/*
* Copyright 2015 Stephen Warren
*
* SPDX-License-Identifier: GPL-2.0+
*/
#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
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment