Hello Peng,

Am 01.08.2019 um 10:45 schrieb Peng Fan:
Add fuse check for I2C. If the fuse indicates the module
will not work in the SoC, let's fail the initialization.

Signed-off-by: Peng Fan <peng....@nxp.com>
---

V2:
  Fix build for aarch64


  drivers/i2c/mxc_i2c.c | 17 +++++++++++++++++
  1 file changed, 17 insertions(+)

diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c
index 23119cce65..7a259547bd 100644
--- a/drivers/i2c/mxc_i2c.c
+++ b/drivers/i2c/mxc_i2c.c
@@ -18,6 +18,7 @@
  #include <asm/arch/imx-regs.h>
  #include <linux/errno.h>
  #include <asm/mach-imx/mxc_i2c.h>
+#include <asm/mach-imx/sys_proto.h>
  #include <asm/io.h>
  #include <i2c.h>
  #include <watchdog.h>
@@ -740,6 +741,14 @@ void bus_i2c_init(int index, int speed, int unused,
                return;
        }
+ if (IS_ENABLED(CONFIG_IMX_MODULE_FUSE)) {
+               if (i2c_fused((ulong)mxc_i2c_buses[index].base)) {
+                       printf("SoC fuse indicates I2C@0x%lx is unavailable.\n",
+                              (ulong)mxc_i2c_buses[index].base);
+                       return;
+               }
+       }
+
        /*
         * Warning: Be careful to allow the assignment to a static
         * variable here. This function could be called while U-Boot is
@@ -885,6 +894,14 @@ static int mxc_i2c_probe(struct udevice *bus)
        if (addr == FDT_ADDR_T_NONE)
                return -EINVAL;
+ if (IS_ENABLED(CONFIG_IMX_MODULE_FUSE)) {
+               if (i2c_fused((ulong)addr)) {
+                       printf("SoC fuse indicates I2C@0x%lx is unavailable.\n",
+                              (ulong)addr);
+                       return -ENODEV;
+               }
+       }
+
        i2c_bus->base = addr;
        i2c_bus->index = bus->seq;
        i2c_bus->bus = bus;


Reviewed-by: Heiko Schocher <h...@denx.de>

bye,
Heiko
--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: h...@denx.de
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to