* [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M. @ 2022-01-11 0:00 Daniel Beer 2022-01-11 15:14 ` Rob Herring 2022-01-11 17:26 ` Mark Brown 0 siblings, 2 replies; 5+ messages in thread From: Daniel Beer @ 2022-01-11 0:00 UTC (permalink / raw) To: alsa-devel, devicetree Cc: linux-kernel, Andy Liu, Daniel Beer, Derek Simkowiak, Mark Brown, Rob Herring, Liam Girdwood 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 + ]; + }; + }; -- 2.30.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M. 2022-01-11 0:00 [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M Daniel Beer @ 2022-01-11 15:14 ` Rob Herring 2022-01-11 17:26 ` Mark Brown 1 sibling, 0 replies; 5+ messages in thread From: Rob Herring @ 2022-01-11 15:14 UTC (permalink / raw) To: Daniel Beer Cc: Rob Herring, Mark Brown, Liam Girdwood, alsa-devel, Derek Simkowiak, linux-kernel, Andy Liu, devicetree 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. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M. 2022-01-11 0:00 [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M Daniel Beer 2022-01-11 15:14 ` Rob Herring @ 2022-01-11 17:26 ` Mark Brown 2022-01-11 18:47 ` Daniel Beer 1 sibling, 1 reply; 5+ messages in thread From: Mark Brown @ 2022-01-11 17:26 UTC (permalink / raw) To: Daniel Beer Cc: alsa-devel, devicetree, linux-kernel, Andy Liu, Derek Simkowiak, Rob Herring, Liam Girdwood [-- Attachment #1: Type: text/plain, Size: 715 bytes --] 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. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M. 2022-01-11 17:26 ` Mark Brown @ 2022-01-11 18:47 ` Daniel Beer 2022-01-14 12:11 ` Mark Brown 0 siblings, 1 reply; 5+ messages in thread From: Daniel Beer @ 2022-01-11 18:47 UTC (permalink / raw) To: Mark Brown Cc: alsa-devel, devicetree, linux-kernel, Andy Liu, Derek Simkowiak, Rob Herring, Liam Girdwood 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 -- Daniel Beer Firmware Engineer at Igor Institute daniel.beer@igorinstitute.com or +64-27-420-8101 Offices in Seattle, San Francisco, and Vancouver BC or (206) 494-3312 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M. 2022-01-11 18:47 ` Daniel Beer @ 2022-01-14 12:11 ` Mark Brown 0 siblings, 0 replies; 5+ messages in thread From: Mark Brown @ 2022-01-14 12:11 UTC (permalink / raw) To: Daniel Beer Cc: alsa-devel, devicetree, linux-kernel, Andy Liu, Derek Simkowiak, Rob Herring, Liam Girdwood [-- Attachment #1: Type: text/plain, Size: 292 bytes --] 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. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-01-14 12:11 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-01-11 0:00 [PATCH 2/2] ASoC: dt-bindings: add bindings for TI TAS5805M Daniel Beer 2022-01-11 15:14 ` Rob Herring 2022-01-11 17:26 ` Mark Brown 2022-01-11 18:47 ` Daniel Beer 2022-01-14 12:11 ` Mark Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).