summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
blob: 7be14e99be2813c3befbc6ca74c2c35990886184 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/crypto/qcom,inline-crypto-engine.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. (QTI) Inline Crypto Engine

maintainers:
  - Bjorn Andersson <andersson@kernel.org>

properties:
  compatible:
    items:
      - enum:
          - qcom,eliza-inline-crypto-engine
          - qcom,hawi-inline-crypto-engine
          - qcom,kaanapali-inline-crypto-engine
          - qcom,maili-inline-crypto-engine
          - qcom,milos-inline-crypto-engine
          - qcom,nord-inline-crypto-engine
          - qcom,qcs8300-inline-crypto-engine
          - qcom,sa8775p-inline-crypto-engine
          - qcom,sc7180-inline-crypto-engine
          - qcom,sc7280-inline-crypto-engine
          - qcom,sm8450-inline-crypto-engine
          - qcom,sm8550-inline-crypto-engine
          - qcom,sm8650-inline-crypto-engine
          - qcom,sm8750-inline-crypto-engine
      - const: qcom,inline-crypto-engine

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    items:
      - const: core
      - const: iface

  power-domains:
    maxItems: 1

  operating-points-v2: true

  opp-table:
    type: object

required:
  - compatible
  - reg
  - clocks

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,eliza-inline-crypto-engine
              - qcom,hawi-inline-crypto-engine
              - qcom,maili-inline-crypto-engine
              - qcom,milos-inline-crypto-engine
              - qcom,nord-inline-crypto-engine

    then:
      required:
        - power-domains
        - clock-names
      properties:
        clocks:
          minItems: 2
        clock-names:
          minItems: 2

examples:
  - |
    #include <dt-bindings/clock/qcom,sm8550-gcc.h>

    crypto@1d88000 {
      compatible = "qcom,sm8550-inline-crypto-engine",
                   "qcom,inline-crypto-engine";
      reg = <0x01d88000 0x8000>;
      clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
               <&gcc GCC_UFS_PHY_AHB_CLK>;
      clock-names = "core",
                    "iface";
      power-domains = <&gcc UFS_PHY_GDSC>;

      operating-points-v2 = <&ice_opp_table>;

      ice_opp_table: opp-table {
        compatible = "operating-points-v2";

        opp-100000000 {
          opp-hz = /bits/ 64 <100000000>;
          required-opps = <&rpmhpd_opp_low_svs>;
        };

        opp-201500000 {
          opp-hz = /bits/ 64 <201500000>;
          required-opps = <&rpmhpd_opp_svs_l1>;
        };

        opp-403000000 {
          opp-hz = /bits/ 64 <403000000>;
          required-opps = <&rpmhpd_opp_nom>;
        };
      };
    };
...