Unverified Commit 39400f34 authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'asoc-5.7' into asoc-5.8

parents 5c5118dc 2a79c31a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ properties:
      - const: tx
      - const: rx

  power-domains:
    maxItems: 1

  rockchip,capture-channels:
    allOf:
      - $ref: /schemas/types.yaml#/definitions/uint32
+0 −45
Original line number Diff line number Diff line
* Rockchip SPDIF transceiver

The S/PDIF audio block is a stereo transceiver that allows the
processor to receive and transmit digital audio via an coaxial cable or
a fibre cable.

Required properties:

- compatible: should be one of the following:
   - "rockchip,rk3066-spdif"
   - "rockchip,rk3188-spdif"
   - "rockchip,rk3228-spdif"
   - "rockchip,rk3288-spdif"
   - "rockchip,rk3328-spdif"
   - "rockchip,rk3366-spdif"
   - "rockchip,rk3368-spdif"
   - "rockchip,rk3399-spdif"
- reg: physical base address of the controller and length of memory mapped
  region.
- interrupts: should contain the SPDIF interrupt.
- dmas: DMA specifiers for tx dma. See the DMA client binding,
  Documentation/devicetree/bindings/dma/dma.txt
- dma-names: should be "tx"
- clocks: a list of phandle + clock-specifier pairs, one for each entry
  in clock-names.
- clock-names: should contain following:
   - "hclk": clock for SPDIF controller
   - "mclk" : clock for SPDIF bus

Required properties on RK3288:
  - rockchip,grf: the phandle of the syscon node for the general register
                   file (GRF)

Example for the rk3188 SPDIF controller:

spdif: spdif@1011e000 {
	compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
	reg = <0x1011e000 0x2000>;
	interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
	dmas = <&dmac1_s 8>;
	dma-names = "tx";
	clock-names = "hclk", "mclk";
	clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;
	#sound-dai-cells = <0>;
};
+101 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Rockchip SPDIF transceiver

description:
  The S/PDIF audio block is a stereo transceiver that allows the
  processor to receive and transmit digital audio via a coaxial or
  fibre cable.

maintainers:
  - Heiko Stuebner <heiko@sntech.de>

properties:
  compatible:
    oneOf:
      - const: rockchip,rk3066-spdif
      - const: rockchip,rk3228-spdif
      - const: rockchip,rk3328-spdif
      - const: rockchip,rk3366-spdif
      - const: rockchip,rk3368-spdif
      - const: rockchip,rk3399-spdif
      - items:
          - enum:
            - rockchip,rk3188-spdif
            - rockchip,rk3288-spdif
          - const: rockchip,rk3066-spdif

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: clock for SPDIF bus
      - description: clock for SPDIF controller

  clock-names:
    items:
      - const: mclk
      - const: hclk

  dmas:
    maxItems: 1

  dma-names:
    const: tx

  power-domains:
    maxItems: 1

  rockchip,grf:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      The phandle of the syscon node for the GRF register.
      Required property on RK3288.

  "#sound-dai-cells":
    const: 0

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - dmas
  - dma-names
  - "#sound-dai-cells"

if:
  properties:
    compatible:
      contains:
        const: rockchip,rk3288-spdif

then:
  required:
    - rockchip,grf

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/rk3188-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    spdif: spdif@1011e000 {
      compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
      reg = <0x1011e000 0x2000>;
      interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
      clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>;
      clock-names = "mclk", "hclk";
      dmas = <&dmac1_s 8>;
      dma-names = "tx";
      #sound-dai-cells = <0>;
    };
+3 −0
Original line number Diff line number Diff line
@@ -790,6 +790,9 @@ struct snd_soc_dai_link {
	const struct snd_soc_pcm_stream *params;
	unsigned int num_params;

	struct snd_soc_dapm_widget *playback_widget;
	struct snd_soc_dapm_widget *capture_widget;

	unsigned int dai_fmt;           /* format to set on init */

	enum snd_soc_dpcm_trigger trigger[2]; /* trigger type for DPCM */
+3 −3
Original line number Diff line number Diff line
@@ -89,9 +89,9 @@ static int acp3x_5682_init(struct snd_soc_pcm_runtime *rtd)
	}

	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_1, KEY_VOLUMEUP);
	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN);
	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);
	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
	snd_jack_set_key(pco_jack.jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);

	ret = snd_soc_component_set_jack(component, &pco_jack, NULL);
	if (ret) {
Loading