Message ID | 20240124095230.25704-1-zajec5@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: media: convert Mediatek consumer IR to the json-schema | expand |
Il 24/01/24 10:52, Rafał Miłecki ha scritto: > From: Rafał Miłecki <rafal@milecki.pl> > > 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@milecki.pl> > --- > .../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@mediatek.com> > + > +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
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 <sean.wang@mediatek.com> + +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"; -};