[PATCH v4] ASoC: dt-bindings: davinci-mcasp: convert McASP bindings to yaml schema
Convert the bindings for McASP controllers for TI SOCs from txt to YAML schema.
Adds additional properties 'clocks', 'clock-names', 'power-domains', '#sound-dai-cells' and 'port' which were missing from txt file. Removes properties 'sram-size-playback' and 'sram-size-capture' since they are not used. Adds 'dmas' and 'dma-names' in the example which were missing from the txt file. Changes 'interrupts' and 'interrupt-names' from optional to required properties. Changes 'op-mode', 'serial-dir' and 'tdm-slots' to optional properties as they are not needed if the McASP is used only as GPIO.
Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS INSTRUMENTS ASoC DRIVERS'
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com --- Changelog: v4: - changes the commit message - adds type and description to relevant properties - changes maxItems for 'serial-dir' - removes properties 'sram-size-playback' and 'sram-size-capture' as they are not used - removes 'function-gpios' - removes 'num-serializer' - marks 'tdm-slots', 'serial-dir' and 'op-mode' as optional properties - adds the yaml file in MAINTAINERS
v3: - removes maxItems from 'clock-names'
v2: - changes the commit message - modifies the properties 'clocks', 'clock-names', 'dma-names', 'dmas', 'interrupts' and 'interrupt-names' according to the arm SOCs - adds 'ports' and 'num-serializer' as node properties
.../bindings/sound/davinci-mcasp-audio.txt | 86 -------- .../bindings/sound/davinci-mcasp-audio.yaml | 185 ++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 186 insertions(+), 86 deletions(-) delete mode 100644 Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt create mode 100644 Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
diff --git a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt deleted file mode 100644 index bd863bd69501..000000000000 --- a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt +++ /dev/null @@ -1,86 +0,0 @@ -Texas Instruments McASP controller - -Required properties: -- compatible : - "ti,dm646x-mcasp-audio" : for DM646x platforms - "ti,da830-mcasp-audio" : for both DA830 & DA850 platforms - "ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, AM43xx, TI81xx) - "ti,dra7-mcasp-audio" : for DRA7xx platforms - "ti,omap4-mcasp-audio" : for OMAP4 - -- reg : Should contain reg specifiers for the entries in the reg-names property. -- reg-names : Should contain: - * "mpu" for the main registers (required). For compatibility with - existing software, it is recommended this is the first entry. - * "dat" for separate data port register access (optional). -- op-mode : I2S/DIT ops mode. 0 for I2S mode. 1 for DIT mode used for S/PDIF, - IEC60958-1, and AES-3 formats. -- tdm-slots : Slots for TDM operation. Indicates number of channels transmitted - or received over one serializer. -- serial-dir : A list of serializer configuration. Each entry is a number - indication for serializer pin direction. - (0 - INACTIVE, 1 - TX, 2 - RX) -- dmas: two element list of DMA controller phandles and DMA request line - ordered pairs. -- dma-names: identifier string for each DMA request line in the dmas property. - These strings correspond 1:1 with the ordered pairs in dmas. The dma - identifiers must be "rx" and "tx". - -Optional properties: - -- ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0 -- tx-num-evt : FIFO levels. -- rx-num-evt : FIFO levels. -- dismod : Specify the drive on TX pin during inactive slots - 0 : 3-state - 2 : logic low - 3 : logic high - Defaults to 'logic low' when the property is not present -- sram-size-playback : size of sram to be allocated during playback -- sram-size-capture : size of sram to be allocated during capture -- interrupts : Interrupt numbers for McASP -- interrupt-names : Known interrupt names are "tx" and "rx" -- pinctrl-0: Should specify pin control group used for this controller. -- pinctrl-names: Should contain only one value - "default", for more details - please refer to pinctrl-bindings.txt -- fck_parent : Should contain a valid clock name which will be used as parent - for the McASP fck -- auxclk-fs-ratio: When McASP is bus master indicates the ratio between AUCLK - and FS rate if applicable: - AUCLK rate = auxclk-fs-ratio * FS rate - -Optional GPIO support: -If any McASP pin need to be used as GPIO then the McASP node must have: -... - gpio-controller - #gpio-cells = <2>; -... - -When requesting a GPIO, the first parameter is the PIN index in McASP_P* -registers. -For example to request the AXR2 pin of mcasp8: -function-gpios = <&mcasp8 2 0>; - -Or to request the ACLKR pin of mcasp8: -function-gpios = <&mcasp8 29 0>; - -For generic gpio information, please refer to bindings/gpio/gpio.txt - -Example: - -mcasp0: mcasp0@1d00000 { - compatible = "ti,da830-mcasp-audio"; - reg = <0x100000 0x3000>; - reg-names "mpu"; - interrupts = <82>, <83>; - interrupt-names = "tx", "rx"; - op-mode = <0>; /* MCASP_IIS_MODE */ - tdm-slots = <2>; - serial-dir = < - 0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */ - 0 0 0 0 - 0 0 0 1 - 2 0 0 0 >; - tx-num-evt = <1>; - rx-num-evt = <1>; -}; diff --git a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml new file mode 100644 index 000000000000..5b553c90771a --- /dev/null +++ b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml @@ -0,0 +1,185 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/davinci-mcasp-audio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: McASP Controller for TI SoCs + +maintainers: + - Jayesh Choudhary j-choudhary@ti.com + +properties: + compatible: + enum: + - ti,dm646x-mcasp-audio + - ti,da830-mcasp-audio + - ti,am33xx-mcasp-audio + - ti,dra7-mcasp-audio + - ti,omap4-mcasp-audio + + reg: + minItems: 1 + items: + - description: main registers + - description: data port register + + reg-names: + minItems: 1 + items: + - const: mpu + - const: dat + + op-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + description: I2S - 0 or DIT - 1 operation mode + enum: + - 0 + - 1 + + tdm-slots: + $ref: /schemas/types.yaml#/definitions/uint32 + description: number of channels over one serializer + maxItems: 1 + + serial-dir: + description: + A list of serializer configuration + Entry is indication for serializer pin direction + 0 - Inactive, 1 - TX, 2 - RX + All AXR pins should be present in the array even if inactive + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 25 + items: + minimum: 0 + maximum: 2 + default: 0 + + dmas: + minItems: 1 + items: + - description: transmission DMA channel + - description: reception DMA channel + + dma-names: + minItems: 1 + items: + - const: tx + - const: rx + + ti,hwmods: + $ref: /schemas/types.yaml#/definitions/string + description: Name of hwmod associated with McASP + maxItems: 1 + deprecated: true + + tx-num-evt: + $ref: /schemas/types.yaml#/definitions/uint32 + description: configures WFIFO threshold + maxItems: 1 + + rx-num-evt: + $ref: /schemas/types.yaml#/definitions/uint32 + description: configures RFIFO threshold + maxItems: 1 + + dismod: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + specify the drive on TX pin during inactive time slots + 0 - 3-state, 2 - logic low, 3 - logic high + enum: + - 0 + - 2 + - 3 + default: 2 + + interrupts: + anyOf: + - minItems: 1 + items: + - description: TX FIFO interrupt + - description: RX FIFO interrupt + - items: + - description: common FIFO interrupt + + interrupt-names: + oneOf: + - minItems: 1 + items: + - const: tx + - const: rx + - const: common + + fck_parent: + $ref: /schemas/types.yaml#/definitions/string + description: parent clock name for McASP fck + maxItems: 1 + + auxclk-fs-ratio: + $ref: /schemas/types.yaml#/definitions/uint32 + description: ratio of AUCLK and FS rate if applicable + maxItems: 1 + + gpio-controller: true + + "#gpio-cells": + const: 2 + + clocks: + minItems: 1 + items: + - description: functional clock + - description: module specific optional ahclkx clock + - description: module specific optional ahclkr clock + + clock-names: + minItems: 1 + items: + - const: fck + - const: ahclkx + - const: ahclkr + + power-domains: + description: phandle to the corresponding power-domain + maxItems: 1 + + "#sound-dai-cells": + const: 0 + + port: + description: connection for when McASP is used via graph card + type: object + +required: + - compatible + - reg + - reg-names + - dmas + - dma-names + - interrupts + - interrupt-names + +additionalProperties: false + +examples: + - | + mcasp0: mcasp0@1d00000 { + compatible = "ti,da830-mcasp-audio"; + reg = <0x100000 0x3000>; + reg-names = "mpu"; + interrupts = <82>, <83>; + interrupt-names = "tx", "rx"; + op-mode = <0>; /* MCASP_IIS_MODE */ + tdm-slots = <2>; + dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>; + dma-names = "tx", "rx"; + serial-dir = < + 0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */ + 0 0 0 0 + 0 0 0 1 + 2 0 0 0 >; + tx-num-evt = <1>; + rx-num-evt = <1>; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 00ad0cb5cb05..3fdf1e23f7d7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -18855,6 +18855,7 @@ TEXAS INSTRUMENTS ASoC DRIVERS M: Peter Ujfalusi peter.ujfalusi@gmail.com L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained +F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml F: sound/soc/ti/
TEXAS INSTRUMENTS' DAC7612 DAC DRIVER
On Fri, 03 Dec 2021 17:32:43 +0530, Jayesh Choudhary wrote:
Convert the bindings for McASP controllers for TI SOCs from txt to YAML schema.
Adds additional properties 'clocks', 'clock-names', 'power-domains', '#sound-dai-cells' and 'port' which were missing from txt file. Removes properties 'sram-size-playback' and 'sram-size-capture' since they are not used. Adds 'dmas' and 'dma-names' in the example which were missing from the txt file. Changes 'interrupts' and 'interrupt-names' from optional to required properties. Changes 'op-mode', 'serial-dir' and 'tdm-slots' to optional properties as they are not needed if the McASP is used only as GPIO.
Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS INSTRUMENTS ASoC DRIVERS'
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com
Changelog: v4:
- changes the commit message
- adds type and description to relevant properties
- changes maxItems for 'serial-dir'
- removes properties 'sram-size-playback' and 'sram-size-capture' as they are not used
- removes 'function-gpios'
- removes 'num-serializer'
- marks 'tdm-slots', 'serial-dir' and 'op-mode' as optional properties
- adds the yaml file in MAINTAINERS
v3:
- removes maxItems from 'clock-names'
v2:
- changes the commit message
- modifies the properties 'clocks', 'clock-names', 'dma-names', 'dmas', 'interrupts' and 'interrupt-names' according to the arm SOCs
- adds 'ports' and 'num-serializer' as node properties
.../bindings/sound/davinci-mcasp-audio.txt | 86 -------- .../bindings/sound/davinci-mcasp-audio.yaml | 185 ++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 186 insertions(+), 86 deletions(-) delete mode 100644 Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt create mode 100644 Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
Running 'make dtbs_check' with the schema in this patch gives the following warnings. Consider if they are expected or the schema is incorrect. These may not be new warnings.
Note that it is not yet a requirement to have 0 warnings for dtbs_check. This will change in the future.
Full log is available here: https://patchwork.ozlabs.org/patch/1563206
mcasp@0: 'num-serializer' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm/boot/dts/am335x-cm-t335.dt.yaml arch/arm/boot/dts/am335x-sbc-t335.dt.yaml
mcasp@0: 'rt-num-evt' does not match any of the regexes: 'pinctrl-[0-9]+' arch/arm/boot/dts/am335x-wega-rdk.dt.yaml
Hi,
On 03/12/2021 14:02, Jayesh Choudhary wrote:
Convert the bindings for McASP controllers for TI SOCs from txt to YAML schema.
Adds additional properties 'clocks', 'clock-names', 'power-domains', '#sound-dai-cells' and 'port' which were missing from txt file. Removes properties 'sram-size-playback' and 'sram-size-capture' since they are not used. Adds 'dmas' and 'dma-names' in the example which were missing from the txt file. Changes 'interrupts' and 'interrupt-names' from optional to required properties. Changes 'op-mode', 'serial-dir' and 'tdm-slots' to optional properties as they are not needed if the McASP is used only as GPIO.
Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS INSTRUMENTS ASoC DRIVERS'
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com
Changelog: v4:
- changes the commit message
- adds type and description to relevant properties
- changes maxItems for 'serial-dir'
- removes properties 'sram-size-playback' and 'sram-size-capture' as they are not used
- removes 'function-gpios'
- removes 'num-serializer'
- marks 'tdm-slots', 'serial-dir' and 'op-mode' as optional properties
- adds the yaml file in MAINTAINERS
...
diff --git a/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml new file mode 100644 index 000000000000..5b553c90771a --- /dev/null +++ b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml @@ -0,0 +1,185 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/davinci-mcasp-audio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: McASP Controller for TI SoCs
+maintainers:
- Jayesh Choudhary j-choudhary@ti.com
+properties:
- compatible:
- enum:
- ti,dm646x-mcasp-audio
- ti,da830-mcasp-audio
- ti,am33xx-mcasp-audio
- ti,dra7-mcasp-audio
- ti,omap4-mcasp-audio
- reg:
- minItems: 1
- items:
- description: main registers
The TRM refers to this area as CFG registers
- description: data port register
Data registers
- reg-names:
- minItems: 1
- items:
- const: mpu
- const: dat
- op-mode:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: I2S - 0 or DIT - 1 operation mode
0 - I2S, or 1 - DIT operation mode
- enum:
- 0
- 1
- tdm-slots:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: number of channels over one serializer
- maxItems: 1
and it has to be between 2 and 32, ignored in DIT mode (384 slots)
- serial-dir:
- description:
A list of serializer configuration
Entry is indication for serializer pin direction
0 - Inactive, 1 - TX, 2 - RX
All AXR pins should be present in the array even if inactive
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 1
- maxItems: 25
- items:
minimum: 0
maximum: 2
default: 0
There is no default as all pins must be accounted for.
- dmas:
- minItems: 1
- items:
- description: transmission DMA channel
- description: reception DMA channel
- dma-names:
- minItems: 1
- items:
- const: tx
- const: rx
- ti,hwmods:
- $ref: /schemas/types.yaml#/definitions/string
- description: Name of hwmod associated with McASP
- maxItems: 1
- deprecated: true
- tx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures WFIFO threshold
0 disables the FIFO use If the property is missing, it also disables the FIFO use.
- maxItems: 1
- rx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures RFIFO threshold
- maxItems: 1
- dismod:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
specify the drive on TX pin during inactive time slots
0 - 3-state, 2 - logic low, 3 - logic high
- enum:
- 0
- 2
- 3
- default: 2
- interrupts:
- anyOf:
- minItems: 1
items:
- description: TX FIFO interrupt
- description: RX FIFO interrupt
- items:
- description: common FIFO interrupt
These has nothing to do with FIFO, they are just transmit, receive and common or combined
- interrupt-names:
- oneOf:
- minItems: 1
items:
- const: tx
- const: rx
- const: common
- fck_parent:
- $ref: /schemas/types.yaml#/definitions/string
- description: parent clock name for McASP fck
- maxItems: 1
- auxclk-fs-ratio:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: ratio of AUCLK and FS rate if applicable
- maxItems: 1
- gpio-controller: true
- "#gpio-cells":
- const: 2
- clocks:
- minItems: 1
- items:
- description: functional clock
- description: module specific optional ahclkx clock
- description: module specific optional ahclkr clock
- clock-names:
- minItems: 1
- items:
- const: fck
- const: ahclkx
- const: ahclkr
- power-domains:
- description: phandle to the corresponding power-domain
- maxItems: 1
- "#sound-dai-cells":
- const: 0
- port:
- description: connection for when McASP is used via graph card
- type: object
I understand that it can be present under the mcasp node as it is part of the graph card binding (or a card binding using graph). I mean if a new card binding comes around then we need to document it here as well?
+required:
- compatible
- reg
- reg-names
- dmas
- dma-names
- interrupts
- interrupt-names
+additionalProperties: false
+examples:
- |
- mcasp0: mcasp0@1d00000 {
compatible = "ti,da830-mcasp-audio";
reg = <0x100000 0x3000>;
reg-names = "mpu";
interrupts = <82>, <83>;
interrupt-names = "tx", "rx";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
dma-names = "tx", "rx";
serial-dir = <
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
0 0 0 0
0 0 0 1
2 0 0 0 >;
tx-num-evt = <1>;
rx-num-evt = <1>;
- };
diff --git a/MAINTAINERS b/MAINTAINERS index 00ad0cb5cb05..3fdf1e23f7d7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -18855,6 +18855,7 @@ TEXAS INSTRUMENTS ASoC DRIVERS M: Peter Ujfalusi peter.ujfalusi@gmail.com L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained +F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml F: sound/soc/ti/
TEXAS INSTRUMENTS' DAC7612 DAC DRIVER
Hi,
On 04/12/21 1:50 pm, Péter Ujfalusi wrote:
Hi,
On 03/12/2021 14:02, Jayesh Choudhary wrote:
Convert the bindings for McASP controllers for TI SOCs from txt to YAML schema.
Adds additional properties 'clocks', 'clock-names', 'power-domains', '#sound-dai-cells' and 'port' which were missing from txt file. Removes properties 'sram-size-playback' and 'sram-size-capture' since they are not used. Adds 'dmas' and 'dma-names' in the example which were missing from the txt file. Changes 'interrupts' and 'interrupt-names' from optional to required properties. Changes 'op-mode', 'serial-dir' and 'tdm-slots' to optional properties as they are not needed if the McASP is used only as GPIO.
Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS INSTRUMENTS ASoC DRIVERS'
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com
Changelog: v4:
- changes the commit message
- adds type and description to relevant properties
- changes maxItems for 'serial-dir'
- removes properties 'sram-size-playback' and 'sram-size-capture' as they are not used
- removes 'function-gpios'
- removes 'num-serializer'
- marks 'tdm-slots', 'serial-dir' and 'op-mode' as optional properties
- adds the yaml file in MAINTAINERS
...
- reg:
- minItems: 1
- items:
- description: main registers
The TRM refers to this area as CFG registers
- description: data port register
Data registers
- op-mode:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: I2S - 0 or DIT - 1 operation mode
0 - I2S, or 1 - DIT operation mode
I will change the description for 'reg' and 'op-mode'.
- enum:
- 0
- 1
- tdm-slots:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: number of channels over one serializer
- maxItems: 1
and it has to be between 2 and 32, ignored in DIT mode (384 slots)
Will add minimum and maximum. Should this be added as a conditional property when op-mode is 0 (I2S mode) and mark it as required?
- serial-dir:
- description:
A list of serializer configuration
Entry is indication for serializer pin direction
0 - Inactive, 1 - TX, 2 - RX
All AXR pins should be present in the array even if inactive
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 1
- maxItems: 25
- items:
minimum: 0
maximum: 2
default: 0
There is no default as all pins must be accounted for.
Okay. Will remove it.
- tx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures WFIFO threshold
0 disables the FIFO use If the property is missing, it also disables the FIFO use.
Will mention this in the description of both tx/rx-num-evt.
- maxItems: 1
- rx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures RFIFO threshold
- maxItems: 1
- interrupts:
- anyOf:
- minItems: 1
items:
- description: TX FIFO interrupt
- description: RX FIFO interrupt
- items:
- description: common FIFO interrupt
These has nothing to do with FIFO, they are just transmit, receive and common or combined
Okay.
- port:
- description: connection for when McASP is used via graph card
- type: object
I understand that it can be present under the mcasp node as it is part of the graph card binding (or a card binding using graph). I mean if a new card binding comes around then we need to document it here as well?
Specific properties are not marked for the port. So it should not be an issue. Other alternative is to mark the additional properties as true but that is not preferred.
Peter, Any other changes I should make?
Hi,
On 12/7/21 07:03, Jayesh Choudhary wrote:
+ tdm-slots: + $ref: /schemas/types.yaml#/definitions/uint32 + description: number of channels over one serializer + maxItems: 1
and it has to be between 2 and 32, ignored in DIT mode (384 slots)
Will add minimum and maximum. Should this be added as a conditional property when op-mode is 0 (I2S mode) and mark it as required?
That would make it much nicer, yes, thank you!
+ port: + description: connection for when McASP is used via graph card + type: object
I understand that it can be present under the mcasp node as it is part of the graph card binding (or a card binding using graph). I mean if a new card binding comes around then we need to document it here as well?
Specific properties are not marked for the port. So it should not be an issue. Other alternative is to mark the additional properties as true but that is not preferred.
If the McASP is used with simple-sound-card (as it is the case most of the time) then the port is not present under the node for this device as the card is not using graph. I consider the port (and the #sound-dai-cells if we are here) not part of the McASP hardware description as they are part of the graph or simple-card binding.
I'm fine if the port remains here
Peter, Any other changes I should make?
Not much, this already looking good. I would fix the dts files which generates warning/error with this yaml as they are incorrect.
On 08/12/21 1:14 am, Péter Ujfalusi wrote:
I'm fine if the port remains here
Peter, Any other changes I should make?
Not much, this already looking good. I would fix the dts files which generates warning/error with this yaml as they are incorrect.
One patch has already been sent for the typo error in the dts file which generates a warning: https://lore.kernel.org/all/20211125105326.17000-1-j-choudhary@ti.com/
The 'num-serializer' issue needs to be fixed.
-Jayesh
On Fri, Dec 03, 2021 at 05:32:43PM +0530, Jayesh Choudhary wrote:
Convert the bindings for McASP controllers for TI SOCs from txt to YAML schema.
Adds additional properties 'clocks', 'clock-names', 'power-domains', '#sound-dai-cells' and 'port' which were missing from txt file. Removes properties 'sram-size-playback' and 'sram-size-capture' since they are not used. Adds 'dmas' and 'dma-names' in the example which were missing from the txt file. Changes 'interrupts' and 'interrupt-names' from optional to required properties. Changes 'op-mode', 'serial-dir' and 'tdm-slots' to optional properties as they are not needed if the McASP is used only as GPIO.
Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS INSTRUMENTS ASoC DRIVERS'
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com
Changelog: v4:
- changes the commit message
- adds type and description to relevant properties
- changes maxItems for 'serial-dir'
- removes properties 'sram-size-playback' and 'sram-size-capture' as they are not used
- removes 'function-gpios'
- removes 'num-serializer'
- marks 'tdm-slots', 'serial-dir' and 'op-mode' as optional properties
- adds the yaml file in MAINTAINERS
v3:
- removes maxItems from 'clock-names'
v2:
- changes the commit message
- modifies the properties 'clocks', 'clock-names', 'dma-names', 'dmas', 'interrupts' and 'interrupt-names' according to the arm SOCs
- adds 'ports' and 'num-serializer' as node properties
.../bindings/sound/davinci-mcasp-audio.txt | 86 -------- .../bindings/sound/davinci-mcasp-audio.yaml | 185 ++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 186 insertions(+), 86 deletions(-) delete mode 100644 Documentation/devicetree/bindings/sound/davinci-mcasp-audio.txt create mode 100644 Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml
--- /dev/null +++ b/Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml @@ -0,0 +1,185 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/davinci-mcasp-audio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: McASP Controller for TI SoCs
+maintainers:
- Jayesh Choudhary j-choudhary@ti.com
+properties:
- compatible:
- enum:
- ti,dm646x-mcasp-audio
- ti,da830-mcasp-audio
- ti,am33xx-mcasp-audio
- ti,dra7-mcasp-audio
- ti,omap4-mcasp-audio
- reg:
- minItems: 1
- items:
- description: main registers
- description: data port register
- reg-names:
- minItems: 1
- items:
- const: mpu
- const: dat
- op-mode:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: I2S - 0 or DIT - 1 operation mode
- enum:
- 0
- 1
- tdm-slots:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: number of channels over one serializer
- maxItems: 1
It's a uint32, so there's always 1 item. Drop.
No constraints? 0-2^32 is valid?
- serial-dir:
- description:
A list of serializer configuration
Entry is indication for serializer pin direction
0 - Inactive, 1 - TX, 2 - RX
All AXR pins should be present in the array even if inactive
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 1
- maxItems: 25
- items:
minimum: 0
maximum: 2
default: 0
- dmas:
- minItems: 1
- items:
- description: transmission DMA channel
- description: reception DMA channel
- dma-names:
- minItems: 1
- items:
- const: tx
- const: rx
- ti,hwmods:
- $ref: /schemas/types.yaml#/definitions/string
- description: Name of hwmod associated with McASP
- maxItems: 1
- deprecated: true
- tx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures WFIFO threshold
- maxItems: 1
- rx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures RFIFO threshold
- maxItems: 1
- dismod:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
specify the drive on TX pin during inactive time slots
0 - 3-state, 2 - logic low, 3 - logic high
- enum:
- 0
- 2
- 3
- default: 2
- interrupts:
- anyOf:
- minItems: 1
items:
- description: TX FIFO interrupt
- description: RX FIFO interrupt
- items:
- description: common FIFO interrupt
- interrupt-names:
- oneOf:
- minItems: 1
items:
- const: tx
- const: rx
- const: common
- fck_parent:
- $ref: /schemas/types.yaml#/definitions/string
- description: parent clock name for McASP fck
- maxItems: 1
- auxclk-fs-ratio:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: ratio of AUCLK and FS rate if applicable
- maxItems: 1
- gpio-controller: true
- "#gpio-cells":
- const: 2
- clocks:
- minItems: 1
- items:
- description: functional clock
- description: module specific optional ahclkx clock
- description: module specific optional ahclkr clock
- clock-names:
- minItems: 1
- items:
- const: fck
- const: ahclkx
- const: ahclkr
- power-domains:
- description: phandle to the corresponding power-domain
- maxItems: 1
- "#sound-dai-cells":
- const: 0
- port:
- description: connection for when McASP is used via graph card
- type: object
+required:
- compatible
- reg
- reg-names
- dmas
- dma-names
- interrupts
- interrupt-names
+additionalProperties: false
+examples:
- |
- mcasp0: mcasp0@1d00000 {
Drop unused labels.
compatible = "ti,da830-mcasp-audio";
reg = <0x100000 0x3000>;
reg-names = "mpu";
interrupts = <82>, <83>;
interrupt-names = "tx", "rx";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
dma-names = "tx", "rx";
serial-dir = <
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
0 0 0 0
0 0 0 1
2 0 0 0 >;
tx-num-evt = <1>;
rx-num-evt = <1>;
- };
diff --git a/MAINTAINERS b/MAINTAINERS index 00ad0cb5cb05..3fdf1e23f7d7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -18855,6 +18855,7 @@ TEXAS INSTRUMENTS ASoC DRIVERS M: Peter Ujfalusi peter.ujfalusi@gmail.com L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained +F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml F: sound/soc/ti/
TEXAS INSTRUMENTS' DAC7612 DAC DRIVER
2.17.1
On 11/12/21 2:54 am, Rob Herring wrote:
On Fri, Dec 03, 2021 at 05:32:43PM +0530, Jayesh Choudhary wrote:
Convert the bindings for McASP controllers for TI SOCs from txt to YAML schema.
Adds additional properties 'clocks', 'clock-names', 'power-domains', '#sound-dai-cells' and 'port' which were missing from txt file. Removes properties 'sram-size-playback' and 'sram-size-capture' since they are not used. Adds 'dmas' and 'dma-names' in the example which were missing from the txt file. Changes 'interrupts' and 'interrupt-names' from optional to required properties. Changes 'op-mode', 'serial-dir' and 'tdm-slots' to optional properties as they are not needed if the McASP is used only as GPIO.
Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS INSTRUMENTS ASoC DRIVERS'
Signed-off-by: Jayesh Choudhary j-choudhary@ti.com
- tdm-slots:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: number of channels over one serializer
- maxItems: 1
It's a uint32, so there's always 1 item. Drop.
Will drop it from tdm-slots, tx-num-evt, rx-num-evt and auxclk-fs-ratio since they are also uint32.
No constraints? 0-2^32 is valid?
Yes it should be between 2 to 32 as pointed out by Peter. Will add that.
- tx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures WFIFO threshold
- maxItems: 1
- rx-num-evt:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: configures RFIFO threshold
- maxItems: 1
- auxclk-fs-ratio:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: ratio of AUCLK and FS rate if applicable
- maxItems: 1
+additionalProperties: false
+examples:
- |
- mcasp0: mcasp0@1d00000 {
Drop unused labels.
Yeah okay.
compatible = "ti,da830-mcasp-audio";
reg = <0x100000 0x3000>;
reg-names = "mpu";
interrupts = <82>, <83>;
interrupt-names = "tx", "rx";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
dma-names = "tx", "rx";
serial-dir = <
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
0 0 0 0
0 0 0 1
2 0 0 0 >;
tx-num-evt = <1>;
rx-num-evt = <1>;
- };
diff --git a/MAINTAINERS b/MAINTAINERS index 00ad0cb5cb05..3fdf1e23f7d7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -18855,6 +18855,7 @@ TEXAS INSTRUMENTS ASoC DRIVERS M: Peter Ujfalusi peter.ujfalusi@gmail.com L: alsa-devel@alsa-project.org (moderated for non-subscribers) S: Maintained +F: Documentation/devicetree/bindings/sound/davinci-mcasp-audio.yaml F: sound/soc/ti/
TEXAS INSTRUMENTS' DAC7612 DAC DRIVER
2.17.1
participants (3)
-
Jayesh Choudhary
-
Péter Ujfalusi
-
Rob Herring