diff options
Diffstat (limited to 'driver/retimer/tdp142.c')
-rw-r--r-- | driver/retimer/tdp142.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/driver/retimer/tdp142.c b/driver/retimer/tdp142.c new file mode 100644 index 0000000000..e1632150d0 --- /dev/null +++ b/driver/retimer/tdp142.c @@ -0,0 +1,42 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Texas Instruments TDP142 DisplayPort Linear Redriver + */ + +#include "common.h" +#include "ec_commands.h" +#include "i2c.h" +#include "tdp142.h" + +static enum ec_error_list tdp142_write(int offset, int data) +{ + return i2c_write8(TDP142_I2C_PORT, + TDP142_I2C_ADDR, + offset, data); + +} + +static enum ec_error_list tdp142_read(int offset, int *regval) +{ + return i2c_read8(TDP142_I2C_PORT, + TDP142_I2C_ADDR, + offset, regval); + +} + +enum ec_error_list tdp142_set_ctlsel(enum tdp142_ctlsel selection) +{ + int regval; + enum ec_error_list rv; + + rv = tdp142_read(TDP142_REG_GENERAL, ®val); + if (rv) + return rv; + + regval &= ~TDP142_GENERAL_CTLSEL; + regval |= selection; + + return tdp142_write(TDP142_REG_GENERAL, regval); +} |