From: Maurice Petallo <mauricex.r.peta...@intel.com>

When SMBus is enabled in Baytrail, it is being probed first before
all the Designware I2C devices. This means SMBus will take the first
available bus id which is 0 and then the I2C devices will take the
next succeeding bus ids. This should be fine as long as the I2C
devices bus ids are assigned dynamically.

The problem arises when the I2C devices' bus ids are assigned
statically and the SMBus is probed first. The kernel will fail to
add the i2c adapter because something else, which in that case is
the SMBus, has taken the bus id that the i2c adapter is trying to
take.

As mentioned in commit "i2c: designware-pci: use static bus num
allocation for baytrail", it is required for I2C devices' bus ids
to be assigned statically for LPE Audio to register the i2c properly.

To resolve this, we either force the SMBus to take the next bus id
after all the designware I2C devices or we allow all the I2C devices
to be probed first before the SMBus. This patch implements the 2nd.

Signed-off-by: Maurice Petallo <mauricex.r.peta...@intel.com>
Change-Id: I113c4c2b0d9a44aa2d28ff764c19c798df6d3c30
Reviewed-on: https://git-gar-1.devtools.intel.com/gerrit/4016
Reviewed-by: Wan Mohamad, Wan Ahmad Zainie 
<wan.ahmad.zainie.wan.moha...@intel.com>
---
 drivers/i2c/busses/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index f35b079..5bbf680 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -12,7 +12,6 @@ obj-$(CONFIG_I2C_ALI15X3)     += i2c-ali15x3.o
 obj-$(CONFIG_I2C_AMD756)       += i2c-amd756.o
 obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o
 obj-$(CONFIG_I2C_AMD8111)      += i2c-amd8111.o
-obj-$(CONFIG_I2C_I801)         += i2c-i801.o
 obj-$(CONFIG_I2C_ISCH)         += i2c-isch.o
 obj-$(CONFIG_I2C_ISMT)         += i2c-ismt.o
 obj-$(CONFIG_I2C_NFORCE2)      += i2c-nforce2.o
@@ -41,6 +40,7 @@ obj-$(CONFIG_I2C_DESIGNWARE_PLATFORM) += 
i2c-designware-platform.o
 i2c-designware-platform-objs := i2c-designware-platdrv.o
 obj-$(CONFIG_I2C_DESIGNWARE_PCI)       += i2c-designware-pci.o
 i2c-designware-pci-objs := i2c-designware-pcidrv.o
+obj-$(CONFIG_I2C_I801)         += i2c-i801.o
 obj-$(CONFIG_I2C_EG20T)                += i2c-eg20t.o
 obj-$(CONFIG_I2C_GPIO)         += i2c-gpio.o
 obj-$(CONFIG_I2C_HIGHLANDER)   += i2c-highlander.o
-- 
1.9.1

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to