mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge tag 'sound-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
"The majority of changes are ASoC drivers (SOF, Intel, AMD, Mediatek,
Qualcomm, TI, Apple Silicon, etc), while we see a few small fixes in
ALSA / ASoC core side, too.
Here are highlights:
Core:
- A new string helper parse_int_array_user() and cleanups with it
- Continued cleanup of memory allocation helpers
- PCM core optimization and hardening
- Continued ASoC core code cleanups
ASoC:
- Improvements to the SOF IPC4 code, especially around trace
- Support for AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Apple
Silicon systems, Everest ES8326, Intel Sky Lake and Kaby Lake,
Mediatek MT8186 support, NXP i.MX8ULP DSPs, Qualcomm SC8280XP,
SM8250 and SM8450 and Texas Instruments SRC4392
HD- and USB-audio:
- Cleanups for unification of hda-ext bus
- HD-audio HDMI codec driver cleanups
- Continued endpoint management fixes for USB-audio
- New quirks as usual"
* tag 'sound-6.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (422 commits)
ALSA: hda: Fix position reporting on Poulsbo
ALSA: hda/hdmi: Don't skip notification handling during PM operation
ASoC: rockchip: i2s: use regmap_read_poll_timeout_atomic to poll I2S_CLR
ASoC: dt-bindings: Document audio OF graph dai-tdm-slot-num dai-tdm-slot-width props
ASoC: qcom: fix unmet direct dependencies for SND_SOC_QDSP6
ALSA: usb-audio: Fix potential memory leaks
ALSA: usb-audio: Fix NULL dererence at error path
ASoC: mediatek: mt8192-mt6359: Set the driver name for the card
ALSA: hda/realtek: More robust component matching for CS35L41
ASoC: Intel: sof_rt5682: remove SOF_RT1015_SPEAKER_AMP_100FS flag
ASoC: nau8825: Add TDM support
ASoC: core: clarify the driver name initialization
ASoC: mt6660: Fix PM disable depth imbalance in mt6660_i2c_probe
ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe
ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe
ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe
ASoC: wcd-mbhc-v2: Revert "ASoC: wcd-mbhc-v2: use pm_runtime_resume_and_get()"
ASoC: mediatek: mt8186: Fix spelling mistake "slect" -> "select"
ALSA: hda/realtek: Add quirk for HP Zbook Firefly 14 G9 model
ALSA: asihpi - Remove unused struct hpi_subsys_response
...
This commit is contained in:
@@ -20,6 +20,7 @@ properties:
|
||||
- fsl,imx8qxp-dsp
|
||||
- fsl,imx8qm-dsp
|
||||
- fsl,imx8mp-dsp
|
||||
- fsl,imx8ulp-dsp
|
||||
- fsl,imx8qxp-hifi4
|
||||
- fsl,imx8qm-hifi4
|
||||
- fsl,imx8mp-hifi4
|
||||
|
||||
@@ -20,6 +20,9 @@ properties:
|
||||
- qcom,apr-v2
|
||||
- qcom,gpr
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
qcom,apr-domain:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [1, 2, 3, 4, 5, 6, 7]
|
||||
@@ -52,6 +55,26 @@ properties:
|
||||
2 = Audio DSP Domain
|
||||
3 = Application Processor Domain
|
||||
|
||||
qcom,glink-channels:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
description: Channel name used for the communication
|
||||
items:
|
||||
- const: apr_audio_svc
|
||||
|
||||
qcom,intents:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description:
|
||||
List of (size, amount) pairs describing what intents should be
|
||||
preallocated for this virtual channel. This can be used to tweak the
|
||||
default intents available for the channel to meet expectations of the
|
||||
remote.
|
||||
|
||||
qcom,smd-channels:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
description: Channel name used for the communication
|
||||
items:
|
||||
- const: apr_audio_svc
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
@@ -97,6 +120,26 @@ patternProperties:
|
||||
3 = AMDB Service.
|
||||
4 = Voice processing manager.
|
||||
|
||||
clock-controller:
|
||||
$ref: /schemas/sound/qcom,q6dsp-lpass-clocks.yaml#
|
||||
description: Qualcomm DSP LPASS clock controller
|
||||
unevaluatedProperties: false
|
||||
|
||||
dais:
|
||||
type: object
|
||||
oneOf:
|
||||
- $ref: /schemas/sound/qcom,q6apm-dai.yaml#
|
||||
- $ref: /schemas/sound/qcom,q6dsp-lpass-ports.yaml#
|
||||
- $ref: /schemas/sound/qcom,q6asm-dais.yaml#
|
||||
unevaluatedProperties: false
|
||||
description: Qualcomm DSP audio ports
|
||||
|
||||
routing:
|
||||
type: object
|
||||
$ref: /schemas/sound/qcom,q6adm-routing.yaml#
|
||||
unevaluatedProperties: false
|
||||
description: Qualcomm DSP LPASS audio routing
|
||||
|
||||
qcom,protection-domain:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
description: protection domain service name and path for apr service
|
||||
@@ -107,17 +150,44 @@ patternProperties:
|
||||
"tms/servreg", "msm/modem/wlan_pd".
|
||||
"tms/servreg", "msm/slpi/sensor_pd".
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,q6afe
|
||||
then:
|
||||
properties:
|
||||
dais:
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,q6afe-dais
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,q6apm
|
||||
then:
|
||||
properties:
|
||||
dais:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,q6apm-dais
|
||||
- qcom,q6apm-lpass-dais
|
||||
|
||||
patternProperties:
|
||||
"^.*@[0-9a-f]+$":
|
||||
type: object
|
||||
description:
|
||||
Service based devices like clock controllers or digital audio interfaces.
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,q6asm
|
||||
then:
|
||||
properties:
|
||||
dais:
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,q6asm-dais
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
@@ -125,6 +195,30 @@ required:
|
||||
- compatible
|
||||
- qcom,domain
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,gpr
|
||||
then:
|
||||
properties:
|
||||
power-domains: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- qcom,glink-channels
|
||||
then:
|
||||
properties:
|
||||
qcom,smd-channels: false
|
||||
|
||||
- if:
|
||||
required:
|
||||
- qcom,smd-channels
|
||||
then:
|
||||
properties:
|
||||
qcom,glink-channels: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -78,6 +78,40 @@ properties:
|
||||
interleaved on a single output channel.
|
||||
type: boolean
|
||||
|
||||
adi,dmon-stuck-enable:
|
||||
description:
|
||||
Enables the "data monitor stuck" feature. Once the data monitor is
|
||||
enabled, it actively monitors the selected input data (from DIN) to the
|
||||
speaker amplifier. Once a data error is detected, the data monitor
|
||||
automatically places the device into software shutdown.
|
||||
type: boolean
|
||||
|
||||
adi,dmon-stuck-threshold-bits:
|
||||
description:
|
||||
Sets the threshold for the "data monitor stuck" feature, in bits.
|
||||
enum: [9, 11, 13, 15]
|
||||
default: 15
|
||||
|
||||
adi,dmon-magnitude-enable:
|
||||
description:
|
||||
Enables the "data monitor magnitude" feature. Once the data monitor is
|
||||
enabled, it actively monitors the selected input data (from DIN) to the
|
||||
speaker amplifier. Once a data error is detected, the data monitor
|
||||
automatically places the device into software shutdown.
|
||||
type: boolean
|
||||
|
||||
adi,dmon-magnitude-threshold-bits:
|
||||
description:
|
||||
Sets the threshold for the "data monitor magnitude" feature, in bits.
|
||||
enum: [2, 3, 4, 5]
|
||||
default: 5
|
||||
|
||||
adi,dmon-duration-ms:
|
||||
description:
|
||||
Sets the duration for the "data monitor" feature, in milliseconds.
|
||||
enum: [64, 256, 1024, 4096]
|
||||
default: 64
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/allwinner,sun50i-h6-dmic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Allwinner H6 DMIC
|
||||
|
||||
maintainers:
|
||||
- Ban Tao <fengzheng923@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: allwinner,sun50i-h6-dmic
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus Clock
|
||||
- description: Module Clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: mod
|
||||
|
||||
dmas:
|
||||
items:
|
||||
- description: RX DMA Channel
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- "#sound-dai-cells"
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
#include <dt-bindings/clock/sun50i-h6-ccu.h>
|
||||
#include <dt-bindings/reset/sun50i-h6-ccu.h>
|
||||
|
||||
dmic: dmic@5095000 {
|
||||
#sound-dai-cells = <0>;
|
||||
compatible = "allwinner,sun50i-h6-dmic";
|
||||
reg = <0x05095000 0x400>;
|
||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&ccu CLK_BUS_DMIC>, <&ccu CLK_DMIC>;
|
||||
clock-names = "bus", "mod";
|
||||
dmas = <&dma 7>;
|
||||
dma-names = "rx";
|
||||
resets = <&ccu RST_BUS_DMIC>;
|
||||
};
|
||||
|
||||
...
|
||||
@@ -40,6 +40,7 @@ properties:
|
||||
patternProperties:
|
||||
"^dai-link-[0-9]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: |-
|
||||
dai-link child nodes:
|
||||
Container for dai-link level properties and the CODEC sub-nodes.
|
||||
@@ -63,6 +64,7 @@ patternProperties:
|
||||
patternProperties:
|
||||
"^codec-[0-9]+$":
|
||||
type: object
|
||||
additionalProperties: false
|
||||
description: |-
|
||||
Codecs:
|
||||
dai-link representing backend links should have at least one subnode.
|
||||
|
||||
131
Documentation/devicetree/bindings/sound/apple,mca.yaml
Normal file
131
Documentation/devicetree/bindings/sound/apple,mca.yaml
Normal file
@@ -0,0 +1,131 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/apple,mca.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Apple MCA I2S transceiver
|
||||
|
||||
description: |
|
||||
MCA is an I2S transceiver peripheral found on M1 and other Apple chips. It is
|
||||
composed of a number of identical clusters which can operate independently
|
||||
or in an interlinked fashion. Up to 6 clusters have been seen on an MCA.
|
||||
|
||||
maintainers:
|
||||
- Martin Povišer <povik+lin@cutebit.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- apple,t6000-mca
|
||||
- apple,t8103-mca
|
||||
- const: apple,mca
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Register region of the MCA clusters proper
|
||||
- description: Register region of the DMA glue and its FIFOs
|
||||
|
||||
interrupts:
|
||||
minItems: 4
|
||||
maxItems: 6
|
||||
description:
|
||||
One interrupt per each cluster
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
dmas:
|
||||
minItems: 16
|
||||
maxItems: 24
|
||||
description:
|
||||
DMA channels corresponding to the SERDES units in the peripheral. They are
|
||||
listed in groups of four per cluster, and within the group they are given
|
||||
as associated to the TXA, RXA, TXB, RXB units.
|
||||
|
||||
dma-names:
|
||||
minItems: 16
|
||||
items:
|
||||
- const: tx0a
|
||||
- const: rx0a
|
||||
- const: tx0b
|
||||
- const: rx0b
|
||||
- const: tx1a
|
||||
- const: rx1a
|
||||
- const: tx1b
|
||||
- const: rx1b
|
||||
- const: tx2a
|
||||
- const: rx2a
|
||||
- const: tx2b
|
||||
- const: rx2b
|
||||
- const: tx3a
|
||||
- const: rx3a
|
||||
- const: tx3b
|
||||
- const: rx3b
|
||||
- const: tx4a
|
||||
- const: rx4a
|
||||
- const: tx4b
|
||||
- const: rx4b
|
||||
- const: tx5a
|
||||
- const: rx5a
|
||||
- const: tx5b
|
||||
- const: rx5b
|
||||
description: |
|
||||
Names for the DMA channels: 'tx'/'rx', then cluster number, then 'a'/'b'
|
||||
based on the associated SERDES unit.
|
||||
|
||||
clocks:
|
||||
minItems: 4
|
||||
maxItems: 6
|
||||
description:
|
||||
Clusters' input reference clock.
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
minItems: 5
|
||||
maxItems: 7
|
||||
description:
|
||||
First a general power domain for register access, then the power
|
||||
domains of individual clusters for their operation.
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- dmas
|
||||
- dma-names
|
||||
- clocks
|
||||
- power-domains
|
||||
- '#sound-dai-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
mca: i2s@9b600000 {
|
||||
compatible = "apple,t6000-mca", "apple,mca";
|
||||
reg = <0x9b600000 0x10000>,
|
||||
<0x9b200000 0x20000>;
|
||||
|
||||
clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
|
||||
power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
|
||||
<&ps_mca2>, <&ps_mca3>;
|
||||
dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
|
||||
<&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
|
||||
<&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
|
||||
<&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>;
|
||||
dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
|
||||
"tx1a", "rx1a", "tx1b", "rx1b",
|
||||
"tx2a", "rx2a", "tx2b", "rx2b",
|
||||
"tx3a", "rx3a", "tx3b", "rx3b";
|
||||
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
||||
@@ -19,14 +19,17 @@ properties:
|
||||
description: "device name prefix"
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
convert-rate:
|
||||
description: CPU to Codec rate convert.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate"
|
||||
convert-channels:
|
||||
description: CPU to Codec rate channels.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels"
|
||||
convert-sample-format:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format"
|
||||
|
||||
patternProperties:
|
||||
"^endpoint(@[0-9a-f]+)?":
|
||||
$ref: /schemas/graph.yaml#/$defs/endpoint-base
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
mclk-fs:
|
||||
description: |
|
||||
@@ -65,12 +68,18 @@ patternProperties:
|
||||
- msb
|
||||
- lsb
|
||||
convert-rate:
|
||||
description: CPU to Codec rate convert.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate"
|
||||
convert-channels:
|
||||
description: CPU to Codec rate channels.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels"
|
||||
convert-sample-format:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format"
|
||||
|
||||
dai-tdm-slot-num:
|
||||
description: Number of slots in use.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
dai-tdm-slot-width:
|
||||
description: Width in bits for each slot.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
dai-tdm-slot-width-map:
|
||||
description: Mapping of sample widths to slot widths. For hardware
|
||||
that cannot support a fixed slot width or a slot width always
|
||||
|
||||
@@ -27,11 +27,12 @@ properties:
|
||||
description: User specified audio sound widgets.
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
convert-rate:
|
||||
description: CPU to Codec rate convert.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-rate"
|
||||
convert-channels:
|
||||
description: CPU to Codec rate channels.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-channels"
|
||||
convert-sample-format:
|
||||
$ref: "/schemas/sound/dai-params.yaml#/$defs/dai-sample-format"
|
||||
|
||||
pa-gpios:
|
||||
maxItems: 1
|
||||
hp-det-gpio:
|
||||
|
||||
@@ -19,6 +19,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs42l42
|
||||
- cirrus,cs42l83
|
||||
|
||||
reg:
|
||||
description:
|
||||
|
||||
40
Documentation/devicetree/bindings/sound/dai-params.yaml
Normal file
40
Documentation/devicetree/bindings/sound/dai-params.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/dai-params.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Digital Audio Interface (DAI) Stream Parameters
|
||||
|
||||
maintainers:
|
||||
- Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
|
||||
select: false
|
||||
|
||||
$defs:
|
||||
|
||||
dai-channels:
|
||||
description: Number of audio channels used by DAI
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 32
|
||||
|
||||
dai-sample-format:
|
||||
description: Audio sample format used by DAI
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- s8
|
||||
- s16_le
|
||||
- s24_le
|
||||
- s24_3le
|
||||
- s32_le
|
||||
|
||||
dai-sample-rate:
|
||||
description: Audio sample rate used by DAI
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 8000
|
||||
maximum: 192000
|
||||
|
||||
properties: {}
|
||||
|
||||
additionalProperties: true
|
||||
116
Documentation/devicetree/bindings/sound/everest,es8326.yaml
Executable file
116
Documentation/devicetree/bindings/sound/everest,es8326.yaml
Executable file
@@ -0,0 +1,116 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/everest,es8326.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Everest ES8326 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- David Yang <yangxiaohua@everest-semi.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: everest,es8326
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: clock for master clock (MCLK)
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
everest,jack-pol:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description: |
|
||||
just the value of reg 57. Bit(3) decides whether the jack polarity is inverted.
|
||||
Bit(2) decides whether the button on the headset is inverted.
|
||||
Bit(1)/(0) decides the mic properity to be OMTP/CTIA or auto.
|
||||
minimum: 0x00
|
||||
maximum: 0x0f
|
||||
default: 0x0f
|
||||
|
||||
everest,mic1-src:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description:
|
||||
the value of reg 2A when headset plugged.
|
||||
minimum: 0x00
|
||||
maximum: 0x77
|
||||
default: 0x22
|
||||
|
||||
everest,mic2-src:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description:
|
||||
the value of reg 2A when headset unplugged.
|
||||
minimum: 0x00
|
||||
maximum: 0x77
|
||||
default: 0x44
|
||||
|
||||
everest,jack-detect-inverted:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
Defined to invert the jack detection.
|
||||
|
||||
everest,interrupt-src:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description: |
|
||||
value of reg 0x58, Defines the interrupt source.
|
||||
Bit(2) 1 means button press triggers irq, 0 means not.
|
||||
Bit(3) 1 means PIN9 is the irq source for jack detection. When set to 0,
|
||||
bias change on PIN9 do not triggers irq.
|
||||
Bit(4) 1 means PIN27 is the irq source for jack detection.
|
||||
Bit(5) 1 means PIN9 is the irq source after MIC detect.
|
||||
Bit(6) 1 means PIN27 is the irq source after MIC detect.
|
||||
minimum: 0
|
||||
maximum: 0x3c
|
||||
default: 0x08
|
||||
|
||||
everest,interrupt-clk:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8
|
||||
description: |
|
||||
value of reg 0x59, Defines the interrupt output behavior.
|
||||
Bit(0-3) 0 means irq pulse equals 512*internal clock
|
||||
1 means irq pulse equals 1024*internal clock
|
||||
2 means ...
|
||||
7 means irq pulse equals 65536*internal clock
|
||||
8 means irq mutes PA
|
||||
9 means irq mutes PA and DAC output
|
||||
Bit(4) 1 means we invert the interrupt output.
|
||||
Bit(6) 1 means the chip do not detect jack type after button released.
|
||||
0 means the chip detect jack type again after button released.
|
||||
minimum: 0
|
||||
maximum: 0x7f
|
||||
default: 0x45
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#sound-dai-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
es8326: codec@19 {
|
||||
compatible = "everest,es8326";
|
||||
reg = <0x19>;
|
||||
clocks = <&clks 10>;
|
||||
clock-names = "mclk";
|
||||
#sound-dai-cells = <0>;
|
||||
everest,mic1-src = [22];
|
||||
everest,mic2-src = [44];
|
||||
everest,jack-pol = [0e];
|
||||
everest,interrupt-src = [08];
|
||||
everest,interrupt-clk = [45];
|
||||
};
|
||||
};
|
||||
216
Documentation/devicetree/bindings/sound/fsl,sai.yaml
Normal file
216
Documentation/devicetree/bindings/sound/fsl,sai.yaml
Normal file
@@ -0,0 +1,216 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/fsl,sai.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale Synchronous Audio Interface (SAI).
|
||||
|
||||
maintainers:
|
||||
- Shengjiu Wang <shengjiu.wang@nxp.com>
|
||||
|
||||
description: |
|
||||
The SAI is based on I2S module that used communicating with audio codecs,
|
||||
which provides a synchronous audio interface that supports fullduplex
|
||||
serial interfaces with frame synchronization such as I2S, AC97, TDM, and
|
||||
codec/DSP interfaces.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- fsl,vf610-sai
|
||||
- fsl,imx6sx-sai
|
||||
- fsl,imx6ul-sai
|
||||
- fsl,imx7ulp-sai
|
||||
- fsl,imx8mq-sai
|
||||
- fsl,imx8qm-sai
|
||||
- fsl,imx8ulp-sai
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,imx8mm-sai
|
||||
- fsl,imx8mn-sai
|
||||
- fsl,imx8mp-sai
|
||||
- const: fsl,imx8mq-sai
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
items:
|
||||
- description: receive and transmit interrupt
|
||||
|
||||
dmas:
|
||||
maxItems: 2
|
||||
|
||||
dma-names:
|
||||
maxItems: 2
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: The ipg clock for register access
|
||||
- description: master clock source 0 (obsoleted)
|
||||
- description: master clock source 1
|
||||
- description: master clock source 2
|
||||
- description: master clock source 3
|
||||
- description: PLL clock source for 8kHz series
|
||||
- description: PLL clock source for 11kHz series
|
||||
minItems: 4
|
||||
|
||||
clock-names:
|
||||
oneOf:
|
||||
- items:
|
||||
- const: bus
|
||||
- const: mclk0
|
||||
- const: mclk1
|
||||
- const: mclk2
|
||||
- const: mclk3
|
||||
- const: pll8k
|
||||
- const: pll11k
|
||||
minItems: 4
|
||||
- items:
|
||||
- const: bus
|
||||
- const: mclk1
|
||||
- const: mclk2
|
||||
- const: mclk3
|
||||
- const: pll8k
|
||||
- const: pll11k
|
||||
minItems: 4
|
||||
|
||||
lsb-first:
|
||||
description: |
|
||||
Configures whether the LSB or the MSB is transmitted
|
||||
first for the fifo data. If this property is absent,
|
||||
the MSB is transmitted first as default, or the LSB
|
||||
is transmitted first.
|
||||
type: boolean
|
||||
|
||||
big-endian:
|
||||
description: |
|
||||
required if all the SAI registers are big-endian rather than little-endian.
|
||||
type: boolean
|
||||
|
||||
fsl,sai-synchronous-rx:
|
||||
description: |
|
||||
SAI will work in the synchronous mode (sync Tx with Rx) which means
|
||||
both the transmitter and the receiver will send and receive data by
|
||||
following receiver's bit clocks and frame sync clocks.
|
||||
type: boolean
|
||||
|
||||
fsl,sai-asynchronous:
|
||||
description: |
|
||||
SAI will work in the asynchronous mode, which means both transmitter
|
||||
and receiver will send and receive data by following their own bit clocks
|
||||
and frame sync clocks separately.
|
||||
If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the
|
||||
default synchronous mode (sync Rx with Tx) will be used, which means both
|
||||
transmitter and receiver will send and receive data by following clocks
|
||||
of transmitter.
|
||||
type: boolean
|
||||
|
||||
fsl,dataline:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
||||
description: |
|
||||
Configure the dataline. It has 3 value for each configuration
|
||||
maxItems: 16
|
||||
items:
|
||||
items:
|
||||
- description: format Default(0), I2S(1) or PDM(2)
|
||||
enum: [0, 1, 2]
|
||||
- description: dataline mask for 'rx'
|
||||
- description: dataline mask for 'tx'
|
||||
|
||||
fsl,sai-mclk-direction-output:
|
||||
description: SAI will output the SAI MCLK clock.
|
||||
type: boolean
|
||||
|
||||
fsl,shared-interrupt:
|
||||
description: Interrupt is shared with other modules.
|
||||
type: boolean
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
description: optional, some dts node didn't add it.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: fsl,vf610-sai
|
||||
then:
|
||||
properties:
|
||||
dmas:
|
||||
items:
|
||||
- description: DMA controller phandle and request line for TX
|
||||
- description: DMA controller phandle and request line for RX
|
||||
dma-names:
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
else:
|
||||
properties:
|
||||
dmas:
|
||||
items:
|
||||
- description: DMA controller phandle and request line for RX
|
||||
- description: DMA controller phandle and request line for TX
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
- const: tx
|
||||
- if:
|
||||
required:
|
||||
- fsl,sai-asynchronous
|
||||
then:
|
||||
properties:
|
||||
fsl,sai-synchronous-rx: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- dmas
|
||||
- dma-names
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/vf610-clock.h>
|
||||
sai2: sai@40031000 {
|
||||
compatible = "fsl,vf610-sai";
|
||||
reg = <0x40031000 0x1000>;
|
||||
interrupts = <86 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai2_1>;
|
||||
clocks = <&clks VF610_CLK_PLATFORM_BUS>,
|
||||
<&clks VF610_CLK_SAI2>,
|
||||
<&clks 0>, <&clks 0>;
|
||||
clock-names = "bus", "mclk1", "mclk2", "mclk3";
|
||||
dma-names = "tx", "rx";
|
||||
dmas = <&edma0 0 21>,
|
||||
<&edma0 0 20>;
|
||||
big-endian;
|
||||
lsb-first;
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/imx8mm-clock.h>
|
||||
sai1: sai@30010000 {
|
||||
compatible = "fsl,imx8mm-sai", "fsl,imx8mq-sai";
|
||||
reg = <0x30010000 0x10000>;
|
||||
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk IMX8MM_CLK_SAI1_IPG>,
|
||||
<&clk IMX8MM_CLK_DUMMY>,
|
||||
<&clk IMX8MM_CLK_SAI1_ROOT>,
|
||||
<&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_CLK_DUMMY>;
|
||||
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
|
||||
dmas = <&sdma2 0 2 0>, <&sdma2 1 2 0>;
|
||||
dma-names = "rx", "tx";
|
||||
fsl,dataline = <1 0xff 0xff 2 0xff 0x11>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
@@ -1,95 +0,0 @@
|
||||
Freescale Synchronous Audio Interface (SAI).
|
||||
|
||||
The SAI is based on I2S module that used communicating with audio codecs,
|
||||
which provides a synchronous audio interface that supports fullduplex
|
||||
serial interfaces with frame synchronization such as I2S, AC97, TDM, and
|
||||
codec/DSP interfaces.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : Compatible list, contains "fsl,vf610-sai",
|
||||
"fsl,imx6sx-sai", "fsl,imx6ul-sai",
|
||||
"fsl,imx7ulp-sai", "fsl,imx8mq-sai",
|
||||
"fsl,imx8qm-sai", "fsl,imx8mm-sai",
|
||||
"fsl,imx8mn-sai", "fsl,imx8mp-sai", or
|
||||
"fsl,imx8ulp-sai".
|
||||
|
||||
- reg : Offset and length of the register set for the device.
|
||||
|
||||
- clocks : Must contain an entry for each entry in clock-names.
|
||||
|
||||
- clock-names : Must include the "bus" for register access and
|
||||
"mclk1", "mclk2", "mclk3" for bit clock and frame
|
||||
clock providing.
|
||||
"pll8k", "pll11k" are optional, they are the clock
|
||||
source for root clock, one is for 8kHz series rates
|
||||
another one is for 11kHz series rates.
|
||||
- dmas : Generic dma devicetree binding as described in
|
||||
Documentation/devicetree/bindings/dma/dma.txt.
|
||||
|
||||
- dma-names : Two dmas have to be defined, "tx" and "rx".
|
||||
|
||||
- pinctrl-names : Must contain a "default" entry.
|
||||
|
||||
- pinctrl-NNN : One property must exist for each entry in
|
||||
pinctrl-names. See ../pinctrl/pinctrl-bindings.txt
|
||||
for details of the property values.
|
||||
|
||||
- lsb-first : Configures whether the LSB or the MSB is transmitted
|
||||
first for the fifo data. If this property is absent,
|
||||
the MSB is transmitted first as default, or the LSB
|
||||
is transmitted first.
|
||||
|
||||
- fsl,sai-synchronous-rx: This is a boolean property. If present, indicating
|
||||
that SAI will work in the synchronous mode (sync Tx
|
||||
with Rx) which means both the transmitter and the
|
||||
receiver will send and receive data by following
|
||||
receiver's bit clocks and frame sync clocks.
|
||||
|
||||
- fsl,sai-asynchronous: This is a boolean property. If present, indicating
|
||||
that SAI will work in the asynchronous mode, which
|
||||
means both transmitter and receiver will send and
|
||||
receive data by following their own bit clocks and
|
||||
frame sync clocks separately.
|
||||
|
||||
- fsl,dataline : configure the dataline. it has 3 value for each configuration
|
||||
first one means the type: I2S(1) or PDM(2)
|
||||
second one is dataline mask for 'rx'
|
||||
third one is dataline mask for 'tx'.
|
||||
for example: fsl,dataline = <1 0xff 0xff 2 0xff 0x11>;
|
||||
it means I2S type rx mask is 0xff, tx mask is 0xff, PDM type
|
||||
rx mask is 0xff, tx mask is 0x11 (dataline 1 and 4 enabled).
|
||||
|
||||
Optional properties:
|
||||
|
||||
- big-endian : Boolean property, required if all the SAI
|
||||
registers are big-endian rather than little-endian.
|
||||
|
||||
Optional properties (for mx6ul):
|
||||
|
||||
- fsl,sai-mclk-direction-output: This is a boolean property. If present,
|
||||
indicates that SAI will output the SAI MCLK clock.
|
||||
|
||||
Note:
|
||||
- If both fsl,sai-asynchronous and fsl,sai-synchronous-rx are absent, the
|
||||
default synchronous mode (sync Rx with Tx) will be used, which means both
|
||||
transmitter and receiver will send and receive data by following clocks
|
||||
of transmitter.
|
||||
- fsl,sai-asynchronous and fsl,sai-synchronous-rx are exclusive.
|
||||
|
||||
Example:
|
||||
sai2: sai@40031000 {
|
||||
compatible = "fsl,vf610-sai";
|
||||
reg = <0x40031000 0x1000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai2_1>;
|
||||
clocks = <&clks VF610_CLK_PLATFORM_BUS>,
|
||||
<&clks VF610_CLK_SAI2>,
|
||||
<&clks 0>, <&clks 0>;
|
||||
clock-names = "bus", "mclk1", "mclk2", "mclk3";
|
||||
dma-names = "tx", "rx";
|
||||
dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
|
||||
<&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
|
||||
big-endian;
|
||||
lsb-first;
|
||||
};
|
||||
@@ -61,6 +61,8 @@ patternProperties:
|
||||
cpu:
|
||||
description: Holds subnode which indicates cpu dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
@@ -68,6 +70,8 @@ patternProperties:
|
||||
codec:
|
||||
description: Holds subnode which indicates codec dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
|
||||
@@ -58,6 +58,7 @@ patternProperties:
|
||||
cpu:
|
||||
description: Holds subnode which indicates cpu dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
sound-dai:
|
||||
maxItems: 1
|
||||
@@ -65,6 +66,7 @@ patternProperties:
|
||||
codec:
|
||||
description: Holds subnode which indicates codec dai.
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
sound-dai:
|
||||
minItems: 1
|
||||
|
||||
@@ -43,6 +43,16 @@ properties:
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
mediatek,adsp:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of MT8186 ADSP platform.
|
||||
|
||||
mediatek,dai-link:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
description:
|
||||
A list of the desired dai-links in the sound card. Each entry is a
|
||||
name defined in the machine driver.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
|
||||
@@ -43,6 +43,16 @@ properties:
|
||||
required:
|
||||
- sound-dai
|
||||
|
||||
mediatek,adsp:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of MT8186 ADSP platform.
|
||||
|
||||
mediatek,dai-link:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
description:
|
||||
A list of the desired dai-links in the sound card. Each entry is a
|
||||
name defined in the machine driver.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
|
||||
@@ -30,6 +30,8 @@ properties:
|
||||
|
||||
headset-codec:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
@@ -38,6 +40,8 @@ properties:
|
||||
|
||||
speaker-codecs:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
sound-dai:
|
||||
minItems: 1
|
||||
|
||||
@@ -71,6 +71,9 @@ Optional properties:
|
||||
|
||||
- nuvoton,crosstalk-enable: make crosstalk function enable if set.
|
||||
|
||||
- nuvoton,adcout-drive-strong: make the drive strength of ADCOUT IO PIN strong if set.
|
||||
Otherwise, the drive keeps normal strength.
|
||||
|
||||
- clocks: list of phandle and clock specifier pairs according to common clock bindings for the
|
||||
clocks described in clock-names
|
||||
- clock-names: should include "mclk" for the MCLK master clock
|
||||
|
||||
@@ -14,6 +14,8 @@ properties:
|
||||
enum:
|
||||
- qcom,sc7280-lpass-rx-macro
|
||||
- qcom,sm8250-lpass-rx-macro
|
||||
- qcom,sm8450-lpass-rx-macro
|
||||
- qcom,sc8280xp-lpass-rx-macro
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user