On Thu, Apr 25, 2024 at 09:00:43PM +0530, Mohammad Shehar Yaar Tausif wrote: > Convert NVIDIA Tegra30 I2S binding to DT schema and > add "clock-names" property used by multiple tegra i2s blocks > in arch/arm64/boot/dts/nvidia/tegra132.dtsi. This is not a > required property by the binding. > > Signed-off-by: Mohammad Shehar Yaar Tausif <sheharyaar48@xxxxxxxxx> > --- > Changes v3->v4: > - removed redundant example > - defined clock-names property > > v3: > https://lore.kernel.org/all/20240425090716.176818-1-sheharyaar48@xxxxxxxxx/ > --- > .../bindings/sound/nvidia,tegra30-i2s.txt | 27 ------ > .../bindings/sound/nvidia,tegra30-i2s.yaml | 83 +++++++++++++++++++ > 2 files changed, 83 insertions(+), 27 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt > create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.yaml > > diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt > deleted file mode 100644 > index 38caa936f6f8..000000000000 > --- a/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.txt > +++ /dev/null > @@ -1,27 +0,0 @@ > -NVIDIA Tegra30 I2S controller > - > -Required properties: > -- compatible : For Tegra30, must contain "nvidia,tegra30-i2s". For Tegra124, > - must contain "nvidia,tegra124-i2s". Otherwise, must contain > - "nvidia,<chip>-i2s" plus at least one of the above, where <chip> is > - tegra114 or tegra132. > -- reg : Should contain I2S registers location and length > -- clocks : Must contain one entry, for the module clock. > - See ../clocks/clock-bindings.txt for details. > -- resets : Must contain an entry for each entry in reset-names. > - See ../reset/reset.txt for details. > -- reset-names : Must include the following entries: > - - i2s > -- nvidia,ahub-cif-ids : The list of AHUB CIF IDs for this port, rx (playback) > - first, tx (capture) second. See nvidia,tegra30-ahub.txt for values. > - > -Example: > - > -i2s@70080300 { > - compatible = "nvidia,tegra30-i2s"; > - reg = <0x70080300 0x100>; > - nvidia,ahub-cif-ids = <4 4>; > - clocks = <&tegra_car 11>; > - resets = <&tegra_car 11>; > - reset-names = "i2s"; > -}; > diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.yaml b/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.yaml > new file mode 100644 > index 000000000000..13cee366f5b3 > --- /dev/null > +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra30-i2s.yaml > @@ -0,0 +1,83 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/sound/nvidia,tegra30-i2s.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: NVIDIA Tegra30 I2S controller > + > +maintainers: > + - Thierry Reding <treding@xxxxxxxxxx> > + - Jon Hunter <jonathanh@xxxxxxxxxx> > + > +properties: > + compatible: > + oneOf: > + - enum: > + - nvidia,tegra124-i2s > + - nvidia,tegra30-i2s > + - items: > + - enum: > + - nvidia,tegra114-i2s > + - nvidia,tegra132-i2s > + - enum: > + - nvidia,tegra124-i2s > + - nvidia,tegra30-i2s This allows 4 possible combinations for 2 SoCs. That may be how the old binding was worded, but that's not valid. > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + clock-names: > + const: i2s > + > + resets: > + maxItems: 1 > + > + reset-names: > + const: i2s > + > + nvidia,ahub-cif-ids: > + description: list of AHUB CIF IDs > + $ref: /schemas/types.yaml#/definitions/uint32-array > + items: > + - description: rx (playback) > + - description: tx (capture) > + > +required: > + - compatible > + - reg > + - clocks > + - resets > + - reset-names > + - nvidia,ahub-cif-ids > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/tegra30-car.h> > + > + i2s@70080300 { > + compatible = "nvidia,tegra30-i2s"; > + reg = <0x70080300 0x100>; > + nvidia,ahub-cif-ids = <4 4>; > + clocks = <&tegra_car TEGRA30_CLK_I2S0>; > + resets = <&tegra_car 30>; > + reset-names = "i2s"; > + }; > + - | > + #include <dt-bindings/clock/tegra124-car.h> > + > + i2s@70301100 { > + compatible = "nvidia,tegra124-i2s"; > + reg = <0x70301100 0x100>; > + nvidia,ahub-cif-ids = <5 5>; > + clocks = <&tegra_car TEGRA124_CLK_I2S1>; > + clock-names = "i2s"; > + resets = <&tegra_car 11>; > + reset-names = "i2s"; > + }; I didn't check what you removed, but this is still 1 example too many. They are almost the same.