summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-10-29dt-bindings: sram: Merge Samsung SRAM bindings into genericKrzysztof Kozlowski3-39/+29
The Samsung SRAM bindings list only compatible so integrate them into generic SRAM bindings schema. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-29dt-bindings: sram: Convert SRAM bindings to json-schemaKrzysztof Kozlowski2-80/+136
Convert generic mmio-sram bindings to DT schema format using json-schema. Require the address/size cells to be 1, not equal to root node. This also fixes the check for clocks property to be in main root node instead of children. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-25Merge branch 'dt/linus' into dt/nextRob Herring2-1/+4
2019-10-25dt-bindings: example-schema: Add some additional examples and commentaryRob Herring1-7/+74
Add examples for properties with standard units, child nodes, dependencies, and if/then schema. Also, make some minor updates based on common questions and review issues. Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-25dt: submitting-patches: Document requirements for DT schemaRob Herring1-5/+16
Update the DT submitting-patches.txt with additional requirements for DT binding schemas. New binding documents should generally use the schema format and have an explicit license. Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-25dt: writing-schema: Add a note about tools PATH setupRob Herring1-0/+3
Users without an existing python install may not have their PATH setup for pip installed python programs already. Add a note about having the DT validation programs in the PATH. Reported-by: Robert Jones <rjones@gateworks.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-25dt-bindings: arm: samsung: Update the CHIPID binding for ASVSylwester Nawrocki1-1/+16
This patch adds documentation of new optional "samsung,asv-bin" property in the chipid device node and documents requirement of "syscon" compatible string. These additions are needed to support Exynos ASV (Adaptive Supply Voltage) feature. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> [robh: drop 'select' which is no longer needed. Fix up example whitespace] Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-25libfdt: reduce the number of headers included from libfdt_env.hMasahiro Yamada1-1/+1
Currently, libfdt_env.h includes <linux/kernel.h> just for INT_MAX. <linux/kernel.h> pulls in a lots of broat. Thanks to commit 54d50897d544 ("linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h>"), <linux/kernel.h> can be replaced with <linux/limits.h>. This saves including dozens of headers. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23of: reserved_mem: add missing of_node_put() for proper ref-countingChris Goldsworthy1-1/+3
Commit d698a388146c ("of: reserved-memory: ignore disabled memory-region nodes") added an early return in of_reserved_mem_device_init_by_idx(), but didn't call of_node_put() on a device_node whose ref-count was incremented in the call to of_parse_phandle() preceding the early exit. Fixes: d698a388146c ("of: reserved-memory: ignore disabled memory-region nodes") Signed-off-by: Chris Goldsworthy <cgoldswo@codeaurora.org> Cc: stable@vger.kernel.org Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23of: unittest: fix memory leak in unittest_data_addNavid Emamdoost1-0/+1
In unittest_data_add, a copy buffer is created via kmemdup. This buffer is leaked if of_fdt_unflatten_tree fails. The release for the unittest_data buffer is added. Fixes: b951f9dc7f25 ("Enabling OF selftest to run without machine's devicetree") Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> Reviewed-by: Frank Rowand <frowand.list@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23dt-bindings: riscv: Fix CPU schema errorsRob Herring1-16/+13
Fix the errors in the RiscV CPU DT schema: Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: 'timebase-frequency' is a required property Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@1: 'timebase-frequency' is a required property Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: compatible:0: 'riscv' is not one of ['sifive,rocket0', 'sifive,e5', 'sifive,e51', 'sifive,u54-mc', 'sifive,u54', 'sifive,u5'] Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: compatible: ['riscv'] is too short Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: 'timebase-frequency' is a required property The DT spec allows for 'timebase-frequency' to be in 'cpu' or 'cpus' node and RiscV requires it in /cpus node, so make it disallowed in cpu nodes. Fixes: 4fd669a8c487 ("dt-bindings: riscv: convert cpu binding to json-schema") Cc: Palmer Dabbelt <palmer@sifive.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: linux-riscv@lists.infradead.org Acked-by: Paul Walmsley <paul.walmsley@sifive.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23dt-bindings: gpu: samsung-rotator: Fix indentationKrzysztof Kozlowski1-1/+1
Array elements under 'items' should be indented. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23dt-bindings: PCI: rcar: Add device tree support for r8a774b1Fabrizio Castro1-0/+1
Add PCIe support for the RZ/G2N (a.k.a. R8A774B1). Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> Reviewed-by: Andrew Murray <andrew.murray@arm.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23dt-bindings: watchdog: renesas-wdt: Document r8a774b1 supportFabrizio Castro1-0/+1
RZ/G2N (a.k.a. R8A774B1) watchdog implementation is compatible with R-Car Gen3, therefore add the relevant documentation. Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23dt-bindings: iommu: Convert Arm SMMUv3 to DT schemaRob Herring2-77/+95
Convert the Arm SMMv3 binding to the DT schema format. Cc: Joerg Roedel <joro@8bytes.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will@kernel.org> Cc: iommu@lists.linux-foundation.org Reviewed-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-16dt-bindings: iommu: Convert Arm SMMU to DT schemaRob Herring2-182/+229
Convert the Arm SMMU binding to DT schema. The existing binding doc doesn't cover the number of variations of compatible properties found in .dts files. "qcom,msm8998-smmu-v2" was also missing, so add it. SoCFPGA Stratix10 has a single clock defined which doesn't match the binding. This issue remains. Cc: Joerg Roedel <joro@8bytes.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Robin Murphy <Robin.Murphy@arm.com> Cc: iommu@lists.linux-foundation.org Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: display: Convert sharp, ld-d5116z01b panel to DT schemaJeffrey Hugo2-26/+30
Convert the sharp,ld-d5116z01b panel binding to DT schema. Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: usb: generic-ehci: Add "companion" entryAlexandre Torgue1-0/+5
"companion" entry is present in "generic.txt" usb binding file. This commit adds it also in generic-ehci yaml binding. Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> [robh: restrict type to phandle instead of phandle-array] Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: pinctrl: stm32: Fix 'st, syscfg' description fieldAlexandre Torgue1-4/+3
As there is only one item "st,syscfg" this commit moves phandle description fields under "description" tag. It'll fix a validation issue seen during stm32 DT check. Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: arm: stm32: Add missing STM32 boardsAlexandre Torgue1-4/+23
This commit documents missing STM32 boards: -STM32MCU: F429 disco/eval, F469-disco, F746 disco/eval, F769 disco, H743 disco/eval. -STM32MPU: MP157 dk1/dk2/ed1/ev1. Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: irqchip: renesas-irqc: Document r8a774b1 bindingsBiju Das1-0/+1
Document SoC specific bindings for RZ/G2N (r8a774b1) SoC. Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: pwm: rcar: Add r8a774b1 supportBiju Das1-0/+1
Document RZ/G2N (R8A774B1) SoC bindings. Signed-off-by: Biju Das <biju.das@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: iio: adc: exynos: Use defines instead of clock numbersKrzysztof Kozlowski1-2/+4
Make the examples in Exynos ADC bindings more readable and bring them closer to real DTS by using defines for clocks. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: rtc: s3c: Include generic dt-schema bindingsKrzysztof Kozlowski1-0/+1
Include the generic rtc.yaml bindings in Samsung S3C RTC bindings. This brings the requirement of proper node names and adds parsing of additional properties. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: rtc: s3c: Use defines instead of clock numbersKrzysztof Kozlowski1-2/+5
Make the examples in S3C RTC bindings more readable and bring them closer to real DTS by using defines for clocks. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: samsung: Indent examples with four spacesKrzysztof Kozlowski5-48/+48
Change the indentation of examples used in json-schema bindings from two to four spaces as this makes the code easier to read and seems to be preferred in other files. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> # for iio Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Acked-by: Sebastian Reichel <sre@kernel.org> # for power/reset Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: serio: Convert Allwinner PS2 controller to a schemaMaxime Ripard2-22/+51
The older Allwinner SoCs have a PS2 controller that is supported in Linux, with a matching Device Tree binding. Now that we have the DT validation in place, let's convert the device tree bindings for that controller over to a YAML schemas. Signed-off-by: Maxime Ripard <mripard@kernel.org> Acked-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-15dt-bindings: display: Convert stm32 display bindings to json-schemaBenjamin Gaignard3-144/+231
Convert the STM32 display binding to DT schema format using json-schema. Split the original bindings in two yaml files: - one for display controller (ltdc) - one for DSI controller Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> [robh: drop maxItems from phy-dsi-supply] Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-14dt-bindings: timer: Convert stm32 timer bindings to json-schemaBenjamin Gaignard2-22/+47
Convert the STM32 timer binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-14dt-bindings: thermal: Convert stm32 thermal bindings to json-schemaBenjamin Gaignard2-61/+79
Convert the STM32 thermal binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-14dt-bindings: media: Convert stm32 dcmi bindings to json-schemaBenjamin Gaignard2-45/+86
Convert the STM32 dcmi binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-14dt-bindings: media: Convert stm32 cec bindings to json-schemaBenjamin Gaignard2-19/+54
Convert the STM32 cec binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-14dt-bindings: hwlock: Convert stm32 hwspinlock bindings to json-schemaBenjamin Gaignard2-23/+50
Convert the STM32 hwspinlock binding to DT schema format using json-schema Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-14dt-bindings: Clean-up regulator '-supply' schemasRob Herring13-25/+5
Regulator '*-supply' properties are always a single phandle, so 'maxItems: 1' or a $ref is not necessary. All that's needed is either 'true' or an optional 'description'. Following this clean-up, the meta-schema will enforce this pattern. There's one case in tree with 'innolux,n156bge-l21' having 2 phandles. This appears to be a mistake or abuse of simple-panel as it's 2 different voltage rails connected to 'power-supply'. Cc: Neil Armstrong <narmstrong@baylibre.com> Cc: Kevin Hilman <khilman@baylibre.com> Cc: Jonathan Cameron <jic23@kernel.org> Cc: Krzysztof Kozlowski <krzk@kernel.org> Cc: Kishon Vijay Abraham I <kishon@ti.com> Cc: Liam Girdwood <lgirdwood@gmail.com> Cc: Mark Brown <broonie@kernel.org> Cc: linux-iio@vger.kernel.org Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> # for iio Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11checkpatch: Warn if DT bindings are not in schema formatRob Herring1-0/+8
DT bindings are moving to using a json-schema based schema format instead of freeform text. Add a checkpatch.pl check to encourage using the schema for new bindings. It's not yet a requirement, but is progressively being required by some maintainers. Cc: Andy Whitcroft <apw@canonical.com> Cc: Joe Perches <joe@perches.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11dt-bindings: riscv: Fix CPU schema errorsRob Herring1-16/+13
Fix the errors in the RiscV CPU DT schema: Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: 'timebase-frequency' is a required property Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@1: 'timebase-frequency' is a required property Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: compatible:0: 'riscv' is not one of ['sifive,rocket0', 'sifive,e5', 'sifive,e51', 'sifive,u54-mc', 'sifive,u54', 'sifive,u5'] Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: compatible: ['riscv'] is too short Documentation/devicetree/bindings/riscv/cpus.example.dt.yaml: cpu@0: 'timebase-frequency' is a required property The DT spec allows for 'timebase-frequency' to be in 'cpu' or 'cpus' node and RiscV requires it in /cpus node, so make it disallowed in cpu nodes. Fixes: 4fd669a8c487 ("dt-bindings: riscv: convert cpu binding to json-schema") Cc: Palmer Dabbelt <palmer@sifive.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: linux-riscv@lists.infradead.org Acked-by: Paul Walmsley <paul.walmsley@sifive.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11dt-bindings: display: clps711x-fb: fix native-mode settingMartin Kaiser1-1/+1
Move the native-mode setting inside the display-timing node. Outside of display-timing, it is ignored. Signed-off-by: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11dt-bindings: display: imx: fix native-mode settingMartin Kaiser1-1/+1
Move the native-mode setting inside the display-timing node. Outside of display-timing, it is ignored. Signed-off-by: Martin Kaiser <martin@kaiser.cx> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11ASoC: samsung: i2s: Document clocks macrosMaciej Falkowski1-3/+9
Document clocks macros with their description from 'Documentation/devicetree/bindings/sound/samsung-i2s.txt' Signed-off-by: Maciej Falkowski <m.falkowski@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11dt-bindings: rtc: rtc-sh: convert bindings to json-schemaSimon Horman2-28/+70
Convert Real Time Clock for Renesas SH and ARM SoCs bindings documentation to json-schema. Also name bindings documentation file according to the compat string being documented. Also correct syntax error in interrupts field in example. Signed-off-by: Simon Horman <horms+renesas@verge.net.au> Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11dt-bindings: crypto: samsung: Convert SSS and SlimSSS bindings to json-schemaKrzysztof Kozlowski5-53/+107
Convert Samsung Exynos Security SubSystem (SSS) and SlimSSS hardware crypto accelerator bindings to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-11dt-bindings: memory-controllers: Convert Samsung Exynos SROM bindings to ↵Krzysztof Kozlowski2-79/+128
json-schema Convert Samsung Exynos SROM controller bindings to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-10dt-bindings: rng: exynos4-rng: Convert Exynos PRNG bindings to json-schemaKrzysztof Kozlowski3-20/+46
Convert Samsung Exynos Pseudo Random Number Generator bindings to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-10dt-bindings: at24: add new compatibleBartosz Golaszewski1-0/+3
arch/arm/boot/dts/at91-dvk_som60.dt.yaml uses the compatible string 'giantec,gt24c32a' for an at24 EEPROM with a fallback to 'atmel,24c32'. Add this model as a special case to the binding document. Reported-by: Rob Herring <robh@kernel.org> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-10dt-bindings: at24: convert the binding document to yamlBartosz Golaszewski3-90/+187
Convert the binding document for at24 EEPROMs from txt to yaml. The compatible property uses a regex pattern to address all the possible combinations of "vendor,model" strings. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> [robh: rework compatible schema, fix missing allOf for $ref, fix errors in example] Signed-off-by: Rob Herring <robh@kernel.org> [Bartosz: added comments explaining the compatible property] Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-09of: Make of_dma_get_range() work on bus nodesRobin Murphy1-26/+18
Since the "dma-ranges" property is only valid for a node representing a bus, of_dma_get_range() currently assumes the node passed in is a leaf representing a device, and starts the walk from its parent. In cases like PCI host controllers on typical FDT systems, however, where the PCI endpoints are probed dynamically the initial leaf node represents the 'bus' itself, and this logic means we fail to consider any "dma-ranges" describing the host bridge itself. Rework the logic such that of_dma_get_range() also works correctly starting from a bus node containing "dma-ranges". While this does mean "dma-ranges" could incorrectly be in a device leaf node, there isn't really any way in this function to ensure that a leaf node is or isn't a bus node. Signed-off-by: Robin Murphy <robin.murphy@arm.com> [robh: Allow for the bus child node to still be passed in] Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
2019-10-08of/address: Fix of_pci_range_parser_one translation of DMA addressesRob Herring2-3/+13
of_pci_range_parser_one() has a bug when parsing dma-ranges. When it translates the parent address (aka cpu address in the code), 'ranges' is always being used. This happens to work because most users are just 1:1 translation. Cc: Robin Murphy <robin.murphy@arm.com> Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-08of/address: Translate 'dma-ranges' for parent nodes missing 'dma-ranges'Rob Herring1-1/+5
'dma-ranges' frequently exists without parent nodes having 'dma-ranges'. While this is an error for 'ranges', this is fine because DMA capable devices always have a translatable DMA address. Also, with no 'dma-ranges' at all, the assumption is that DMA addresses are 1:1 with no restrictions unless perhaps the device itself has implicit restrictions. Cc: Robin Murphy <robin.murphy@arm.com> Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-08of/unittest: Add dma-ranges address translation testsRob Herring3-0/+141
The functions for parsing 'dma-ranges' ranges are buggy and fail to handle several conditions. Add new tests for of_dma_get_range() and for_each_of_pci_range(). With this test, we get 5 new failures which are fixed in subsequent commits: OF: translation of DMA address(0) to CPU address failed node(/testcase-data/address-tests/device@70000000) FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/device@70000000 rc=-22 OF: translation of DMA address(10000000) to CPU address failed node(/testcase-data/address-tests/bus@80000000/device@1000) FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/bus@80000000/device@1000 rc=-22 OF: translation of DMA address(0) to CPU address failed node(/testcase-data/address-tests/pci@90000000) FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/pci@90000000 rc=-22 FAIL of_unittest_pci_dma_ranges():851 for_each_of_pci_range wrong CPU addr (d0000000) on node /testcase-data/address-tests/pci@90000000 FAIL of_unittest_pci_dma_ranges():861 for_each_of_pci_range wrong CPU addr (ffffffffffffffff) on node /testcase-data/address-tests/pci@90000000 Cc: Robin Murphy <robin.murphy@arm.com> Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-08of: Factor out #{addr,size}-cells parsingRobin Murphy3-10/+27
In some cases such as PCI host controllers, we may have a "parent bus" which is an OF leaf node, but still need to correctly parse ranges from the point of view of that bus. For that, factor out variants of the "#addr-cells" and "#size-cells" parsers which do not assume they have a device node and thus immediately traverse upwards before reading the relevant property. Signed-off-by: Robin Murphy <robin.murphy@arm.com> [robh: don't make of_bus_n_{addr,size}_cells() public] Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Signed-off-by: Rob Herring <robh@kernel.org>