xref: /freebsd/sys/contrib/device-tree/Bindings/nvmem/rockchip,otp.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1f126890aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2f126890aSEmmanuel Vadot%YAML 1.2
3f126890aSEmmanuel Vadot---
4f126890aSEmmanuel Vadot$id: http://devicetree.org/schemas/nvmem/rockchip,otp.yaml#
5f126890aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadottitle: Rockchip internal OTP (One Time Programmable) memory
8f126890aSEmmanuel Vadot
9f126890aSEmmanuel Vadotmaintainers:
10f126890aSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
11f126890aSEmmanuel Vadot
12f126890aSEmmanuel Vadotproperties:
13f126890aSEmmanuel Vadot  compatible:
14f126890aSEmmanuel Vadot    enum:
15f126890aSEmmanuel Vadot      - rockchip,px30-otp
16f126890aSEmmanuel Vadot      - rockchip,rk3308-otp
17f126890aSEmmanuel Vadot      - rockchip,rk3588-otp
18f126890aSEmmanuel Vadot
19f126890aSEmmanuel Vadot  reg:
20f126890aSEmmanuel Vadot    maxItems: 1
21f126890aSEmmanuel Vadot
22f126890aSEmmanuel Vadot  clocks:
23f126890aSEmmanuel Vadot    minItems: 3
24f126890aSEmmanuel Vadot    maxItems: 4
25f126890aSEmmanuel Vadot
26f126890aSEmmanuel Vadot  clock-names:
27f126890aSEmmanuel Vadot    minItems: 3
28f126890aSEmmanuel Vadot    items:
29f126890aSEmmanuel Vadot      - const: otp
30f126890aSEmmanuel Vadot      - const: apb_pclk
31f126890aSEmmanuel Vadot      - const: phy
32f126890aSEmmanuel Vadot      - const: arb
33f126890aSEmmanuel Vadot
34f126890aSEmmanuel Vadot  resets:
35f126890aSEmmanuel Vadot    minItems: 1
36f126890aSEmmanuel Vadot    maxItems: 3
37f126890aSEmmanuel Vadot
38f126890aSEmmanuel Vadot  reset-names:
39f126890aSEmmanuel Vadot    minItems: 1
40f126890aSEmmanuel Vadot    maxItems: 3
41f126890aSEmmanuel Vadot
42f126890aSEmmanuel Vadotrequired:
43f126890aSEmmanuel Vadot  - compatible
44f126890aSEmmanuel Vadot  - reg
45f126890aSEmmanuel Vadot  - clocks
46f126890aSEmmanuel Vadot  - clock-names
47f126890aSEmmanuel Vadot  - resets
48f126890aSEmmanuel Vadot  - reset-names
49f126890aSEmmanuel Vadot
50f126890aSEmmanuel VadotallOf:
51f126890aSEmmanuel Vadot  - $ref: nvmem.yaml#
52*84943d6fSEmmanuel Vadot  - $ref: nvmem-deprecated-cells.yaml#
53f126890aSEmmanuel Vadot
54f126890aSEmmanuel Vadot  - if:
55f126890aSEmmanuel Vadot      properties:
56f126890aSEmmanuel Vadot        compatible:
57f126890aSEmmanuel Vadot          contains:
58f126890aSEmmanuel Vadot            enum:
59f126890aSEmmanuel Vadot              - rockchip,px30-otp
60f126890aSEmmanuel Vadot              - rockchip,rk3308-otp
61f126890aSEmmanuel Vadot    then:
62f126890aSEmmanuel Vadot      properties:
63f126890aSEmmanuel Vadot        clocks:
64f126890aSEmmanuel Vadot          maxItems: 3
65f126890aSEmmanuel Vadot        resets:
66f126890aSEmmanuel Vadot          maxItems: 1
67f126890aSEmmanuel Vadot        reset-names:
68f126890aSEmmanuel Vadot          items:
69f126890aSEmmanuel Vadot            - const: phy
70f126890aSEmmanuel Vadot
71f126890aSEmmanuel Vadot  - if:
72f126890aSEmmanuel Vadot      properties:
73f126890aSEmmanuel Vadot        compatible:
74f126890aSEmmanuel Vadot          contains:
75f126890aSEmmanuel Vadot            enum:
76f126890aSEmmanuel Vadot              - rockchip,rk3588-otp
77f126890aSEmmanuel Vadot    then:
78f126890aSEmmanuel Vadot      properties:
79f126890aSEmmanuel Vadot        clocks:
80f126890aSEmmanuel Vadot          minItems: 4
81f126890aSEmmanuel Vadot        resets:
82f126890aSEmmanuel Vadot          minItems: 3
83f126890aSEmmanuel Vadot        reset-names:
84f126890aSEmmanuel Vadot          items:
85f126890aSEmmanuel Vadot            - const: otp
86f126890aSEmmanuel Vadot            - const: apb
87f126890aSEmmanuel Vadot            - const: arb
88f126890aSEmmanuel Vadot
89f126890aSEmmanuel VadotunevaluatedProperties: false
90f126890aSEmmanuel Vadot
91f126890aSEmmanuel Vadotexamples:
92f126890aSEmmanuel Vadot  - |
93f126890aSEmmanuel Vadot    #include <dt-bindings/clock/px30-cru.h>
94f126890aSEmmanuel Vadot
95f126890aSEmmanuel Vadot    soc {
96f126890aSEmmanuel Vadot        #address-cells = <2>;
97f126890aSEmmanuel Vadot        #size-cells = <2>;
98f126890aSEmmanuel Vadot
99f126890aSEmmanuel Vadot        otp: efuse@ff290000 {
100f126890aSEmmanuel Vadot            compatible = "rockchip,px30-otp";
101f126890aSEmmanuel Vadot            reg = <0x0 0xff290000 0x0 0x4000>;
102f126890aSEmmanuel Vadot            clocks = <&cru SCLK_OTP_USR>, <&cru PCLK_OTP_NS>,
103f126890aSEmmanuel Vadot                     <&cru PCLK_OTP_PHY>;
104f126890aSEmmanuel Vadot            clock-names = "otp", "apb_pclk", "phy";
105f126890aSEmmanuel Vadot            resets = <&cru SRST_OTP_PHY>;
106f126890aSEmmanuel Vadot            reset-names = "phy";
107f126890aSEmmanuel Vadot            #address-cells = <1>;
108f126890aSEmmanuel Vadot            #size-cells = <1>;
109f126890aSEmmanuel Vadot
110f126890aSEmmanuel Vadot            cpu_id: id@7 {
111f126890aSEmmanuel Vadot                reg = <0x07 0x10>;
112f126890aSEmmanuel Vadot            };
113f126890aSEmmanuel Vadot
114f126890aSEmmanuel Vadot            cpu_leakage: cpu-leakage@17 {
115f126890aSEmmanuel Vadot                reg = <0x17 0x1>;
116f126890aSEmmanuel Vadot            };
117f126890aSEmmanuel Vadot
118f126890aSEmmanuel Vadot            performance: performance@1e {
119f126890aSEmmanuel Vadot                reg = <0x1e 0x1>;
120f126890aSEmmanuel Vadot                bits = <4 3>;
121f126890aSEmmanuel Vadot            };
122f126890aSEmmanuel Vadot        };
123f126890aSEmmanuel Vadot    };
124