]> git.ipfire.org Git - thirdparty/kernel/linux.git/blame - arch/powerpc/kernel/prom_parse.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[thirdparty/kernel/linux.git] / arch / powerpc / kernel / prom_parse.c
CommitLineData
b2441318 1// SPDX-License-Identifier: GPL-2.0
d1405b86
BH
2#undef DEBUG
3
4#include <linux/kernel.h>
5#include <linux/string.h>
d2dd482b 6#include <linux/ioport.h>
29cfe6f4 7#include <linux/etherdevice.h>
1f5bef30 8#include <linux/of_address.h>
d1405b86 9#include <asm/prom.h>
83efafb3 10
2083f681
AB
11void of_parse_dma_window(struct device_node *dn, const __be32 *dma_window,
12 unsigned long *busno, unsigned long *phys,
13 unsigned long *size)
d4ad66fa 14{
a7f67bdf 15 u32 cells;
2083f681 16 const __be32 *prop;
d4ad66fa
JK
17
18 /* busno is always one cell */
2083f681
AB
19 *busno = of_read_number(dma_window, 1);
20 dma_window++;
d4ad66fa 21
e2eb6392 22 prop = of_get_property(dn, "ibm,#dma-address-cells", NULL);
03ac829b 23 if (!prop)
e2eb6392 24 prop = of_get_property(dn, "#address-cells", NULL);
03ac829b 25
2083f681 26 cells = prop ? of_read_number(prop, 1) : of_n_addr_cells(dn);
cc9fd71c 27 *phys = of_read_number(dma_window, cells);
d4ad66fa
JK
28
29 dma_window += cells;
30
e2eb6392 31 prop = of_get_property(dn, "ibm,#dma-size-cells", NULL);
2083f681 32 cells = prop ? of_read_number(prop, 1) : of_n_size_cells(dn);
cc9fd71c
BH
33 *size = of_read_number(dma_window, cells);
34}