summaryrefslogtreecommitdiff
path: root/driver/retimer/ps8818.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/retimer/ps8818.c')
-rw-r--r--driver/retimer/ps8818.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/driver/retimer/ps8818.c b/driver/retimer/ps8818.c
index 99802b7fcc..d9c89ef7e4 100644
--- a/driver/retimer/ps8818.c
+++ b/driver/retimer/ps8818.c
@@ -14,17 +14,17 @@
#include "ps8818.h"
#include "usb_mux.h"
-static int ps8818_i2c_read(int port, int offset, int *data)
+static int ps8818_i2c_read(int port, int page, int offset, int *data)
{
return i2c_read8(usb_retimers[port].i2c_port,
- usb_retimers[port].i2c_addr_flags,
+ usb_retimers[port].i2c_addr_flags + page,
offset, data);
}
-static int ps8818_i2c_write(int port, int offset, int data)
+static int ps8818_i2c_write(int port, int page, int offset, int data)
{
return i2c_write8(usb_retimers[port].i2c_port,
- usb_retimers[port].i2c_addr_flags,
+ usb_retimers[port].i2c_addr_flags + page,
offset, data);
}
@@ -35,7 +35,10 @@ int ps8818_detect(int port)
/* Detected if we are powered and can read the device */
if (!chipset_in_state(CHIPSET_STATE_HARD_OFF))
- rv = ps8818_i2c_read(port, PS8818_REG_FLIP, &val);
+ rv = ps8818_i2c_read(port,
+ PS8818_REG_PAGE0,
+ PS8818_REG0_FLIP,
+ &val);
return rv;
}
@@ -54,7 +57,10 @@ static int ps8818_set_mux(int port, mux_state_t mux_state)
if (mux_state & USB_PD_MUX_DP_ENABLED)
val |= PS8818_MODE_DP_ENABLE;
- rv = ps8818_i2c_write(port, PS8818_REG_MODE, val);
+ rv = ps8818_i2c_write(port,
+ PS8818_REG_PAGE0,
+ PS8818_REG0_MODE,
+ val);
if (rv)
return rv;
@@ -62,7 +68,10 @@ static int ps8818_set_mux(int port, mux_state_t mux_state)
if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
val |= PS8818_FLIP_CONFIG;
- return ps8818_i2c_write(port, PS8818_REG_FLIP, val);
+ return ps8818_i2c_write(port,
+ PS8818_REG_PAGE0,
+ PS8818_REG0_FLIP,
+ val);
}
const struct usb_retimer_driver ps8818_usb_retimer = {