diff options
author | Javier Carrasco <javier.carrasco@wolfvision.net> | 2023-12-14 17:29:12 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-01-02 14:41:30 +0100 |
commit | 4c3ea81aa8e11400f24e5541bf46c2cadb4202e9 (patch) | |
tree | 2c44a545dd1e00a6227c4bdb425ea5044727d367 /security/loadpin | |
parent | usb: typec: tipd: declare in_data in as const in exec_cmd functions (diff) | |
download | linux-4c3ea81aa8e11400f24e5541bf46c2cadb4202e9.tar.xz linux-4c3ea81aa8e11400f24e5541bf46c2cadb4202e9.zip |
usb: typec: tipd: add patch update support for tps6598x
The TPS6598x PD controller supports firmware updates that can be loaded
either from an external flash memory or a host using the device's I2C
host interface. This patch implements the second approach, which is
especially relevant if no flash memory is available.
In order to make patch bundle updates, a series of tasks (special
commands) must be sent to the device as it is documented in the
TPS65987DDH and TPS65988DH Host Interface Technical Reference Manual[1],
section 4.11 (Patch Bundle Update Tasks).
The update sequence is as follows:
1. PTCs - Start Patch Load Sequence: the proposed approach includes
device and application configuration data.
2. PTCd - Patch Download: 64-byte data chunks must be sent until the end
of the firmware file is reached (the last chunk may be shorter).
3. PTCc - Patch Data Transfer Complete: ends the patch loading sequence.
After this sequence and if no errors occurred, the device will change
its mode to 'APP' after SETUP_MS milliseconds, and then it will be ready
for normal operation.
[1] https://www.ti.com/lit/ug/slvubh2b/slvubh2b.pdf?ts=1697623299919&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTPS65987D
Signed-off-by: Javier Carrasco <javier.carrasco@wolfvision.net>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20231207-tps6598x_update-v2-4-f3cfcde6d890@wolfvision.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'security/loadpin')
0 files changed, 0 insertions, 0 deletions