# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/inside-secure,safexcel-eip93.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Inside Secure SafeXcel EIP-93 cryptographic engine

maintainers:
  - Christian Marangi <ansuelsmth@gmail.com>

description: |
  The Inside Secure SafeXcel EIP-93 is a cryptographic engine IP block
  integrated in varios devices with very different and generic name from
  PKTE to simply vendor+EIP93. The real IP under the hood is actually
  developed by Inside Secure and given to license to vendors.

  The IP block is sold with different model based on what feature are
  needed and are identified with the final letter. Each letter correspond
  to a specific set of feature and multiple letter reflect the sum of the
  feature set.

  EIP-93 models:
    - EIP-93i: (basic) DES/Triple DES, AES, PRNG, IPsec ESP, SRTP, SHA1
    - EIP-93ie: i + SHA224/256, AES-192/256
    - EIP-93is: i + SSL/DTLS/DTLS, MD5, ARC4
    - EIP-93ies: i + e + s
    - EIP-93iw: i + AES-XCB-MAC, AES-CCM

properties:
  compatible:
    oneOf:
      - items:
          - const: airoha,en7581-eip93
          - const: inside-secure,safexcel-eip93ies
      - items:
          - not: {}
            description: Need a SoC specific compatible
          - enum:
              - inside-secure,safexcel-eip93i
              - inside-secure,safexcel-eip93ie
              - inside-secure,safexcel-eip93is
              - inside-secure,safexcel-eip93iw

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    crypto@1e004000 {
      compatible = "airoha,en7581-eip93", "inside-secure,safexcel-eip93ies";
      reg = <0x1fb70000 0x1000>;

      interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
    };
