summaryrefslogtreecommitdiffstats
path: root/drivers/of/of_pci.c
diff options
context:
space:
mode:
authorAndrew Murray <Andrew.Murray@arm.com>2013-05-16 17:55:17 +0200
committerJason Cooper <jason@lakedaemon.net>2013-05-19 20:29:55 +0000
commit29b635c00f3ebcdaf7a52c4948f6d948ad3757d3 (patch)
treea6e09cffad345acacef84d646d7b91c005e91a4d /drivers/of/of_pci.c
parentf722406faae2d073cc1d01063d1123c35425939e (diff)
downloadop-kernel-dev-29b635c00f3ebcdaf7a52c4948f6d948ad3757d3.zip
op-kernel-dev-29b635c00f3ebcdaf7a52c4948f6d948ad3757d3.tar.gz
of/pci: Provide support for parsing PCI DT ranges property
This patch factors out common implementation patterns to reduce overall kernel code and provide a means for host bridge drivers to directly obtain struct resources from the DT's ranges property without relying on architecture specific DT handling. This will make it easier to write archiecture independent host bridge drivers and mitigate against further duplication of DT parsing code. This patch can be used in the following way: struct of_pci_range_parser parser; struct of_pci_range range; if (of_pci_range_parser_init(&parser, np)) ; //no ranges property for_each_of_pci_range(&parser, &range) { /* directly access properties of the address range, e.g.: range.pci_space, range.pci_addr, range.cpu_addr, range.size, range.flags alternatively obtain a struct resource, e.g.: struct resource res; of_pci_range_to_resource(&range, np, &res); */ } Additionally the implementation takes care of adjacent ranges and merges them into a single range (as was the case with powerpc and microblaze). Signed-off-by: Andrew Murray <Andrew.Murray@arm.com> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Rob Herring <rob.herring@calxeda.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Linus Walleij <linus.walleij@linaro.org> Tested-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'drivers/of/of_pci.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud