Create tas2781.yaml for tas2781 driver.
Signed-off-by: Shenghao Ding <[email protected]>
---
Changes in v5:
- Drop the full stop in the Subject.
- Drop the reset-gpios reference to gpio.txt.
- Add Changelog.
Changes to be committed:
new file: Documentation/devicetree/bindings/sound/ti,tas2781.yaml
---
.../devicetree/bindings/sound/ti,tas2781.yaml | 87 +++++++++++++++++++
1 file changed, 87 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..8af44792a904
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
@@ -0,0 +1,87 @@
+# 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 <[email protected]>
+ - Kevin Lu <[email protected]>
+
+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.
+
+properties:
+ compatible:
+ enum:
+ - ti,tas2781
+
+ reg:
+ maxItems: 1
+ description: |
+ I2C address of the device can be in range from 0x38 to 0x40.
+
+ reset-gpios:
+ maxItems: 1
+ description: |
+ A GPIO line handling reset of the chip. As the line is active high,
+ it should be marked GPIO_ACTIVE_HIGH.
+
+ interrupts:
+ maxItems: 1
+
+ ti,audio-slots:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 1
+ maxItems: 4
+ 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.
+
+ '#sound-dai-cells':
+ const: 1
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ i2c {
+ /* example with quad support, such as tablet or pad device */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ quad: codec@38 {
+ compatible = "ti,tas2781";
+ reg = <0x38>;
+ #sound-dai-cells = <1>;
+ reset-gpios = < &gpio1 10 GPIO_ACTIVE_HIGH >;
+ interrupt-parent = <&gpio1>;
+ interrupts = <15>;
+ ti,audio-slots = < 0x38 /* topleft-channel */
+ 0x39 /* topright-channel */
+ 0x3a /* bottomleft-channel */
+ 0x3b /* bottomright-channel */
+ >;
+ ti,broadcast-addr = <0x40>;
+ };
+ };
+...
--
2.34.1
On 03/02/2023 05:01, Shenghao Ding wrote:
> Create tas2781.yaml for tas2781 driver.
>
> Signed-off-by: Shenghao Ding <[email protected]>
You got four times my comment that your threading is wrong. You never
replied to that comment that something is not clear. Threading is still
wrong - there is no user of this binding here.
Best regards,
Krzysztof
On Fri, Feb 03, 2023 at 12:01:15PM +0800, Shenghao Ding wrote:
> Create tas2781.yaml for tas2781 driver.
>
> Signed-off-by: Shenghao Ding <[email protected]>
>
> ---
> Changes in v5:
> - Drop the full stop in the Subject.
> - Drop the reset-gpios reference to gpio.txt.
> - Add Changelog.
> Changes to be committed:
> new file: Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> ---
> .../devicetree/bindings/sound/ti,tas2781.yaml | 87 +++++++++++++++++++
> 1 file changed, 87 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..8af44792a904
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> @@ -0,0 +1,87 @@
> +# 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 <[email protected]>
> + - Kevin Lu <[email protected]>
> +
> +description: |
Don't need '|' unless you need line endings preserved. Wrap lines at 80
chars.
> + 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.
> +
> +properties:
> + compatible:
> + enum:
> + - ti,tas2781
> +
> + reg:
> + maxItems: 1
> + description: |
> + I2C address of the device can be in range from 0x38 to 0x40.
Express as constraints instead:
items:
minimum: 0x38
maximum: 0x40
Or was this the range of the slot addresses?
> +
> + reset-gpios:
> + maxItems: 1
> + description: |
> + A GPIO line handling reset of the chip. As the line is active high,
> + it should be marked GPIO_ACTIVE_HIGH.
The description doesn't add anything. Drop.
> +
> + interrupts:
> + maxItems: 1
> +
> + ti,audio-slots:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 1
> + maxItems: 4
> + description: |
> + I2c address of the device for different audio slots,
I2C
> + useless in mono case.
> +
> + ti,broadcast-addr:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Generic i2c address for all the tas2781 devices in
I2C
Be consistent.
> + purpose of I2C broadcast during the multi-device
> + writes, useless in mono case.
> +
> + '#sound-dai-cells':
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + i2c {
> + /* example with quad support, such as tablet or pad device */
> + #address-cells = <1>;
> + #size-cells = <0>;
> + quad: codec@38 {
> + compatible = "ti,tas2781";
> + reg = <0x38>;
> + #sound-dai-cells = <1>;
> + reset-gpios = < &gpio1 10 GPIO_ACTIVE_HIGH >;
> + interrupt-parent = <&gpio1>;
> + interrupts = <15>;
> + ti,audio-slots = < 0x38 /* topleft-channel */
> + 0x39 /* topright-channel */
> + 0x3a /* bottomleft-channel */
> + 0x3b /* bottomright-channel */
Do these vary? Or the slot addresses are fixed and which slots are used
varies?
> + >;
> + ti,broadcast-addr = <0x40>;
I tend to think the I2C addresses should all be in 'reg'.
> + };
> + };
> +...
> --
> 2.34.1
>
>
Hi Rob
Thanks for your review comments. My answers are inline
with prefix [DING]
-----Original Message-----
From: Rob Herring <[email protected]>
Sent: Saturday, February 4, 2023 5:57 AM
To: Shenghao Ding <[email protected]>
Cc: [email protected]; [email protected]; [email protected]; Lu, Kevin <[email protected]>; Ding, Shenghao <[email protected]>; [email protected]; [email protected]; [email protected]
Subject: [EXTERNAL] Re: [PATCH v5] ASoC: dt-bindings: Add tas2781 amplifier
On Fri, Feb 03, 2023 at 12:01:15PM +0800, Shenghao Ding wrote:
> Create tas2781.yaml for tas2781 driver.
>
> Signed-off-by: Shenghao Ding <[email protected]>
>
> ---
> Changes in v5:
> - Drop the full stop in the Subject.
> - Drop the reset-gpios reference to gpio.txt.
> - Add Changelog.
> Changes to be committed:
> new file: Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> ---
> .../devicetree/bindings/sound/ti,tas2781.yaml | 87
> +++++++++++++++++++
> 1 file changed, 87 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..8af44792a904
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/ti,tas2781.yaml
> @@ -0,0 +1,87 @@
> +# 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 <[email protected]>
> + - Kevin Lu <[email protected]>
> +
> +description: |
Don't need '|' unless you need line endings preserved. Wrap lines at 80 chars.
[DING] Accept this comment. I will remove all the "|" after "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.
> +
> +properties:
> + compatible:
> + enum:
> + - ti,tas2781
> +
> + reg:
> + maxItems: 1
> + description: |
> + I2C address of the device can be in range from 0x38 to 0x40.
Express as constraints instead:
items:
minimum: 0x38
maximum: 0x40
[DING] Accept this comment.
Or was this the range of the slot addresses?
[DING] Yes.
> +
> + reset-gpios:
> + maxItems: 1
> + description: |
> + A GPIO line handling reset of the chip. As the line is active high,
> + it should be marked GPIO_ACTIVE_HIGH.
The description doesn't add anything. Drop.
> +
> + interrupts:
> + maxItems: 1
> +
> + ti,audio-slots:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 1
> + maxItems: 4
> + description: |
> + I2c address of the device for different audio slots,
I2C
> + useless in mono case.
> +
> + ti,broadcast-addr:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Generic i2c address for all the tas2781 devices in
I2C
Be consistent.
[DING] Accept this comment.
> + purpose of I2C broadcast during the multi-device
> + writes, useless in mono case.
> +
> + '#sound-dai-cells':
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + i2c {
> + /* example with quad support, such as tablet or pad device */
> + #address-cells = <1>;
> + #size-cells = <0>;
> + quad: codec@38 {
> + compatible = "ti,tas2781";
> + reg = <0x38>;
> + #sound-dai-cells = <1>;
> + reset-gpios = < &gpio1 10 GPIO_ACTIVE_HIGH >;
> + interrupt-parent = <&gpio1>;
> + interrupts = <15>;
> + ti,audio-slots = < 0x38 /* topleft-channel */
> + 0x39 /* topright-channel */
> + 0x3a /* bottomleft-channel */
> + 0x3b /* bottomright-channel */
Do these vary? Or the slot addresses are fixed and which slots are used varies?
[DING] Yes, these will vary with different projects. In some projects there're two addresses,
in some there're six addresses, in others the I2C addresses may be out of order.
> + >;
> + ti,broadcast-addr = <0x40>;
I tend to think the I2C addresses should all be in 'reg'.
[DING] broadcast-addr item is used in multiple tas2781s case to enable the
broadcast mode to download dsp fw simultaneously. Without this item,
broadcast mode will be disabled, and downloading dsp fw will be one by one.
As you know, not all project will enable the broadcast feature, so we have to
add this item. As to reg item, it is only stored the primary tas2781 I2C addr.
> + };
> + };
> +...
> --
> 2.34.1
>
>