* [PATCH v2 1/3] dt-bindings: nvmem: imx-ocotp: Add support for i.MX94
2025-10-20 10:50 [PATCH v2 0/3] Add i.MX94 OCOTP support alice.guo
@ 2025-10-20 10:50 ` alice.guo
2025-10-20 10:50 ` [PATCH v2 2/3] nvmem: imx-ocotp-ele: Add i.MX94 OCOTP support alice.guo
2025-10-20 10:50 ` [PATCH v2 3/3] arm64: dts: imx94: Add OCOTP node alice.guo
2 siblings, 0 replies; 5+ messages in thread
From: alice.guo @ 2025-10-20 10:50 UTC (permalink / raw)
To: Srinivas Kandagatla, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Alice Guo,
Conor Dooley
From: Alice Guo <alice.guo@nxp.com>
Add the compatible string "fsl,imx94-ocotp" to the imx-ocotp device tree
binding documentation to support the i.MX94.
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
---
Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
index b2cb76cf9053..a8076d0e2737 100644
--- a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
+++ b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml
@@ -14,7 +14,8 @@ maintainers:
description: |
This binding represents the on-chip eFuse OTP controller found on
i.MX6Q/D, i.MX6DL/S, i.MX6SL, i.MX6SX, i.MX6UL, i.MX6ULL/ULZ, i.MX6SLL,
- i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN i.MX8MP and i.MX93/5 SoCs.
+ i.MX7D/S, i.MX7ULP, i.MX8MQ, i.MX8MM, i.MX8MN i.MX8MP, i.MX93, i.MX94,
+ and i.MX95.
allOf:
- $ref: nvmem.yaml#
@@ -36,6 +37,7 @@ properties:
- fsl,imx8mq-ocotp
- fsl,imx8mm-ocotp
- fsl,imx93-ocotp
+ - fsl,imx94-ocotp
- fsl,imx95-ocotp
- const: syscon
- items:
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v2 2/3] nvmem: imx-ocotp-ele: Add i.MX94 OCOTP support
2025-10-20 10:50 [PATCH v2 0/3] Add i.MX94 OCOTP support alice.guo
2025-10-20 10:50 ` [PATCH v2 1/3] dt-bindings: nvmem: imx-ocotp: Add support for i.MX94 alice.guo
@ 2025-10-20 10:50 ` alice.guo
2025-10-20 10:50 ` [PATCH v2 3/3] arm64: dts: imx94: Add OCOTP node alice.guo
2 siblings, 0 replies; 5+ messages in thread
From: alice.guo @ 2025-10-20 10:50 UTC (permalink / raw)
To: Srinivas Kandagatla, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Alice Guo,
Peng Fan, Frank Li
From: Alice Guo <alice.guo@nxp.com>
Add OCOTP device type for i.MX94, including register offset, total size,
and fuse layout. This enables NVMEM access to the eFuse of i.MX94.
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
drivers/nvmem/imx-ocotp-ele.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c
index 7807ec0e2d18..7cf7e809a8f5 100644
--- a/drivers/nvmem/imx-ocotp-ele.c
+++ b/drivers/nvmem/imx-ocotp-ele.c
@@ -186,6 +186,25 @@ static const struct ocotp_devtype_data imx93_ocotp_data = {
},
};
+static const struct ocotp_devtype_data imx94_ocotp_data = {
+ .reg_off = 0x8000,
+ .reg_read = imx_ocotp_reg_read,
+ .size = 3296, /* 103 Banks */
+ .num_entry = 10,
+ .entry = {
+ { 0, 1, FUSE_FSB | FUSE_ECC },
+ { 7, 1, FUSE_FSB | FUSE_ECC },
+ { 9, 3, FUSE_FSB | FUSE_ECC },
+ { 12, 24, FUSE_FSB },
+ { 36, 2, FUSE_FSB | FUSE_ECC },
+ { 38, 14, FUSE_FSB },
+ { 59, 1, FUSE_ELE },
+ { 525, 2, FUSE_FSB | FUSE_ECC },
+ { 528, 7, FUSE_FSB },
+ { 536, 280, FUSE_FSB },
+ },
+};
+
static const struct ocotp_devtype_data imx95_ocotp_data = {
.reg_off = 0x8000,
.reg_read = imx_ocotp_reg_read,
@@ -209,6 +228,7 @@ static const struct ocotp_devtype_data imx95_ocotp_data = {
static const struct of_device_id imx_ele_ocotp_dt_ids[] = {
{ .compatible = "fsl,imx93-ocotp", .data = &imx93_ocotp_data, },
+ { .compatible = "fsl,imx94-ocotp", .data = &imx94_ocotp_data, },
{ .compatible = "fsl,imx95-ocotp", .data = &imx95_ocotp_data, },
{},
};
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v2 3/3] arm64: dts: imx94: Add OCOTP node
2025-10-20 10:50 [PATCH v2 0/3] Add i.MX94 OCOTP support alice.guo
2025-10-20 10:50 ` [PATCH v2 1/3] dt-bindings: nvmem: imx-ocotp: Add support for i.MX94 alice.guo
2025-10-20 10:50 ` [PATCH v2 2/3] nvmem: imx-ocotp-ele: Add i.MX94 OCOTP support alice.guo
@ 2025-10-20 10:50 ` alice.guo
2025-10-21 15:51 ` Frank Li
2 siblings, 1 reply; 5+ messages in thread
From: alice.guo @ 2025-10-20 10:50 UTC (permalink / raw)
To: Srinivas Kandagatla, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Alice Guo
From: Alice Guo <alice.guo@nxp.com>
Add OCOTP node to the i.MX94 device tree. This enables support for
accessing eFuse on i.MX94 SoCs via the NVMEM subsystem.
Signed-off-by: Alice Guo <alice.guo@nxp.com>
---
arch/arm64/boot/dts/freescale/imx94.dtsi | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx94.dtsi b/arch/arm64/boot/dts/freescale/imx94.dtsi
index d4a880496b0e..8728b3aa15a7 100644
--- a/arch/arm64/boot/dts/freescale/imx94.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx94.dtsi
@@ -1173,6 +1173,13 @@ a55_irqsteer: interrupt-controller@446a0000 {
};
};
+ ocotp: efuse@47510000 {
+ compatible = "fsl,imx94-ocotp", "syscon";
+ reg = <0x0 0x47510000 0x0 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ };
+
aips4: bus@49000000 {
compatible = "fsl,aips-bus", "simple-bus";
reg = <0x0 0x49000000 0x0 0x800000>;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread