From c326589f9ba1f0b8a3a58020a4421c4ea8e66b6d Mon Sep 17 00:00:00 2001 From: Denis Brockus Date: Tue, 27 Apr 2021 14:11:07 -0600 Subject: zephyr: asurada: Enable I2C Hold off on merging this until https://chromium-review.googlesource.com/#/q/2859183 and https://chromium-review.googlesource.com/#/q/2857993 or their equivalent have been landed by ITE BUG=b:180980668,b:186673243 BRANCH=none TEST=i2c shell "i2c scan I2C_0" Signed-off-by: Denis Brockus Change-Id: I6c8bbe9e6aef1ab24fc25797e379b0e5cf8a070f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2855217 Tested-by: Denis Brockus Auto-Submit: Denis Brockus Commit-Queue: Denis Brockus Reviewed-by: Yuval Peress --- zephyr/Kconfig | 1 + zephyr/dts/bindings/gpio/gpio-enum-name.yaml | 4 +- .../asurada/boards/riscv/asurada/asurada.dts | 101 +++++++++++++++++++++ zephyr/projects/asurada/hayato/gpio.dts | 28 +++--- zephyr/projects/asurada/hayato/prj.conf | 5 +- 5 files changed, 122 insertions(+), 17 deletions(-) diff --git a/zephyr/Kconfig b/zephyr/Kconfig index c52a72de9d..31df8475e8 100644 --- a/zephyr/Kconfig +++ b/zephyr/Kconfig @@ -346,6 +346,7 @@ config PLATFORM_EC_I2C bool "I2C shim" default n if ARCH_POSIX default y + imply I2C help Enable compilation of the EC i2c module. Once enabled, it will be possible to make calls using the old platform/ec i2c APIs defined diff --git a/zephyr/dts/bindings/gpio/gpio-enum-name.yaml b/zephyr/dts/bindings/gpio/gpio-enum-name.yaml index 8da4c82b47..6efbb5d6dd 100644 --- a/zephyr/dts/bindings/gpio/gpio-enum-name.yaml +++ b/zephyr/dts/bindings/gpio/gpio-enum-name.yaml @@ -77,14 +77,14 @@ properties: - GPIO_ENABLE_BACKLIGHT - GPIO_ENTERING_RW - GPIO_HIBERNATE_L - - GPIO_I2C_A_SCL - - GPIO_I2C_A_SDA - GPIO_I2C_B_SCL - GPIO_I2C_B_SDA - GPIO_I2C_C_SCL - GPIO_I2C_C_SDA - GPIO_I2C_E_SCL - GPIO_I2C_E_SDA + - GPIO_I2C_F_SCL + - GPIO_I2C_F_SDA - GPIO_KBD_KSO2 - GPIO_LID_ACCEL_INT_L - GPIO_LID_OPEN diff --git a/zephyr/projects/asurada/boards/riscv/asurada/asurada.dts b/zephyr/projects/asurada/boards/riscv/asurada/asurada.dts index 58c3cdcf40..7193272f3d 100644 --- a/zephyr/projects/asurada/boards/riscv/asurada/asurada.dts +++ b/zephyr/projects/asurada/boards/riscv/asurada/asurada.dts @@ -21,6 +21,83 @@ named-i2c-ports { compatible = "named-i2c-ports"; + + power { + i2c-port = <&i2c0>; + enum-name = "I2C_PORT_POWER"; + label = "POWER"; + config { + frequency = <100>; + scl { + enum-name = "GPIO_I2C_B_SCL"; + }; + sda { + enum-name = "GPIO_I2C_B_SDA"; + }; + }; + }; + battery { + i2c-port = <&i2c0>; + enum-name = "I2C_PORT_BATTERY"; + label = "BATTERY"; + }; + eeprom { + i2c-port = <&i2c0>; + enum-name = "I2C_PORT_EEPROM"; + label = "EEPROM"; + }; + charger { + i2c-port = <&i2c0>; + enum-name = "I2C_PORT_CHARGER"; + label = "CHARGER"; + }; + i2c_sensor: sensor { + i2c-port = <&i2c1>; + enum-name = "I2C_PORT_SENSOR"; + label = "SENSOR"; + config { + frequency = <400>; + scl { + enum-name = "GPIO_I2C_C_SCL"; + }; + sda { + enum-name = "GPIO_I2C_C_SDA"; + }; + }; + }; + i2c-accel { + i2c-port = <&i2c1>; + enum-name = "I2C_PORT_ACCEL"; + label = "ACCEL"; + }; + usb-c0 { + i2c-port = <&i2c2>; + enum-name = "I2C_PORT_USB_C0"; + label = "USB_C0"; + config { + frequency = <400>; + scl { + enum-name = "GPIO_I2C_F_SCL"; + }; + sda { + enum-name = "GPIO_I2C_F_SDA"; + }; + }; + }; + usb-c1 { + i2c-port = <&i2c4>; + enum-name = "I2C_PORT_USB_C1"; + label = "USB_C1"; + config { + frequency = <400>; + scl { + enum-name = "GPIO_I2C_E_SCL"; + }; + sda { + enum-name = "GPIO_I2C_E_SDA"; + }; + }; + }; }; }; @@ -29,3 +106,27 @@ current-speed = <115200>; clock-frequency = <1804800>; }; + +&i2c0 { + /* EC_I2C_PWR_CBI */ + status = "okay"; + clock-frequency = ; +}; + +&i2c1 { + /* EC_I2C_SENSOR */ + status = "okay"; + clock-frequency = ; +}; + +&i2c2 { + /* EC_I2C_USB_C0 */ + status = "okay"; + clock-frequency = ; +}; + +&i2c4{ + /* EC_I2C_USB_C1 */ + status = "okay"; + clock-frequency = ; +}; diff --git a/zephyr/projects/asurada/hayato/gpio.dts b/zephyr/projects/asurada/hayato/gpio.dts index c2d891c0b4..8322058127 100644 --- a/zephyr/projects/asurada/hayato/gpio.dts +++ b/zephyr/projects/asurada/hayato/gpio.dts @@ -197,33 +197,23 @@ enum-name = "GPIO_EN_5V_USM"; label = "EN_5V_USM"; }; - i2c_a_scl { - gpios = <&gpiob 3 GPIO_INPUT>; - enum-name = "GPIO_I2C_A_SCL"; - label = "I2C_A_SCL"; - }; - i2c_a_sda { - gpios = <&gpiob 4 GPIO_INPUT>; - enum-name = "GPIO_I2C_A_SDA"; - label = "I2C_A_SDA"; - }; i2c_b_scl { - gpios = <&gpioc 1 GPIO_INPUT>; + gpios = <&gpiob 3 GPIO_INPUT>; enum-name = "GPIO_I2C_B_SCL"; label = "I2C_B_SCL"; }; i2c_b_sda { - gpios = <&gpioc 2 GPIO_INPUT>; + gpios = <&gpiob 4 GPIO_INPUT>; enum-name = "GPIO_I2C_B_SDA"; label = "I2C_B_SDA"; }; i2c_c_scl { - gpios = <&gpiof 6 GPIO_INPUT>; + gpios = <&gpioc 1 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>; enum-name = "GPIO_I2C_C_SCL"; label = "I2C_C_SCL"; }; i2c_c_sda { - gpios = <&gpiof 7 GPIO_INPUT>; + gpios = <&gpioc 2 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>; enum-name = "GPIO_I2C_C_SDA"; label = "I2C_C_SDA"; }; @@ -237,6 +227,16 @@ enum-name = "GPIO_I2C_E_SDA"; label = "I2C_E_SDA"; }; + i2c_f_scl { + gpios = <&gpiof 6 GPIO_INPUT>; + enum-name = "GPIO_I2C_F_SCL"; + label = "I2C_F_SCL"; + }; + i2c_f_sda { + gpios = <&gpiof 7 GPIO_INPUT>; + enum-name = "GPIO_I2C_F_SDA"; + label = "I2C_F_SDA"; + }; ec_x_gpio1 { gpios = <&gpioh 4 GPIO_OUT_LOW>; enum-name = "GPIO_EC_X_GPIO1"; diff --git a/zephyr/projects/asurada/hayato/prj.conf b/zephyr/projects/asurada/hayato/prj.conf index fe04424690..e30ceeecee 100644 --- a/zephyr/projects/asurada/hayato/prj.conf +++ b/zephyr/projects/asurada/hayato/prj.conf @@ -10,6 +10,10 @@ CONFIG_SHIMMED_TASKS=y # Flash CONFIG_PLATFORM_EC_FLASH_CROS=y +# I2C +CONFIG_I2C_ITE_IT8XXX2=y +CONFIG_PLATFORM_EC_I2C=y + # TODO(b/180980668): bring these features up CONFIG_LTO=n CONFIG_PLATFORM_EC_ADC=n @@ -17,7 +21,6 @@ CONFIG_PLATFORM_EC_BACKLIGHT_LID=n CONFIG_PLATFORM_EC_BOARD_VERSION=n CONFIG_PLATFORM_EC_CONSOLE_CMD_SYSINFO=n CONFIG_PLATFORM_EC_HOSTCMD=y -CONFIG_PLATFORM_EC_I2C=n CONFIG_PLATFORM_EC_KEYBOARD=n CONFIG_PLATFORM_EC_LID_SWITCH=n CONFIG_PLATFORM_EC_SWITCH=n -- cgit v1.2.1