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-10 16:40:44 +0000
commitedc196fe34e37139295260f3be31fe773cb6936a (patch)
tree561cfedb2c4e1ae3f37ad0b857eb37988e2d49c4
parent2cb4afc8068a487be1e1f15653cb57783bb2cc8b (diff)
downloadchrome-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.c8
-rw-r--r--driver/usb_mux/ps8743.h10
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 */