diff options
author | Ting Shen <phoenixshen@google.com> | 2021-12-07 15:58:21 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-12-10 16:40:44 +0000 |
commit | edc196fe34e37139295260f3be31fe773cb6936a (patch) | |
tree | 561cfedb2c4e1ae3f37ad0b857eb37988e2d49c4 | |
parent | 2cb4afc8068a487be1e1f15653cb57783bb2cc8b (diff) | |
download | chrome-ec-edc196fe34e37139295260f3be31fe773cb6936a.tar.gz |
ps8743: add i2c_field_update and DCI mode config register
Add helper function and registers for Asurada.
BUG=b:209528621
TEST=make
BRANCH=asurada
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: Ia1b6f8761ce4cc23a1f671ca752b6004ac16eaaf
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3320080
Reviewed-by: Eric Yilun Lin <yllin@google.com>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
(cherry picked from commit 70e0694ffb569b5b5cbc0dd411628125083dc557)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3324699
-rw-r--r-- | driver/usb_mux/ps8743.c | 8 | ||||
-rw-r--r-- | driver/usb_mux/ps8743.h | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/driver/usb_mux/ps8743.c b/driver/usb_mux/ps8743.c index 68bb0428d3..5ecfea2ee6 100644 --- a/driver/usb_mux/ps8743.c +++ b/driver/usb_mux/ps8743.c @@ -23,6 +23,14 @@ int ps8743_write(const struct usb_mux *me, uint8_t reg, uint8_t val) reg, val); } +int ps8743_field_update(const struct usb_mux *me, uint8_t reg, uint8_t mask, + uint8_t val) +{ + return i2c_field_update8(me->i2c_port, me->i2c_addr_flags, + reg, mask, val); +} + + int ps8743_check_chip_id(const struct usb_mux *me, int *val) { int id1; diff --git a/driver/usb_mux/ps8743.h b/driver/usb_mux/ps8743.h index a520f970ac..3a7077271f 100644 --- a/driver/usb_mux/ps8743.h +++ b/driver/usb_mux/ps8743.h @@ -86,9 +86,19 @@ #define PS8743_USB_HS_THRESH_NEG_45 0xc0 #define PS8743_USB_HS_THRESH_NEG_35 0xe0 +/* DCI config: 0x45~0x4D */ +#define PS8743_REG_DCI_CONFIG_2 0x47 +#define PS8743_AUTO_DCI_MODE_SHIFT 6 +#define PS8743_AUTO_DCI_MODE_MASK (3 << PS8743_AUTO_DCI_MODE_SHIFT) +#define PS8743_AUTO_DCI_MODE_ENABLE (0 << PS8743_AUTO_DCI_MODE_SHIFT) +#define PS8743_AUTO_DCI_MODE_FORCE_USB (2 << PS8743_AUTO_DCI_MODE_SHIFT) +#define PS8743_AUTO_DCI_MODE_FORCE_DCI (3 << PS8743_AUTO_DCI_MODE_SHIFT) + int ps8743_tune_usb_eq(const struct usb_mux *me, uint8_t tx, uint8_t rx); int ps8743_write(const struct usb_mux *me, uint8_t reg, uint8_t val); int ps8743_read(const struct usb_mux *me, uint8_t reg, int *val); int ps8743_check_chip_id(const struct usb_mux *me, int *val); +int ps8743_field_update(const struct usb_mux *me, uint8_t reg, uint8_t mask, + uint8_t val); #endif /* __CROS_EC_PS8743_H */ |