diff options
Diffstat (limited to 'driver/usb_mux/pi3usb3x532.c')
-rw-r--r-- | driver/usb_mux/pi3usb3x532.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/driver/usb_mux/pi3usb3x532.c b/driver/usb_mux/pi3usb3x532.c index bf6d1f5a01..c3d22b8f61 100644 --- a/driver/usb_mux/pi3usb3x532.c +++ b/driver/usb_mux/pi3usb3x532.c @@ -11,7 +11,8 @@ #include "usb_mux.h" #include "util.h" -static int pi3usb3x532_read(int port, uint8_t reg, uint8_t *val) +static int pi3usb3x532_read(const struct usb_mux *me, + uint8_t reg, uint8_t *val) { int read, res; @@ -20,7 +21,7 @@ static int pi3usb3x532_read(int port, uint8_t reg, uint8_t *val) * Second byte read will be vendor ID. * Third byte read will be selection control. */ - res = i2c_read16(MUX_PORT(port), MUX_ADDR(port), 0, &read); + res = i2c_read16(me->i2c_port, me->i2c_addr_flags, 0, &read); if (res) return res; @@ -32,32 +33,33 @@ static int pi3usb3x532_read(int port, uint8_t reg, uint8_t *val) return EC_SUCCESS; } -static int pi3usb3x532_write(int port, uint8_t reg, uint8_t val) +static int pi3usb3x532_write(const struct usb_mux *me, + uint8_t reg, uint8_t val) { if (reg != PI3USB3X532_REG_CONTROL) return EC_ERROR_UNKNOWN; - return i2c_write8(MUX_PORT(port), MUX_ADDR(port), 0, val); + return i2c_write8(me->i2c_port, me->i2c_addr_flags, 0, val); } -static int pi3usb3x532_reset(int port) +static int pi3usb3x532_reset(const struct usb_mux *me) { return pi3usb3x532_write( - port, + me, PI3USB3X532_REG_CONTROL, (PI3USB3X532_MODE_POWERDOWN & PI3USB3X532_CTRL_MASK) | PI3USB3X532_CTRL_RSVD); } -static int pi3usb3x532_init(int port) +static int pi3usb3x532_init(const struct usb_mux *me) { uint8_t val; int res; - res = pi3usb3x532_reset(port); + res = pi3usb3x532_reset(me); if (res) return res; - res = pi3usb3x532_read(port, PI3USB3X532_REG_VENDOR, &val); + res = pi3usb3x532_read(me, PI3USB3X532_REG_VENDOR, &val); if (res) return res; if (val != PI3USB3X532_VENDOR_ID) @@ -67,7 +69,8 @@ static int pi3usb3x532_init(int port) } /* Writes control register to set switch mode */ -static int pi3usb3x532_set_mux(int port, mux_state_t mux_state) +static int pi3usb3x532_set_mux(const struct usb_mux *me, + mux_state_t mux_state) { uint8_t reg = 0; @@ -78,18 +81,19 @@ static int pi3usb3x532_set_mux(int port, mux_state_t mux_state) if (mux_state & USB_PD_MUX_POLARITY_INVERTED) reg |= PI3USB3X532_BIT_SWAP; - return pi3usb3x532_write(port, PI3USB3X532_REG_CONTROL, + return pi3usb3x532_write(me, PI3USB3X532_REG_CONTROL, reg | PI3USB3X532_CTRL_RSVD); } /* Reads control register and updates mux_state accordingly */ -static int pi3usb3x532_get_mux(int port, mux_state_t *mux_state) +static int pi3usb3x532_get_mux(const struct usb_mux *me, + mux_state_t *mux_state) { uint8_t reg = 0; uint8_t res; *mux_state = 0; - res = pi3usb3x532_read(port, PI3USB3X532_REG_CONTROL, ®); + res = pi3usb3x532_read(me, PI3USB3X532_REG_CONTROL, ®); if (res) return res; |