# 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
      - ti,am62-sa3ul

  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

  "#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
  - dmas
  - dma-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,am62-sa3ul
    then:
      properties:
        power-domains: false
    else:
      required:
        - power-domains

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";
    };