Re: [PATCH v2] dt-bindings: incomplete-devices: document devices without bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 11, 2024 at 2:59 AM Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> There are devices in the wild with non-updatable firmware coming with
> ACPI tables with rejected compatibles, e.g. "ltr,ltrf216a".  Linux
> kernel still supports this device via ACPI PRP0001, however the
> compatible was never accepted to bindings.
>
> There are also several early PowerPC or SPARC platforms using
> compatibles for their OpenFirmware, but without in-tree DTS.  Often the
> compatible is not correct in terms of Devicetree specification,
> e.g. missing vendor prefix.
>
> Finally there are also Linux-specific tools and test code with
> compatibles.
>
> Add a schema covering above cases purely to satisfy the DT schema and
> scripts/checkpatch.pl checks for undocumented compatibles.  For
> ltr,ltrf216a this also documents the consensus: compatible is allowed
> only via ACPI PRP0001, but not bindings.
>
> Link: https://lore.kernel.org/all/20240705095047.90558-1-marex@xxxxxxx/
> Link: https://lore.kernel.org/lkml/20220731173446.7400bfa8@jic23-huawei/T/#me55be502302d70424a85368c2645c89f860b7b40
> Cc: Marek Vasut <marex@xxxxxxx>
> Cc: Jonathan Cameron <jic23@xxxxxxxxxx>
> Cc: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
>
> ---
>
> Changes in v2:
> 1. Rename to incomplete-devices.yaml
> 2. Add many compatibles based on Rob's feedback, rewrite descriptions in
>    the schema.
> ---
>  .../bindings/incomplete-devices.yaml          | 139 ++++++++++++++++++
>  1 file changed, 139 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/incomplete-devices.yaml
>
> diff --git a/Documentation/devicetree/bindings/incomplete-devices.yaml b/Documentation/devicetree/bindings/incomplete-devices.yaml
> new file mode 100644
> index 000000000000..d690d44560fd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/incomplete-devices.yaml
> @@ -0,0 +1,139 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/incomplete-devices.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rejected or Incomplete Devices
> +
> +maintainers:
> +  - Rob Herring <robh@xxxxxxxxxx>
> +
> +description:
> +  Some devices will not or should not get a proper Devicetree bindings, but
> +  their compatibles are present in Linux drivers for various reasons.
> +
> +  Examples are devices using ACPI PRP0001 with non-updatable firmware/ACPI
> +  tables or old PowerPC platforms without in-tree DTS.
> +
> +  Following list of devices is an incomplete schema with a goal to pass DT schema
> +  checks on undocumented compatibles but also reject any DTS file using such
> +  un-approved compatible.
> +
> +  Usage of any of following compatibles is not allowed in Devicetree sources,
> +  even if they come from immutable firmware.
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - description:
> +          Rejected compatibles in Devicetree, but used in ACPI-based devices
> +          with non-updatable firmware/ACPI tables (via ACPI PRP0001)
> +        enum:
> +          - broadcom,bcm5241
> +          - ltr,ltrf216a
> +
> +      - description: Incorrect compatibles used on Macintosh devices

They were correct at the time. Rules/standards evolve though. I would
just say 'Legacy" rather than "Incorrect".

> +        enum:
> +          - adm1030
> +          - bmac+
> +          - heathrow-media-bay
> +          - keylargo-media-bay
> +          - lm87cimt
> +          - MAC,adm1030
> +          - MAC,ds1775
> +          - max6690
> +          - ohare-media-bay
> +          - ohare-swim3
> +          - smu-sat
> +          - swim3
> +
> +      - description: Incorrect compatibles used on other PowerPC devices
> +        enum:
> +          - 1682m-rng
> +          - IBM,lhca
> +          - IBM,lhea
> +          - IBM,lhea-ethernet

> +          - mpc5200b-fec-phy
> +          - mpc5200-serial
> +          - mpc5200-sram

Tell Grant he needs to document these. ;) JK

> +          - ohci-bigendian
> +          - ohci-le
> +          - ohci-littledian

Given the typo, I think we can just drop this one from the driver.

> +
> +      - description: Incorrect compatibles used on SPARC devices
> +        enum:
> +          - bq4802
> +          - ds1287
> +          - isa-m5819p
> +          - isa-m5823p
> +          - m5819
> +          - sab82532
> +          - SUNW,bbc-beep
> +          - SUNW,bbc-i2c
> +          - SUNW,CS4231
> +          - SUNW,ebus-pic16f747-env
> +          - SUNW,kt-cwq
> +          - SUNW,kt-mau
> +          - SUNW,n2-cwq
> +          - SUNW,n2-mau
> +          - SUNW,niusl
> +          - SUNW,smbus-beep
> +          - SUNW,sun4v-console
> +          - SUNW,sun4v-pci
> +          - SUNW,vf-cwq
> +          - SUNW,vf-mau
> +
> +      - description: Incomplete and incorrect compatibles for unknown devices
> +        enum:
> +          - electra-cf
> +          - i2cpcf,8584
> +          - virtio,uml
> +
> +      - description: Linux kernel unit tests and sample code
> +        enum:
> +          - audio-graph-card2-custom-sample
> +          - compat1
> +          - compat2
> +          - compat3
> +          - linux,spi-loopback-test
> +          - mailbox-test
> +          - regulator-virtual-consumer
> +          - unittest-gpio
> +          - unittest-pci

We recently added "test" as a vendor prefix and don't complain if
"test,.*" compatible is not documented. It's on my todo to change
these. So I'd drop the unittest ones.

> +
> +      - description:
> +          Devices on MIPS platform, without any DTS users.  These are
> +          unlikely to get converted to DT schema.
> +        enum:
> +          - mti,ranchu
> +
> +      - description:
> +          Devices on PowerPC platform, without any DTS users.  These are
> +          unlikely to get converted to DT schema.
> +        enum:
> +          - fujitsu,coral
> +          - fujitsu,lime
> +          - fujitsu,MB86276
> +          - fujitsu,MB86277
> +          - fujitsu,MB86293
> +          - fujitsu,MB86294
> +          - fujitsu,mint
> +          - ibm,axon-msic
> +          - ibm,pmemory
> +          - ibm,pmemory-v2
> +          - ibm,power-rng
> +          - ibm,ppc4xx-spi
> +          - ibm,sdram-4xx-ddr2
> +          - ibm,secureboot
> +          - ibm,secureboot-v1
> +          - ibm,secureboot-v2
> +          - ibm,secvar-backend
> +          - sgy,gpio-halt
> +          - wrs,epld-localbus
> +
> +required:
> +  - compatible
> +  - broken-usage-of-incorrect-compatible
> +
> +additionalProperties: false
> --
> 2.43.0
>
>





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux