# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/ti,sa2ul.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: K3 SoC SA2UL crypto module

maintainers:
  - Tero Kristo <t-kristo@ti.com>

properties:
  compatible:
    enum:
      - ti,j721e-sa2ul
      - ti,am654-sa2ul
      - ti,am64-sa2ul

  reg:
    maxItems: 1

  power-domains:
    maxItems: 1

  dmas:
    items:
      - description: TX DMA Channel
      - description: RX DMA Channel #1
      - description: RX DMA Channel #2

  dma-names:
    items:
      - const: tx
      - const: rx1
      - const: rx2

  dma-coherent: true

  "#address-cells":
    const: 2

  "#size-cells":
    const: 2

  ranges:
    description:
      Address translation for the possible RNG child node for SA2UL

  clocks:
    items:
      - description: Clock used by PKA
      - description: Main Input Clock
      - description: Clock used by rng

  clock-names:
    items:
      - const: pka_in_clk
      - const: x1_clk
      - const: x2_clk

patternProperties:
  "^rng@[a-f0-9]+$":
    type: object
    description:
      Child RNG node for SA2UL

required:
  - compatible
  - reg
  - power-domains
  - dmas
  - dma-names

if:
  properties:
    compatible:
      enum:
        - ti,j721e-sa2ul
        - ti,am654-sa2ul
then:
  required:
    - dma-coherent

additionalProperties: false

examples:
  - |
    #include <dt-bindings/soc/ti,sci_pm_domain.h>

    main_crypto: crypto@4e00000 {
        compatible = "ti,j721e-sa2ul";
        reg = <0x4e00000 0x1200>;
        power-domains = <&k3_pds 264 TI_SCI_PD_EXCLUSIVE>;
        dmas = <&main_udmap 0xc000>, <&main_udmap 0x4000>,
               <&main_udmap 0x4001>;
        dma-names = "tx", "rx1", "rx2";
        dma-coherent;
    };
