u-boot/include/dm/of_addr.h
Tom Rini 83d290c56f SPDX: Convert all of our single license tags to Linux Kernel style
When U-Boot started using SPDX tags we were among the early adopters and
there weren't a lot of other examples to borrow from.  So we picked the
area of the file that usually had a full license text and replaced it
with an appropriate SPDX-License-Identifier: entry.  Since then, the
Linux Kernel has adopted SPDX tags and they place it as the very first
line in a file (except where shebangs are used, then it's second line)
and with slightly different comment styles than us.

In part due to community overlap, in part due to better tag visibility
and in part for other minor reasons, switch over to that style.

This commit changes all instances where we have a single declared
license in the tag as both the before and after are identical in tag
contents.  There's also a few places where I found we did not have a tag
and have introduced one.

Signed-off-by: Tom Rini <trini@konsulko.com>
2018-05-07 09:34:12 -04:00

63 lines
2 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Taken from Linux v4.9 drivers/of/address.c
*
* Modified for U-Boot
* Copyright (c) 2017 Google, Inc
*/
#ifndef _DM_OF_ADDR_H
#define _DM_OF_ADDR_H
/**
* of_translate_address() - translate a device-tree address to a CPU address
*
* Translate an address from the device-tree into a CPU physical address,
* this walks up the tree and applies the various bus mappings on the way.
*
* Note: We consider that crossing any level with #size-cells == 0 to mean
* that translation is impossible (that is we are not dealing with a value
* that can be mapped to a cpu physical address). This is not really specified
* that way, but this is traditionally the way IBM at least do things
*
* @np: node to check
* @in_addr: pointer to input address
* @return translated address or OF_BAD_ADDR on error
*/
u64 of_translate_address(const struct device_node *no, const __be32 *in_addr);
/**
* of_get_address() - obtain an address from a node
*
* Extract an address from a node, returns the region size and the address
* space flags too. The PCI version uses a BAR number instead of an absolute
* index.
*
* @np: Node to check
* @index: Index of address to read (0 = first)
* @size: place to put size on success
* @flags: place to put flags on success
* @return pointer to address which can be read
*/
const __be32 *of_get_address(const struct device_node *no, int index,
u64 *size, unsigned int *flags);
struct resource;
/**
* of_address_to_resource() - translate device tree address to resource
*
* Note that if your address is a PIO address, the conversion will fail if
* the physical address can't be internally converted to an IO token with
* pci_address_to_pio(), that is because it's either called to early or it
* can't be matched to any host bridge IO space
*
* @np: node to check
* @index: index of address to read (0 = first)
* @r: place to put resource information
* @return 0 if OK, -ve on error
*/
int of_address_to_resource(const struct device_node *no, int index,
struct resource *r);
#endif