switch-coreboot/src/device
Julius Werner 7f70ad610b rk3288: Add software I2C support
This patch adds the necessary platform glue to allow the use of
software-driven I2C bit banging on the RK3288. This is just a debugging
feature that can be used to reproduce certain I2C failure cases.

Also fix Makefile verstage linking for the feature and add some new
rk3288 IOMUX macros as needed.

BRANCH=None
BUG=None
TEST=Added "CONFIG_SOFTWARE_I2C=y" to configs/config.veyron_jerry,
wrapped Jerry's bootblock and verstage in software_i2c_attach/detach()
calls, confirmed that both PMIC and TPM could be driven correctly with
software I2C driver. Tried out different combinations of
software_i2c_wedge_ack() and software_i2c_wedge_read() on the PMIC and
observed transfer results with the hardware controller after reboot...
the worst that would happen is that the first register read-modify-write
(DCDC_ILMAX) would fail to read, but all later transfers would be fine.
Since that register is written twice (due to current BUCK1 ramp
implementation) and is not terribily important anyway, I think we don't
need to worry about wedging problems.

Change-Id: Iba801ee61d30fb1fd3aef8300612c67fa50c441b
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 24dfca9bab38a20c40ef0c2dd4c775b8d8f47487
Original-Change-Id: I96777300a57c85471bad20e23a455551e9970222
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/247890
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/9757
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2015-04-17 09:59:19 +02:00
..
dram cbfs: correct types used for accessing files 2015-04-01 22:51:10 +02:00
oprom x86: Change MMIO addr in readN(addr)/writeN(addr, val) to pointer 2015-02-15 08:50:22 +01:00
azalia_device.c x86: Change MMIO addr in readN(addr)/writeN(addr, val) to pointer 2015-02-15 08:50:22 +01:00
cardbus_device.c GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
cpu_device.c device: Trivial - drop trailing blank lines at EOF 2014-07-08 13:52:03 +02:00
device.c device: convert to stopwatch API 2015-03-21 17:00:40 +01:00
device_romstage.c devicetree: Search PnP device node from the tree by path 2015-01-30 16:58:27 +01:00
device_util.c AMD fam10: Drop PCI_BUS_SEGN_BITS 2015-03-09 19:33:08 +01:00
hypertransport.c AMD HyperTransport: Drop unused link optimisation 2015-02-05 16:11:43 +01:00
Kconfig PCIe: Add L1 Sub-State support. 2015-03-23 13:11:15 +01:00
Makefile.inc rk3288: Add software I2C support 2015-04-17 09:59:19 +02:00
pci_device.c AMD fam10: Drop PCI_BUS_SEGN_BITS 2015-03-09 19:33:08 +01:00
pci_early.c device/pci_early.c: Mixes up variants of a typedefs to 'u32' 2014-07-19 11:57:06 +02:00
pci_ops.c pci_ops.{c,h}: Don't hide pointers behind typedefs 2014-11-05 14:45:57 +01:00
pci_rom.c RELOCATABLE_RAMSTAGE: Fix weak symbols with option ROMs 2014-12-28 19:57:16 +01:00
pciexp_device.c PCIe: Revise L1 Sub-State support 2015-03-23 13:11:18 +01:00
pcix_device.c GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
pnp_device.c pnp: Allow setting of misc register 0xf4 in device tree 2014-09-17 17:34:16 +02:00
root_device.c devicetree: Drop dummy root_dev ops 2015-03-01 21:53:58 +01:00
smbus_ops.c smbus: Add guards to avoid calling NULL. 2014-02-01 18:38:32 +01:00
software_i2c.c device: convert to stopwatch API 2015-03-21 17:00:40 +01:00