Commit e7bd3e24 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'devicetree-fixes-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull Devicetree fixes from Rob Herring:

 - Update checkpatch.pl to use DT vendor-prefixes.yaml

 - Fix DT binding references to files converted to DT schema

 - Clean-up Arm CPU binding examples to match schema

 - Add Sifive block versioning scheme documentation

 - Pass binding directory base to validation tools for reference lookups

* tag 'devicetree-fixes-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  checkpatch.pl: Update DT vendor prefix check
  dt: bindings: mtd: replace references to nand.txt with nand-controller.yaml
  dt-bindings: interrupt-controller: arm,gic: Fix schema errors in example
  dt-bindings: arm: Clean up CPU binding examples
  dt: fix refs that were renamed to json with the same file name
  dt-bindings: Pass binding directory to validation tools
  dt-bindings: sifive: describe sifive-blocks versioning
parents 86c2f5d6 852d095d
...@@ -5,7 +5,7 @@ DT_MK_SCHEMA ?= dt-mk-schema ...@@ -5,7 +5,7 @@ DT_MK_SCHEMA ?= dt-mk-schema
DT_MK_SCHEMA_FLAGS := $(if $(DT_SCHEMA_FILES), -u) DT_MK_SCHEMA_FLAGS := $(if $(DT_SCHEMA_FILES), -u)
quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<) quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<)
cmd_chk_binding = $(DT_DOC_CHECKER) $< ; \ cmd_chk_binding = $(DT_DOC_CHECKER) -u $(srctree)/$(src) $< ; \
$(DT_EXTRACT_EX) $< > $@ $(DT_EXTRACT_EX) $< > $@
$(obj)/%.example.dts: $(src)/%.yaml FORCE $(obj)/%.example.dts: $(src)/%.yaml FORCE
......
...@@ -216,7 +216,7 @@ Example: ...@@ -216,7 +216,7 @@ Example:
#size-cells = <0>; #size-cells = <0>;
A57_0: cpu@0 { A57_0: cpu@0 {
compatible = "arm,cortex-a57","arm,armv8"; compatible = "arm,cortex-a57";
reg = <0x0 0x0>; reg = <0x0 0x0>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
...@@ -225,7 +225,7 @@ Example: ...@@ -225,7 +225,7 @@ Example:
..... .....
A53_0: cpu@100 { A53_0: cpu@100 {
compatible = "arm,cortex-a53","arm,armv8"; compatible = "arm,cortex-a53";
reg = <0x0 0x100>; reg = <0x0 0x100>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
......
...@@ -118,7 +118,7 @@ cpus { ...@@ -118,7 +118,7 @@ cpus {
}; };
A57_0: cpu@0 { A57_0: cpu@0 {
compatible = "arm,cortex-a57","arm,armv8"; compatible = "arm,cortex-a57";
reg = <0x0 0x0>; reg = <0x0 0x0>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
...@@ -129,7 +129,7 @@ cpus { ...@@ -129,7 +129,7 @@ cpus {
}; };
A57_1: cpu@1 { A57_1: cpu@1 {
compatible = "arm,cortex-a57","arm,armv8"; compatible = "arm,cortex-a57";
reg = <0x0 0x1>; reg = <0x0 0x1>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
...@@ -140,7 +140,7 @@ cpus { ...@@ -140,7 +140,7 @@ cpus {
}; };
A53_0: cpu@100 { A53_0: cpu@100 {
compatible = "arm,cortex-a53","arm,armv8"; compatible = "arm,cortex-a53";
reg = <0x0 0x100>; reg = <0x0 0x100>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
...@@ -151,7 +151,7 @@ cpus { ...@@ -151,7 +151,7 @@ cpus {
}; };
A53_1: cpu@101 { A53_1: cpu@101 {
compatible = "arm,cortex-a53","arm,armv8"; compatible = "arm,cortex-a53";
reg = <0x0 0x101>; reg = <0x0 0x101>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
...@@ -162,7 +162,7 @@ cpus { ...@@ -162,7 +162,7 @@ cpus {
}; };
A53_2: cpu@102 { A53_2: cpu@102 {
compatible = "arm,cortex-a53","arm,armv8"; compatible = "arm,cortex-a53";
reg = <0x0 0x102>; reg = <0x0 0x102>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
...@@ -173,7 +173,7 @@ cpus { ...@@ -173,7 +173,7 @@ cpus {
}; };
A53_3: cpu@103 { A53_3: cpu@103 {
compatible = "arm,cortex-a53","arm,armv8"; compatible = "arm,cortex-a53";
reg = <0x0 0x103>; reg = <0x0 0x103>;
device_type = "cpu"; device_type = "cpu";
enable-method = "psci"; enable-method = "psci";
......
...@@ -41,7 +41,7 @@ Examples: ...@@ -41,7 +41,7 @@ Examples:
Consumer: Consumer:
======== ========
See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt and See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt and
Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt for Documentation/devicetree/bindings/interrupt-controller/arm,gic.yaml for
further details. further details.
An interrupt consumer on an SoC using crossbar will use: An interrupt consumer on an SoC using crossbar will use:
......
...@@ -35,7 +35,7 @@ board device tree, including the system base clock, as selected by XOM[0] ...@@ -35,7 +35,7 @@ board device tree, including the system base clock, as selected by XOM[0]
pin of the SoC. Refer to generic fixed rate clock bindings pin of the SoC. Refer to generic fixed rate clock bindings
documentation[1] for more information how to specify these clocks. documentation[1] for more information how to specify these clocks.
[1] Documentation/devicetree/bindings/clock/fixed-clock.txt [1] Documentation/devicetree/bindings/clock/fixed-clock.yaml
Example: Clock controller node: Example: Clock controller node:
......
...@@ -92,6 +92,8 @@ properties: ...@@ -92,6 +92,8 @@ properties:
minItems: 2 minItems: 2
maxItems: 4 maxItems: 4
ranges: true
interrupts: interrupts:
description: Interrupt source of the parent interrupt controller on description: Interrupt source of the parent interrupt controller on
secondary GICs, or VGIC maintenance interrupt on primary GIC (see secondary GICs, or VGIC maintenance interrupt on primary GIC (see
...@@ -197,28 +199,28 @@ examples: ...@@ -197,28 +199,28 @@ examples:
interrupt-controller@e1101000 { interrupt-controller@e1101000 {
compatible = "arm,gic-400"; compatible = "arm,gic-400";
#interrupt-cells = <3>; #interrupt-cells = <3>;
#address-cells = <2>; #address-cells = <1>;
#size-cells = <2>; #size-cells = <1>;
interrupt-controller; interrupt-controller;
interrupts = <1 8 0xf04>; interrupts = <1 8 0xf04>;
ranges = <0 0 0 0xe1100000 0 0x100000>; ranges = <0 0xe1100000 0x100000>;
reg = <0x0 0xe1110000 0 0x01000>, reg = <0xe1110000 0x01000>,
<0x0 0xe112f000 0 0x02000>, <0xe112f000 0x02000>,
<0x0 0xe1140000 0 0x10000>, <0xe1140000 0x10000>,
<0x0 0xe1160000 0 0x10000>; <0xe1160000 0x10000>;
v2m0: v2m@8000 { v2m0: v2m@80000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
msi-controller; msi-controller;
reg = <0x0 0x80000 0 0x1000>; reg = <0x80000 0x1000>;
}; };
//... //...
v2mN: v2m@9000 { v2mN: v2m@90000 {
compatible = "arm,gic-v2m-frame"; compatible = "arm,gic-v2m-frame";
msi-controller; msi-controller;
reg = <0x0 0x90000 0 0x1000>; reg = <0x90000 0x1000>;
}; };
}; };
... ...
...@@ -23,7 +23,7 @@ Required properties: ...@@ -23,7 +23,7 @@ Required properties:
- marvell,spi-base : List of GIC base SPI interrupts, one for each - marvell,spi-base : List of GIC base SPI interrupts, one for each
ODMI frame. Those SPI interrupts are 0-based, ODMI frame. Those SPI interrupts are 0-based,
i.e marvell,spi-base = <128> will use SPI #96. i.e marvell,spi-base = <128> will use SPI #96.
See Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt See Documentation/devicetree/bindings/interrupt-controller/arm,gic.yaml
for details about the GIC Device Tree binding. for details about the GIC Device Tree binding.
Example: Example:
......
...@@ -15,7 +15,7 @@ Optional properties: ...@@ -15,7 +15,7 @@ Optional properties:
- power-supply: specifies the power source. It can either be a regulator - power-supply: specifies the power source. It can either be a regulator
or a gpio which enables a regulator, i.e. a regulator-fixed as or a gpio which enables a regulator, i.e. a regulator-fixed as
described in described in
Documentation/devicetree/bindings/regulator/fixed-regulator.txt Documentation/devicetree/bindings/regulator/fixed-regulator.yaml
Example: Example:
......
...@@ -24,7 +24,7 @@ Optional children nodes: ...@@ -24,7 +24,7 @@ Optional children nodes:
Children nodes represent the available nand chips. Children nodes represent the available nand chips.
Other properties: Other properties:
see Documentation/devicetree/bindings/mtd/nand.txt for generic bindings. see Documentation/devicetree/bindings/mtd/nand-controller.yaml for generic bindings.
Example demonstrate on AXG SoC: Example demonstrate on AXG SoC:
......
...@@ -101,12 +101,12 @@ Required properties: ...@@ -101,12 +101,12 @@ Required properties:
number (e.g., 0, 1, 2, etc.) number (e.g., 0, 1, 2, etc.)
- #address-cells : see partition.txt - #address-cells : see partition.txt
- #size-cells : see partition.txt - #size-cells : see partition.txt
- nand-ecc-strength : see nand.txt - nand-ecc-strength : see nand-controller.yaml
- nand-ecc-step-size : must be 512 or 1024. See nand.txt - nand-ecc-step-size : must be 512 or 1024. See nand-controller.yaml
Optional properties: Optional properties:
- nand-on-flash-bbt : boolean, to enable the on-flash BBT for this - nand-on-flash-bbt : boolean, to enable the on-flash BBT for this
chip-select. See nand.txt chip-select. See nand-controller.yaml
- brcm,nand-oob-sector-size : integer, to denote the spare area sector size - brcm,nand-oob-sector-size : integer, to denote the spare area sector size
expected for the ECC layout in use. This size, in expected for the ECC layout in use. This size, in
addition to the strength and step-size, addition to the strength and step-size,
......
...@@ -22,16 +22,16 @@ Sub-nodes: ...@@ -22,16 +22,16 @@ Sub-nodes:
select is connected. select is connected.
Optional properties: Optional properties:
- nand-ecc-step-size: see nand.txt for details. - nand-ecc-step-size: see nand-controller.yaml for details.
If present, the value must be If present, the value must be
512 for "altr,socfpga-denali-nand" 512 for "altr,socfpga-denali-nand"
1024 for "socionext,uniphier-denali-nand-v5a" 1024 for "socionext,uniphier-denali-nand-v5a"
1024 for "socionext,uniphier-denali-nand-v5b" 1024 for "socionext,uniphier-denali-nand-v5b"
- nand-ecc-strength: see nand.txt for details. Valid values are: - nand-ecc-strength: see nand-controller.yaml for details. Valid values are:
8, 15 for "altr,socfpga-denali-nand" 8, 15 for "altr,socfpga-denali-nand"
8, 16, 24 for "socionext,uniphier-denali-nand-v5a" 8, 16, 24 for "socionext,uniphier-denali-nand-v5a"
8, 16 for "socionext,uniphier-denali-nand-v5b" 8, 16 for "socionext,uniphier-denali-nand-v5b"
- nand-ecc-maximize: see nand.txt for details - nand-ecc-maximize: see nand-controller.yaml for details
The chip nodes may optionally contain sub-nodes describing partitions of the The chip nodes may optionally contain sub-nodes describing partitions of the
address space. See partition.txt for more detail. address space. See partition.txt for more detail.
......
...@@ -30,9 +30,9 @@ Optional properties: ...@@ -30,9 +30,9 @@ Optional properties:
command is asserted. Zero means one cycle, 255 means 256 command is asserted. Zero means one cycle, 255 means 256
cycles. cycles.
- bank: default NAND bank to use (0-3 are valid, 0 is the default). - bank: default NAND bank to use (0-3 are valid, 0 is the default).
- nand-ecc-mode : see nand.txt - nand-ecc-mode : see nand-controller.yaml
- nand-ecc-strength : see nand.txt - nand-ecc-strength : see nand-controller.yaml
- nand-ecc-step-size : see nand.txt - nand-ecc-step-size : see nand-controller.yaml
Can support 1-bit HW ECC (default) or if stronger correction is required, Can support 1-bit HW ECC (default) or if stronger correction is required,
software-based BCH. software-based BCH.
......
...@@ -8,7 +8,7 @@ explained in a separate documents - please refer to ...@@ -8,7 +8,7 @@ explained in a separate documents - please refer to
Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt
For NAND specific properties such as ECC modes or bus width, please refer to For NAND specific properties such as ECC modes or bus width, please refer to
Documentation/devicetree/bindings/mtd/nand.txt Documentation/devicetree/bindings/mtd/nand-controller.yaml
Required properties: Required properties:
......
...@@ -7,7 +7,7 @@ Required properties: ...@@ -7,7 +7,7 @@ Required properties:
NAND controller's registers. The second contains base NAND controller's registers. The second contains base
physical address and size of NAND controller's buffer. physical address and size of NAND controller's buffer.
- interrupts: Interrupt number for nfc. - interrupts: Interrupt number for nfc.
- nand-bus-width: See nand.txt. - nand-bus-width: See nand-controller.yaml.
- nand-ecc-mode: Support none and hw ecc mode. - nand-ecc-mode: Support none and hw ecc mode.
- #address-cells: Partition address, should be set 1. - #address-cells: Partition address, should be set 1.
- #size-cells: Partition size, should be set 1. - #size-cells: Partition size, should be set 1.
......
...@@ -36,29 +36,29 @@ Children nodes represent the available NAND chips. ...@@ -36,29 +36,29 @@ Children nodes represent the available NAND chips.
Required properties: Required properties:
- reg: shall contain the native Chip Select ids (0-3). - reg: shall contain the native Chip Select ids (0-3).
- nand-rb: see nand.txt (0-1). - nand-rb: see nand-controller.yaml (0-1).
Optional properties: Optional properties:
- marvell,nand-keep-config: orders the driver not to take the timings - marvell,nand-keep-config: orders the driver not to take the timings
from the core and leaving them completely untouched. Bootloader from the core and leaving them completely untouched. Bootloader
timings will then be used. timings will then be used.
- label: MTD name. - label: MTD name.
- nand-on-flash-bbt: see nand.txt. - nand-on-flash-bbt: see nand-controller.yaml.
- nand-ecc-mode: see nand.txt. Will use hardware ECC if not specified. - nand-ecc-mode: see nand-controller.yaml. Will use hardware ECC if not specified.
- nand-ecc-algo: see nand.txt. This property is essentially useful when - nand-ecc-algo: see nand-controller.yaml. This property is essentially useful when
not using hardware ECC. Howerver, it may be added when using hardware not using hardware ECC. Howerver, it may be added when using hardware
ECC for clarification but will be ignored by the driver because ECC ECC for clarification but will be ignored by the driver because ECC
mode is chosen depending on the page size and the strength required by mode is chosen depending on the page size and the strength required by
the NAND chip. This value may be overwritten with nand-ecc-strength the NAND chip. This value may be overwritten with nand-ecc-strength
property. property.
- nand-ecc-strength: see nand.txt. - nand-ecc-strength: see nand-controller.yaml.
- nand-ecc-step-size: see nand.txt. Marvell's NAND flash controller does - nand-ecc-step-size: see nand-controller.yaml. Marvell's NAND flash controller does
use fixed strength (1-bit for Hamming, 16-bit for BCH), so the actual use fixed strength (1-bit for Hamming, 16-bit for BCH), so the actual
step size will shrink or grow in order to fit the required strength. step size will shrink or grow in order to fit the required strength.
Step sizes are not completely random for all and follow certain Step sizes are not completely random for all and follow certain
patterns described in AN-379, "Marvell SoC NFC ECC". patterns described in AN-379, "Marvell SoC NFC ECC".
See Documentation/devicetree/bindings/mtd/nand.txt for more details on See Documentation/devicetree/bindings/mtd/nand-controller.yaml for more details on
generic bindings. generic bindings.
......
...@@ -4,9 +4,9 @@ Required properties: ...@@ -4,9 +4,9 @@ Required properties:
- compatible: "fsl,imxXX-nand" - compatible: "fsl,imxXX-nand"
- reg: address range of the nfc block - reg: address range of the nfc block
- interrupts: irq to be used - interrupts: irq to be used
- nand-bus-width: see nand.txt - nand-bus-width: see nand-controller.yaml
- nand-ecc-mode: see nand.txt - nand-ecc-mode: see nand-controller.yaml
- nand-on-flash-bbt: see nand.txt - nand-on-flash-bbt: see nand-controller.yaml
Example: Example:
......
...@@ -26,14 +26,14 @@ Optional children node properties: ...@@ -26,14 +26,14 @@ Optional children node properties:
"hw" is supported. "hw" is supported.
- nand-ecc-algo: string, algorithm of NAND ECC. - nand-ecc-algo: string, algorithm of NAND ECC.
Supported values with "hw" ECC mode are: "rs", "bch". Supported values with "hw" ECC mode are: "rs", "bch".
- nand-bus-width : See nand.txt - nand-bus-width : See nand-controller.yaml
- nand-on-flash-bbt: See nand.txt - nand-on-flash-bbt: See nand-controller.yaml
- nand-ecc-strength: integer representing the number of bits to correct - nand-ecc-strength: integer representing the number of bits to correct
per ECC step (always 512). Supported strength using HW ECC per ECC step (always 512). Supported strength using HW ECC
modes are: modes are:
- RS: 4, 6, 8 - RS: 4, 6, 8
- BCH: 4, 8, 14, 16 - BCH: 4, 8, 14, 16
- nand-ecc-maximize: See nand.txt - nand-ecc-maximize: See nand-controller.yaml
- nand-is-boot-medium: Makes sure only ECC strengths supported by the boot ROM - nand-is-boot-medium: Makes sure only ECC strengths supported by the boot ROM
are chosen. are chosen.
- wp-gpios: GPIO specifier for the write protect pin. - wp-gpios: GPIO specifier for the write protect pin.
......
* Oxford Semiconductor OXNAS NAND Controller * Oxford Semiconductor OXNAS NAND Controller
Please refer to nand.txt for generic information regarding MTD NAND bindings. Please refer to nand-controller.yaml for generic information regarding MTD NAND bindings.
Required properties: Required properties:
- compatible: "oxsemi,ox820-nand" - compatible: "oxsemi,ox820-nand"
......
...@@ -47,8 +47,8 @@ Required properties: ...@@ -47,8 +47,8 @@ Required properties:
- #size-cells: see partition.txt - #size-cells: see partition.txt
Optional properties: Optional properties:
- nand-bus-width: see nand.txt - nand-bus-width: see nand-controller.yaml
- nand-ecc-strength: see nand.txt. If not specified, then ECC strength will - nand-ecc-strength: see nand-controller.yaml. If not specified, then ECC strength will
be used according to chip requirement and available be used according to chip requirement and available
OOB size. OOB size.
......
...@@ -6,7 +6,7 @@ Required properties: ...@@ -6,7 +6,7 @@ Required properties:
"samsung,s3c2412-nand" "samsung,s3c2412-nand"
"samsung,s3c2440-nand" "samsung,s3c2440-nand"
- reg : register's location and length. - reg : register's location and length.
- #address-cells, #size-cells : see nand.txt - #address-cells, #size-cells : see nand-controller.yaml
- clocks : phandle to the nand controller clock - clocks : phandle to the nand controller clock
- clock-names : must contain "nand" - clock-names : must contain "nand"
...@@ -14,8 +14,8 @@ Optional child nodes: ...@@ -14,8 +14,8 @@ Optional child nodes:
Child nodes representing the available nand chips. Child nodes representing the available nand chips.
Optional child properties: Optional child properties:
- nand-ecc-mode : see nand.txt - nand-ecc-mode : see nand-controller.yaml
- nand-on-flash-bbt : see nand.txt - nand-on-flash-bbt : see nand-controller.yaml
Each child device node may optionally contain a 'partitions' sub-node, Each child device node may optionally contain a 'partitions' sub-node,
which further contains sub-nodes describing the flash partition mapping. which further contains sub-nodes describing the flash partition mapping.
......
...@@ -24,9 +24,9 @@ Required properties: ...@@ -24,9 +24,9 @@ Required properties:
- reg: describes the CS lines assigned to the NAND device. - reg: describes the CS lines assigned to the NAND device.
Optional properties: Optional properties:
- nand-on-flash-bbt: see nand.txt - nand-on-flash-bbt: see nand-controller.yaml
- nand-ecc-strength: see nand.txt - nand-ecc-strength: see nand-controller.yaml
- nand-ecc-step-size: see nand.txt - nand-ecc-step-size: see nand-controller.yaml
The following ECC strength and step size are currently supported: The following ECC strength and step size are currently supported:
- nand-ecc-strength = <1>, nand-ecc-step-size = <512> (Hamming) - nand-ecc-strength = <1>, nand-ecc-step-size = <512> (Hamming)
......
...@@ -11,7 +11,7 @@ Required properties: ...@@ -11,7 +11,7 @@ Required properties:
- #size-cells: <0> - #size-cells: <0>
Children nodes represent the available NAND chips. Children nodes represent the available NAND chips.
See Documentation/devicetree/bindings/mtd/nand.txt for generic bindings. See Documentation/devicetree/bindings/mtd/nand-controller.yaml for generic bindings.
Example: Example:
......
...@@ -25,14 +25,14 @@ only handle one NAND chip. ...@@ -25,14 +25,14 @@ only handle one NAND chip.
Required properties: Required properties:
- compatible: Should be set to "fsl,vf610-nfc-cs". - compatible: Should be set to "fsl,vf610-nfc-cs".
- nand-bus-width: see nand.txt - nand-bus-width: see nand-controller.yaml
- nand-ecc-mode: see nand.txt - nand-ecc-mode: see nand-controller.yaml
Required properties for hardware ECC: Required properties for hardware ECC:
- nand-ecc-strength: supported strengths are 24 and 32 bit (see nand.txt) - nand-ecc-strength: supported strengths are 24 and 32 bit (see nand-controller.yaml)
- nand-ecc-step-size: step size equals page size, currently only 2k pages are - nand-ecc-step-size: step size equals page size, currently only 2k pages are
supported supported
- nand-on-flash-bbt: see nand.txt - nand-on-flash-bbt: see nand-controller.yaml
Example: Example:
......
DT compatible string versioning for SiFive open-source IP blocks
This document describes the version specification for DT "compatible"
strings for open-source SiFive IP blocks. HDL for these IP blocks
can be found in this public repository:
https://github.com/sifive/sifive-blocks
IP block-specific DT compatible strings are contained within the HDL,
in the form "sifive,<ip-block-name><integer version number>".
An example is "sifive,uart0" from:
https://github.com/sifive/sifive-blocks/blob/v1.0/src/main/scala/devices/uart/UART.scala#L43
Until these IP blocks (or IP integration) support version
auto-discovery, the maintainers of these IP blocks intend to increment
the suffixed number in the compatible string whenever the software
interface to these IP blocks changes, or when the functionality of the
underlying IP blocks changes in a way that software should be aware of.
Driver developers can use compatible string "match" values such as
"sifive,uart0" to indicate that their driver is compatible with the
register interface and functionality associated with the relevant
upstream sifive-blocks commits. It is expected that most drivers will
match on these IP block-specific compatible strings.
DT data authors, when writing data for a particular SoC, should
continue to specify an SoC-specific compatible string value, such as
"sifive,fu540-c000-uart". This way, if SoC-specific
integration-specific bug fixes or workarounds are needed, the kernel
or other system software can match on this string to apply them. The
IP block-specific compatible string (such as "sifive,uart0") should
then be specified as a subsequent value.
An example of this style:
compatible = "sifive,fu540-c000-uart", "sifive,uart0";
...@@ -2768,7 +2768,7 @@ AVIA HX711 ANALOG DIGITAL CONVERTER IIO DRIVER ...@@ -2768,7 +2768,7 @@ AVIA HX711 ANALOG DIGITAL CONVERTER IIO DRIVER
M: Andreas Klinger <ak@it-klinger.de> M: Andreas Klinger <ak@it-klinger.de>
L: linux-iio@vger.kernel.org L: linux-iio@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/iio/adc/avia-hx711.txt F: Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
F: drivers/iio/adc/hx711.c F: drivers/iio/adc/hx711.c
AX.25 NETWORK LAYER AX.25 NETWORK LAYER
...@@ -14351,7 +14351,7 @@ SIMPLEFB FB DRIVER ...@@ -14351,7 +14351,7 @@ SIMPLEFB FB DRIVER
M: Hans de Goede <hdegoede@redhat.com> M: Hans de Goede <hdegoede@redhat.com>
L: linux-fbdev@vger.kernel.org L: linux-fbdev@vger.kernel.org
S: Maintained S: Maintained
F: Documentation/devicetree/bindings/display/simple-framebuffer.txt F: Documentation/devicetree/bindings/display/simple-framebuffer.yaml
F: drivers/video/fbdev/simplefb.c F: drivers/video/fbdev/simplefb.c
F: include/linux/platform_data/simplefb.h F: include/linux/platform_data/simplefb.h
......
...@@ -298,7 +298,7 @@ DT_BINDING_DIR := Documentation/devicetree/bindings ...@@ -298,7 +298,7 @@ DT_BINDING_DIR := Documentation/devicetree/bindings
DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.yaml DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.yaml
quiet_cmd_dtb_check = CHECK $@ quiet_cmd_dtb_check = CHECK $@
cmd_dtb_check = $(DT_CHECKER) -p $(DT_TMP_SCHEMA) $@ ; cmd_dtb_check = $(DT_CHECKER) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ ;
define rule_dtc_dt_yaml define rule_dtc_dt_yaml
$(call cmd_and_fixdep,dtc,yaml) $(call cmd_and_fixdep,dtc,yaml)
......
...@@ -3027,7 +3027,7 @@ sub process { ...@@ -3027,7 +3027,7 @@ sub process {
my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g; my @compats = $rawline =~ /\"([a-zA-Z0-9\-\,\.\+_]+)\"/g;
my $dt_path = $root . "/Documentation/devicetree/bindings/"; my $dt_path = $root . "/Documentation/devicetree/bindings/";
my $vp_file = $dt_path . "vendor-prefixes.txt"; my $vp_file = $dt_path . "vendor-prefixes.yaml";
foreach my $compat (@compats) { foreach my $compat (@compats) {
my $compat2 = $compat; my $compat2 = $compat;
...@@ -3042,7 +3042,7 @@ sub process { ...@@ -3042,7 +3042,7 @@ sub process {
next if $compat !~ /^([a-zA-Z0-9\-]+)\,/; next if $compat !~ /^([a-zA-Z0-9\-]+)\,/;
my $vendor = $1; my $vendor = $1;
`grep -Eq "^$vendor\\b" $vp_file`; `grep -Eq "\\"\\^\Q$vendor\E,\\.\\*\\":" $vp_file`;
if ( $? >> 8 ) { if ( $? >> 8 ) {
WARN("UNDOCUMENTED_DT_STRING", WARN("UNDOCUMENTED_DT_STRING",
"DT compatible string vendor \"$vendor\" appears un-documented -- check $vp_file\n" . $herecurr); "DT compatible string vendor \"$vendor\" appears un-documented -- check $vp_file\n" . $herecurr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment