diff options
author | Dino Li <Dino.Li@ite.com.tw> | 2021-07-07 15:55:04 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-22 19:54:04 +0000 |
commit | 154f661f50d08adc3a546360be020a7e0321fe2e (patch) | |
tree | 0a85a77f8aa5215595a91cf9c5d3c39972387c27 /zephyr/boards | |
parent | 506a1ee872aad4ef21d7c90717f1917963dec6b1 (diff) | |
download | chrome-ec-154f661f50d08adc3a546360be020a7e0321fe2e.tar.gz |
zephyr: i2c: protect physical port
If i2c devices are connected to the same port, they should
use the same mutex_lock() index. So the new transaction won't
break the ongoing transaction.
BRANCH=none
BUG=b:189855648
TEST=Enable CONFIG_SMBUS_PEC and voltage regulator function on asurada.
No i2c transaction is broken.
Change-Id: Ib848e3c2e60b99ce66ad5fd2fc7095f90820a15d
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3010920
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'zephyr/boards')
-rw-r--r-- | zephyr/boards/riscv/asurada/asurada.dts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/zephyr/boards/riscv/asurada/asurada.dts b/zephyr/boards/riscv/asurada/asurada.dts index f5c4cc3cfe..e759080996 100644 --- a/zephyr/boards/riscv/asurada/asurada.dts +++ b/zephyr/boards/riscv/asurada/asurada.dts @@ -72,62 +72,74 @@ i2c-port = <&i2c0>; enum-name = "I2C_PORT_POWER"; label = "POWER"; + physical-port = <0>; }; battery { i2c-port = <&i2c0>; remote-port = <0>; enum-name = "I2C_PORT_BATTERY"; label = "BATTERY"; + physical-port = <0>; }; eeprom { i2c-port = <&i2c0>; enum-name = "I2C_PORT_EEPROM"; label = "EEPROM"; + physical-port = <0>; }; charger { i2c-port = <&i2c0>; enum-name = "I2C_PORT_CHARGER"; label = "CHARGER"; + physical-port = <0>; }; i2c_sensor: sensor { i2c-port = <&i2c1>; enum-name = "I2C_PORT_SENSOR"; label = "SENSOR"; + physical-port = <1>; }; i2c-accel { i2c-port = <&i2c1>; enum-name = "I2C_PORT_ACCEL"; label = "ACCEL"; + physical-port = <1>; }; ppc0 { i2c-port = <&i2c2>; enum-name = "I2C_PORT_PPC0"; label = "PPC0"; + physical-port = <2>; }; ppc1 { i2c-port = <&i2c4>; enum-name = "I2C_PORT_PPC1"; label = "PPC1"; + physical-port = <4>; }; usb-c0 { i2c-port = <&i2c2>; enum-name = "I2C_PORT_USB_C0"; label = "USB_C0"; + physical-port = <2>; }; usb-c1 { i2c-port = <&i2c4>; enum-name = "I2C_PORT_USB_C1"; label = "USB_C1"; + physical-port = <4>; }; usb-mux0 { i2c-port = <&i2c2>; enum-name = "I2C_PORT_USB_MUX0"; label = "USB_MUX0"; + physical-port = <2>; }; usb-mux1 { i2c-port = <&i2c4>; enum-name = "I2C_PORT_USB_MUX1"; label = "USB_MUX1"; + physical-port = <4>; }; }; |