diff options
Diffstat (limited to 'driver/tcpm')
-rw-r--r-- | driver/tcpm/anx7447.c | 42 | ||||
-rw-r--r-- | driver/tcpm/anx7447.h | 20 | ||||
-rw-r--r-- | driver/tcpm/anx74xx.c | 4 | ||||
-rw-r--r-- | driver/tcpm/anx74xx.h | 8 | ||||
-rw-r--r-- | driver/tcpm/anx7688.c | 6 | ||||
-rw-r--r-- | driver/tcpm/fusb302.h | 8 | ||||
-rw-r--r-- | driver/tcpm/mt6370.c | 4 | ||||
-rw-r--r-- | driver/tcpm/mt6370.h | 2 | ||||
-rw-r--r-- | driver/tcpm/nct38xx.h | 18 | ||||
-rw-r--r-- | driver/tcpm/ps8xxx.c | 4 | ||||
-rw-r--r-- | driver/tcpm/ps8xxx.h | 8 | ||||
-rw-r--r-- | driver/tcpm/tcpci.c | 36 | ||||
-rw-r--r-- | driver/tcpm/tcpm.h | 46 | ||||
-rw-r--r-- | driver/tcpm/tusb422.h | 2 |
14 files changed, 112 insertions, 96 deletions
diff --git a/driver/tcpm/anx7447.c b/driver/tcpm/anx7447.c index 0a3c98c6ac..7883f72717 100644 --- a/driver/tcpm/anx7447.c +++ b/driver/tcpm/anx7447.c @@ -5,6 +5,7 @@ /* ANX7447 port manager */ +#include "common.h" #include "anx7447.h" #include "console.h" #include "hooks.h" @@ -40,7 +41,7 @@ (((anx7447_get_vbus_voltage(port))) > vsafe0v_max) struct anx_state { - int i2c_slave_addr; + uint16_t i2c_slave_addr__7bf; }; struct anx_usb_mux { @@ -63,18 +64,18 @@ static struct anx_usb_mux mux[CONFIG_USB_PD_PORT_COUNT]; * anx7447_reg_write() and anx7447_reg_read() are implemented here to access * ANX7447 SPI slave address. */ -const struct anx7447_i2c_addr anx7447_i2c_addrs[] = { - {AN7447_TCPC0_I2C_ADDR, AN7447_SPI0_I2C_ADDR}, - {AN7447_TCPC1_I2C_ADDR, AN7447_SPI1_I2C_ADDR}, - {AN7447_TCPC2_I2C_ADDR, AN7447_SPI2_I2C_ADDR}, - {AN7447_TCPC3_I2C_ADDR, AN7447_SPI3_I2C_ADDR} +const struct anx7447_i2c_addr anx7447_i2c_addrs__7bf[] = { + {AN7447_TCPC0_I2C_ADDR__7bf, AN7447_SPI0_I2C_ADDR__7bf}, + {AN7447_TCPC1_I2C_ADDR__7bf, AN7447_SPI1_I2C_ADDR__7bf}, + {AN7447_TCPC2_I2C_ADDR__7bf, AN7447_SPI2_I2C_ADDR__7bf}, + {AN7447_TCPC3_I2C_ADDR__7bf, AN7447_SPI3_I2C_ADDR__7bf} }; static inline int anx7447_reg_write(int port, int reg, int val) { - int rv = i2c_write8(tcpc_config[port].i2c_info.port, - anx[port].i2c_slave_addr, - reg, val); + int rv = i2c_write8__7bf(tcpc_config[port].i2c_info.port, + anx[port].i2c_slave_addr__7bf, + reg, val); #ifdef CONFIG_USB_PD_TCPC_LOW_POWER pd_device_accessed(port); #endif @@ -83,9 +84,9 @@ static inline int anx7447_reg_write(int port, int reg, int val) static inline int anx7447_reg_read(int port, int reg, int *val) { - int rv = i2c_read8(tcpc_config[port].i2c_info.port, - anx[port].i2c_slave_addr, - reg, val); + int rv = i2c_read8__7bf(tcpc_config[port].i2c_info.port, + anx[port].i2c_slave_addr__7bf, + reg, val); #ifdef CONFIG_USB_PD_TCPC_LOW_POWER pd_device_accessed(port); #endif @@ -290,17 +291,20 @@ static int anx7447_init(int port) * find corresponding anx7447 SPI slave address according to * specified TCPC slave address */ - for (i = 0; i < ARRAY_SIZE(anx7447_i2c_addrs); i++) { - if (tcpc_config[port].i2c_info.addr == - anx7447_i2c_addrs[i].tcpc_slave_addr) { - anx[port].i2c_slave_addr = - anx7447_i2c_addrs[i].spi_slave_addr; + for (i = 0; i < ARRAY_SIZE(anx7447_i2c_addrs__7bf); i++) { + if (I2C_GET_ADDR__7b( + tcpc_config[port].i2c_info.addr__7bf) == + I2C_GET_ADDR__7b( + anx7447_i2c_addrs__7bf[i].tcpc_slave_addr__7bf)) { + anx[port].i2c_slave_addr__7bf = + anx7447_i2c_addrs__7bf[i].spi_slave_addr__7bf; break; } } - if (!anx[port].i2c_slave_addr) { + if (!I2C_GET_ADDR__7b(anx[port].i2c_slave_addr__7bf)) { ccprintf("TCPC I2C slave addr 0x%x is invalid for ANX7447\n", - tcpc_config[port].i2c_info.addr); + I2C_GET_ADDR__7b(tcpc_config[port] + .i2c_info.addr__7bf)); return EC_ERROR_UNKNOWN; } diff --git a/driver/tcpm/anx7447.h b/driver/tcpm/anx7447.h index 093d74238a..32958f0007 100644 --- a/driver/tcpm/anx7447.h +++ b/driver/tcpm/anx7447.h @@ -91,19 +91,19 @@ /* End of defines used for CONFIG_USB_PD_TCPM_ANX7447_OCM_ERASE_COMMAND */ struct anx7447_i2c_addr { - int tcpc_slave_addr; - int spi_slave_addr; + uint16_t tcpc_slave_addr__7bf; + uint16_t spi_slave_addr__7bf; }; -#define AN7447_TCPC0_I2C_ADDR 0x58 -#define AN7447_TCPC1_I2C_ADDR 0x56 -#define AN7447_TCPC2_I2C_ADDR 0x54 -#define AN7447_TCPC3_I2C_ADDR 0x52 +#define AN7447_TCPC0_I2C_ADDR__7bf (0x2C) +#define AN7447_TCPC1_I2C_ADDR__7bf (0x2B) +#define AN7447_TCPC2_I2C_ADDR__7bf (0x2A) +#define AN7447_TCPC3_I2C_ADDR__7bf (0x29) -#define AN7447_SPI0_I2C_ADDR 0x7E -#define AN7447_SPI1_I2C_ADDR 0x6E -#define AN7447_SPI2_I2C_ADDR 0x64 -#define AN7447_SPI3_I2C_ADDR 0x62 +#define AN7447_SPI0_I2C_ADDR__7bf (0x3F) +#define AN7447_SPI1_I2C_ADDR__7bf (0x37) +#define AN7447_SPI2_I2C_ADDR__7bf (0x32) +#define AN7447_SPI3_I2C_ADDR__7bf (0x31) /* * Time TEST_R must be held high for a reset diff --git a/driver/tcpm/anx74xx.c b/driver/tcpm/anx74xx.c index 274e668960..8973a34213 100644 --- a/driver/tcpm/anx74xx.c +++ b/driver/tcpm/anx74xx.c @@ -1173,7 +1173,7 @@ struct i2c_stress_test_dev anx74xx_i2c_stress_test_dev = { .read_val = ANX74XX_VENDOR_ID & 0xFF, .write_reg = ANX74XX_REG_CC_SOFTWARE_CTRL, }, - .i2c_read = &tcpc_i2c_read, - .i2c_write = &tcpc_i2c_write, + .i2c_read__7bf = &tcpc_i2c_read__7bf, + .i2c_write__7bf = &tcpc_i2c_write__7bf, }; #endif /* CONFIG_CMD_I2C_STRESS_TEST_TCPC */ diff --git a/driver/tcpm/anx74xx.h b/driver/tcpm/anx74xx.h index 18708d38b4..39762129a7 100644 --- a/driver/tcpm/anx74xx.h +++ b/driver/tcpm/anx74xx.h @@ -11,10 +11,10 @@ #define __CROS_EC_USB_PD_TCPM_ANX74XX_H /* I2C interface */ -#define ANX74XX_I2C_ADDR1 0x50 -#define ANX74XX_I2C_ADDR2 0x72 -#define ANX74XX_I2C_ADDR3 0x7C -#define ANX74XX_I2C_ADDR4 0x80 +#define ANX74XX_I2C_ADDR1__7bf 0x28 +#define ANX74XX_I2C_ADDR2__7bf 0x39 +#define ANX74XX_I2C_ADDR3__7bf 0x3E +#define ANX74XX_I2C_ADDR4__7bf 0x40 #define ANX74XX_REG_IRQ_POL_LOW 0x00 #define ANX74XX_REG_IRQ_POL_HIGH 0x02 diff --git a/driver/tcpm/anx7688.c b/driver/tcpm/anx7688.c index bac65892de..4ea0602483 100644 --- a/driver/tcpm/anx7688.c +++ b/driver/tcpm/anx7688.c @@ -21,7 +21,7 @@ #define ANX7688_REG_HPD_IRQ BIT(1) #define ANX7688_REG_HPD_ENABLE BIT(2) -#define ANX7688_USBC_ADDR 0x50 +#define ANX7688_USBC_ADDR__7bf 0x28 #define ANX7688_REG_RAMCTRL 0xe7 #define ANX7688_REG_RAMCTRL_BOOT_DONE BIT(6) @@ -39,7 +39,7 @@ static int anx7688_init(int port) * 100ms to follow cts. */ while (1) { - rv = i2c_read8(I2C_PORT_TCPC, ANX7688_USBC_ADDR, + rv = i2c_read8__7bf(I2C_PORT_TCPC, ANX7688_USBC_ADDR__7bf, ANX7688_REG_RAMCTRL, &mask); if (rv == EC_SUCCESS && (mask & ANX7688_REG_RAMCTRL_BOOT_DONE)) @@ -174,7 +174,7 @@ static int anx7688_tcpm_get_vbus_level(int port) * Therefore, we use a proprietary register to read the unfiltered VBus * value. See crosbug.com/p/55221 . */ - i2c_read8(I2C_PORT_TCPC, 0x50, 0x40, ®); + i2c_read8__7bf(I2C_PORT_TCPC, 0x28, 0x40, ®); return ((reg & 0x10) ? 1 : 0); } #endif diff --git a/driver/tcpm/fusb302.h b/driver/tcpm/fusb302.h index 6236e47439..edf1feb8dd 100644 --- a/driver/tcpm/fusb302.h +++ b/driver/tcpm/fusb302.h @@ -16,13 +16,13 @@ /* I2C slave address varies by part number */ /* FUSB302BUCX / FUSB302BMPX */ -#define FUSB302_I2C_SLAVE_ADDR 0x44 +#define FUSB302_I2C_SLAVE_ADDR__7bf 0x22 /* FUSB302B01MPX */ -#define FUSB302_I2C_SLAVE_ADDR_B01 0x46 +#define FUSB302_I2C_SLAVE_ADDR_B01__7bf 0x23 /* FUSB302B10MPX */ -#define FUSB302_I2C_SLAVE_ADDR_B10 0x48 +#define FUSB302_I2C_SLAVE_ADDR_B10__7bf 0x24 /* FUSB302B11MPX */ -#define FUSB302_I2C_SLAVE_ADDR_B11 0x4A +#define FUSB302_I2C_SLAVE_ADDR_B11__7bf 0x25 /* Default retry count for transmitting */ #define PD_RETRY_COUNT 3 diff --git a/driver/tcpm/mt6370.c b/driver/tcpm/mt6370.c index dc6c86d2c4..473e2a1881 100644 --- a/driver/tcpm/mt6370.c +++ b/driver/tcpm/mt6370.c @@ -22,8 +22,8 @@ /* i2c_write function which won't wake TCPC from low power mode. */ static int mt6370_i2c_write8(int port, int reg, int val) { - return i2c_write8(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + return i2c_write8__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, reg, val); } static int mt6370_init(int port) diff --git a/driver/tcpm/mt6370.h b/driver/tcpm/mt6370.h index 1d30d27f8f..166009d9a4 100644 --- a/driver/tcpm/mt6370.h +++ b/driver/tcpm/mt6370.h @@ -48,7 +48,7 @@ #define MT6370_REG_UNLOCK_PW2 0xF0 #define MT6370_REG_UNLOCK_PW1 0xF1 -#define MT6370_TCPC_I2C_ADDR 0x9C +#define MT6370_TCPC_I2C_ADDR__7bf 0x4E /* * MT6370_REG_PHY_CTRL1 0x80 diff --git a/driver/tcpm/nct38xx.h b/driver/tcpm/nct38xx.h index 367a30d17a..1357d47bab 100644 --- a/driver/tcpm/nct38xx.h +++ b/driver/tcpm/nct38xx.h @@ -10,15 +10,15 @@ #define __CROS_EC_USB_PD_TCPM_NCT38XX_H /* I2C interface */ -#define NCT38xx_I2C_ADDR1_1 0xE0 -#define NCT38xx_I2C_ADDR1_2 0xE2 -#define NCT38xx_I2C_ADDR1_3 0xE4 -#define NCT38xx_I2C_ADDR1_4 0xE6 - -#define NCT38xx_I2C_ADDR2_1 0xE8 -#define NCT38xx_I2C_ADDR2_2 0xEA -#define NCT38xx_I2C_ADDR2_3 0xEC -#define NCT38xx_I2C_ADDR2_4 0xEE +#define NCT38xx_I2C_ADDR1_1__7bf 0x70 +#define NCT38xx_I2C_ADDR1_2__7bf 0x71 +#define NCT38xx_I2C_ADDR1_3__7bf 0x72 +#define NCT38xx_I2C_ADDR1_4__7bf 0x73 + +#define NCT38xx_I2C_ADDR2_1__7bf 0x74 +#define NCT38xx_I2C_ADDR2_2__7bf 0x75 +#define NCT38xx_I2C_ADDR2_3__7bf 0x76 +#define NCT38xx_I2C_ADDR2_4__7bf 0x77 #define NCT38XX_REG_VENDOR_ID_L 0x00 #define NCT38XX_REG_VENDOR_ID_H 0x01 diff --git a/driver/tcpm/ps8xxx.c b/driver/tcpm/ps8xxx.c index 1ffb18a2c3..6e49e8429d 100644 --- a/driver/tcpm/ps8xxx.c +++ b/driver/tcpm/ps8xxx.c @@ -202,8 +202,8 @@ struct i2c_stress_test_dev ps8xxx_i2c_stress_test_dev = { .read_val = PS8XXX_VENDOR_ID & 0xFF, .write_reg = MUX_IN_HPD_ASSERTION_REG, }, - .i2c_read = &tcpc_i2c_read, - .i2c_write = &tcpc_i2c_write, + .i2c_read__7bf = &tcpc_i2c_read__7bf, + .i2c_write__7bf = &tcpc_i2c_write__7bf, }; #endif /* CONFIG_CMD_I2C_STRESS_TEST_TCPC */ diff --git a/driver/tcpm/ps8xxx.h b/driver/tcpm/ps8xxx.h index f69bb3e11a..143ab67649 100644 --- a/driver/tcpm/ps8xxx.h +++ b/driver/tcpm/ps8xxx.h @@ -9,10 +9,10 @@ #define __CROS_EC_USB_PD_TCPM_PS8XXX_H /* I2C interface */ -#define PS8751_I2C_ADDR1 0x16 -#define PS8751_I2C_ADDR2 0x36 -#define PS8751_I2C_ADDR3 0x56 -#define PS8751_I2C_ADDR4 0x96 +#define PS8751_I2C_ADDR1__7bf (0x0B) +#define PS8751_I2C_ADDR2__7bf (0x1B) +#define PS8751_I2C_ADDR3__7bf (0x2B) +#define PS8751_I2C_ADDR4__7bf (0x4B) /* Minimum Delay for reset assertion */ #define PS8XXX_RESET_DELAY_MS 1 diff --git a/driver/tcpm/tcpci.c b/driver/tcpm/tcpci.c index 2e6f2a6fca..6765ce7bdc 100644 --- a/driver/tcpm/tcpci.c +++ b/driver/tcpm/tcpci.c @@ -40,8 +40,9 @@ int tcpc_write(int port, int reg, int val) pd_wait_exit_low_power(port); - rv = i2c_write8(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + rv = i2c_write8__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); pd_device_accessed(port); return rv; @@ -53,8 +54,9 @@ int tcpc_write16(int port, int reg, int val) pd_wait_exit_low_power(port); - rv = i2c_write16(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + rv = i2c_write16__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); pd_device_accessed(port); return rv; @@ -66,8 +68,9 @@ int tcpc_read(int port, int reg, int *val) pd_wait_exit_low_power(port); - rv = i2c_read8(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + rv = i2c_read8__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); pd_device_accessed(port); return rv; @@ -79,8 +82,9 @@ int tcpc_read16(int port, int reg, int *val) pd_wait_exit_low_power(port); - rv = i2c_read16(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + rv = i2c_read16__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); pd_device_accessed(port); return rv; @@ -92,8 +96,9 @@ int tcpc_read_block(int port, int reg, uint8_t *in, int size) pd_wait_exit_low_power(port); - rv = i2c_read_block(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, in, size); + rv = i2c_read_block__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, in, size); pd_device_accessed(port); return rv; @@ -105,8 +110,9 @@ int tcpc_write_block(int port, int reg, const uint8_t *out, int size) pd_wait_exit_low_power(port); - rv = i2c_write_block(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, out, size); + rv = i2c_write_block__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, out, size); pd_device_accessed(port); return rv; @@ -131,9 +137,9 @@ int tcpc_xfer_unlocked(int port, const uint8_t *out, int out_size, pd_wait_exit_low_power(port); - rv = i2c_xfer_unlocked(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, out, - out_size, in, in_size, flags); + rv = i2c_xfer_unlocked__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + out, out_size, in, in_size, flags); pd_device_accessed(port); return rv; diff --git a/driver/tcpm/tcpm.h b/driver/tcpm/tcpm.h index e5fec627c5..fb67eb315b 100644 --- a/driver/tcpm/tcpm.h +++ b/driver/tcpm/tcpm.h @@ -27,55 +27,61 @@ #ifndef CONFIG_USB_PD_TCPC_LOW_POWER static inline int tcpc_write(int port, int reg, int val) { - return i2c_write8(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + return i2c_write8__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); } static inline int tcpc_write16(int port, int reg, int val) { - return i2c_write16(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + return i2c_write16__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); } static inline int tcpc_read(int port, int reg, int *val) { - return i2c_read8(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + return i2c_read8__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); } static inline int tcpc_read16(int port, int reg, int *val) { - return i2c_read16(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, val); + return i2c_read16__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, val); } static inline int tcpc_xfer(int port, const uint8_t *out, int out_size, uint8_t *in, int in_size) { - return i2c_xfer(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, out, out_size, in, - in_size); + return i2c_xfer__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + out, out_size, in, in_size); } static inline int tcpc_xfer_unlocked(int port, const uint8_t *out, int out_size, uint8_t *in, int in_size, int flags) { - return i2c_xfer_unlocked(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, out, out_size, in, - in_size, flags); + return i2c_xfer_unlocked__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + out, out_size, in, in_size, flags); } static inline int tcpc_read_block(int port, int reg, uint8_t *in, int size) { - return i2c_read_block(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, in, size); + return i2c_read_block__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, in, size); } static inline int tcpc_write_block(int port, int reg, const uint8_t *out, int size) { - return i2c_write_block(tcpc_config[port].i2c_info.port, - tcpc_config[port].i2c_info.addr, reg, out, size); + return i2c_write_block__7bf(tcpc_config[port].i2c_info.port, + tcpc_config[port].i2c_info.addr__7bf, + reg, out, size); } #else /* !CONFIG_USB_PD_TCPC_LOW_POWER */ @@ -219,13 +225,13 @@ static inline int tcpm_enter_low_power_mode(int port) #endif #ifdef CONFIG_CMD_I2C_STRESS_TEST_TCPC -static inline int tcpc_i2c_read(const int port, const int addr, +static inline int tcpc_i2c_read__7bf(const int port, const uint16_t addr__7bf, const int reg, int *data) { return tcpc_read(port, reg, data); } -static inline int tcpc_i2c_write(const int port, const int addr, +static inline int tcpc_i2c_write__7bf(const int port, const uint16_t addr__7bf, const int reg, int data) { return tcpc_write(port, reg, data); diff --git a/driver/tcpm/tusb422.h b/driver/tcpm/tusb422.h index 2a01eb4725..524886801c 100644 --- a/driver/tcpm/tusb422.h +++ b/driver/tcpm/tusb422.h @@ -9,7 +9,7 @@ #define __CROS_EC_USB_PD_TCPM_TUSB422_H /* I2C interface */ -#define TUSB422_I2C_ADDR 0x40 +#define TUSB422_I2C_ADDR__7bf 0x20 extern const struct tcpm_drv tusb422_tcpm_drv; |