12827a58cSCristian Ciocaltea# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22827a58cSCristian Ciocaltea%YAML 1.2
32827a58cSCristian Ciocaltea---
42827a58cSCristian Ciocaltea$id: http://devicetree.org/schemas/nvmem/rockchip,otp.yaml#
52827a58cSCristian Ciocaltea$schema: http://devicetree.org/meta-schemas/core.yaml#
62827a58cSCristian Ciocaltea
72827a58cSCristian Ciocalteatitle: Rockchip internal OTP (One Time Programmable) memory
82827a58cSCristian Ciocaltea
92827a58cSCristian Ciocalteamaintainers:
102827a58cSCristian Ciocaltea  - Heiko Stuebner <heiko@sntech.de>
112827a58cSCristian Ciocaltea
122827a58cSCristian Ciocalteaproperties:
132827a58cSCristian Ciocaltea  compatible:
142827a58cSCristian Ciocaltea    enum:
152827a58cSCristian Ciocaltea      - rockchip,px30-otp
162827a58cSCristian Ciocaltea      - rockchip,rk3308-otp
17*2d87a3b1SCristian Ciocaltea      - rockchip,rk3588-otp
182827a58cSCristian Ciocaltea
192827a58cSCristian Ciocaltea  reg:
202827a58cSCristian Ciocaltea    maxItems: 1
212827a58cSCristian Ciocaltea
222827a58cSCristian Ciocaltea  clocks:
23*2d87a3b1SCristian Ciocaltea    minItems: 3
24*2d87a3b1SCristian Ciocaltea    maxItems: 4
252827a58cSCristian Ciocaltea
262827a58cSCristian Ciocaltea  clock-names:
27*2d87a3b1SCristian Ciocaltea    minItems: 3
282827a58cSCristian Ciocaltea    items:
292827a58cSCristian Ciocaltea      - const: otp
302827a58cSCristian Ciocaltea      - const: apb_pclk
312827a58cSCristian Ciocaltea      - const: phy
32*2d87a3b1SCristian Ciocaltea      - const: arb
332827a58cSCristian Ciocaltea
342827a58cSCristian Ciocaltea  resets:
35*2d87a3b1SCristian Ciocaltea    minItems: 1
36*2d87a3b1SCristian Ciocaltea    maxItems: 3
372827a58cSCristian Ciocaltea
382827a58cSCristian Ciocaltea  reset-names:
39*2d87a3b1SCristian Ciocaltea    minItems: 1
40*2d87a3b1SCristian Ciocaltea    maxItems: 3
412827a58cSCristian Ciocaltea
422827a58cSCristian Ciocaltearequired:
432827a58cSCristian Ciocaltea  - compatible
442827a58cSCristian Ciocaltea  - reg
452827a58cSCristian Ciocaltea  - clocks
462827a58cSCristian Ciocaltea  - clock-names
472827a58cSCristian Ciocaltea  - resets
482827a58cSCristian Ciocaltea  - reset-names
492827a58cSCristian Ciocaltea
50*2d87a3b1SCristian CiocalteaallOf:
51*2d87a3b1SCristian Ciocaltea  - $ref: nvmem.yaml#
52*2d87a3b1SCristian Ciocaltea
53*2d87a3b1SCristian Ciocaltea  - if:
54*2d87a3b1SCristian Ciocaltea      properties:
55*2d87a3b1SCristian Ciocaltea        compatible:
56*2d87a3b1SCristian Ciocaltea          contains:
57*2d87a3b1SCristian Ciocaltea            enum:
58*2d87a3b1SCristian Ciocaltea              - rockchip,px30-otp
59*2d87a3b1SCristian Ciocaltea              - rockchip,rk3308-otp
60*2d87a3b1SCristian Ciocaltea    then:
61*2d87a3b1SCristian Ciocaltea      properties:
62*2d87a3b1SCristian Ciocaltea        clocks:
63*2d87a3b1SCristian Ciocaltea          maxItems: 3
64*2d87a3b1SCristian Ciocaltea        resets:
65*2d87a3b1SCristian Ciocaltea          maxItems: 1
66*2d87a3b1SCristian Ciocaltea        reset-names:
67*2d87a3b1SCristian Ciocaltea          items:
68*2d87a3b1SCristian Ciocaltea            - const: phy
69*2d87a3b1SCristian Ciocaltea
70*2d87a3b1SCristian Ciocaltea  - if:
71*2d87a3b1SCristian Ciocaltea      properties:
72*2d87a3b1SCristian Ciocaltea        compatible:
73*2d87a3b1SCristian Ciocaltea          contains:
74*2d87a3b1SCristian Ciocaltea            enum:
75*2d87a3b1SCristian Ciocaltea              - rockchip,rk3588-otp
76*2d87a3b1SCristian Ciocaltea    then:
77*2d87a3b1SCristian Ciocaltea      properties:
78*2d87a3b1SCristian Ciocaltea        clocks:
79*2d87a3b1SCristian Ciocaltea          minItems: 4
80*2d87a3b1SCristian Ciocaltea        resets:
81*2d87a3b1SCristian Ciocaltea          minItems: 3
82*2d87a3b1SCristian Ciocaltea        reset-names:
83*2d87a3b1SCristian Ciocaltea          items:
84*2d87a3b1SCristian Ciocaltea            - const: otp
85*2d87a3b1SCristian Ciocaltea            - const: apb
86*2d87a3b1SCristian Ciocaltea            - const: arb
87*2d87a3b1SCristian Ciocaltea
882827a58cSCristian CiocalteaunevaluatedProperties: false
892827a58cSCristian Ciocaltea
902827a58cSCristian Ciocalteaexamples:
912827a58cSCristian Ciocaltea  - |
922827a58cSCristian Ciocaltea    #include <dt-bindings/clock/px30-cru.h>
932827a58cSCristian Ciocaltea
942827a58cSCristian Ciocaltea    soc {
952827a58cSCristian Ciocaltea        #address-cells = <2>;
962827a58cSCristian Ciocaltea        #size-cells = <2>;
972827a58cSCristian Ciocaltea
982827a58cSCristian Ciocaltea        otp: efuse@ff290000 {
992827a58cSCristian Ciocaltea            compatible = "rockchip,px30-otp";
1002827a58cSCristian Ciocaltea            reg = <0x0 0xff290000 0x0 0x4000>;
1012827a58cSCristian Ciocaltea            clocks = <&cru SCLK_OTP_USR>, <&cru PCLK_OTP_NS>,
1022827a58cSCristian Ciocaltea                     <&cru PCLK_OTP_PHY>;
1032827a58cSCristian Ciocaltea            clock-names = "otp", "apb_pclk", "phy";
1042827a58cSCristian Ciocaltea            resets = <&cru SRST_OTP_PHY>;
1052827a58cSCristian Ciocaltea            reset-names = "phy";
1062827a58cSCristian Ciocaltea            #address-cells = <1>;
1072827a58cSCristian Ciocaltea            #size-cells = <1>;
1082827a58cSCristian Ciocaltea
1092827a58cSCristian Ciocaltea            cpu_id: id@7 {
1102827a58cSCristian Ciocaltea                reg = <0x07 0x10>;
1112827a58cSCristian Ciocaltea            };
1122827a58cSCristian Ciocaltea
1132827a58cSCristian Ciocaltea            cpu_leakage: cpu-leakage@17 {
1142827a58cSCristian Ciocaltea                reg = <0x17 0x1>;
1152827a58cSCristian Ciocaltea            };
1162827a58cSCristian Ciocaltea
1172827a58cSCristian Ciocaltea            performance: performance@1e {
1182827a58cSCristian Ciocaltea                reg = <0x1e 0x1>;
1192827a58cSCristian Ciocaltea                bits = <4 3>;
1202827a58cSCristian Ciocaltea            };
1212827a58cSCristian Ciocaltea        };
1222827a58cSCristian Ciocaltea    };
123