RE: [EXTERNAL] Re: [PATCH v2 2/5] ASoC: dt-bindings: Add tas2781 amplifier

From: Ding, Shenghao
Date: Wed May 10 2023 - 11:05:04 EST


Answer· embeded

-----Original Message-----
From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
Sent: Wednesday, May 10, 2023 3:04 PM
To: Shenghao Ding <13916275206@xxxxxxx>; broonie@xxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; robh+dt@xxxxxxxxxx; lgirdwood@xxxxxxxxx; perex@xxxxxxxx; pierre-louis.bossart@xxxxxxxxxxxxxxx
Cc: Lu, Kevin <kevin-lu@xxxxxx>; Ding, Shenghao <shenghao-ding@xxxxxx>; alsa-devel@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Xu, Baojun <x1077012@xxxxxx>; Gupta, Peeyush <peeyush@xxxxxx>; Navada Kanyana, Mukund <navada@xxxxxx>; gentuser@xxxxxxxxx; Ryan_Chu@xxxxxxxxxxx; Sam_Wu@xxxxxxxxxxx
Subject: [EXTERNAL] Re: [PATCH v2 2/5] ASoC: dt-bindings: Add tas2781 amplifier

On 08/05/2023 07:45, Shenghao Ding wrote:
> Create tas2781.yaml for tas2781 driver.
>
> Signed-off-by: Shenghao Ding <13916275206@xxxxxxx>
>
> ---
> Changes in v7:

Your subject says it is v2 and previously it was v6. Make it consistent.
[Ding] v2 is the version no for all of the pathes, in each patch there is separated version, v7 is the version number for yaml
> - Submit together with tas2781 codec driver code

Fix your patchset threading. I don't think it's possible to apply your one.

> - Add more detail description for ti,audio-slots
> - Keep consistent for "I2C"
> - remove reset-gpios description
> - For reg, express as constraints instead
> - remove unnecessary '|'
> Changes to be committed:
> new file: Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> ---
> .../devicetree/bindings/sound/ti,tas2781.yaml | 90
> +++++++++++++++++++
> 1 file changed, 90 insertions(+)
> create mode 100644
> Documentation/devicetree/bindings/sound/ti,tas2781.yaml
>
> diff --git a/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> new file mode 100644
> index 000000000000..96c2584855d4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> @@ -0,0 +1,90 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # Copyright
> +(C) 2022 - 2023 Texas Instruments Incorporated %YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sound/ti,tas2781.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Texas Instruments TAS2781 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. Integrated an 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.
> +

you miss allOf with ref to saound-dai-common.
[Ding] Add it in next patch
> +properties:
> + compatible:
> + enum:
> + - ti,tas2781
> +
> + reg:
> + description: I2C address of the primary device.
> + items:
> + minimum: 0x38
> + maximum: 0x3f
> +
> + reset-gpios:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + ti,audio-slots:
> + description:
> + Multiple tas2781s aggregate as one Audio Amp to support
> + multiple audio slots
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + maxItems: 4

You said you can have here two addresses. You don't allow it, test it.

Missing minItems, but...

> + items:
> + minimum: 0x38
> + maximum: 0x3f

... So these are fixed? No need to encode them in such case...

and anyway actually I agree with Rob here - these addresses should be put in reg.
[DING] if all the put in reg, the i2c_probe will be called several time. The code don not want to register several codecs, but one codec including several tas2781s.

> + description:
> + I2C address of the device for different audio slots,
> + useless in mono case.
> +
> + ti,broadcast-addr:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Generic I2C address for all the tas2781 devices in
> + purpose of I2C broadcast during the multi-device
> + writes, useless in mono case.

Probably you can figure it out from previous addresses and there is no need for this property.
[Ding] this address is the common address for all the tas2781, it can be used for dsp firmware downloading to all the tas2781s in parallel, which can save more downloading time
> +
> + '#sound-dai-cells':
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> +


Best regards,
Krzysztof