Commit 86a4d29e authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-v6.1' of...

Merge tag 'asoc-v6.1' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Updates for v6.1

This has been a very quiet release for the core but quite a busy one for
drivers with a big crop of new drivers and lots of feature additions and
fixes to existing ones:

 - A new string helper parse_int_array_user().
 - Improvements to the SOF IPC4 code, especially around trace.
 - Support for AMD Rembrant DSPs, AMD Pink Sardine ACP 6.2, Apple Silcon
   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

There is a conflict with the conversion of I2C remove functions to void
in the cs42l42 driver which is fairly straightforward to resolve but
should be highlighted to Linus.
parents 02f2e785 f0c8d746
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+103 −9
Original line number Diff line number Diff line
@@ -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:
+34 −0
Original line number Diff line number Diff line
@@ -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

+79 −0
Original line number Diff line number Diff line
# 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>;
    };

...
+2 −0
Original line number Diff line number Diff line
@@ -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.
Loading