coreboot/src
Caveh Jalali 7696290004 mb/google/poppy/variant/atlas: I2C: run trackpad at 1MHz
With this change, coreboot thinks we're running at 1MHz:
	DW I2C bus 2 at 0xd1133000 (1000 KHz)

Elan eKT3644 IC Specification (trackpad) requires:
Low Time  larger than 500ns (61 * 8.3ns = 506ns).
High Time larger than 260ns (32 * 8.3ns = 265ns),
Data Hold_time larger than 0ns.
Start Condition Hold time larger than 250ns.
Rise/Fall time of less than 120ns.

HCNT controls both High Time and Start Condition Hold time.
LCNT controls Low Time.
SDA_HOLD controls Data Hold Time.

P2 Atlas "Rise time" is 90ns and "Fall time" is 32ns and tuned
using resistors on the board and must be considered when
adjusting any of the parameters since these times are all measured
at 30 or 70% of base and peak voltages (0v/1.8v).

The eKT3644 requirements are met with LCNT=69, HCNT=33, SDA_HOLD=20
which yields the SCL at around 950KHz - suboptimal but compliant.

Lower LCNT or HCNT results in "lost arbitration" errors or not complying
with eKT3644 requirements.

Verified by gaggery.tsai@intel.corp-partner.google.com.
Scope shots posted here:
https://b.corp.google.com/issues/78601949#comment177

BUG=b:78601949
BRANCH=none
TEST=Farzam provided test points on track pad for SCL/SDA/GND.
     Waveforms measured with oscilloscope and screen shots attached
     to bug (comment #177, #155, #100).
     Operate trackpad/touchscreen
     Review dmesg (kernel) output for correct speed, parameters, and
     no errors (e.g. "lost arbitration" or "host controller timeout")

Change-Id: Iaf42ba7b8818b7cd9c8dcc657823dac705659d38
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Signed-off-by: Grant Grundler <grundler@chromium.org>
Tested-by: gaggery.tsai@intel.corp-partner.google.com
Tested-by: grundler@chromium.org
Reviewed-on: https://review.coreboot.org/29553
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Caveh Jalali <caveh@google.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Gaggery Tsai <gaggery.tsai@intel.com>
2018-11-16 10:02:37 +00:00
..
acpi arch/x86: Add common AMD ACPI hardware definitions 2017-11-10 19:15:38 +00:00
arch src: Remove unneeded include <console/console.h> 2018-11-16 09:50:29 +00:00
commonlib src: Get rid of duplicated includes 2018-11-16 09:50:03 +00:00
console console: Set default loglevel to 8 (SPEW) for CONFIG_CHROMEOS 2018-10-18 12:50:41 +00:00
cpu amd/{nb/amdfam10,cpu/pi}/Kconfig: Remove unused symbols 2018-11-16 09:59:29 +00:00
device src: Remove unneeded include <lib.h> 2018-11-16 09:50:51 +00:00
drivers src/drivers/vpd: Remove unused VPD_DEBUG 2018-11-16 09:55:09 +00:00
ec src: Remove unneeded include <console/console.h> 2018-11-16 09:50:29 +00:00
include src: Remove unneeded include "{arch,cpu}/cpu.h" 2018-11-12 09:22:18 +00:00
lib src: Remove unneeded include <lib.h> 2018-11-16 09:50:51 +00:00
mainboard mb/google/poppy/variant/atlas: I2C: run trackpad at 1MHz 2018-11-16 10:02:37 +00:00
northbridge amd/{nb/amdfam10,cpu/pi}/Kconfig: Remove unused symbols 2018-11-16 09:59:29 +00:00
security src: Remove unneeded include <console/console.h> 2018-11-16 09:50:29 +00:00
soc soc/intel/denverton_ns/Kconfig: Remove unused HSUART_FUNC 2018-11-16 10:00:00 +00:00
southbridge src: Remove unneeded include <lib.h> 2018-11-16 09:50:51 +00:00
superio src: Remove unneeded include <console/console.h> 2018-11-16 09:50:29 +00:00
vendorcode security/vboot: Add selection for firmware slots used by VBOOT 2018-11-08 16:19:37 +00:00
Kconfig reset: Finalize move to new API 2018-10-31 15:29:42 +00:00