From: Rafał Miłecki <[email protected]>
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 <[email protected]>
---
.../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
+
+maintainers:
+ - Sean Wang <[email protected]>
+
+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
+
+required:
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+
+allOf:
+ - $ref: rc.yaml#
+ - if:
+ 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 {
+ compatible = "mediatek,mt7623-cir";
+ reg = <0x10013000 0x1000>;
+ interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&infracfg CLK_INFRA_IRRX>;
+ clock-names = "clk";
+ linux,rc-map-name = "rc-rc6-mce";
+ };
diff --git a/Documentation/devicetree/bindings/media/mtk-cir.txt b/Documentation/devicetree/bindings/media/mtk-cir.txt
deleted file mode 100644
index 5e18087ce11f..000000000000
--- a/Documentation/devicetree/bindings/media/mtk-cir.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-Device-Tree bindings for Mediatek consumer IR controller
-found in Mediatek SoC family
-
-Required properties:
-- compatible : Should be
- "mediatek,mt7623-cir": for MT7623 SoC
- "mediatek,mt7622-cir": for MT7622 SoC
-- clocks : list of clock specifiers, corresponding to
- entries in clock-names property;
-- clock-names : should contain
- - "clk" entries: for MT7623 SoC
- - "clk", "bus" entries: for MT7622 SoC
-- interrupts : should contain IR IRQ number;
-- reg : should contain IO map address for IR.
-
-Optional properties:
-- linux,rc-map-name : see rc.txt file in the same directory.
-
-Example:
-
-cir: cir@10013000 {
- compatible = "mediatek,mt7623-cir";
- reg = <0 0x10013000 0 0x1000>;
- interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
- clocks = <&infracfg CLK_INFRA_IRRX>;
- clock-names = "clk";
- linux,rc-map-name = "rc-rc6-mce";
-};
--
2.35.3
Il 24/01/24 10:52, Rafał Miłecki ha scritto:
> From: Rafał Miłecki <[email protected]>
>
> 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 <[email protected]>
> ---
> .../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 <[email protected]>
> +
> +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
On 24.01.2024 13:33, AngeloGioacchino Del Regno wrote:
> 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.
Looking at mt2701-clk.h I can see CLK_INFRA_IRRX (which I guess you
meant above).
I can't find CLK_TOP_F10M_REF_SEL however. This seems to be available on
MT7622 and MT7629 only.
Could you take another look at it, please? Can you somehow verify what
clock should be used by IR on MT7623?
Il 09/02/24 08:24, Rafał Miłecki ha scritto:
> On 24.01.2024 13:33, AngeloGioacchino Del Regno wrote:
>> 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.
>
> Looking at mt2701-clk.h I can see CLK_INFRA_IRRX (which I guess you
> meant above).
>
> I can't find CLK_TOP_F10M_REF_SEL however. This seems to be available on
> MT7622 and MT7629 only.
> Could you take another look at it, please? Can you somehow verify what
> clock should be used by IR on MT7623?
For MT2701/MT7623N you can use topckgen CLK_TOP_AXI_SEL as bus clock.
Cheers,
Angelo