summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2021-12-07 15:58:21 +0800
committerCommit Bot <commit-bot@chromium.org>2021-12-09 07:03:46 +0000
commit70e0694ffb569b5b5cbc0dd411628125083dc557 (patch)
tree75222c5bd6caa61fb8daef3e2e7bbfda532ae5d8
parent6f8336eb432938f33dca48f20f59ff014cf54af9 (diff)
downloadchrome-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.c8
-rw-r--r--include/driver/usb_mux/ps8743_public.h10
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 */