mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-13 11:25:14 +00:00
Chip level I2C transfer called from common was huge and consumed 96 bytes of stack. Refactor into subfunctions for master transmit and receive. Update I2C configuration to program proper register values for bus clock and other registers. Port switching modified to only switch ports if necessary. Make port switch more robust by resetting I2C controller clearing hardware state machines. Read raw SCL and SDA signals using GPIO API instead of I2C bit-bang register. I2C bit-bang only useful if I2C is idle. BRANCH=None BUG=None TEST=Configure board for port switching and I2C stress tests. CQ-DEPEND=CL:1053576 Change-Id: I647ecec8746dc9741c59879db15d7ad4e20e0469 Signed-off-by: scott worley <scott.worley@microchip.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/1053880 Commit-Ready: Randall Spangler <rspangler@chromium.org> Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>