diff options
Diffstat (limited to 'board/pdeval-stm32f072')
-rw-r--r-- | board/pdeval-stm32f072/PD_evaluation.md | 4 | ||||
-rw-r--r-- | board/pdeval-stm32f072/board.c | 8 | ||||
-rw-r--r-- | board/pdeval-stm32f072/board.h | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/board/pdeval-stm32f072/PD_evaluation.md b/board/pdeval-stm32f072/PD_evaluation.md index b7fec09f35..395466f477 100644 --- a/board/pdeval-stm32f072/PD_evaluation.md +++ b/board/pdeval-stm32f072/PD_evaluation.md @@ -38,8 +38,8 @@ then document the new `CONFIG_USB_PD_TCPM_` variable in the [include/config.h](. In [board/pdeval-stm32f072/board.h](board.h), you can update `CONFIG_USB_PD_PORT_COUNT` to the actual number of ports on your board. You also need to create/delete the corresponding `PD_Cx` tasks in [board/pdeval-stm32f072/ec.tasklist](ec.tasklist). -By default, the firmware is using I2C1 with SCL/SDA on pins PB6 and PB7, running with a 100kHz clock. -To change the pins or speed, you need to edit `i2c_ports` in [board/pdeval-stm32f072/board.c](board.c), update `I2C_PORT_TCPC` in [board/pdeval-stm32f072/board.h](board.h) with the right controller number, and change the pin mux in [board/pdeval-stm32f072/gpio.inc](gpio.inc). +By default, the firmware is using I2C1 with SCL/SDA on pins PB6 and PB7, running with a 100kHz clock, and tries to talk to TCPCs at i2c slave addresses 0x9c and 0x9e. +To change the pins or speed, you need to edit `i2c_ports` in [board/pdeval-stm32f072/board.c](board.c), update `I2C_PORT_TCPC` in [board/pdeval-stm32f072/board.h](board.h) with the right controller number, and change the pin mux in [board/pdeval-stm32f072/gpio.inc](gpio.inc). To change TCPC i2c slave addresses, update `TCPC1_I2C_ADDR` and `TCPC2_I2C_ADDR` in [board/pdeval-stm32f072/board.h](board.h). The I2C bus needs pull-up resistors on SCL/SDA. If your setup doesn't have external pull-ups on those lines, you can activate the chip internal pull-ups (but they are a bit weak for I2C) by editing [board/pdeval-stm32f072/gpio.inc](gpio.inc) and updating the alternate mode configuration flags with `GPIO_PULL_UP` e.g. : `ALTERNATE(PIN_MASK(B, 0x00c0), 1, MODULE_I2C, GPIO_PULL_UP) /* I2C MASTER:PB6/7 */` diff --git a/board/pdeval-stm32f072/board.c b/board/pdeval-stm32f072/board.c index 3daedb5ae1..6fd472eee5 100644 --- a/board/pdeval-stm32f072/board.c +++ b/board/pdeval-stm32f072/board.c @@ -14,6 +14,7 @@ #include "task.h" #include "usb_descriptor.h" #include "usb_pd.h" +#include "usb_pd_tcpm.h" #include "util.h" void button_event(enum gpio_signal signal); @@ -53,3 +54,10 @@ const struct i2c_port_t i2c_ports[] = { {"tcpc", I2C_PORT_TCPC, 100 /* kHz */, GPIO_I2C0_SCL, GPIO_I2C0_SDA} }; const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports); + +const struct tcpc_config_t tcpc_config[CONFIG_USB_PD_PORT_COUNT] = { + {I2C_PORT_TCPC, TCPC1_I2C_ADDR}, +#if CONFIG_USB_PD_PORT_COUNT >= 2 + {I2C_PORT_TCPC, TCPC2_I2C_ADDR}, +#endif +}; diff --git a/board/pdeval-stm32f072/board.h b/board/pdeval-stm32f072/board.h index 8358420b93..2d2b4edc29 100644 --- a/board/pdeval-stm32f072/board.h +++ b/board/pdeval-stm32f072/board.h @@ -46,6 +46,10 @@ #define I2C_PORT_TCPC 0 #define I2C_PORT_PD_MCU 0 +/* TCPC I2C slave addresses */ +#define TCPC1_I2C_ADDR 0x9c +#define TCPC2_I2C_ADDR 0x9e + /* Timer selection */ /* USB Configuration */ |