mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-02 08:32:55 +00:00

Combinations of "tx" alone, "rx" alone and "tx", "rx" together are
supposedly valid (see link below), which is not the case today as "rx"
alone is not accepted by the current binding.
Let's rework the two interrupt properties to expose all correct
possibilities.
Cc: Péter Ujfalusi <peter.ujfalusi@gmail.com>
Link: https://lore.kernel.org/linux-sound/20241003102552.2c11840e@xps-13/T/#m277fce1d49c50d94e071f7890aed472fa2c64052
Fixes: 8be90641a0
("ASoC: dt-bindings: davinci-mcasp: convert McASP bindings to yaml schema")
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20241003083611.461894-1-miquel.raynal@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
203 lines
4.3 KiB
YAML
203 lines
4.3 KiB
YAML
# 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:
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
interrupt-names:
|
|
oneOf:
|
|
- description: TX interrupt
|
|
const: tx
|
|
- description: RX interrupt
|
|
const: rx
|
|
- description: TX and RX interrupts
|
|
items:
|
|
- const: tx
|
|
- const: rx
|
|
- description: Common/combined interrupt
|
|
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:
|
|
- $ref: dai-common.yaml#
|
|
- if:
|
|
properties:
|
|
opmode:
|
|
enum:
|
|
- 0
|
|
|
|
then:
|
|
required:
|
|
- tdm-slots
|
|
|
|
unevaluatedProperties: 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>;
|
|
};
|