android_kernel_xiaomi_sm7250/drivers/i2c/busses
Jordan Crouse 95563d343f [PATCH] scx200_acb: Fix for the CS5535 errata
This is a fix for the CS5535 errata 111:

When the SMBus controller tries to access a non-existing device, it sets
the NEGACK bit, SMBus I/O offset 01h[4], to 1 after it detects no
acknowledge at the ninth clock.  The specification states that the bit
can be cleared by writing a 1 to it, but under certain circumstances it
is possible for this bit to not clear.

Writing a 0 to the bit resets the internal state machine and clears the
issue.

Since all writable bits in ACBST are W1C bits (write-one-to-clear) the
second write doesn't affect any other logic except the buggy NEGACK
state machine. The second write clears an internal register which is
responsible for "overwriting" the NEGACK bit in ACBST.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-05-09 13:04:21 -07:00
..
i2c-ali15x3.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-ali1535.c [PATCH] I2C: i2c-ali1535: Drop redundant mutex 2006-03-23 14:21:54 -08:00
i2c-ali1563.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-amd756-s4882.c [PATCH] I2C: i2c-amd756-s4882: Improve static mutex initialization 2006-03-23 14:21:54 -08:00
i2c-amd756.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-amd8111.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-au1550.c [PATCH] I2C: Kill i2c_algorithm.id (4/7) 2005-09-05 09:14:29 -07:00
i2c-au1550.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i2c-elektor.c [PATCH] i2c: Big i2c-elektor cleanup 2005-10-28 14:02:10 -07:00
i2c-hydra.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-i801.c [PATCH] i2c-i801: Fix resume when PEC is used 2006-04-20 07:54:04 -07:00
i2c-i810.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-ibm_iic.c [PATCH] i2c: i2c-ibm_iic add I2C_CLASS_HWMON 2006-01-05 22:16:27 -08:00
i2c-ibm_iic.h [PATCH] I2C: drivers/i2c/*: #include <linux/config.h> cleanup 2005-06-21 21:51:53 -07:00
i2c-iop3xx.c [PATCH] handle errors returned by platform_get_irq*() 2006-03-20 13:42:57 -08:00
i2c-iop3xx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i2c-isa.c [PATCH] i2c: Semaphore to mutex conversions, part 2 2006-03-23 14:21:51 -08:00
i2c-ite.c [PATCH] i2c: Fix i2c-ite name initialization 2006-03-23 14:21:54 -08:00
i2c-ixp4xx.c [PATCH] I2C: i2c-ixp4xx: Add hwmon class 2006-03-23 14:21:55 -08:00
i2c-ixp2000.c [DRIVER MODEL] Fix merge clashes with ARM ixp2000 / ixp4xx platforms 2005-11-17 15:47:30 +00:00
i2c-mpc.c [PATCH] handle errors returned by platform_get_irq*() 2006-03-20 13:42:57 -08:00
i2c-mv64xxx.c [PATCH] handle errors returned by platform_get_irq*() 2006-03-20 13:42:57 -08:00
i2c-nforce2.c [PATCH] i2c: i2c-nforce2 add nforce4 MCP-04 device ID 2006-01-05 22:16:27 -08:00
i2c-parport-light.c [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2c-parport.c [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2c-parport.h [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2c-pca-isa.c [PATCH] I2C: drivers/i2c/*: #include <linux/config.h> cleanup 2005-06-21 21:51:53 -07:00
i2c-piix4.c [PATCH] I2C: i2c-piix4: Add Broadcom HT-1000 support 2006-03-23 14:21:55 -08:00
i2c-powermac.c [PATCH] 2/5 powerpc: Rework PowerMac i2c part 2 2006-01-09 15:47:17 +11:00
i2c-prosavage.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-pxa.c [PATCH] i2c: Semaphore to mutex conversions, part 3 2006-03-23 14:21:51 -08:00
i2c-rpx.c [PATCH] I2C: drivers/i2c/*: #include <linux/config.h> cleanup 2005-06-21 21:51:53 -07:00
i2c-s3c2410.c [ARM] Move asm/hardware/clock.h to linux/clk.h 2006-01-07 16:15:52 +00:00
i2c-savage4.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-sibyte.c [PATCH] Build fix for the Sibyte I2C driver 2005-08-09 12:08:21 -07:00
i2c-sis96x.c [PATCH] i2c-sis96x: Remove an init-time log message 2006-04-14 11:18:34 -07:00
i2c-sis630.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-sis5595.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-stub.c [PATCH] I2C: Kill i2c_algorithm.id (4/7) 2005-09-05 09:14:29 -07:00
i2c-via.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-viapro.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-voodoo3.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
Kconfig [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
Makefile [PATCH] 2/5 powerpc: Rework PowerMac i2c part 2 2006-01-09 15:47:17 +11:00
scx200_acb.c [PATCH] scx200_acb: Fix for the CS5535 errata 2006-05-09 13:04:21 -07:00
scx200_i2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00