u-boot-brain/drivers
Simon Glass b725dc458f i2c: Add a mux for GPIO-based I2C bus arbitration
While I2C supports multi-master buses this is difficult to get right.
The implementation on the master side in software is quite complex.
Clock-stretching and the arbitrary time that an I2C transaction can take
make it difficult to share the bus fairly in the face of high traffic.
When one or more masters can be reset independently part-way through a
transaction it is hard to know the state of the bus.

This driver provides a scheme based on two 'claim' GPIOs, one driven by the
AP (Application Processor, meaning the main CPU) and one driven by the EC
(Embedded Controller, a small CPU aimed at handling system tasks). With
these they can communicate and reliably share the bus. This scheme has
minimal overhead and involves very little code. It is used on snow to
permit the EC and the AP to share access to the main system PMIC and
battery. The scheme can survive reboots by either side without difficulty.
This scheme has been tested in the field with millions of devices.

Since U-Boot runs on the AP, the terminology used is 'our' claim GPIO,
meaning the AP's, and 'their' claim GPIO, meaning the EC's. This terminology
is used by the device tree bindings in Linux also.

Signed-off-by: Simon Glass <sjg@chromium.org>
2015-08-05 21:06:10 -06:00
..
bios_emulator biosemu: Do not free vga_info->BIOSImage when it is 0xc0000 2015-04-29 18:51:49 -06:00
block arm: mvebu: add Armada XP SATA support 2015-07-23 08:30:58 +02:00
bootcount qe: move immap_qe.h from arch directory into common directory 2014-07-22 16:25:54 -07:00
clk dm: test: Add tests for the clk uclass 2015-07-21 17:39:30 -06:00
core dm: core: Support finding a device by phandle 2015-08-05 20:57:51 -06:00
cpu x86: Move MP initialization codes into a common place 2015-07-14 18:03:16 -06:00
crypto drivers/crypto/fsl: clean-up - use fdt_setprop_u32 helper 2015-08-03 12:06:38 -07:00
ddr drivers/ddr/fsl: Adjust bstopre value 2015-08-03 12:06:38 -07:00
demo common: Make sure arch-specific map_sysmem() is defined 2015-04-18 11:11:09 -06:00
dfu dfu: fix 64-bit compile warnings 2015-07-27 15:53:52 -07:00
dma dma: keystone_nav: remove spurious qm_cfg verification 2014-11-06 11:04:39 -05:00
fpga fpga: xilinx: Show fpga info if defined 2015-01-21 10:25:43 +01:00
gpio x86: Add some missing global_data declarations in files that use gd 2015-08-05 08:42:41 -06:00
hwmon dtt: add ds620 support 2015-04-10 14:23:23 +02:00
i2c i2c: Add a mux for GPIO-based I2C bus arbitration 2015-08-05 21:06:10 -06:00
input i8042: Add keyboard enable logic in kbd_reset() 2015-04-18 11:11:16 -06:00
led dm: test: Add a test for the LED uclass 2015-07-21 17:39:32 -06:00
memory ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c 2014-06-19 17:53:58 -04:00
misc misc: led: pca9551_led: Fix problem with multiple blink frequencies 2015-07-27 15:01:57 -04:00
mmc fsl_esdhc.c: Always make check_and_invalidate_dcache_range available 2015-08-02 10:27:52 -04:00
mtd sf: kconfig: add kconfig options for spi flashes 2015-08-02 10:51:39 +02:00
net drivers/fsl-mc: flib changes for mc 8.0.0 2015-08-03 12:06:37 -07:00
pci pci: Remove DEBUG from pci_compat.c 2015-08-05 10:49:32 -06:00
pcmcia powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
power Merge branch 'master' of git://www.denx.de/git/u-boot-imx 2015-08-02 07:40:37 -04:00
pwm pwm: imx: Remove unreachable code 2015-05-26 14:13:12 +02:00
qe driver/qe: use strncpy instead of strcpy 2015-08-03 12:06:36 -07:00
ram dm: test: Add a test for the ram uclass 2015-07-21 17:39:32 -06:00
rtc dm: rtc: Support mc146818 driver in driver model 2015-07-14 18:03:16 -06:00
serial efi: Add a serial driver 2015-08-05 08:44:05 -06:00
soc soc: keystone_serdes: generalize configuration mechanism 2014-10-23 11:27:28 -04:00
sound sandbox: exynos: Move CONFIG_SOUND_SANDBOX to Kconfig 2015-04-18 11:11:39 -06:00
spi spi: zynq_spi: Simplify debug macro 2015-07-28 11:56:28 +02:00
thermal thermal: imx_thermal: fix busywait if IMX6 temp <0C 2015-07-10 10:15:19 +02:00
tpm tpm: Support using driver model with I2C 2015-05-14 18:49:33 -06:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb net: asix: fix operation without eeprom 2015-08-05 17:20:35 +02:00
video x86: Gracefully disable the vesa driver when running from EFI 2015-08-05 08:44:08 -06:00
watchdog watchdog/imx_watchdog: do not set WCR_WDW 2015-03-25 16:52:16 +01:00
Kconfig dm: Add a clock uclass 2015-07-21 17:39:29 -06:00
Makefile dm: Add a clock uclass 2015-07-21 17:39:29 -06:00