0a3a9d3449c8 checks: Add an interrupt-map check 8fd24744e361 checks: Ensure '#interrupt-cells' only exists in interrupt providers d8d1a9a77863 checks: Drop interrupt provider '#address-cells' check 52a16fd72824 checks: Make interrupt_provider check dependent on interrupts_extended_is_cell 37fd700685da treesource: Maintain phandle label/path on output e33ce1d6a8c7 flattree: Use '\n', not ';' to separate asm pseudo-ops d24cc189dca6 asm: Use assembler macros instead of cpp macros ff3a30c115ad asm: Use .asciz and .ascii instead of .string 5eb5927d81ee fdtdump: fix -Werror=int-to-pointer-cast 0869f8269161 libfdt: Add ALIGNMENT error string 69595a167f06 checks: Fix bus-range check 72d09e2682a4 Makefile: add -Wsign-compare to warning options b587787ef388 checks: Fix signedness comparisons warnings 69bed6c2418f dtc: Wrap phandle validity check 910221185560 fdtget: Fix signedness comparisons warnings d966f08fcd21 tests: Fix signedness comparisons warnings ecfb438c07fa dtc: Fix signedness comparisons warnings: pointer diff 5bec74a6d135 dtc: Fix signedness comparisons warnings: reservednum 24e7f511fd4a fdtdump: Fix signedness comparisons warnings b6910bec1161 Bump version to v1.6.1 21d61d18f968 Fix CID 1461557 4c2ef8f4d14c checks: Introduce is_multiple_of() e59ca36fb70e Make handling of cpp line information more tolerant 0c3fd9b6aceb checks: Drop interrupt_cells_is_cell check 6b3081abc4ac checks: Add check_is_cell() for all phandle+arg properties 2dffc192a77f yamltree: Remove marker ordering dependency 61e513439e40 pylibfdt: Rework "avoid unused variable warning" lines c8bddd106095 tests: add a positive gpio test case ad4abfadb687 checks: replace strstr and strrchr with strends 09c6a6e88718 dtc.h: add strends for suffix matching 9bb9b8d0b4a0 checks: tigthen up nr-gpios prop exception b07b62ee3342 libfdt: Add FDT alignment check to fdt_check_header() a2def5479950 libfdt: Check that the root-node name is empty 4ca61f84dc21 libfdt: Check that there is only one root node 34d708249a91 dtc: Remove -O dtbo support 8e7ff260f755 libfdt: Fix a possible "unchecked return value" warning 88875268c05c checks: Warn on node-name and property name being the same 9d2279e7e6ee checks: Change node-name check to match devicetree spec f527c867a8c6 util: limit gnu_printf format attribute to gcc >= 4.4.0
Reviewed-by: Frank Rowand <frank.rowand@sony.com> Tested-by: Frank Rowand <frank.rowand@sony.com> Signed-off-by: Rob Herring <robh@kernel.org>
Add "samsung,sysreg" regmap and the offset to the ufs shareability
register for setting io coherency of the samsung ufs. "dma-coherent"
property is also required because the driver code needs to know.
Michal Simek [Mon, 18 Oct 2021 06:40:12 +0000 (08:40 +0200)]
dt-bindings: display: xilinx: Fix example with psgtr
Commit cea0f76a483d ("dt-bindings: phy: Add DT bindings for Xilinx ZynqMP
PSGTR PHY") clearly defines #phy-cells as 4. In past 5 cells were used by
it never went to upstream. That's why fix example by using only 4 cells
instead of 5.
Rob Herring [Tue, 26 Oct 2021 15:11:17 +0000 (10:11 -0500)]
dt-bindings: Add a help message when dtschema tools are missing
The dtschema version check works, but is not that clear when dtschema is
either not installed or not in the PATH. Add a separate check and
message if dt-doc-validate is not found.
Tony Lindgren [Fri, 15 Oct 2021 11:33:50 +0000 (14:33 +0300)]
dt-bindings: bus: ti-sysc: Update to use yaml binding
Update the binding for ti-sysc interconnect target module driver to yaml
format.
Note that the old binding was never updated for the need to always specify
also the generic compatible "ti,sysc". This is needed for the auxdata
for platform clockdomain autoidle related functions.
Cc: Rob Herring <robh@kernel.org> Cc: Suman Anna <s-anna@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Link: https://lore.kernel.org/r/20211015113350.35830-1-tony@atomide.com
[robh: dedupe reg-names and clock-names entries] Signed-off-by: Rob Herring <robh@kernel.org>
Nishanth Menon [Tue, 12 Oct 2021 15:48:33 +0000 (10:48 -0500)]
dt-bindings: sram: Allow numbers in sram region node name
Sram regions node name describes the region of reserved memory and can
be names such as l3cache@1000. Permit numbers to be used as part of the
reserved memory node name.
Rob Herring [Wed, 6 Oct 2021 16:43:28 +0000 (11:43 -0500)]
riscv: Use of_get_cpu_hwid()
Replace open coded parsing of CPU nodes' 'reg' property with
of_get_cpu_hwid().
Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: linux-riscv@lists.infradead.org Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20211006164332.1981454-9-robh@kernel.org
Rob Herring [Wed, 6 Oct 2021 16:43:27 +0000 (11:43 -0500)]
powerpc: Use of_get_cpu_hwid()
Replace open coded parsing of CPU nodes' 'reg' property with
of_get_cpu_hwid().
Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20211006164332.1981454-8-robh@kernel.org
Rob Herring [Wed, 6 Oct 2021 16:43:21 +0000 (11:43 -0500)]
of: Add of_get_cpu_hwid() to read hardware ID from CPU nodes
There are various open coded implementions parsing the CPU node 'reg'
property which contains the CPU's hardware ID. Introduce a new function,
of_get_cpu_hwid(), to read the hardware ID.
All the callers should be DT only code, so no need for an empty
function.
dt-bindings: Consider DT_SCHEMA_FILES when finding all json-schema
Setting DT_SCHEMA_FILES allows the user to restrict the
"dt_binding_check" make target to a specified set of DT binding files.
However, yamllint is still run on all available files, which not only
takes time, but also outputs warnings for other binding files the
developer is not interested in.
Fix this by renaming "find_cmd" to "find_all_cmd", introducing a new
"find_cmd" to only return the files specified by DT_SCHEMA_FILES (if
present), and using the latter for yamllint and dt-doc-validate.
dt-bindings: net: wireless: ti,wlcore: Convert to json-schema
The Texas Instruments Wilink 6/7/8 (wl12xx/wl18xx) Wireless LAN
Controllers can be connected via SPI or via SDIO.
Convert the two Device Tree binding documents to json-schema, and merge
them into a single document.
Changeset 5d1c5594b646 ("dt-bindings: net: brcm,unimac-mdio: convert to the json-schema")
renamed: Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt
to: Documentation/devicetree/bindings/net/brcm,unimac-mdio.yaml.
The file name: Documentation/devicetree/bindings/display/intel,ixp46x-rng.yaml
should be, instead: Documentation/devicetree/bindings/rng/intel,ixp46x-rng.yaml.
Changeset b7705ba6d0c4 ("dt-bindings: interrupt-controller: Convert ARM VIC to json-schema")
renamed: Documentation/devicetree/bindings/interrupt-controller/arm,vic.txt
to: Documentation/devicetree/bindings/interrupt-controller/arm,vic.yaml.
Convert the ST NCI (ST21NFCB) NFC controller to DT schema format.
Changes during bindings conversion:
1. Add a new required "reg" property for SPI binding, because SPI child
devices use it as chip-select.
2. Drop the "clock-frequency" property during conversion because it is a
property of I2C bus controller, not I2C slave device. It was also
never used by the driver.
dt-bindings: nfc: st,st21nfca: convert to dtschema
Convert the ST ST21NFCA NFC controller to DT schema format.
Changes during bindings conversion:
1. Add a new required "interrupts" property, because it was missing in
the old bindings by mistake.
2. Drop the "clock-frequency" property during conversion because it is a
property of I2C bus controller, not I2C slave device. It was also
never used by the driver.
Convert the NXP PN532 NFC controller to DT schema format.
Drop the "clock-frequency" property during conversion because it is a
property of I2C bus controller, not I2C slave device. It was also never
used by the driver.
Convert the NXP NCI NFC controller to DT schema format.
Drop the "clock-frequency" property during conversion because it is a
property of I2C bus controller, not I2C slave device. It was also never
used by the driver.
Rob Herring [Mon, 13 Sep 2021 19:28:10 +0000 (14:28 -0500)]
dt-bindings: leds: register-bit-led: Use 'reg' instead of 'offset'
'reg' is the standard property for defining register banks/addresses. Add
it to use for the register address and deprecate 'offset'. This also
allows for using standard node names with unit-addresses. However, since
it is quite possible to have multiple nodes at the same register
address, allow for the unit-address to optionally have the bit
offset. The unit-address format is '@<reg address>[,<bit offset>]'. This
matches the format recently added for nvmem binding which has the same
issue.
Cc: Pavel Machek <pavel@ucw.cz> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: linux-leds@vger.kernel.org Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210913192816.1225025-3-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
Maxime Ripard [Fri, 24 Sep 2021 07:27:56 +0000 (09:27 +0200)]
dt-bindings: net: wireless: Convert ESP ESP8089 binding to a schema
The ESP8089 Wireless Chip is supported by Linux (through an out-of-tree
driver) thanks to its device tree binding.
Now that we have the DT validation in place, let's convert the device
tree bindings for that driver over to a YAML schema.
Cc: "David S. Miller" <davem@davemloft.net> Cc: de Goede <hdegoede@redhat.com> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Kalle Valo <kvalo@codeaurora.org> Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210924072756.869731-4-maxime@cerno.tech
Maxime Ripard [Fri, 24 Sep 2021 07:27:55 +0000 (09:27 +0200)]
dt-bindings: net: dwmac: Fix typo in the R40 compatible
Even though both the driver and the device trees all use the
allwinner,sun8i-r40-gmac compatible, we documented the compatible as
allwinner,sun8i-r40-emac in the binding. Let's fix this.
Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Jose Abreu <joabreu@synopsys.com> Cc: netdev@vger.kernel.org Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210924072756.869731-3-maxime@cerno.tech
additionalProperties prevent any property not explicitly defined in the
binding to be used. Yet, some serial properties like max-speed are valid
and validated through the serial/serial.yaml binding.
Even though the ideal solution would be to use unevaluatedProperties
instead, it's not pratical due to the way the bus bindings have been
described. Let's add max-speed to remove the warning.
Cc: Alistair Francis <alistair@alistair23.me> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jakub Kicinski <kuba@kernel.org> Cc: netdev@vger.kernel.org Cc: Vasily Khoruzhick <anarsoul@gmail.com> Reviewed-by: Alistair Francis <alistair@alistair23.me> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210924072756.869731-2-maxime@cerno.tech
The original binding was mentioning that valid values for the clocks and
clock-names property were one or two clocks from extclk, txco and lpo,
with extclk being deprecated in favor of txco.
However, the current binding lists a valid array as extclk, txco and
lpo, with either one or two items.
While this looks similar, it actually enforces that all the device trees
use either ["extclk"], or ["extclk", "txco"]. That doesn't make much
sense, since the two clocks are said to be equivalent, with one
superseeding the other.
lpo is also not a valid clock anymore, and would be as the third clock
of the list, while we could have only this clock in the previous binding
(and in DTs).
Let's rework the clock clause to allow to have either:
- extclk, and mark it a deprecated
- txco alone
- lpo alone
- txco, lpo
While ["extclk", "lpo"] wouldn't be valid, it wasn't found in any device
tree so it's not an issue in practice.
Similarly, ["lpo", "txco"] is still considered invalid, but it's
generally considered as a best practice to fix the order of clocks.
Cc: "David S. Miller" <davem@davemloft.net> Cc: Jakub Kicinski <kuba@kernel.org> Cc: netdev@vger.kernel.org Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210924072756.869731-1-maxime@cerno.tech
Zev Weiss [Wed, 6 Oct 2021 06:19:42 +0000 (23:19 -0700)]
of: remove duplicate declarations of __of_*_sysfs() functions
When CONFIG_OF_KOBJ was introduced in commit b56b5528f5b3 ("of: make
kobject and bin_attribute support configurable") and #ifdef-ed
versions of these declarations got added, the originals didn't get
removed.
of, numa: Fetch empty NUMA node ID from distance map
There is no device node for the empty NUMA node. However, the
corresponding NUMA node ID and distance map is still valid in
"numa-distance-map-v1" compatible device node.
This fetches the NUMA node ID and distance map for these empty
NUMA node from "numa-distance-map-v1" compatible device node.
Documentation, dt, numa: Add note to empty NUMA node
The empty memory nodes, where no memory resides in, are allowed.
The NUMA node IDs are still valid and parsed, but memory may be
added to them through hotplug afterwards. Currently, QEMU fails
to boot when multiple empty memory nodes are specified. It's
caused by device-tree population failure and duplicated memory
node names.
The device-tree specification doesn't provide how empty NUMA
nodes are handled. Besides, I finds difficulty to get where
this case is documented. So lets add a section for empty memory
nodes to cover it in NUMA binding document.
Rob Herring [Tue, 28 Sep 2021 21:54:07 +0000 (16:54 -0500)]
dt-bindings: w1-gpio: Drop redundant 'maxItems'
Drop another redundant maxItems that snuck into w1-gpio binding.
If a property has an 'items' list, then a 'minItems' or 'maxItems' with the
same size as the list is redundant and can be dropped. Note that is DT
schema specific behavior and not standard json-schema behavior. The tooling
will fixup the final schema adding any unspecified minItems/maxItems.
Fixes: dd2c898bc20b ("dt-bindings: w1: Convert 1-Wire GPIO binding to a schema") Cc: Daniel Mack <zonque@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
Rob Herring [Tue, 28 Sep 2021 22:29:20 +0000 (17:29 -0500)]
dt-bindings: Drop more redundant 'maxItems/minItems'
Another round of removing redundant minItems/maxItems from new schema in
the recent merge window.
If a property has an 'items' list, then a 'minItems' or 'maxItems' with the
same size as the list is redundant and can be dropped. Note that is DT
schema specific behavior and not standard json-schema behavior. The tooling
will fixup the final schema adding any unspecified minItems/maxItems.
Cc: "David S. Miller" <davem@davemloft.net> Cc: Jakub Kicinski <kuba@kernel.org> Cc: Evgeniy Polyakov <zbr@ioremap.net> Cc: Marek Vasut <marex@denx.de> Cc: Joakim Zhang <qiangqing.zhang@nxp.com> Cc: dri-devel@lists.freedesktop.org Cc: netdev@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210928222920.2204761-1-robh@kernel.org
Rob Herring [Fri, 20 Aug 2021 00:14:57 +0000 (19:14 -0500)]
dt-bindings: media: Fix more graph 'unevaluatedProperties' related warnings
The graph schema doesn't allow custom properties on endpoint nodes for
'#/properties/port' and '#/$defs/port-base' should be used instead. This
doesn't matter until 'unevaluatedProperties' support is implemented.
Mark Kettenis [Tue, 21 Sep 2021 18:34:14 +0000 (20:34 +0200)]
dt-bindings: pci: Add DT bindings for apple,pcie
The Apple PCIe host controller is a PCIe host controller with
multiple root ports present in Apple ARM SoC platforms, including
various iPhone and iPad devices and the "Apple Silicon" Macs.
Update the MSI controller binding to add an msi-ranges property
that specifies how MSIs map onto regular interrupts on some other
interrupt controller.
Rob Herring [Mon, 13 Sep 2021 19:28:16 +0000 (14:28 -0500)]
kbuild: Enable dtc 'unit_address_format' warning by default
With all the 'unit_address_format' warnings fixed, enable the warning by
default.
Cc: Michal Marek <michal.lkml@markovi.net> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: linux-kbuild@vger.kernel.org Acked-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org> Acked-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://lore.kernel.org/r/20210913192816.1225025-9-robh@kernel.org
Tom Rini [Fri, 10 Sep 2021 14:24:19 +0000 (10:24 -0400)]
docs: dt: submitting-patches: Add note about other project usage
In an attempt to make it more broadly known that other projects are
equal consumers / users of the device tree bindings, add a note to
submitting patches to say that extra care and consideration may need to
be taken when updating existing bindings.
dt-bindings: riscv: correct e51 and u54-mc CPU bindings
All existing boards with sifive,e51 and sifive,u54-mc use it on top of
sifive,rocket0 compatible:
arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dt.yaml: cpu@0: compatible: 'oneOf' conditional failed, one must be fixed:
['sifive,e51', 'sifive,rocket0', 'riscv'] is too long
Additional items are not allowed ('riscv' was unexpected)
Additional items are not allowed ('sifive,rocket0', 'riscv' were unexpected)
'riscv' was expected
The arm,vexpress-juno binding is missing 'ranges', 'arm,vexpress,site', and
'arm,hbi' properties. Add these and and restrict additional properties to
be nodes only.
Rob Herring [Thu, 19 Aug 2021 18:42:35 +0000 (13:42 -0500)]
dt-bindings: arm,vexpress-juno: Fix 'motherboard' node name
Commit 9d0a36ddcc52 ("arm64: dts: fvp/juno: Fix bus node names") changed
'motherboard' to 'motherboard-bus', but didn't update the schema. In the
mean time, the simple-bus schema started requiring child nodes to have a
unit-address. Update the schema to address both of these issues.
David Brazdil [Fri, 17 Sep 2021 13:14:23 +0000 (14:14 +0100)]
of: restricted dma: Fix condition for rmem init
of_dma_set_restricted_buffer fails to handle negative return values from
of_property_count_elems_of_size, e.g. when the property does not exist.
This results in an attempt to assign a non-existent reserved memory
region to the device and a warning being printed. Fix the condition to
take negative values into account.
Fixes: f3cfd136aef0 ("of: restricted dma: Don't fail device probe on rmem init failure") Cc: Will Deacon <will@kernel.org> Signed-off-by: David Brazdil <dbrazdil@google.com> Acked-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20210917131423.2760155-1-dbrazdil@google.com Signed-off-by: Rob Herring <robh@kernel.org>
Changeset dd2c898bc20b ("dt-bindings: w1: Convert 1-Wire GPIO binding to a schema")
renamed: Documentation/devicetree/bindings/w1/w1-gpio.txt
to: Documentation/devicetree/bindings/w1/w1-gpio.yaml.
Some PHYs pointed to by "phy-handle" will never bind to a driver until a
consumer attaches to it. And when the consumer attaches to it, they get
forcefully bound to a generic PHY driver. In such cases, parsing the
phy-handle property and creating a device link will prevent the consumer
from ever probing. We don't want that. So revert support for
"phy-handle" property until we come up with a better mechanism for
binding PHYs to generic drivers before a consumer tries to attach to it.
Rob Herring [Mon, 13 Sep 2021 14:51:46 +0000 (09:51 -0500)]
kbuild: Enable DT schema checks for %.dtb targets
It is possible to build a single dtb, but not with DT schema validation
enabled. Enable the schema validation to run for %.dtb and %.dtbo
targets. Anyone building a dtb for a specific platform *should* pay
attention to schema warnings.
This could be supported with a separate %.dt.yaml target instead.
However, the .dt.yaml format is considered an intermediate format and
could possibly go away at some point if schema checking is integrated
into dtc. Also, the plan is to enable the schema checks by default once
platforms are free of warnings, and this is a move in that direction.
Maxime Ripard [Wed, 1 Sep 2021 09:18:05 +0000 (11:18 +0200)]
dt-bindings: Convert Reserved Memory binding to a schema
Convert the reserved memory bindings to DT schema format. The bindings
are split into schemas for clients, common reserved memory node
properties and a specific binding for shared-dma-pool.