Unverified Commit 8be90641 authored by Jayesh Choudhary's avatar Jayesh Choudhary Committed by Mark Brown
Browse files

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 the 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-modes', 'serial-dir' to optional properties as they are
not needed if the McASP is used only as GPIO.
Changes 'tdm-slots' to required property only for I2S operation mode.

Adds the yaml file in the 'MAINTAINERS' under the heading 'TEXAS
INSTRUMENTS ASoC DRIVERS'

Signed-off-by: default avatarJayesh Choudhary <j-choudhary@ti.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@gmail.com>
Link: https://lore.kernel.org/r/20220209063008.2928-1-j-choudhary@ti.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7d88b960
Loading
Loading
Loading
Loading
+0 −86
Original line number Diff line number Diff line
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>;
};
+201 −0
Original line number Diff line number Diff line
# 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: CFG registers
      - description: data registers

  reg-names:
    minItems: 1
    items:
      - const: mpu
      - const: dat

  op-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: 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
      the property is ignored in DIT mode
    minimum: 2
    maximum: 32

  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

  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 property is missing, then also FIFO use is disabled

  rx-num-evt:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      configures RFIFO threshold
      0 disables the FIFO use
      if property is missing, then also FIFO use is disabled

  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 interrupt
          - description: RX interrupt
      - items:
          - description: common/combined 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

  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

allOf:
  - if:
      properties:
        opmode:
          enum:
            - 0

    then:
      required:
        - tdm-slots

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>;
    };
+1 −0
Original line number Diff line number Diff line
@@ -19042,6 +19042,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