RE: [EXTERNAL] Re: [PATCH v3 5/5] ASoC: dt-bindings: Add tas2563 into ti,ta2781.yaml to enable DSP mode

From: Ding, Shenghao
Date: Wed Dec 27 2023 - 02:00:29 EST




> -----Original Message-----
> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> Sent: Monday, December 25, 2023 9:18 PM
> To: Ding, Shenghao <shenghao-ding@xxxxxx>; broonie@xxxxxxxxxx;
> conor+dt@xxxxxxxxxx
> Cc: robh+dt@xxxxxxxxxx; andriy.shevchenko@xxxxxxxxxxxxxxx; Lu, Kevin
> <kevin-lu@xxxxxx>; Xu, Baojun <baojun.xu@xxxxxx>;
> devicetree@xxxxxxxxxxxxxxx; lgirdwood@xxxxxxxxx; perex@xxxxxxxx; pierre-
> louis.bossart@xxxxxxxxxxxxxxx; 13916275206@xxxxxxx; linux-
> sound@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> liam.r.girdwood@xxxxxxxxx; soyer@xxxxxx; tiwai@xxxxxxx; Gupta, Peeyush
> <peeyush@xxxxxx>; Navada Kanyana, Mukund <navada@xxxxxx>
> Subject: [EXTERNAL] Re: [PATCH v3 5/5] ASoC: dt-bindings: Add tas2563 into
> ti,ta2781.yaml to enable DSP mode
>
> On 25/12/2023 06:39, Shenghao Ding wrote:
> > Move tas2563 from tas2562.yaml to tas2781.yaml, because tas2563 only
> > work in bypass-DSP mode with tas2562 driver. In oder to enable DSP
> > mode for tas2563, it has been moved to tas2781 driver. As to the
> > hardware part, such as register setting and DSP firmware, all these
> > are stored in the binary firmware. What tas2781 drivder dooes is to
> > parse the firmware and download them to the tas2781 or tas2563, then
> power on tas2781 or tas2563.
> > So, tas2781 driver can be resued as tas2563 driver. Only attention
> > will be paid to downloading corresponding firmware.
> >
> > Signed-off-by: Shenghao Ding <shenghao-ding@xxxxxx>
> >
> > ---
> > Change in v3:
> > - Add devicetree list and other list of necessary people and lists to
> > CC
> > - Express Compatibility in the bindings
>
> Where?
>
> > - Add more comments on why move tas2563 to tas2781 driver
> > - Provide rationale in terms of bindings and hardware, not in terms of
> driver.
> > Or at least not only.
> > ---
> > .../devicetree/bindings/sound/ti,tas2781.yaml | 66
> > ++++++++++++++-----
> > 1 file changed, 51 insertions(+), 15 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> > b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> > index a69e6c223308..bbe8e5f2c013 100644
> > --- a/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> > +++ b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> > @@ -5,36 +5,72 @@
> > $id: http://devicetree.org/schemas/sound/ti,tas2781.yaml#
> > $schema: http://devicetree.org/meta-schemas/core.yaml#
> >
> > -title: Texas Instruments TAS2781 SmartAMP
> > +title: Texas Instruments TAS2781/TAS2563 SmartAMP
> >
> > maintainers:
> > - Shenghao Ding <shenghao-ding@xxxxxx>
> >
> > description:
> > - The TAS2781 is a mono, digital input Class-D audio amplifier
> > - optimized for efficiently driving high peak power into small
> > - loudspeakers. An integrated on-chip DSP supports Texas Instruments
> > - Smart Amp speaker protection algorithm. The integrated speaker
> > - voltage and current sense provides for real time
> > + The TAS2781/TAS2563 is a mono, digital input Class-D audio
> > + amplifier optimized for efficiently driving high peak power into
> > + small loudspeakers. An integrated on-chip DSP supports Texas
> > + Instruments Smart Amp speaker protection algorithm. The integrated
> > + speaker voltage and current sense provides for real time
> > monitoring of loudspeaker behavior.
> >
> > allOf:
> > - $ref: dai-common.yaml#
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - ti,tas2781
> > + then:
> > + properties:
> > + reg:
> > + description:
> > + I2C address, in multiple AMP case, all the i2c address
> > + aggregate as one Audio Device to support multiple audio slots.
> > + maxItems: 8
> > + minItems: 1
> > + items:
> > + minimum: 0x38
> > + maximum: 0x3f
> > + else:
>
> How this else is possible? Please show me any DTS which triggers this else
> case.
Do you mean add two if and remove else branch. Like following
- if:
properties:
compatible:
contains:
enum:
- ti,tas2781
then:
properties:
reg:
description:
I2C address, in multiple-AMP case, all the i2c address
aggregate as one Audio Device to support multiple audio slots.
maxItems: 8
minItems: 1
items:
minimum: 0x38
maximum: 0x3f
- if:
properties:
compatible:
contains:
enum:
- ti,tas2563
then:
properties:
reg:
description:
I2C address, in multiple-AMP case, all the i2c address
aggregate as one Audio Device to support multiple audio slots.
maxItems: 4
minItems: 1
items:
minimum: 0x4c
maximum: 0x4f
>
>
> > + properties:
> > + reg:
> > + description:
> > + I2C address, in multiple AMP case, all the i2c address
> > + aggregate as one Audio Device to support multiple audio slots.
> > + maxItems: 4
> > + minItems: 1
> > + items:
> > + minimum: 0x4c
> > + maximum: 0x4f
> >
> > properties:
> > compatible:
> > + description: |
> > + ti,tas2781: 24-V Class-D Amplifier with Real Time Integrated Speaker
> > + Protection and Audio Processing, 16/20/24/32bit stereo I2S or
> > + multichannel TDM.
> > +
> > + ti,tas2563: 6.1-W Boosted Class-D Audio Amplifier With Integrated
> > + DSP and IV Sense, 16/20/24/32bit stereo I2S or multichannel TDM.
> > enum:
> > - ti,tas2781
> > + - ti,tas2563
>
> Still nothing improved. Where is the fallback?
Do you mean to add following as fallback?
oneOf:
- items:
- enum:
- ti,tas2781
- items:
- enum:
- ti,tas2563
>
> > + # Tas781 driver can support both tas2563 and tas2781, because the
> > + # hardware part in the driver code, such as register setting and DSP
> > + # firmware, all these are stored in the binary firmware. What drivder
> > + # dooes is to parse the firmware and download it to the tas2781 or
> > + # tas2563, then control tas2781 or tas2563 to power on/off or switch
> > + # different dsp params. So, tas2781 driver can be resued as tas2563
> > + # driver. Only attention will be paid to downloading corresponding
> > + # firmware.
>
> Don't write useless driver description and implement proper list of two
> compatibles using one as fallback for another. I already pointed you to
> example-schema which gives you nice example for this.
>
> It is third try not doing what I asked you. Probably we misunderstand each
> other, then please answer:
>
> 1. Please find example-schema.yaml and share whether this succeeded or not.
> 2. Open the example-schema.yaml in your editor.
> 3. Read the section about compatibles. You need oneOf and items, just like it
> is there.
>
> Now, please confirm that you did all these steps before you send v4 with
> more test.
>
> >
> > - reg:
> > - description:
> > - I2C address, in multiple tas2781s case, all the i2c address
> > - aggregate as one Audio Device to support multiple audio slots.
> > - maxItems: 8
> > - minItems: 1
> > - items:
> > - minimum: 0x38
> > - maximum: 0x3f
> > + reg: true
>
> OK, you clearly just keep ignoring my comments.
>
> This is a friendly reminder during the review process.
>
> It seems my or other reviewer's previous comments were not fully addressed.
> Maybe the feedback got lost between the quotes, maybe you just forgot to
> apply it. Please go back to the previous discussion and either implement all
> requested changes or keep discussing them.
>
> Thank you.
>
>
>
> Best regards,
> Krzysztof