diff options
author | elmo_lan <elmo_lan@compal.corp-partner.google.com> | 2022-09-16 02:12:17 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-30 10:07:31 +0000 |
commit | ec167b97e37d26c0decf0830a9aec3789760cd55 (patch) | |
tree | 90ceac3f568b1a931ed875a7ea5edf345b27528b | |
parent | fe0d2262c95b1ebd8ef2afca2cdad149f12754ec (diff) | |
download | chrome-ec-ec167b97e37d26c0decf0830a9aec3789760cd55.tar.gz |
magikarp: Modify typec port 0 config
Modify port 0 ppc config to syv682 and bc12 config to pi3usb9201.
LOW_COVERAGE_REASON=krabby board test under development(b/243841599)
BUG=b:243631595
TEST=zmake build magikarp --clobber
BRANCH=None
Signed-off-by: elmo_lan <elmo_lan@compal.corp-partner.google.com>
Change-Id: I2a6f99f7456af93d5cbec0c854235bf061f0ddc3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3899952
Reviewed-by: SamSP Liu <samsp_liu2@compal.corp-partner.google.com>
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r-- | zephyr/projects/corsola/CMakeLists.txt | 2 | ||||
-rw-r--r-- | zephyr/projects/corsola/gpio_magikarp.dts | 13 | ||||
-rw-r--r-- | zephyr/projects/corsola/i2c_magikarp.dts | 15 | ||||
-rw-r--r-- | zephyr/projects/corsola/interrupts_magikarp.dts | 11 | ||||
-rw-r--r-- | zephyr/projects/corsola/prj_magikarp.conf | 1 | ||||
-rw-r--r-- | zephyr/projects/corsola/src/krabby/ppc_magikarp.c | 44 | ||||
-rw-r--r-- | zephyr/projects/corsola/usbc_magikarp.dts | 4 |
7 files changed, 80 insertions, 10 deletions
diff --git a/zephyr/projects/corsola/CMakeLists.txt b/zephyr/projects/corsola/CMakeLists.txt index 717f1be22c..fa899a0e77 100644 --- a/zephyr/projects/corsola/CMakeLists.txt +++ b/zephyr/projects/corsola/CMakeLists.txt @@ -69,7 +69,7 @@ elseif(DEFINED CONFIG_BOARD_MAGIKARP) project(magikarp) zephyr_library_sources("src/krabby/hooks.c" "src/krabby/sensor_magikarp.c" - "src/krabby/ppc_krabby.c" + "src/krabby/ppc_magikarp.c" "src/krabby/keyboard_magikarp.c") zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_I2C "src/krabby/i2c.c") zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_USBC diff --git a/zephyr/projects/corsola/gpio_magikarp.dts b/zephyr/projects/corsola/gpio_magikarp.dts index b97358b5fd..cb9f6f1a0a 100644 --- a/zephyr/projects/corsola/gpio_magikarp.dts +++ b/zephyr/projects/corsola/gpio_magikarp.dts @@ -76,8 +76,13 @@ gpio_x_ec_gpio2: x_ec_gpio2 { gpios = <&gpiob 2 GPIO_INPUT>; }; - usb_c0_ppc_bc12_int_odl: usb_c0_ppc_bc12_int_odl { + usb_c0_ppc_int_odl: usb_c0_ppc_int_odl { gpios = <&gpiod 1 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_PPC_INT_ODL"; + }; + usb_c0_bc12_int_odl: usb_c0_bc12_int_odl { + gpios = <&gpiof 1 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_BC12_INT_ODL"; }; usb_c1_bc12_charger_int_odl: usb_c1_bc12_charger_int_odl { gpios = <&gpioj 4 GPIO_INPUT>; @@ -122,8 +127,9 @@ en_pp5000_usb_a0_vbus: en_pp5000_usb_a0_vbus { gpios = <&gpiob 7 GPIO_OUTPUT_LOW>; }; - usb_c0_ppc_frsinfo: usb_c0_ppc_frsinfo { - gpios = <&gpiof 0 GPIO_INPUT>; + usb_c0_frs_en: usb_c0_frs_en { + gpios = <&gpiof 0 GPIO_OUTPUT_LOW>; + enum-name = "GPIO_USB_C0_FRS_EN"; }; ec_batt_pres_odl: ec_batt_pres_odl { gpios = <&gpioc 0 GPIO_INPUT>; @@ -182,7 +188,6 @@ <&gpioa 3 GPIO_INPUT_PULL_DOWN>, <&gpioa 6 GPIO_INPUT_PULL_DOWN>, <&gpioa 7 GPIO_INPUT_PULL_DOWN>, - <&gpiof 1 GPIO_INPUT_PULL_DOWN>, /* reserved for b:241345809 */ <&gpiod 7 GPIO_OUTPUT_LOW>, <&gpiog 2 GPIO_INPUT_PULL_DOWN>, diff --git a/zephyr/projects/corsola/i2c_magikarp.dts b/zephyr/projects/corsola/i2c_magikarp.dts index 2039398974..fbf5ed6337 100644 --- a/zephyr/projects/corsola/i2c_magikarp.dts +++ b/zephyr/projects/corsola/i2c_magikarp.dts @@ -13,6 +13,21 @@ }; }; +&i2c2 { + bc12_port0: pi3usb9201@5f { + compatible = "pericom,pi3usb9201"; + status = "okay"; + reg = <0x5f>; + irq = <&int_usb_c0_bc12>; + }; + ppc_port0: syv682x@40 { + compatible = "silergy,syv682x"; + status = "okay"; + reg = <0x40>; + frs_en_gpio = <&usb_c0_frs_en>; + }; +}; + &i2c4 { ps8743_mux_1: ps8743-mux-1@10 { compatible = "parade,ps8743"; diff --git a/zephyr/projects/corsola/interrupts_magikarp.dts b/zephyr/projects/corsola/interrupts_magikarp.dts index 3d02300884..4f4e0ba100 100644 --- a/zephyr/projects/corsola/interrupts_magikarp.dts +++ b/zephyr/projects/corsola/interrupts_magikarp.dts @@ -91,10 +91,15 @@ flags = <GPIO_INT_EDGE_BOTH>; handler = "x_ec_interrupt"; }; - int_usb_c0_ppc_bc12: usb_c0_ppc_bc12 { - irq-pin = <&usb_c0_ppc_bc12_int_odl>; + int_usb_c0_bc12: usb_c0_bc12 { + irq-pin = <&usb_c0_bc12_int_odl>; flags = <GPIO_INT_EDGE_FALLING>; - handler = "c0_bc12_interrupt"; + handler = "bc12_interrupt"; + }; + int_usb_c0_ppc: usb_c0_ppc { + irq-pin = <&usb_c0_ppc_int_odl>; + flags = <GPIO_INT_EDGE_FALLING>; + handler = "ppc_interrupt"; }; int_usb_c1_bc12_charger: usb_c1_bc12_charger { irq-pin = <&usb_c1_bc12_charger_int_odl>; diff --git a/zephyr/projects/corsola/prj_magikarp.conf b/zephyr/projects/corsola/prj_magikarp.conf index 72d7ea59f7..da5bf9a685 100644 --- a/zephyr/projects/corsola/prj_magikarp.conf +++ b/zephyr/projects/corsola/prj_magikarp.conf @@ -6,6 +6,7 @@ CONFIG_BOARD_MAGIKARP=y # USB-C +CONFIG_PLATFORM_EC_BC12_DETECT_PI3USB9201=y CONFIG_PLATFORM_EC_USB_MUX_TUSB546=n CONFIG_PLATFORM_EC_USB_MUX_PS8743=y diff --git a/zephyr/projects/corsola/src/krabby/ppc_magikarp.c b/zephyr/projects/corsola/src/krabby/ppc_magikarp.c new file mode 100644 index 0000000000..41cce3f73d --- /dev/null +++ b/zephyr/projects/corsola/src/krabby/ppc_magikarp.c @@ -0,0 +1,44 @@ +/* Copyright 2022 The ChromiumOS Authors + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* Tentacruel PPC/BC12 (mixed RT1739 or PI3USB9201+SYV682X) configuration */ + +#include "baseboard_usbc_config.h" +#include "console.h" +#include "cros_board_info.h" +#include "gpio/gpio_int.h" +#include "hooks.h" +#include "usbc/ppc.h" +#include "variant_db_detection.h" + +#include <zephyr/logging/log.h> + +#define CPRINTSUSB(format, args...) cprints(CC_USBCHARGE, format, ##args) +#define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ##args) +#define CPRINTF(format, args...) cprintf(CC_SYSTEM, format, ##args) + +void bc12_interrupt(enum gpio_signal signal) +{ + usb_charger_task_set_event(0, USB_CHG_EVENT_BC12); +} + +static void board_usbc_init(void) +{ + /* Enable PPC interrupts. */ + gpio_enable_dt_interrupt(GPIO_INT_FROM_NODELABEL(int_usb_c0_ppc)); + + /* Enable BC1.2 interrupts. */ + gpio_enable_dt_interrupt(GPIO_INT_FROM_NODELABEL(int_usb_c0_bc12)); +} +DECLARE_HOOK(HOOK_INIT, board_usbc_init, HOOK_PRIO_POST_DEFAULT); + +void ppc_interrupt(enum gpio_signal signal) +{ + if (signal == GPIO_SIGNAL(DT_NODELABEL(usb_c0_ppc_int_odl))) { + syv682x_interrupt(0); + } else if (signal == GPIO_SIGNAL(DT_ALIAS(gpio_usb_c1_ppc_int_odl))) { + syv682x_interrupt(1); + } +} diff --git a/zephyr/projects/corsola/usbc_magikarp.dts b/zephyr/projects/corsola/usbc_magikarp.dts index 0e0473cd86..c94db15b3a 100644 --- a/zephyr/projects/corsola/usbc_magikarp.dts +++ b/zephyr/projects/corsola/usbc_magikarp.dts @@ -11,8 +11,8 @@ port0@0 { compatible = "named-usbc-port"; reg = <0>; - bc12 = <&bc12_ppc_port0>; - ppc = <&bc12_ppc_port0>; + bc12 = <&bc12_port0>; + ppc = <&ppc_port0>; tcpc = <&usbpd0>; chg = <&charger>; usb-mux-chain-0 { |