From: Thierry Reding <thierry.reding@gmail.com>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
linux-kernel@vger.kernel.org, Mark Brown <broonie@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
David Heidelberg <david@ixit.cz>,
Jonathan Hunter <jonathanh@nvidia.com>,
Rob Herring <robh+dt@kernel.org>,
linux-tegra@vger.kernel.org, ~okias/devicetree@lists.sr.ht
Subject: Re: [PATCH v2] dt-bindings: sound: nvidia,tegra-audio: Convert multiple txt bindings to yaml
Date: Thu, 16 Dec 2021 14:44:56 +0100 [thread overview]
Message-ID: <YbtC2I49D0pdcyLY@orome> (raw)
In-Reply-To: <a84213cb-272a-f1b2-338f-ed8ed0bf133d@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2541 bytes --]
On Thu, Dec 16, 2021 at 05:52:12AM +0300, Dmitry Osipenko wrote:
> 12.12.2021 01:49, David Heidelberg пишет:
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + sound {
> > + compatible = "nvidia,tegra-audio-rt5677-ryu",
> > + "nvidia,tegra-audio-rt5677";
> > + nvidia,model = "NVIDIA Tegra Ryu";
> > +
> > + nvidia,audio-routing =
> > + "Headphone", "LOUT2",
> > + "Headphone", "LOUT1",
> > + "Headset Mic", "MICBIAS1",
> > + "IN1P", "Headset Mic",
> > + "IN1N", "Headset Mic",
> > + "DMIC L1", "Internal Mic 1",
> > + "DMIC R1", "Internal Mic 1",
> > + "DMIC L2", "Internal Mic 2",
> > + "DMIC R2", "Internal Mic 2",
> > + "Speaker", "PDM1L",
> > + "Speaker", "PDM1R";
> > +
> > + nvidia,i2s-controller = <&tegra_i2s1>;
> > + nvidia,audio-codec = <&rt5677>;
> > +
> > + nvidia,hp-det-gpios = <&gpio 143 0>;
> > + nvidia,mic-present-gpios = <&gpio 132 1>;
> > + nvidia,hp-en-gpios = <&rt5677 1 0>;
> > + nvidia,dmic-clk-en-gpios = <&rt5677 2 1>;
>
> I spotted that nvidia,dmic-clk-en-gpios is undocumented, but DTs and
> binding are passing the validation. We will make another patch to fix it.
>
> Rob, could you please tell whether this is because unevaluatedProperties
> doesn't work yet or we're missing something?
If you update dt-schema.git to the latest "main" branch you should have
most of what's needed to make unevaluatedProperties work. However, there
seems to be an issue with some $referenced schemas setting
additionalProperties to true and then that gets propogated to the schema
that included it.
Rob came up with the patch below to fix that:
--- >8 ---
diff --git a/dtschema/lib.py b/dtschema/lib.py
index 3cc5e428b0eb..a0f22aab935a 100644
--- a/dtschema/lib.py
+++ b/dtschema/lib.py
@@ -367,6 +367,9 @@ def fixup_sub_schema(schema, is_prop):
if not isinstance(schema, dict):
return
+ if 'additionalProperties' in schema and schema['additionalProperties'] == True:
+ schema.pop('additionalProperties', None)
+
schema.pop('description', None)
fixup_interrupts(schema)
if is_prop:
--- >8 ---
I'm currently running the tools based on that and it's indeed been
flagging some properties as unevaluated that weren't there before.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@gmail.com>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: David Heidelberg <david@ixit.cz>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
Jonathan Hunter <jonathanh@nvidia.com>,
~okias/devicetree@lists.sr.ht, alsa-devel@alsa-project.org,
devicetree@vger.kernel.org, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] dt-bindings: sound: nvidia,tegra-audio: Convert multiple txt bindings to yaml
Date: Thu, 16 Dec 2021 14:44:56 +0100 [thread overview]
Message-ID: <YbtC2I49D0pdcyLY@orome> (raw)
In-Reply-To: <a84213cb-272a-f1b2-338f-ed8ed0bf133d@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2541 bytes --]
On Thu, Dec 16, 2021 at 05:52:12AM +0300, Dmitry Osipenko wrote:
> 12.12.2021 01:49, David Heidelberg пишет:
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + sound {
> > + compatible = "nvidia,tegra-audio-rt5677-ryu",
> > + "nvidia,tegra-audio-rt5677";
> > + nvidia,model = "NVIDIA Tegra Ryu";
> > +
> > + nvidia,audio-routing =
> > + "Headphone", "LOUT2",
> > + "Headphone", "LOUT1",
> > + "Headset Mic", "MICBIAS1",
> > + "IN1P", "Headset Mic",
> > + "IN1N", "Headset Mic",
> > + "DMIC L1", "Internal Mic 1",
> > + "DMIC R1", "Internal Mic 1",
> > + "DMIC L2", "Internal Mic 2",
> > + "DMIC R2", "Internal Mic 2",
> > + "Speaker", "PDM1L",
> > + "Speaker", "PDM1R";
> > +
> > + nvidia,i2s-controller = <&tegra_i2s1>;
> > + nvidia,audio-codec = <&rt5677>;
> > +
> > + nvidia,hp-det-gpios = <&gpio 143 0>;
> > + nvidia,mic-present-gpios = <&gpio 132 1>;
> > + nvidia,hp-en-gpios = <&rt5677 1 0>;
> > + nvidia,dmic-clk-en-gpios = <&rt5677 2 1>;
>
> I spotted that nvidia,dmic-clk-en-gpios is undocumented, but DTs and
> binding are passing the validation. We will make another patch to fix it.
>
> Rob, could you please tell whether this is because unevaluatedProperties
> doesn't work yet or we're missing something?
If you update dt-schema.git to the latest "main" branch you should have
most of what's needed to make unevaluatedProperties work. However, there
seems to be an issue with some $referenced schemas setting
additionalProperties to true and then that gets propogated to the schema
that included it.
Rob came up with the patch below to fix that:
--- >8 ---
diff --git a/dtschema/lib.py b/dtschema/lib.py
index 3cc5e428b0eb..a0f22aab935a 100644
--- a/dtschema/lib.py
+++ b/dtschema/lib.py
@@ -367,6 +367,9 @@ def fixup_sub_schema(schema, is_prop):
if not isinstance(schema, dict):
return
+ if 'additionalProperties' in schema and schema['additionalProperties'] == True:
+ schema.pop('additionalProperties', None)
+
schema.pop('description', None)
fixup_interrupts(schema)
if is_prop:
--- >8 ---
I'm currently running the tools based on that and it's indeed been
flagging some properties as unevaluated that weren't there before.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2021-12-16 13:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-11 22:49 [PATCH v2] dt-bindings: sound: nvidia, tegra-audio: Convert multiple txt bindings to yaml David Heidelberg
2021-12-11 22:49 ` [PATCH v2] dt-bindings: sound: nvidia,tegra-audio: " David Heidelberg
2021-12-15 20:01 ` Rob Herring
2021-12-15 20:01 ` Rob Herring
2021-12-15 20:25 ` Mark Brown
2021-12-15 20:25 ` Mark Brown
2021-12-16 2:21 ` [PATCH v2] dt-bindings: sound: nvidia, tegra-audio: " Mark Brown
2021-12-16 2:21 ` [PATCH v2] dt-bindings: sound: nvidia,tegra-audio: " Mark Brown
2021-12-16 2:52 ` Dmitry Osipenko
2021-12-16 2:52 ` Dmitry Osipenko
2021-12-16 13:44 ` Thierry Reding [this message]
2021-12-16 13:44 ` Thierry Reding
2021-12-16 15:42 ` Dmitry Osipenko
2021-12-16 15:42 ` Dmitry Osipenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YbtC2I49D0pdcyLY@orome \
--to=thierry.reding@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=david@ixit.cz \
--cc=devicetree@vger.kernel.org \
--cc=digetx@gmail.com \
--cc=jonathanh@nvidia.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=~okias/devicetree@lists.sr.ht \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.