Zhen Lei [Wed, 30 Sep 2020 03:17:10 +0000 (11:17 +0800)]
dt-bindings: arm: hisilicon: convert Hi6220 domain controller bindings to json-schema
Convert the Hisilicon Hi6220 domain controllers binding to DT schema
format using json-schema. All of them are grouped into one yaml file, to
help users understand differences and avoid repeated descriptions.
dt-bindings: vendor-prefixes: favor "gateworks" over "gw"
There are two vendor prefixes for Gateworks: "gw" and "gateworks".
Favor the longer one (more descriptive) and mark "gw" as deprecated so
it will not be used in new bindings.
Suman Anna [Mon, 28 Sep 2020 22:51:55 +0000 (17:51 -0500)]
dt-bindings: hwlock: omap: Fix warnings with k3.yaml
Update the AM65x HwSpinlock example to fix couple of warnings
that started showing up after the conversion of K3 bindings to
YAML format in commit 66e06509aa37 ("dt-bindings: arm: ti:
Convert K3 board/soc bindings to DT schema").
compatible: ['ti,am654'] is not valid under any of the given schemas (Possible causes of the failure):
compatible: ['ti,am654'] is too short
compatible:0: 'ti,am654' is not one of ['ti,am654-evm']
Pattern properties go under 'patternProperties', not 'properties'.
Otherwise, the pattern is treated as a literal string.
A corresponding meta-schema check has been added to catch bad DT property
names like this.
Fixes: e0f946915b23 ("dt-bindings: mfd: ti,j721e-system-controller.yaml: Add J721e system controller") Cc: Roger Quadros <rogerq@ti.com> Cc: Tero Kristo <t-kristo@ti.com> Cc: Kishon Vijay Abraham I <kishon@ti.com> Acked-by: Lee Jones <lee.jones@linaro.org> Link: https://lore.kernel.org/r/20201002230606.3522954-1-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
Zhen Lei [Tue, 29 Sep 2020 14:14:51 +0000 (22:14 +0800)]
dt-bindings: arm: hisilicon: convert hisilicon,hip04-bootwrapper bindings to json-schema
Convert the Hisilicon Bootwrapper boot method binding to DT schema format
using json-schema.
The property boot-method contains two groups of physical address range
information: bootwrapper and relocation. The "uint32-array" type is not
suitable for it, because the field "address" and "size" may occupy one or
two cells respectively. Use "minItems: 1" and "maxItems: 2" to allow it
can be written in "<addr size addr size>" or "<addr size>, <addr size>"
format.
Zhen Lei [Tue, 29 Sep 2020 14:14:47 +0000 (22:14 +0800)]
dt-bindings: arm: hisilicon: convert system controller bindings to json-schema
Convert the Hisilicon system controller and its variants binding to DT
schema format using json-schema. All of them are grouped into one yaml
file, to help users understand differences and avoid repeated
descriptions.
Zhen Lei [Tue, 29 Sep 2020 14:14:40 +0000 (22:14 +0800)]
dt-bindings: arm: hisilicon: split the dt-bindings of each controller into a separate file
Split the devicetree bindings of each Hisilicon controller from
hisilicon.txt into a separate file, the file name is the compatible name
attach the .txt file name extension.
Zhen Lei [Tue, 29 Sep 2020 14:14:39 +0000 (22:14 +0800)]
dt-bindings: arm: hisilicon: delete the descriptions of HiP05/HiP06 controllers
The compatible strings of Hi6220 SRAM controller, HiP05/HiP06 PCIe-SAS
subsystem controller, HiP05/HiP06 PERI subsystem controller and
HiP05/HiP06 DSA subsystem controller is in syscon.yaml now.
scripts/dtc: only append to HOST_EXTRACFLAGS instead of overwriting
When building with
$ HOST_EXTRACFLAGS=-g make
the expectation is that host tools are built with debug informations.
This however doesn't happen if the Makefile assigns a new value to the
HOST_EXTRACFLAGS instead of appending to it. So use += instead of := for
the first assignment.
Fixes: e3fd9b5384f3 ("scripts/dtc: consolidate include path options in Makefile") Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Rob Herring <robh@kernel.org>
Rob Herring [Mon, 28 Sep 2020 15:22:56 +0000 (10:22 -0500)]
dt-bindings: Fix 'reg' size issues in zynqmp examples
The default sizes in examples for 'reg' are 1 cell each. Fix the
incorrect sizes in zynqmp examples:
Documentation/devicetree/bindings/dma/xilinx/xlnx,zynqmp-dpdma.example.dt.yaml: example-0: dma-controller@fd4c0000:reg:0: [0, 4249616384, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Documentation/devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.example.dt.yaml: example-0: display@fd4a0000:reg:0: [0, 4249485312, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Documentation/devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.example.dt.yaml: example-0: display@fd4a0000:reg:1: [0, 4249526272, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Documentation/devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.example.dt.yaml: example-0: display@fd4a0000:reg:2: [0, 4249530368, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Documentation/devicetree/bindings/display/xlnx/xlnx,zynqmp-dpsub.example.dt.yaml: example-0: display@fd4a0000:reg:3: [0, 4249534464, 0, 4096] is too long
From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml
Extend the example schema with common rules which seems to be not that
obvious:
1. Expecting arrays of phandles to be always ordered, regardless if
"xxx-names" is provided (e.g. clocks),
2. Add example of altering a property based on presence of other
property,
3. Document usage of unevaluatedProperties.
dt-bindings: power: Correct interrupt flags in examples
GPIO_ACTIVE_x flags are not correct in the context of interrupt flags.
These are simple defines so they could be used in DTS but they will not
have the same meaning:
1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
2. GPIO_ACTIVE_LOW = 1 = IRQ_TYPE_EDGE_RISING
Correct the interrupt flags, assuming the author of the code wanted some
logical behavior behind the name "ACTIVE_xxx", this is:
ACTIVE_LOW => IRQ_TYPE_LEVEL_LOW
The clock controller schemas for i.MX 8M Mini, 8M Nano, 8M Plus and 8M
Quad are basically the same. The only minor difference appears on 8M
Quad which needs one more clock.
There is no point to have four schemas for almost the same binding. Any
fixes or changes would have to be duplicated four times.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: nand-controller@33002000:
compatible:0: 'fsl,imx8mm-gpmi-nand' is not one of ['fsl,imx23-gpmi-nand', 'fsl,imx28-gpmi-nand', 'fsl,imx6q-gpmi-nand', 'fsl,imx6sx-gpmi-nand', 'fsl,imx7d-gpmi-nand']
From schema: Documentation/devicetree/bindings/mtd/gpmi-nand.yaml
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: nand-controller@33002000:
compatible: ['fsl,imx8mm-gpmi-nand', 'fsl,imx7d-gpmi-nand'] is too long
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: nand-controller@33002000:
compatible: Additional items are not allowed ('fsl,imx7d-gpmi-nand' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
The i.MX 8M DTSes use two compatibles so update the binding to fix
dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mq-thor96.dt.yaml: interrupt-controller@32e2d000:
compatible: ['fsl,imx8m-irqsteer', 'fsl,imx-irqsteer'] is too long
From schema: Domentation/devicetree/bindings/interrupt-controller/fsl,irqsteer.yaml
arch/arm64/boot/dts/freescale/imx8mq-thor96.dt.yaml: interrupt-controller@32e2d000:
compatible: Additional items are not allowed ('fsl,imx-irqsteer' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
The input clock and number of clock provider cells are not required for
the PMIC to operate. They are needed only for the optional bd718x7
clock driver.
Add also clock-output-names as driver takes use of it.
This fixes dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b: 'clocks' is a required property
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dt.yaml: pmic@4b: '#clock-cells' is a required property
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Acked-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs use two compatibles so update the binding to
fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000: compatible:1: 'syscon' was expected
From schema: Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
compatible: ['fsl,imx8mn-ocotp', 'fsl,imx8mm-ocotp', 'syscon'] is too long
arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: efuse@30350000:
compatible: Additional items are not allowed ('syscon' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: tmu@30260000:
compatible:0: 'fsl,imx8mn-tmu' is not one of ['fsl,imx8mm-tmu', 'fsl,imx8mp-tmu']
From schema: Documentation/devicetree/bindings/thermal/imx8mm-thermal.yaml
arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: tmu@30260000:
compatible: ['fsl,imx8mn-tmu', 'fsl,imx8mm-tmu'] is too long
arch/arm64/boot/dts/freescale/imx8mn-evk.dt.yaml: tmu@30260000:
compatible: Additional items are not allowed ('fsl,imx8mm-tmu' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: reset-controller@30390000:
compatible:0: 'fsl,imx8mm-src' is not one of ['fsl,imx7d-src', 'fsl,imx8mq-src', 'fsl,imx8mp-src']
From schema: Documentation/devicetree/bindings/reset/fsl,imx7-src.yaml
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: reset-controller@30390000:
compatible:1: 'syscon' was expected
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: reset-controller@30390000:
compatible: ['fsl,imx8mm-src', 'fsl,imx8mq-src', 'syscon'] is too long
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml: watchdog@30280000:
compatible:0: 'fsl,imx8mm-wdt' is not one of ['fsl,imx21-wdt']
From schema: Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml: watchdog@30280000:
compatible: ['fsl,imx8mm-wdt', 'fsl,imx21-wdt'] is too long
arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dt.yaml: watchdog@30280000:
compatible: Additional items are not allowed ('fsl,imx21-wdt' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Rob Herring <robh@kernel.org>
The i.MX 8QXP DTSes use two compatibles so update the binding to fix
dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8qxp-mek.dt.yaml: serial@5a060000:
compatible: ['fsl,imx8qxp-lpuart', 'fsl,imx7ulp-lpuart'] is too long
From schema: Documentation/devicetree/bindings/serial/fsl-lpuart.yaml
arch/arm64/boot/dts/freescale/imx8qxp-mek.dt.yaml: serial@5a060000:
compatible: Additional items are not allowed ('fsl,imx7ulp-lpuart' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: pwm@30660000:
compatible:0: 'fsl,imx8mm-pwm' is not one of ['fsl,imx1-pwm', 'fsl,imx27-pwm']
From schema: Documentation/devicetree/bindings/pwm/imx-pwm.yaml
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: pwm@30660000:
compatible: ['fsl,imx8mm-pwm', 'fsl,imx27-pwm'] is too long
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: pwm@30660000:
compatible: Additional items are not allowed ('fsl,imx27-pwm' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: pwm@30660000:
compatible:0: 'fsl,imx8mm-pwm' is not one of ['fsl,imx1-pwm', 'fsl,imx27-pwm']
From schema: Documentation/devicetree/bindings/pwm/imx-pwm.yaml
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: pwm@30660000:
compatible: ['fsl,imx8mm-pwm', 'fsl,imx27-pwm'] is too long
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: pwm@30660000:
compatible: Additional items are not allowed ('fsl,imx27-pwm' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
DTSes with new i.MX 8M SoCs introduce their own compatibles so add them
to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: ddr-pmu@3d800000:
compatible:0: 'fsl,imx8mm-ddr-pmu' is not one of ['fsl,imx8-ddr-pmu', 'fsl,imx8m-ddr-pmu', 'fsl,imx8mp-ddr-pmu']
From schema: Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: ddr-pmu@3d800000:
compatible: ['fsl,imx8mm-ddr-pmu', 'fsl,imx8m-ddr-pmu'] is too long
arch/arm64/boot/dts/freescale/imx8mm-evk.dt.yaml: ddr-pmu@3d800000:
compatible: Additional items are not allowed ('fsl,imx8m-ddr-pmu' was unexpected)
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org>
dt-bindings: gpu: vivante,gc: Add common properties
Add common properties appearing in DTSes (cooling-cells, assigned-clocks
and others) to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mq-evk.dt.yaml: gpu@38000000:
'#cooling-cells', 'assigned-clock-parents', 'assigned-clock-rates', 'assigned-clocks' do not match any of the regexes: 'pinctrl-[0-9]+'
dt-bindings: display: bridge: nwl-dsi: Add common properties
Add common properties appearing in DTSes (assigned-clocks and others) to
fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mq-evk.dt.yaml: mipi-dsi@30a00000:
'assigned-clock-parents', 'assigned-clock-rates', 'assigned-clocks' do not match any of the regexes: '^panel@[0-9]+$', 'pinctrl-[0-9]+'
The i.MX General Power Controller v2 is also an interrupt controller so
document additional properties to fix dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8mq-evk.dt.yaml: gpc@303a0000:
'#interrupt-cells', 'interrupt-controller' do not match any of the regexes: 'pinctrl-[0-9]+'
The Mailbox on i.MX 8QXP (fsl,imx8qxp-mu) can also be compatible with
fsl,imx8-mu-scu (for fast IPC) so adjust the compatibles to fix
dtbs_check warnings like:
arch/arm64/boot/dts/freescale/imx8qxp-mek.dt.yaml: mailbox@5d1f0000:
compatible: ['fsl,imx8-mu-scu', 'fsl,imx8qxp-mu', 'fsl,imx6sx-mu']
is not valid under any of the given schemas (Possible causes of the failure):
arch/arm64/boot/dts/freescale/imx8qxp-mek.dt.yaml: mailbox@5d1f0000:
compatible: ['fsl,imx8-mu-scu', 'fsl,imx8qxp-mu', 'fsl,imx6sx-mu'] is too long
Add common properties appearing in DTSes (controller-data,
wakeup-source) to partially fix dtbs_check warnings like:
arch/arm/boot/dts/exynos5250-snow.dt.yaml: embedded-controller@1e:
'keyboard-controller', 'wakeup-source' do not match any of the regexes: 'pinctrl-[0-9]+'
arch/arm/boot/dts/exynos5800-peach-pi.dt.yaml: cros-ec@0:
'controller-data', 'i2c-tunnel', 'keyboard-controller' do not match any of the regexes: 'pinctrl-[0-9]+'
Add common properties appearing in DTSes (assigned-clock-parents,
assigned-clocks) to fix dtbs_check warnings like:
arch/arm64/boot/dts/exynos/exynos5433-tm2.dt.yaml: system-controller@105c0000:
'assigned-clock-parents', 'assigned-clocks' do not match any of the regexes: 'pinctrl-[0-9]+'
Suman Anna [Fri, 28 Aug 2020 04:14:47 +0000 (23:14 -0500)]
dt-bindings: hwlock: omap: Convert binding to YAML
Convert the current OMAP hwspinlock binding from text format to YAML
format/DT schema, and delete the legacy text binding file.
The new YAML binding conversion is a slightly updated version compared
to the original. The legacy "ti,hwmods" property is now obsolete and
is dropped altogether, and the K3 example is updated to showcase the
actual dts node usage.
Meraki was founded in 2006. The start-up quickly rose to prominence
by being based in part on the MIT Roofnet Project.
In December 2012, Cisco Systems, Inc. bought Meraki.
The "Meraki" branding is still around to this day.
Web site of the company: https://meraki.cisco.com/
Tero Kristo [Tue, 25 Aug 2020 13:31:05 +0000 (16:31 +0300)]
dt-bindings: crypto: sa2ul: fix a DT binding check warning
DT binding check produces a warning about bad cell size:
Documentation/devicetree/bindings/crypto/ti,sa2ul.example.dt.yaml: example-0: crypto@4e00000:reg:0: [0, 81788928, 0, 4608] is too long
From schema: python3.6/site-packages/dtschema/schemas/reg.yaml
Fix this by reducing the address sizes for the example to 1 cell from
current 2.
Fixes: 2ce9a7299bf6 ("dt-bindings: crypto: Add TI SA2UL crypto accelerator documentation") Reported-by: Rob Herring <robh@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: devicetree@vger.kernel.org Signed-off-by: Tero Kristo <t-kristo@ti.com> Link: https://lore.kernel.org/r/20200825133106.21542-2-t-kristo@ti.com Signed-off-by: Rob Herring <robh@kernel.org>
Andre Przywara [Fri, 28 Aug 2020 14:20:13 +0000 (15:20 +0100)]
dt-bindings: timers: sp-804: Convert to json-schema
This converts the DT binding documentation for the ARM SP-804 timer IP
over to json-schema.
Most properties are just carried over, the clocks property requirement
(either one or three clocks) is now formalised and enforced.
As the former binding didn't specify clock-names, and there is no
common name used by the existing DTs, I refrained from adding them in
detail (just allowing the property).
The requirement for the APB clock is enforced by the primecell binding
already.
Rob Herring [Wed, 26 Aug 2020 18:48:50 +0000 (12:48 -0600)]
dt-bindings: phy: Remove phy-stih41x-usb binding
The driver was removed in 2016 in commit fb954c48aea6 ("phy:
stih41x-usb: Remove usb phy driver and dt binding documentation.") and
somehow the DT binding got dropped despite the subject.
Marc Zyngier [Wed, 19 Aug 2020 09:42:55 +0000 (10:42 +0100)]
of: address: Work around missing device_type property in pcie nodes
Recent changes to the DT PCI bus parsing made it mandatory for
device tree nodes describing a PCI controller to have the
'device_type = "pci"' property for the node to be matched.
Although this follows the letter of the specification, it
breaks existing device-trees that have been working fine
for years. Rockchip rk3399-based systems are a prime example
of such collateral damage, and have stopped discovering their
PCI bus.
In order to paper over it, let's add a workaround to the code
matching the device type, and accept as PCI any node that is
named "pcie",
A warning will hopefully nudge the user into updating their
DT to a fixed version if they can, but the incentive is
obviously pretty small.
Fixes: 2f96593ecc37 ("of_address: Add bus type match for pci ranges parser") Suggested-by: Rob Herring <robh+dt@kernel.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20200819094255.474565-1-maz@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
Rob Herring [Thu, 6 Aug 2020 22:50:09 +0000 (16:50 -0600)]
dt-bindings: Validate DT binding schema in a single call
As the number of binding schemas has grown, the time to run
dt_binding_check has gotten pretty slow. A large part of this is due to
the slow startup time of Python (a well documented problem). There's not
currently any benefit to running dt-doc-validate one file at a time, so
let's switch it to run a single rule. Doing this means we loose the make
parallelism, but we can use xargs instead. This speeds up the validation
time from several minutes to <10 sec.
Since the validation is a single step with no output, we move running it
as part of the processed-schema-examples.json target. We also need to
reorder the extra-y entries so the validation is run first rather than
after all the examples are extracted.
Andrei Ziureaev [Thu, 13 Aug 2020 13:26:11 +0000 (14:26 +0100)]
dt-bindings: Use json for processed-schema*
Change the format of processed-schema* from yaml to json to speed up
validation. With json output, using xargs and appending the output won't
work since json has explicit list begin and end characters. Instead,
we pass the schema files as a list in a temp file.
The parsing time for the processed schema goes down from ~2sec to 70ms.
Also, 'make dtbs_check' becomes 33% faster.
Some error messages are affected by this change. For example, "True was
expected" becomes "... is not of type 'boolean'". The order of messages
is also changed.
Signed-off-by: Andrei Ziureaev <andrei.ziureaev@arm.com> Signed-off-by: Rob Herring <robh@kernel.org>
Rob Herring [Thu, 13 Aug 2020 19:34:14 +0000 (13:34 -0600)]
dt-bindings: Bump minimum version of dtschema to 2020.8.1
dtschema release 2020.8.1 gained several additions to help performance.
dt-doc-validate can now take a list of files and directories, and
dt-mk-schema can store the processed schema in JSON which is much faster
to parse than YAML. Utilizing both of these changes results in a 3-4x
speed improvement in running dt_binding_check.
There's also additional meta-schema checks which binding schemas should
be checked against.
scripts/dtc: dtx_diff - make help text formatting consistent
None of the help texts use capitalization, except the one for the -T
option. Drop the capitalization for consistency.
Split the single long line that doesn't fit in 80 characters.
Anson Huang [Tue, 18 Aug 2020 03:34:42 +0000 (11:34 +0800)]
dt-bindings: clock: Update i.MX23 example
Update the i.MX23 clock example to align with MXS AUART binding doc to
avoid below build error:
Documentation/devicetree/bindings/clock/imx23-clock.example.dt.yaml:
serial@8006c000: clocks: [[4294967295, 32]] is too short
Documentation/devicetree/bindings/clock/imx23-clock.example.dt.yaml:
serial@8006c000: 'dmas' is a required property
Documentation/devicetree/bindings/clock/imx23-clock.example.dt.yaml:
serial@8006c000: 'dma-names' is a required property
Anson Huang [Tue, 18 Aug 2020 03:34:41 +0000 (11:34 +0800)]
dt-bindings: clock: Update i.MX28 example
Update the i.MX28 clock example to align with MXS AUART binding doc to
avoid below build error:
Documentation/devicetree/bindings/clock/imx28-clock.example.dt.yaml:
serial@8006a000: clocks: [[4294967295, 45]] is too short
Documentation/devicetree/bindings/clock/imx28-clock.example.dt.yaml:
serial@8006a000: compatible: Additional items are not allowed
('fsl,imx23-auart' was unexpected)
Documentation/devicetree/bindings/clock/imx28-clock.example.dt.yaml:
serial@8006a000: compatible: ['fsl,imx28-auart', 'fsl,imx23-auart']
is too long
Documentation/devicetree/bindings/clock/imx28-clock.example.dt.yaml:
serial@8006a000: 'dmas' is a required property
Documentation/devicetree/bindings/clock/imx28-clock.example.dt.yaml:
serial@8006a000: 'dma-names' is a required property
Thierry Reding [Thu, 6 Aug 2020 15:36:50 +0000 (17:36 +0200)]
of: platform: Destroy child devices symmetrically
Iterate over child devices in reverse when unpopulating a platform
device to make this step symmetrical with the population step. This
fixes an issue in the Tegra DRM driver where upon module unload the
DPAUX controller tries to unregister an I2C controller but will end
up waiting indefinitely because one of the SOR devices is keeping a
reference to it. Since the SOR devices are instantiated after the
DPAUX devices, they would only be removed (and hence release their
reference to the I2C controller) after the DPAUX devices have been
removed.
While destroying the child devices in reverse order helps in this
situation, it isn't fully safe to do so either. An even better way
would be for the child devices to be reordered to match the probe
order, which would work irrespective of the instantiation order.
However, reordering by probe order would be fairly complicated and
doesn't fix any known issues, so we'll go with the simpler fix for
now.