diff options
Diffstat (limited to 'driver/retimer/ps8818.c')
-rw-r--r-- | driver/retimer/ps8818.c | 23 |
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 = { |