diff options
author | Ting Shen <phoenixshen@google.com> | 2021-12-07 15:58:21 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-12-09 07:03:46 +0000 |
commit | 70e0694ffb569b5b5cbc0dd411628125083dc557 (patch) | |
tree | 75222c5bd6caa61fb8daef3e2e7bbfda532ae5d8 | |
parent | 6f8336eb432938f33dca48f20f59ff014cf54af9 (diff) | |
download | chrome-ec-70e0694ffb569b5b5cbc0dd411628125083dc557.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>
-rw-r--r-- | driver/usb_mux/ps8743.c | 8 | ||||
-rw-r--r-- | include/driver/usb_mux/ps8743_public.h | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/driver/usb_mux/ps8743.c b/driver/usb_mux/ps8743.c index f618bb009f..f126d36378 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/include/driver/usb_mux/ps8743_public.h b/include/driver/usb_mux/ps8743_public.h index b0a7ae2eda..c20b948d07 100644 --- a/include/driver/usb_mux/ps8743_public.h +++ b/include/driver/usb_mux/ps8743_public.h @@ -95,9 +95,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_field_update(const struct usb_mux *me, uint8_t reg, uint8_t mask, + uint8_t val); int ps8743_check_chip_id(const struct usb_mux *me, int *val); #endif /* __CROS_EC_DRIVER_USB_MUX_PS8743_PUBLIC_H */ |