summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelmo_lan <elmo_lan@compal.corp-partner.google.com>2022-09-16 02:12:17 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-30 10:07:31 +0000
commitec167b97e37d26c0decf0830a9aec3789760cd55 (patch)
tree90ceac3f568b1a931ed875a7ea5edf345b27528b
parentfe0d2262c95b1ebd8ef2afca2cdad149f12754ec (diff)
downloadchrome-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.txt2
-rw-r--r--zephyr/projects/corsola/gpio_magikarp.dts13
-rw-r--r--zephyr/projects/corsola/i2c_magikarp.dts15
-rw-r--r--zephyr/projects/corsola/interrupts_magikarp.dts11
-rw-r--r--zephyr/projects/corsola/prj_magikarp.conf1
-rw-r--r--zephyr/projects/corsola/src/krabby/ppc_magikarp.c44
-rw-r--r--zephyr/projects/corsola/usbc_magikarp.dts4
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 {