.../bindings/sound/simple-card.yaml | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+)
The trigger-start/stop properties allows to specify DAI link
trigger ordering method.
Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
---
.../bindings/sound/simple-card.yaml | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Documentation/devicetree/bindings/sound/simple-card.yaml
index 59ac2d1d1ccf..f1878d470d83 100644
--- a/Documentation/devicetree/bindings/sound/simple-card.yaml
+++ b/Documentation/devicetree/bindings/sound/simple-card.yaml
@@ -99,6 +99,28 @@ definitions:
description: the widget names for which pin switches must be created.
$ref: /schemas/types.yaml#/definitions/string-array
+ trigger-start:
+ description: |-
+ Start trigger ordering method:
+ default: Link->Component->DAI
+ ldc: Link->DAI->Component
+ $ref: /schemas/types.yaml#/definitions/string
+ items:
+ enum:
+ - default
+ - ldc
+
+ trigger-stop:
+ description: |-
+ Stop trigger ordering method:
+ default: DAI->Component->Link
+ ldc: Component->DAI->Link
+ $ref: /schemas/types.yaml#/definitions/string
+ items:
+ enum:
+ - default
+ - ldc
+
format:
description: audio format.
items:
@@ -210,6 +232,10 @@ properties:
maxItems: 1
simple-audio-card,mic-det-gpio:
maxItems: 1
+ simple-audio-card,trigger-start:
+ $ref: "#/definitions/trigger-start"
+ simple-audio-card,trigger-stop:
+ $ref: "#/definitions/trigger-stop"
patternProperties:
"^simple-audio-card,cpu(@[0-9a-f]+)?$":
@@ -259,6 +285,11 @@ patternProperties:
maxItems: 1
mic-det-gpio:
maxItems: 1
+ trigger-start:
+ $ref: "#/definitions/trigger-start"
+ trigger-stop:
+ $ref: "#/definitions/trigger-stop"
+
patternProperties:
"^cpu(-[0-9]+)?$":
--
2.40.1
On Sat, Jul 15, 2023 at 11:30:43AM +0300, Maxim Kochetkov wrote: > The trigger-start/stop properties allows to specify DAI link > trigger ordering method. Obviously. Why do you need these? What problem does it solve? I don't think these belong in simple-card. What's next? What if you need delays between each step? This is the problem with 'simple' or 'generic' bindings. It's a never ending addition of properties which are not well thought out. > > Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru> > --- > .../bindings/sound/simple-card.yaml | 31 +++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/Documentation/devicetree/bindings/sound/simple-card.yaml b/Documentation/devicetree/bindings/sound/simple-card.yaml > index 59ac2d1d1ccf..f1878d470d83 100644 > --- a/Documentation/devicetree/bindings/sound/simple-card.yaml > +++ b/Documentation/devicetree/bindings/sound/simple-card.yaml > @@ -99,6 +99,28 @@ definitions: > description: the widget names for which pin switches must be created. > $ref: /schemas/types.yaml#/definitions/string-array > > + trigger-start: > + description: |- > + Start trigger ordering method: > + default: Link->Component->DAI > + ldc: Link->DAI->Component > + $ref: /schemas/types.yaml#/definitions/string > + items: > + enum: > + - default Why do you need a value of 'default'? What's the default when the property is not present? > + - ldc > + > + trigger-stop: > + description: |- > + Stop trigger ordering method: > + default: DAI->Component->Link > + ldc: Component->DAI->Link > + $ref: /schemas/types.yaml#/definitions/string > + items: > + enum: > + - default > + - ldc > + > format: > description: audio format. > items: > @@ -210,6 +232,10 @@ properties: > maxItems: 1 > simple-audio-card,mic-det-gpio: > maxItems: 1 > + simple-audio-card,trigger-start: > + $ref: "#/definitions/trigger-start" > + simple-audio-card,trigger-stop: > + $ref: "#/definitions/trigger-stop" Don't continue this 'simple-audio-card,' prefix pattern. With it, no other binding can use these properties. > > patternProperties: > "^simple-audio-card,cpu(@[0-9a-f]+)?$": > @@ -259,6 +285,11 @@ patternProperties: > maxItems: 1 > mic-det-gpio: > maxItems: 1 > + trigger-start: > + $ref: "#/definitions/trigger-start" > + trigger-stop: > + $ref: "#/definitions/trigger-stop" > + > > patternProperties: > "^cpu(-[0-9]+)?$": > -- > 2.40.1 >
On 19.07.2023 01:08, Rob Herring wrote:
> On Sat, Jul 15, 2023 at 11:30:43AM +0300, Maxim Kochetkov wrote:
>> The trigger-start/stop properties allows to specify DAI link
>> trigger ordering method.
>
> Obviously. Why do you need these? What problem does it solve?
It allows using simple card for some DMA-based CPU component which
requires different start/stop sequence (stop DMA before CPU component,
start DMA after CPU component).
There are a lot of boards which have no audio codec on board. It has
only I2S/TDM/etc... and you can attach any external codec on its pins.
It looks like simple audio card is enough for this cases. It is much
better than to copy-paste simple audio card code to the new custom
driver with new combination of CPU/codec.
>
> I don't think these belong in simple-card. What's next? What if you need
> delays between each step? This is the problem with 'simple' or 'generic'
> bindings. It's a never ending addition of properties which are not well
> thought out.
Can you please suggest the better way to specify start/stop trigger
order via DT?
>> + trigger-start:
>> + description: |-
>> + Start trigger ordering method:
>> + default: Link->Component->DAI
>> + ldc: Link->DAI->Component
>> + $ref: /schemas/types.yaml#/definitions/string
>> + items:
>> + enum:
>> + - default
>
> Why do you need a value of 'default'? What's the default when the
> property is not present?
It comes from
enum snd_soc_trigger_order {
SND_SOC_TRIGGER_ORDER_DEFAULT = 0,
SND_SOC_TRIGGER_ORDER_LDC,
SND_SOC_TRIGGER_ORDER_MAX,
};
default value is 0 (SND_SOC_TRIGGER_ORDER_DEFAULT)
>> format:
>> description: audio format.
>> items:
>> @@ -210,6 +232,10 @@ properties:
>> maxItems: 1
>> simple-audio-card,mic-det-gpio:
>> maxItems: 1
>> + simple-audio-card,trigger-start:
>> + $ref: "#/definitions/trigger-start"
>> + simple-audio-card,trigger-stop:
>> + $ref: "#/definitions/trigger-stop"
>
> Don't continue this 'simple-audio-card,' prefix pattern. With it, no
> other binding can use these properties.
Ok.
>
>>
>> patternProperties:
>> "^simple-audio-card,cpu(@[0-9a-f]+)?$":
>> @@ -259,6 +285,11 @@ patternProperties:
>> maxItems: 1
>> mic-det-gpio:
>> maxItems: 1
>> + trigger-start:
>> + $ref: "#/definitions/trigger-start"
>> + trigger-stop:
>> + $ref: "#/definitions/trigger-stop"
>> +
Should I keep only this section?
© 2016 - 2026 Red Hat, Inc.