| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GL3590 (USB3 hub) chip may drive I2C_SDA and I2C_SCL lines after being
released from reset. Max time for such "activities" is 200ms. In order
to ensure correct operations on the i2c bus, we need to delay all i2c
transactions in the system by such value.
Implementation is using hook with higher priority than I2C_INIT. This
guarantees that:
* SoC won't start i2c transactions before 200ms mark after GL3590's
RESETJ# pin deassertion;
* Original order of loading all generic modules (e.g. ioex_init,
board_init) won't need to be changed;
* Workaround applied only in platform-specific code.
BUG=b:181930164
BRANCH=main
TEST=build and flash new servo_v4p1 firmware
Plug in CHG and DUT cables. _Then_ plug in HOST cable and verify that
green diode is lit on servo_v4p1 board indicating proper pass-through
charging.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I32971d421eb541c788a87701ce5e8c62a8b35777
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2829770
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To improve reliability of gl3590 driver, add verification for success of
previous enable/disable port command.
BUG=b:178125550
BRANCH=main
TEST=Flash FW6410 to GL3590 hub, verify error messages correctness on
port enable/disable events.
Flash FW6411 to GL3590 hub, verify that all commands executed silently
which means success.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I5599c350c88c2596a4bb2a2ba310d44c08e0717f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2674002
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a way to verify whether I2C interface of the hub is ready and
initialize it.
BUG=b:178125550
BRANCH=main
TEST=With consecutive patches applied, verify host hub functionality on
servo_v4p1 board. All USB ports should be usable. Check console logs for
any possible error messages.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I9a4ad484d07b50e0c497f56bfaf111b47b3b0576
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2674001
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Requirement for extra delay was obtained directly from Genesis PoC.
This is also documented in I2C Application Note v080.
This delay should improve reliability of I2C interface.
BUG=b:178125550
BRANCH=main
TEST=Verify host hub functionality on servo_v4p1 board. All USB ports
should be usable. Check console logs for any possible error messages.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I4b4507f1b10f46f7398cc2f1099286e360f4f450
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2674000
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initially `gl3590` command allows only for enabling/disabling downstream
facing ports.
BUG=177295270
BRANCH=main
TEST=On servo_v4p1 verify that ports power may be enabled/disabled via
gl3590 command. In order to disable USB3.0 port on top (A0):
gl3590 disable 0x2
In order to enable USB3.0 port at the bottom (A1):
gl3590 enable 0x1
In order to disable uServo port:
gl3590 disable 0x8
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: Id9f82454fc9309e56c76215bce7058de776a806d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2624471
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GL3590 USB3.0 hub has support for enabling/disabling power to its
downstream facing ports via I2C interface. New API allows to enable or
disable bunch of ports at a time in order to limit number of issued I2C
transactions.
BUG=b:177295270
BRANCH=main
TEST=With consecutive patch applied, one may verify new API with usage
of `gl3590` command on servo_v4p1 and enabling/disabling ports.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I979fb2034e176f1603407be5ba46a528a14ec53c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2624470
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GL3590's registers allow to gather information about host connection,
e.g. available power. This may be used by platforms which are powered by
hub's UFP.
Add missing license headers.
BUG=b:144776402
BRANCH=main
TEST=With consecutive patch applied, verify that available input power
reported by servo_v4p1 is correct.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I6a9881fe844b293800653f141c418257c6ebc4e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2606237
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
GL3590 is a USB hub with support for out-of-band transactions via I2C.
Set of additional registers allow to disable/enable ports, query port
status (including power-related information), handle over-current events
and others.
This initial driver implements method for reading and writing from/to
GL3590 registers as well as event handler to parse asynchronous messages
from hub.
BUG:b:150323106,b:169929627
BRANCH:master
TEST:buildall. Functionality can be tested on servo_v4p1 with a
consecutive commit applied.
Signed-off-by: Jan Dabros <jsd@semihalf.com>
Change-Id: I385ff4790ddc367d07b7e588f4e10aeb83e9f1c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2563686
Reviewed-by: Brian Nemec <bnemec@chromium.org>
|