[PATCH v2 1/3] ASoC: dt-bindings: Add schema for common DAI params

Sameer Pujar spujar at nvidia.com
Thu Aug 4 12:09:02 CEST 2022


On 02-08-2022 20:16, Rob Herring wrote:
> On Tue, Aug 02, 2022 at 04:15:28PM +0530, Sameer Pujar wrote:
>> Hi Rob, Krzysztof
>>
>> On 02-08-2022 01:00, Rob Herring wrote:
>>> On Mon, 01 Aug 2022 21:37:30 +0530, Sameer Pujar wrote:
>>>> The "convert-channels" and "convert-rate" bindings are provided for both
>>>> simple-card and audio-graph-card. However these are separately defined in
>>>> their respective schemas. For any new binding addition, which is common to
>>>> both, there will be duplication.
>>>>
>>>> Introduce a new schema to have common DAI params properties and these can
>>>> be re-used in other schemas wherever applicable.
>>>>
>>>> Signed-off-by: Sameer Pujar<spujar at nvidia.com>
>>>> Cc: Kuninori Morimoto<kuninori.morimoto.gx at renesas.com>
>>>> ---
>>>>    .../bindings/sound/audio-graph-port.yaml           | 13 ++++------
>>>>    .../devicetree/bindings/sound/audio-graph.yaml     |  7 +++---
>>>>    .../devicetree/bindings/sound/dai-params.yaml      | 28 ++++++++++++++++++++++
>>>>    .../devicetree/bindings/sound/simple-card.yaml     | 16 ++++---------
>>>>    4 files changed, 40 insertions(+), 24 deletions(-)
>>>>    create mode 100644 Documentation/devicetree/bindings/sound/dai-params.yaml
>>>>
>>> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
>>> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>>>
>>> yamllint warnings/errors:
>>>
>>> dtschema/dtc warnings/errors:
>>> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/simple-card.yaml: properties:simple-audio-card,convert-rate: 'oneOf' conditional failed, one must be fixed:
>>>           'type' is a required property
>>>                   hint: A vendor boolean property can use "type: boolean"
>>>           'description' is a required property
>>>                   hint: A vendor boolean property can use "type: boolean"
>>>           Additional properties are not allowed ('$ref' was unexpected)
>>>                   hint: A vendor boolean property can use "type: boolean"
>>>           /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/simple-card.yaml: properties:simple-audio-card,convert-rate: 'oneOf' conditional failed, one must be fixed:
>>>                   'enum' is a required property
>>>                   'const' is a required property
>>>                   hint: A vendor string property with exact values has an implicit type
>>>                   from schema $id:http://devicetree.org/meta-schemas/vendor-props.yaml#
>>>           '/schemas/sound/dai-params.yaml#/properties/dai-sample-rate' does not 
>>> match 'types.yaml#/definitions/'
>>>                   hint: A vendor property needs a $ref to types.yaml
>>>           '/schemas/sound/dai-params.yaml#/properties/dai-sample-rate' does not match '^#/(definitions|\\$defs)/'
>>>                   hint: A vendor property can have a $ref to a a $defs schema
>>>           hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
>>>           from schema $id:http://devicetree.org/meta-schemas/vendor-props.yaml#
>> I am hitting this error if I use properties/definitions from another schema.
>> If I define it locally, it works. I see there are examples where properties
>> from different schema are used. But not able to understand why errors are
>> seen in my case. Am I missing anything here?
> You either need to use 'properties' with actual property names and
> reference that schema from the node level. Or you use '$defs' if you are
> going to have references from the (DT) property level. I think I'd just
> leave simple-card out of this and do the former.

Above errors are coming only from simple-card. The audio-graph related 
binding checks are clean. It seems having "," in the property name is 
causing errors for simple-card. Is this intentional?

Thanks Rob for inputs. I will leave simple-card out for now, but will 
use $defs. The reason is any other vendor schema can make use of these 
DAI defines. One such use I see is for (../sound/fsl,easrc.yaml for 
"fsl,asrc-rate").


More information about the Alsa-devel mailing list