summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-08-27 07:09:10 -0400
committerTom Rini <trini@konsulko.com>2019-08-27 07:09:10 -0400
commite7ce2e04831e8801f8a1e3afc6dee66b4132c48b (patch)
tree93c4681cd9a1d10264fc6d1cf5e917b26259578b /drivers
parentd39221f33f0e78cc80d1304ab4ca4e4a3886fbff (diff)
parent5ae84860b0428b37063a6d7b03cae26a4e772da7 (diff)
Merge tag 'for-v2019.10' of https://gitlab.denx.de/u-boot/custodians/u-boot-i2c
i2c bugfixes for 2019.10 - misc: i2c_eeprom: verify that the chip is functional at probe() - i2c: mxc_i2c: Remove i2c_idle_bus from probe - i2c-mux-gpio: Fix GPIO request flag issue
Diffstat (limited to 'drivers')
-rw-r--r--drivers/i2c/muxes/i2c-mux-gpio.c2
-rw-r--r--drivers/i2c/mxc_i2c.c7
-rw-r--r--drivers/misc/i2c_eeprom.c8
3 files changed, 9 insertions, 8 deletions
diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c
index 28f640042f..e8b124f4f5 100644
--- a/drivers/i2c/muxes/i2c-mux-gpio.c
+++ b/drivers/i2c/muxes/i2c-mux-gpio.c
@@ -106,7 +106,7 @@ static int i2c_mux_gpio_probe(struct udevice *dev)
}
ret = gpio_request_list_by_name(dev, "mux-gpios", gpios, mux->n_gpios,
- GPIOD_IS_OUT_ACTIVE);
+ GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
if (ret <= 0) {
dev_err(dev, "Failed to request mux-gpios\n");
return ret;
diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c
index 73b9807598..20f6dc4ecb 100644
--- a/drivers/i2c/mxc_i2c.c
+++ b/drivers/i2c/mxc_i2c.c
@@ -917,13 +917,6 @@ static int mxc_i2c_probe(struct udevice *bus)
}
}
- ret = i2c_idle_bus(i2c_bus);
- if (ret < 0) {
- /* Disable clk */
- enable_i2c_clk(0, bus->seq);
- return ret;
- }
-
/*
* Pinmux settings are in board file now, until pinmux is supported,
* we can set pinmux here in probe function.
diff --git a/drivers/misc/i2c_eeprom.c b/drivers/misc/i2c_eeprom.c
index f25d054007..8f2349ad5a 100644
--- a/drivers/misc/i2c_eeprom.c
+++ b/drivers/misc/i2c_eeprom.c
@@ -84,6 +84,14 @@ static int i2c_eeprom_std_ofdata_to_platdata(struct udevice *dev)
static int i2c_eeprom_std_probe(struct udevice *dev)
{
+ u8 test_byte;
+ int ret;
+
+ /* Verify that the chip is functional */
+ ret = i2c_eeprom_read(dev, 0, &test_byte, 1);
+ if (ret)
+ return -ENODEV;
+
return 0;
}