Unverified Commit 6603c513 authored by Andrei Simion's avatar Andrei Simion Committed by Mark Brown
Browse files

ASoC: dt-bindings: atmel,at91-ssc: Convert to YAML format



Convert devicetree binding atmel-ssc.txt to YAML format.
Update the documentation supported file for MICROCHIP SSC DRIVER.

Signed-off-by: default avatarAndrei Simion <andrei.simion@microchip.com>
Reviewed-by: default avatarRob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20250203091111.21667-1-andrei.simion@microchip.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 185ac20a
Loading
Loading
Loading
Loading
+0 −50
Original line number Diff line number Diff line
* Atmel SSC driver.

Required properties:
- compatible: "atmel,at91rm9200-ssc" or "atmel,at91sam9g45-ssc"
	- atmel,at91rm9200-ssc: support pdc transfer
	- atmel,at91sam9g45-ssc: support dma transfer
- reg: Should contain SSC registers location and length
- interrupts: Should contain SSC interrupt
- clock-names: tuple listing input clock names.
	Required elements: "pclk"
- clocks: phandles to input clocks.


Required properties for devices compatible with "atmel,at91sam9g45-ssc":
- dmas: DMA specifier, consisting of a phandle to DMA controller node,
  the memory interface and SSC DMA channel ID (for tx and rx).
  See Documentation/devicetree/bindings/dma/atmel-dma.txt for details.
- dma-names: Must be "tx", "rx".

Optional properties:
  - atmel,clk-from-rk-pin: bool property.
     - When SSC works in slave mode, according to the hardware design, the
       clock can get from TK pin, and also can get from RK pin. So, add
       this parameter to choose where the clock from.
     - By default the clock is from TK pin, if the clock from RK pin, this
       property is needed.
  - #sound-dai-cells: Should contain <0>.
     - This property makes the SSC into an automatically registered DAI.

Examples:
- PDC transfer:
ssc0: ssc@fffbc000 {
	compatible = "atmel,at91rm9200-ssc";
	reg = <0xfffbc000 0x4000>;
	interrupts = <14 4 5>;
	clocks = <&ssc0_clk>;
	clock-names = "pclk";
};

- DMA transfer:
ssc0: ssc@f0010000 {
      compatible = "atmel,at91sam9g45-ssc";
      reg = <0xf0010000 0x4000>;
      interrupts = <28 4 5>;
      dmas = <&dma0 1 13>,
	     <&dma0 1 14>;
      dma-names = "tx", "rx";
      pinctrl-names = "default";
      pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>;
};
+104 −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/atmel,at91-ssc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Atmel Serial Synchronous Serial (SSC)

maintainers:
  - Andrei Simion <andrei.simion@microchip.com>

description:
  The Atmel Synchronous Serial Controller (SSC) provides a versatile
  synchronous communication link for audio and telecom applications,
  supporting protocols like I2S, Short Frame Sync, and Long Frame Sync.

properties:
  compatible:
    enum:
      - atmel,at91rm9200-ssc
      - atmel,at91sam9g45-ssc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: pclk

  dmas:
    items:
      - description: TX DMA Channel
      - description: RX DMA Channel

  dma-names:
    items:
      - const: tx
      - const: rx

  atmel,clk-from-rk-pin:
    description:
      Specify the clock source for the SSC (Synchronous Serial Controller)
      when operating in slave mode. By default, the clock is sourced from
      the TK pin.
    type: boolean

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

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

allOf:
  - $ref: dai-common.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - atmel,at91sam9g45-ssc
    then:
      required:
        - dmas
        - dma-names

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/at91.h>
    #include <dt-bindings/dma/at91.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    ssc@100000 {
       compatible = "atmel,at91sam9g45-ssc";
       reg = <0x100000 0x4000>;
       interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>;
       dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
                     AT91_XDMAC_DT_PERID(38))>,
              <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
                     AT91_XDMAC_DT_PERID(39))>;
       dma-names = "tx", "rx";
       clocks = <&pmc PMC_TYPE_PERIPHERAL 28>;
       clock-names = "pclk";
       #sound-dai-cells = <0>;
    };

    ssc@c00000 {
      compatible = "atmel,at91rm9200-ssc";
      reg = <0xc00000 0x4000>;
      interrupts = <14 IRQ_TYPE_LEVEL_HIGH 5>;
      clocks = <&pmc PMC_TYPE_PERIPHERAL 14>;
      clock-names = "pclk";
    };
+1 −1
Original line number Diff line number Diff line
@@ -15632,7 +15632,7 @@ M: Claudiu Beznea <claudiu.beznea@tuxon.dev>
M:	Andrei Simion <andrei.simion@microchip.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Supported
F:	Documentation/devicetree/bindings/misc/atmel-ssc.txt
F:	Documentation/devicetree/bindings/sound/atmel,at91-ssc.yaml
F:	drivers/misc/atmel-ssc.c
F:	include/linux/atmel-ssc.h