[PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M.
The TAS5805M is a class D speaker amplifier with integrated DSP. The example here includes a tested flat configuration for mono (PBTL) output.
Signed-off-by: Daniel Beer daniel.beer@igorinstitute.com --- .../devicetree/bindings/sound/tas5805m.yaml | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.yaml
diff --git a/Documentation/devicetree/bindings/sound/tas5805m.yaml b/Documentation/devicetree/bindings/sound/tas5805m.yaml new file mode 100644 index 000000000000..162008e6a1ed --- /dev/null +++ b/Documentation/devicetree/bindings/sound/tas5805m.yaml @@ -0,0 +1,201 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/tas5805m.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TAS5805M audio amplifier + +maintainers: + - Daniel Beer daniel.beer@igorinstitute.com + +description: | + The TAS5805M is a class D audio amplifier with a built-in DSP. + +properties: + compatible: + enum: + - ti,tas5805m + + reg: + maxItems: 1 + description: | + I2C address of the amplifier. See the datasheet for possible values. + + pvdd-supply: + description: | + Regulator for audio power supply (PVDD in the datasheet). + + pdn-gpio: + description: | + Power-down control GPIO (PDN pin in the datasheet). + + ti,dsp-config: | + description: | + A byte sequence giving DSP configuration. Each pair of bytes, in + sequence, gives a register address and a value to write. If you + are taking this data from TI's PPC3 tool, this should contain only + the register writes following the 5ms delay. + +examples: + - | + i2c0 { + #address-cells = <1>; + #size-cells = <0>; + tas5805m: tas5805m@2c { + reg = <0x2c>; + compatible = "ti,tas5805m"; + status = "ok"; + + pvdd-supply = <&audiopwr>; + pdn-gpio = <&tlmm 160 0>; + + // Mono PBTL DSP configuration + ti,dsp-config = [ + 00 00 7f 00 03 00 00 00 7f 00 46 01 00 00 7f 00 + 03 02 00 00 7f 00 78 80 00 00 7f 00 61 0b 60 01 + 7d 11 7e ff 00 01 51 05 00 00 02 04 53 00 54 00 + 00 00 00 00 00 00 00 00 00 00 7f 00 66 87 7f 8c + 00 29 18 00 19 40 1a 26 1b e7 1c 00 1d 40 1e 26 + 1f e7 20 00 21 00 22 00 23 00 24 00 25 00 26 00 + 27 00 00 2a 24 00 25 80 26 00 27 00 28 00 29 80 + 2a 00 2b 00 30 00 31 71 32 94 33 9a 00 2c 0c 00 + 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 + 15 80 16 00 17 00 18 00 19 00 1a 00 1b 00 1c 00 + 1d 80 1e 00 1f 00 20 00 21 00 22 00 23 00 28 00 + 29 80 2a 00 2b 00 2c 00 2d 00 2e 00 2f 00 34 00 + 35 80 36 00 37 00 38 00 39 00 3a 00 3b 00 48 00 + 49 80 4a 00 4b 00 4c 00 4d 00 4e 00 4f 00 5c 00 + 5d 00 5e 57 5f 62 60 00 61 89 62 37 63 4c 64 08 + 65 13 66 85 67 62 68 40 69 00 6a 00 6b 00 6c 02 + 6d 66 6e c4 6f 1b 74 00 75 80 76 00 77 00 00 2d + 18 7d 19 99 1a 3b 1b e5 1c 00 1d 00 1e 57 1f 62 + 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 + 28 00 29 00 2a 00 2b 00 2c 00 2d 80 2e 00 2f 00 + 00 2e 24 11 25 3d 26 c3 27 1a 00 00 7f aa 00 24 + 18 08 19 00 1a 00 1b 00 1c 00 1d 00 1e 00 1f 00 + 20 00 21 00 22 00 23 00 24 00 25 00 26 00 27 00 + 28 00 29 00 2a 00 2b 00 2c 08 2d 00 2e 00 2f 00 + 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 + 38 00 39 00 3a 00 3b 00 3c 00 3d 00 3e 00 3f 00 + 40 08 41 00 42 00 43 00 44 00 45 00 46 00 47 00 + 48 00 49 00 4a 00 4b 00 4c 00 4d 00 4e 00 4f 00 + 50 00 51 00 52 00 53 00 54 08 55 00 56 00 57 00 + 58 00 59 00 5a 00 5b 00 5c 00 5d 00 5e 00 5f 00 + 60 00 61 00 62 00 63 00 64 00 65 00 66 00 67 00 + 68 08 69 00 6a 00 6b 00 6c 00 6d 00 6e 00 6f 00 + 70 00 71 00 72 00 73 00 74 00 75 00 76 00 77 00 + 78 00 79 00 7a 00 7b 00 7c 08 7d 00 7e 00 7f 00 + 00 25 08 00 09 00 0a 00 0b 00 0c 00 0d 00 0e 00 + 0f 00 10 00 11 00 12 00 13 00 14 00 15 00 16 00 + 17 00 18 08 19 00 1a 00 1b 00 1c 00 1d 00 1e 00 + 1f 00 20 00 21 00 22 00 23 00 24 00 25 00 26 00 + 27 00 28 00 29 00 2a 00 2b 00 2c 08 2d 00 2e 00 + 2f 00 30 00 31 00 32 00 33 00 34 00 35 00 36 00 + 37 00 38 00 39 00 3a 00 3b 00 3c 00 3d 00 3e 00 + 3f 00 40 08 41 00 42 00 43 00 44 00 45 00 46 00 + 47 00 48 00 49 00 4a 00 4b 00 4c 00 4d 00 4e 00 + 4f 00 50 00 51 00 52 00 53 00 54 08 55 00 56 00 + 57 00 58 00 59 00 5a 00 5b 00 5c 00 5d 00 5e 00 + 5f 00 60 00 61 00 62 00 63 00 64 00 65 00 66 00 + 67 00 68 08 69 00 6a 00 6b 00 6c 00 6d 00 6e 00 + 6f 00 70 00 71 00 72 00 73 00 74 00 75 00 76 00 + 77 00 78 00 79 00 7a 00 7b 00 7c 08 7d 00 7e 00 + 7f 00 00 26 08 00 09 00 0a 00 0b 00 0c 00 0d 00 + 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 15 00 + 16 00 17 00 18 08 19 00 1a 00 1b 00 1c 00 1d 00 + 1e 00 1f 00 20 00 21 00 22 00 23 00 24 00 25 00 + 26 00 27 00 28 00 29 00 2a 00 2b 00 2c 08 2d 00 + 2e 00 2f 00 30 00 31 00 32 00 33 00 34 00 35 00 + 36 00 37 00 38 00 39 00 3a 00 3b 00 3c 00 3d 00 + 3e 00 3f 00 40 08 41 00 42 00 43 00 44 00 45 00 + 46 00 47 00 48 00 49 00 4a 00 4b 00 4c 00 4d 00 + 4e 00 4f 00 50 00 51 00 52 00 53 00 54 08 55 00 + 56 00 57 00 58 00 59 00 5a 00 5b 00 5c 00 5d 00 + 5e 00 5f 00 60 00 61 00 62 00 63 00 64 00 65 00 + 66 00 67 00 68 08 69 00 6a 00 6b 00 6c 00 6d 00 + 6e 00 6f 00 70 00 71 00 72 00 73 00 74 00 75 00 + 76 00 77 00 78 00 79 00 7a 00 7b 00 7c 08 7d 00 + 7e 00 7f 00 00 27 08 00 09 00 0a 00 0b 00 0c 00 + 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 + 15 00 16 00 17 00 18 08 19 00 1a 00 1b 00 1c 00 + 1d 00 1e 00 1f 00 20 00 21 00 22 00 23 00 24 00 + 25 00 26 00 27 00 28 00 29 00 2a 00 2b 00 2c 08 + 2d 00 2e 00 2f 00 30 00 31 00 32 00 33 00 34 00 + 35 00 36 00 37 00 38 00 39 00 3a 00 3b 00 3c 00 + 3d 00 3e 00 3f 00 40 08 41 00 42 00 43 00 44 00 + 45 00 46 00 47 00 48 00 49 00 4a 00 4b 00 4c 00 + 4d 00 4e 00 4f 00 50 00 51 00 52 00 53 00 54 08 + 55 00 56 00 57 00 58 00 59 00 5a 00 5b 00 5c 00 + 5d 00 5e 00 5f 00 60 00 61 00 62 00 63 00 64 00 + 65 00 66 00 67 00 68 08 69 00 6a 00 6b 00 6c 00 + 6d 00 6e 00 6f 00 70 00 71 00 72 00 73 00 74 00 + 75 00 76 00 77 00 78 00 79 00 7a 00 7b 00 7c 08 + 7d 00 7e 00 7f 00 00 28 08 00 09 00 0a 00 0b 00 + 0c 00 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 + 14 00 15 00 16 00 17 00 18 08 19 00 1a 00 1b 00 + 1c 00 1d 00 1e 00 1f 00 20 00 21 00 22 00 23 00 + 24 00 25 00 26 00 27 00 28 00 29 00 2a 00 2b 00 + 2c 08 2d 00 2e 00 2f 00 30 00 31 00 32 00 33 00 + 34 00 35 00 36 00 37 00 38 00 39 00 3a 00 3b 00 + 3c 00 3d 00 3e 00 3f 00 40 08 41 00 42 00 43 00 + 44 00 45 00 46 00 47 00 48 00 49 00 4a 00 4b 00 + 4c 00 4d 00 4e 00 4f 00 50 00 51 00 52 00 53 00 + 54 08 55 00 56 00 57 00 58 00 59 00 5a 00 5b 00 + 5c 00 5d 00 5e 00 5f 00 60 00 61 00 62 00 63 00 + 64 00 65 00 66 00 67 00 68 08 69 00 6a 00 6b 00 + 6c 00 6d 00 6e 00 6f 00 70 00 71 00 72 00 73 00 + 74 00 75 00 76 00 77 00 78 00 79 00 7a 00 7b 00 + 7c 08 7d 00 7e 00 7f 00 00 29 08 00 09 00 0a 00 + 0b 00 0c 00 0d 00 0e 00 0f 00 10 00 11 00 12 00 + 13 00 14 00 15 00 16 00 17 00 00 2e 7c 08 7d 00 + 7e 00 7f 00 00 2f 08 00 09 00 0a 00 0b 00 0c 00 + 0d 00 0e 00 0f 00 10 00 11 00 12 00 13 00 14 00 + 15 00 16 00 17 00 1c 08 1d 00 1e 00 1f 00 20 00 + 21 00 22 00 23 00 24 00 25 00 26 00 27 00 28 00 + 29 00 2a 00 2b 00 2c 00 2d 00 2e 00 2f 00 00 2a + 48 00 49 01 4a 64 4b 0a 4c 00 4d 01 4e 64 4f 0a + 50 00 51 01 52 64 53 0a 54 7e 55 d0 56 b5 57 2d + 58 82 59 59 5a 05 5b 7b 00 00 7f 8c 00 2b 34 00 + 35 0d 36 a6 37 86 38 00 39 0d 3a a6 3b 86 3c 00 + 3d 06 3e d3 3f 72 40 00 41 00 42 00 43 00 44 00 + 45 00 46 00 47 00 48 ff 49 81 4a 47 4b ae 4c f9 + 4d 06 4e 21 4f a9 50 fe 51 01 52 c0 53 79 54 00 + 55 00 56 00 57 00 58 00 59 00 5a 00 5b 00 00 2d + 58 01 59 53 5a 8f 5b cc 5c 01 5d 53 5e 8f 5f cc + 60 00 61 22 62 1d 63 95 64 00 65 00 66 00 67 00 + 68 00 69 00 6a 00 6b 00 6c ff 6d 81 6e 47 6f ae + 70 f9 71 06 72 21 73 a9 74 fe 75 01 76 c0 77 79 + 78 00 79 00 7a 00 7b 00 7c 00 7d 00 7e 00 7f 00 + 00 00 7f aa 00 2e 40 01 41 d7 42 e8 43 0a 44 01 + 45 d7 46 e8 47 0a 48 01 49 d7 4a e8 4b 0a 4c 68 + 4d 82 4e f5 4f bf 50 a7 51 9a 52 74 53 5a 00 2b + 20 6a 21 5a 22 dd 23 c9 24 95 25 a5 26 22 27 37 + 28 6a 29 5a 2a dd 2b c9 2c 68 2d 82 2e f5 2f bf + 30 a7 31 9a 32 74 33 5a 0c 6a 0d 5a 0e dd 0f c9 + 10 95 11 a5 12 22 13 37 14 6a 15 5a 16 dd 17 c9 + 18 68 19 82 1a f5 1b bf 1c a7 1d 9a 1e 74 1f 5a + 00 2a 34 00 35 01 36 64 37 0a 38 00 39 01 3a 64 + 3b 0a 3c 00 3d 01 3e 64 3f 0a 40 7e 41 d0 42 b5 + 43 2d 44 82 45 59 46 05 47 7b 00 00 7f 8c 00 2d + 30 01 31 53 32 8f 33 cc 34 01 35 53 36 8f 37 cc + 38 00 39 03 3a 69 3b c5 3c 00 3d 00 3e 00 3f 00 + 40 00 41 00 42 00 43 00 44 ff 45 81 46 47 47 ae + 48 f9 49 06 4a 21 4b a9 4c fe 4d 01 4e c0 4f 79 + 50 00 51 00 52 00 53 00 54 00 55 00 56 00 57 00 + 00 00 7f aa 00 2a 5c 7e 5d d2 5e 19 5f 37 60 81 + 61 2d 62 e6 63 c9 64 7e 65 d2 66 19 67 37 68 7e + 69 d0 6a b5 6b 2d 6c 82 6d 59 6e 05 6f 7b 70 7e + 71 d2 72 19 73 37 74 81 75 2d 76 e6 77 c9 78 7e + 79 d2 7a 19 7b 37 7c 7e 7d d0 7e b5 7f 2d 00 2b + 08 82 09 59 0a 05 0b 7b 00 2e 54 01 55 d7 56 e8 + 57 0a 58 01 59 d7 5a e8 5b 0a 5c 01 5d d7 5e e8 + 5f 0a 60 68 61 82 62 f5 63 bf 64 a7 65 9a 66 74 + 67 5a 00 00 7f 8c 00 2e 10 00 11 80 12 00 13 00 + 0c 00 0d 80 0e 00 0f 00 08 00 09 80 0a 00 0b 00 + 18 00 19 80 1a 00 1b 00 1c 40 1d 00 1e 00 1f 00 + 20 40 21 00 22 00 23 00 00 00 7f 00 30 00 4c 30 + 03 03 00 00 7f 00 78 80 + ]; + }; + };
On Tue, 11 Jan 2022 13:00:09 +1300, Daniel Beer wrote:
The TAS5805M is a class D speaker amplifier with integrated DSP. The example here includes a tested flat configuration for mono (PBTL) output.
Signed-off-by: Daniel Beer daniel.beer@igorinstitute.com
.../devicetree/bindings/sound/tas5805m.yaml | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/tas5805m.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: ./Documentation/devicetree/bindings/sound/tas5805m.yaml:44:1: [error] syntax error: found character '\t' that cannot start any token (syntax)
dtschema/dtc warnings/errors: ./Documentation/devicetree/bindings/sound/tas5805m.yaml: while scanning a block scalar in "<unicode string>", line 41, column 5 found a tab character where an indentation space is expected in "<unicode string>", line 44, column 1 make[1]: *** Deleting file 'Documentation/devicetree/bindings/sound/tas5805m.example.dts' Traceback (most recent call last): File "/usr/local/bin/dt-extract-example", line 46, in <module> binding = yaml.load(open(args.yamlfile, encoding='utf-8').read()) File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 434, in load return constructor.get_single_data() File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 119, in get_single_data node = self.composer.get_single_node() File "_ruamel_yaml.pyx", line 706, in _ruamel_yaml.CParser.get_single_node File "_ruamel_yaml.pyx", line 724, in _ruamel_yaml.CParser._compose_document File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node File "_ruamel_yaml.pyx", line 889, in _ruamel_yaml.CParser._compose_mapping_node File "_ruamel_yaml.pyx", line 773, in _ruamel_yaml.CParser._compose_node File "_ruamel_yaml.pyx", line 848, in _ruamel_yaml.CParser._compose_sequence_node File "_ruamel_yaml.pyx", line 904, in _ruamel_yaml.CParser._parse_next_event ruamel.yaml.scanner.ScannerError: while scanning a block scalar in "<unicode string>", line 41, column 5 found a tab character where an indentation space is expected in "<unicode string>", line 44, column 1 make[1]: *** [Documentation/devicetree/bindings/Makefile:25: Documentation/devicetree/bindings/sound/tas5805m.example.dts] Error 1 make[1]: *** Waiting for unfinished jobs.... /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/tas5805m.yaml: ignoring, error parsing file make: *** [Makefile:1413: dt_binding_check] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1578223
This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1.
If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date:
pip3 install dtschema --upgrade
Please check and re-submit.
On Tue, Jan 11, 2022 at 01:00:09PM +1300, Daniel Beer wrote:
- ti,dsp-config: |
- description: |
A byte sequence giving DSP configuration. Each pair of bytes, in
sequence, gives a register address and a value to write. If you
are taking this data from TI's PPC3 tool, this should contain only
the register writes following the 5ms delay.
This doesn't look appropriate for DT, it looks more like it should be loaded as firmware since systems might want to support multiple configurations at runtime based on use casea. It would also be good to have code to validate that any supplied coefficeints/firmware don't overwrite registers managed by the driver, just in case.
On Tue, Jan 11, 2022 at 05:26:14PM +0000, Mark Brown wrote:
On Tue, Jan 11, 2022 at 01:00:09PM +1300, Daniel Beer wrote:
- ti,dsp-config: |
- description: |
A byte sequence giving DSP configuration. Each pair of bytes, in
sequence, gives a register address and a value to write. If you
are taking this data from TI's PPC3 tool, this should contain only
the register writes following the 5ms delay.
This doesn't look appropriate for DT, it looks more like it should be loaded as firmware since systems might want to support multiple configurations at runtime based on use casea. It would also be good to have code to validate that any supplied coefficeints/firmware don't overwrite registers managed by the driver, just in case.
Hi Mark,
That was my initial thought, but the problem is that different instances may have different configurations.
We don't really have a way of validating the configuration here, since it's typically generated by TI's PPC3 tool.
If you think it's still inappropriate to supply the configuration in the device-tree, do you have any suggestions?
Cheers, Daniel
On Wed, Jan 12, 2022 at 07:47:00AM +1300, Daniel Beer wrote:
If you think it's still inappropriate to supply the configuration in the device-tree, do you have any suggestions?
As I said load it like other coefficient data - the simplest thing initially would be loading it as firmware.
participants (3)
-
Daniel Beer
-
Mark Brown
-
Rob Herring