Re: [PATCH] dt-bindings: media: convert Mediatek consumer IR to the json-schema

From: AngeloGioacchino Del Regno
Date: Wed Jan 24 2024 - 07:34:40 EST


Il 24/01/24 10:52, Rafał Miłecki ha scritto:
From: Rafał Miłecki <rafal@xxxxxxxxxx>

This helps validating DTS files. Introduced changes:
1. Reworded title
2. Added required #include-s and adjusted "reg" in example

Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx>
---
.../bindings/media/mediatek,mt7622-cir.yaml | 81 +++++++++++++++++++
.../devicetree/bindings/media/mtk-cir.txt | 28 -------
2 files changed, 81 insertions(+), 28 deletions(-)
create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt7622-cir.yaml
delete mode 100644 Documentation/devicetree/bindings/media/mtk-cir.txt

diff --git a/Documentation/devicetree/bindings/media/mediatek,mt7622-cir.yaml b/Documentation/devicetree/bindings/media/mediatek,mt7622-cir.yaml
new file mode 100644
index 000000000000..a2d0eed33292
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/mediatek,mt7622-cir.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mt7622-cir.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mediatek consumer IR on-SoC controller

title: MediaTek Consumer Infrared Receiver on-SoC Controller

+
+maintainers:
+ - Sean Wang <sean.wang@xxxxxxxxxxxx>
+
+properties:
+ compatible:
+ enum:
+ - mediatek,mt7622-cir
+ - mediatek,mt7623-cir
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ minItems: 1
+ maxItems: 2
+
+ clock-names:
+ minItems: 1
+ items:
+ - const: clk
+ - const: bus

The driver says:

ir->bus = devm_clk_get(dev, "bus");
if (IS_ERR(ir->bus)) {
/*
* For compatibility with older device trees try unnamed
* ir->bus uses the same clock as ir->clock.
*/
ir->bus = ir->clk;
}

This makes me think that requiring *one* clock on MT7623 would be a mistake
and the devicetree should use clk, bus - CLK_INFRA_IRRX_PD, CLK_TOP_F10M_REF_SEL.

Seen that - I'm sure that setting maxItems: 1 on mediatek,mt7623-cir would as
well be a mistake.

+
+required:
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+
+allOf:
+ - $ref: rc.yaml#
+ - if:

The solution would be to simply delete those if branches and, to keep compatibility
with the already present mt7623.dtsi file, keep min/max items to 1 and 2 (of course
in the case of clock-names, maxItems shall not be declared, as it's dictated by the
consts).

+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt7622-cir
+ then:
+ properties:
+ clocks:
+ minItems: 2
+
+ clock-names:
+ minItems: 2
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: mediatek,mt7623-cir
+ then:
+ properties:
+ clocks:
+ maxItems: 1
+
+ clock-names:
+ maxItems: 1
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/mt2701-clk.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ ir@10013000 {

Please use a common generic name, as seen in gpio-ir-receiver.yaml and in
amlogic,meson6-ir.yaml:

ir-receiver@10013000 {

Cheers,
Angelo