0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/nvmem/imx-ocotp.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Freescale i.MX6 On-Chip OTP Controller (OCOTP) device tree bindings
0008
0009 maintainers:
0010 - Anson Huang <Anson.Huang@nxp.com>
0011
0012 description: |
0013 This binding represents the on-chip eFuse OTP controller found on
0014 i.MX6Q/D, i.MX6DL/S, i.MX6SL, i.MX6SX, i.MX6UL, i.MX6ULL/ULZ, i.MX6SLL,
0015 i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN and i.MX8MP SoCs.
0016
0017 allOf:
0018 - $ref: "nvmem.yaml#"
0019
0020 properties:
0021 compatible:
0022 oneOf:
0023 - items:
0024 - enum:
0025 - fsl,imx6q-ocotp
0026 - fsl,imx6sl-ocotp
0027 - fsl,imx6sx-ocotp
0028 - fsl,imx6ul-ocotp
0029 - fsl,imx6ull-ocotp
0030 - fsl,imx7d-ocotp
0031 - fsl,imx6sll-ocotp
0032 - fsl,imx7ulp-ocotp
0033 - fsl,imx8mq-ocotp
0034 - fsl,imx8mm-ocotp
0035 - const: syscon
0036 - items:
0037 - enum:
0038 - fsl,imx8mn-ocotp
0039 # i.MX8MP not really compatible with fsl,imx8mm-ocotp, however
0040 # the code for getting SoC revision depends on fsl,imx8mm-ocotp
0041 # compatible.
0042 - fsl,imx8mp-ocotp
0043 - const: fsl,imx8mm-ocotp
0044 - const: syscon
0045
0046 reg:
0047 maxItems: 1
0048
0049 "#address-cells":
0050 const: 1
0051
0052 "#size-cells":
0053 const: 1
0054
0055 clocks:
0056 maxItems: 1
0057
0058 required:
0059 - "#address-cells"
0060 - "#size-cells"
0061 - compatible
0062 - reg
0063
0064 patternProperties:
0065 "^.*@[0-9a-f]+$":
0066 type: object
0067
0068 properties:
0069 reg:
0070 maxItems: 1
0071 description:
0072 Offset and size in bytes within the storage device.
0073
0074 required:
0075 - reg
0076
0077 additionalProperties: false
0078
0079 unevaluatedProperties: false
0080
0081 examples:
0082 - |
0083 #include <dt-bindings/clock/imx6sx-clock.h>
0084
0085 ocotp: efuse@21bc000 {
0086 #address-cells = <1>;
0087 #size-cells = <1>;
0088 compatible = "fsl,imx6sx-ocotp", "syscon";
0089 reg = <0x021bc000 0x4000>;
0090 clocks = <&clks IMX6SX_CLK_OCOTP>;
0091
0092 cpu_speed_grade: speed-grade@10 {
0093 reg = <0x10 4>;
0094 };
0095
0096 tempmon_calib: calib@38 {
0097 reg = <0x38 4>;
0098 };
0099
0100 tempmon_temp_grade: temp-grade@20 {
0101 reg = <0x20 4>;
0102 };
0103 };
0104
0105 ...