summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Yilun Lin <yllin@chromium.org>2022-09-26 17:04:06 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-29 06:17:00 +0000
commit17e0734e88c26d63658952c8cad73ef847a7b277 (patch)
tree47e541971002dad94521d8340c44b5ef6850701b
parent9d15d2f9d85634c8b4ad023352b4615ef53caa85 (diff)
downloadchrome-ec-17e0734e88c26d63658952c8cad73ef847a7b277.tar.gz
corsola: mux DP AUX when CCD mode enabled
Mux the DP AUX path away from CCD port to prevent the AUX channel interferes the CCD SBU pins communication. Also, defaults DP_AUX_PATH_SEL to 1 to align the default states across corsola projects and for lower power consumption. BUG=b:248171274 TEST=set ccd_mode_odl 0, and ensure the DP_AUX_PATH=1 BRANCH=none Change-Id: I3dd1a50dca6381e80564d49a6baeb3cef25c7924 Signed-off-by: Eric Yilun Lin <yllin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3917683 Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Eric Yilun Lin <yllin@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Auto-Submit: Eric Yilun Lin <yllin@google.com> Reviewed-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r--zephyr/projects/corsola/CMakeLists.txt1
-rw-r--r--zephyr/projects/corsola/gpio_kingler.dts4
-rw-r--r--zephyr/projects/corsola/gpio_krabby.dts6
-rw-r--r--zephyr/projects/corsola/gpio_magikarp.dts2
-rw-r--r--zephyr/projects/corsola/gpio_steelix.dts4
-rw-r--r--zephyr/projects/corsola/gpio_tentacruel.dts6
-rw-r--r--zephyr/projects/corsola/include/baseboard_usbc_config.h1
-rw-r--r--zephyr/projects/corsola/interrupts_kingler.dts5
-rw-r--r--zephyr/projects/corsola/interrupts_krabby.dts5
-rw-r--r--zephyr/projects/corsola/interrupts_magikarp.dts5
-rw-r--r--zephyr/projects/corsola/interrupts_tentacruel.dts5
-rw-r--r--zephyr/projects/corsola/src/board.c37
-rw-r--r--zephyr/projects/corsola/src/usbc_config.c5
-rw-r--r--zephyr/test/kingler/CMakeLists.txt2
-rw-r--r--zephyr/test/kingler/Kconfig5
-rw-r--r--zephyr/test/kingler/common.dts13
-rw-r--r--zephyr/test/kingler/src/ccd.c110
-rw-r--r--zephyr/test/kingler/src/fakes.c3
-rw-r--r--zephyr/test/kingler/testcase.yaml4
19 files changed, 214 insertions, 9 deletions
diff --git a/zephyr/projects/corsola/CMakeLists.txt b/zephyr/projects/corsola/CMakeLists.txt
index f2535d6e68..16acc329e2 100644
--- a/zephyr/projects/corsola/CMakeLists.txt
+++ b/zephyr/projects/corsola/CMakeLists.txt
@@ -10,6 +10,7 @@ cros_ec_library_include_directories(include)
# Include selected EC source from the baseboard
zephyr_library_sources(
+ "src/board.c"
"src/board_chipset.c"
"src/hibernate.c"
)
diff --git a/zephyr/projects/corsola/gpio_kingler.dts b/zephyr/projects/corsola/gpio_kingler.dts
index d3a4c1be90..9a827a06dd 100644
--- a/zephyr/projects/corsola/gpio_kingler.dts
+++ b/zephyr/projects/corsola/gpio_kingler.dts
@@ -167,7 +167,7 @@
gpios = <&gpio6 2 GPIO_OUTPUT_LOW>;
};
dp_aux_path_sel: dp_aux_path_sel {
- gpios = <&gpio6 3 GPIO_OUTPUT_LOW>;
+ gpios = <&gpio6 3 GPIO_OUTPUT_HIGH>;
};
gpio_ec_bl_en_od: ec_bl_en_od {
gpios = <&gpio4 0 (GPIO_ODR_LOW | GPIO_VOLTAGE_1P8)>;
@@ -216,7 +216,7 @@
gpios = <&gpioe 2 GPIO_INPUT>;
enum-name = "GPIO_VOLUME_DOWN_L";
};
- ccd_mode_odl {
+ gpio_ccd_mode_odl: ccd_mode_odl {
gpios = <&gpioe 5 GPIO_INPUT>;
enum-name = "GPIO_CCD_MODE_ODL";
};
diff --git a/zephyr/projects/corsola/gpio_krabby.dts b/zephyr/projects/corsola/gpio_krabby.dts
index eb2314cec0..5f06609f43 100644
--- a/zephyr/projects/corsola/gpio_krabby.dts
+++ b/zephyr/projects/corsola/gpio_krabby.dts
@@ -155,6 +155,10 @@
gpios = <&gpiod 4 GPIO_OUTPUT_LOW>;
enum-name = "GPIO_PACKET_MODE_EN";
};
+ gpio_ccd_mode_odl: ccd_mode_odl {
+ gpios = <&gpioc 4 GPIO_INPUT>;
+ enum-name = "GPIO_CCD_MODE_ODL";
+ };
};
hibernate-wake-pins {
@@ -174,8 +178,6 @@
<&gpioe 1 GPIO_INPUT>,
/* ec_pen_chg_dis_odl */
<&gpioh 3 GPIO_ODR_HIGH>,
- /* ccd_mode_odl */
- <&gpioc 4 GPIO_INPUT>,
/* unnamed nc pins */
<&gpioa 3 GPIO_INPUT_PULL_DOWN>,
<&gpioa 6 GPIO_INPUT_PULL_DOWN>,
diff --git a/zephyr/projects/corsola/gpio_magikarp.dts b/zephyr/projects/corsola/gpio_magikarp.dts
index d1862ed75c..b97358b5fd 100644
--- a/zephyr/projects/corsola/gpio_magikarp.dts
+++ b/zephyr/projects/corsola/gpio_magikarp.dts
@@ -155,7 +155,7 @@
gpios = <&gpiod 4 GPIO_OUTPUT_LOW>;
enum-name = "GPIO_PACKET_MODE_EN";
};
- ccd_mode_odl {
+ gpio_ccd_mode_odl: ccd_mode_odl {
gpios = <&gpioc 4 GPIO_INPUT>;
enum-name = "GPIO_CCD_MODE_ODL";
};
diff --git a/zephyr/projects/corsola/gpio_steelix.dts b/zephyr/projects/corsola/gpio_steelix.dts
index 299d809583..14120e6d7d 100644
--- a/zephyr/projects/corsola/gpio_steelix.dts
+++ b/zephyr/projects/corsola/gpio_steelix.dts
@@ -173,7 +173,7 @@
gpios = <&gpio6 2 GPIO_OUTPUT_LOW>;
};
dp_aux_path_sel: dp_aux_path_sel {
- gpios = <&gpio6 3 GPIO_OUTPUT_LOW>;
+ gpios = <&gpio6 3 GPIO_OUTPUT_HIGH>;
};
gpio_ec_bl_en_od: ec_bl_en_od {
gpios = <&gpio4 0 (GPIO_ODR_LOW | GPIO_VOLTAGE_1P8)>;
@@ -222,7 +222,7 @@
gpios = <&gpioe 2 GPIO_INPUT>;
enum-name = "GPIO_VOLUME_DOWN_L";
};
- ccd_mode_odl {
+ gpio_ccd_mode_odl: ccd_mode_odl {
gpios = <&gpioe 5 GPIO_INPUT>;
enum-name = "GPIO_CCD_MODE_ODL";
};
diff --git a/zephyr/projects/corsola/gpio_tentacruel.dts b/zephyr/projects/corsola/gpio_tentacruel.dts
index 8c2e67ecb4..a9ac9e8eac 100644
--- a/zephyr/projects/corsola/gpio_tentacruel.dts
+++ b/zephyr/projects/corsola/gpio_tentacruel.dts
@@ -161,6 +161,10 @@
gpios = <&gpiod 4 GPIO_OUTPUT_LOW>;
enum-name = "GPIO_PACKET_MODE_EN";
};
+ gpio_ccd_mode_odl: ccd_mode_odl {
+ gpios = <&gpioc 4 GPIO_INPUT>;
+ enum-name = "GPIO_CCD_MODE_ODL";
+ };
};
hibernate-wake-pins {
@@ -180,8 +184,6 @@
<&gpioe 1 GPIO_INPUT>,
/* ec_pen_chg_dis_odl */
<&gpioh 3 GPIO_ODR_HIGH>,
- /* ccd_mode_odl */
- <&gpioc 4 GPIO_INPUT>,
/* unnamed nc pins */
<&gpioa 3 GPIO_INPUT_PULL_DOWN>,
<&gpioa 6 GPIO_INPUT_PULL_DOWN>,
diff --git a/zephyr/projects/corsola/include/baseboard_usbc_config.h b/zephyr/projects/corsola/include/baseboard_usbc_config.h
index ddd80a0152..66610fec5e 100644
--- a/zephyr/projects/corsola/include/baseboard_usbc_config.h
+++ b/zephyr/projects/corsola/include/baseboard_usbc_config.h
@@ -17,6 +17,7 @@
#endif
void ppc_interrupt(enum gpio_signal signal);
+void ccd_interrupt(enum gpio_signal signal);
/* USB-A ports */
enum usba_port { USBA_PORT_A0 = 0, USBA_PORT_COUNT };
diff --git a/zephyr/projects/corsola/interrupts_kingler.dts b/zephyr/projects/corsola/interrupts_kingler.dts
index 38b8c2e24d..f3da785a60 100644
--- a/zephyr/projects/corsola/interrupts_kingler.dts
+++ b/zephyr/projects/corsola/interrupts_kingler.dts
@@ -105,5 +105,10 @@
flags = <GPIO_INT_EDGE_BOTH>;
handler = "gmr_tablet_switch_isr";
};
+ int_ccd_mode_odl: ccd-mode-odl {
+ irq-pin = <&gpio_ccd_mode_odl>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "ccd_interrupt";
+ };
};
};
diff --git a/zephyr/projects/corsola/interrupts_krabby.dts b/zephyr/projects/corsola/interrupts_krabby.dts
index 7f2df00937..3caf4660ae 100644
--- a/zephyr/projects/corsola/interrupts_krabby.dts
+++ b/zephyr/projects/corsola/interrupts_krabby.dts
@@ -101,5 +101,10 @@
flags = <GPIO_INT_EDGE_FALLING>;
handler = "rt9490_bc12_dt_interrupt";
};
+ int_ccd_mode_odl: ccd-mode-odl {
+ irq-pin = <&gpio_ccd_mode_odl>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "ccd_interrupt";
+ };
};
};
diff --git a/zephyr/projects/corsola/interrupts_magikarp.dts b/zephyr/projects/corsola/interrupts_magikarp.dts
index 06458e1063..3d02300884 100644
--- a/zephyr/projects/corsola/interrupts_magikarp.dts
+++ b/zephyr/projects/corsola/interrupts_magikarp.dts
@@ -101,5 +101,10 @@
flags = <GPIO_INT_EDGE_FALLING>;
handler = "rt9490_bc12_dt_interrupt";
};
+ int_ccd_mode_odl: ccd-mode-odl {
+ irq-pin = <&gpio_ccd_mode_odl>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "ccd_interrupt";
+ };
};
};
diff --git a/zephyr/projects/corsola/interrupts_tentacruel.dts b/zephyr/projects/corsola/interrupts_tentacruel.dts
index c35461304e..11229daf36 100644
--- a/zephyr/projects/corsola/interrupts_tentacruel.dts
+++ b/zephyr/projects/corsola/interrupts_tentacruel.dts
@@ -106,5 +106,10 @@
flags = <GPIO_INT_EDGE_FALLING>;
handler = "rt9490_bc12_dt_interrupt";
};
+ int_ccd_mode_odl: ccd-mode-odl {
+ irq-pin = <&gpio_ccd_mode_odl>;
+ flags = <GPIO_INT_EDGE_FALLING>;
+ handler = "ccd_interrupt";
+ };
};
};
diff --git a/zephyr/projects/corsola/src/board.c b/zephyr/projects/corsola/src/board.c
new file mode 100644
index 0000000000..93a2443191
--- /dev/null
+++ b/zephyr/projects/corsola/src/board.c
@@ -0,0 +1,37 @@
+/* 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.
+ */
+
+#include "console.h"
+#include "hooks.h"
+#include "typec_control.h"
+#include "usb_dp_alt_mode.h"
+#include "usb_mux.h"
+#include "usb_pd.h"
+#include "usbc_ppc.h"
+
+#include "baseboard_usbc_config.h"
+
+#define CPRINTS(format, args...) cprints(CC_USB, format, ##args)
+
+static void ccd_interrupt_deferred(void)
+{
+ /*
+ * If CCD_MODE_ODL asserts, it means there's a debug accessory connected
+ * and we should enable the SBU FETs.
+ */
+ typec_set_sbu(CONFIG_CCD_USBC_PORT_NUMBER, 1);
+
+ /* Mux DP AUX away when CCD enabled to prevent the AUX channel
+ * interferes the SBU pins.
+ */
+ CPRINTS("CCD Enabled, mux DP_AUX_PATH_SEL to 1");
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(dp_aux_path_sel), 1);
+}
+DECLARE_DEFERRED(ccd_interrupt_deferred);
+
+void ccd_interrupt(enum gpio_signal signal)
+{
+ hook_call_deferred(&ccd_interrupt_deferred_data, 0);
+}
diff --git a/zephyr/projects/corsola/src/usbc_config.c b/zephyr/projects/corsola/src/usbc_config.c
index daf3e5a5cc..e3a2796de5 100644
--- a/zephyr/projects/corsola/src/usbc_config.c
+++ b/zephyr/projects/corsola/src/usbc_config.c
@@ -49,6 +49,11 @@ static void baseboard_init(void)
#ifdef CONFIG_VARIANT_CORSOLA_USBA
gpio_enable_dt_interrupt(GPIO_INT_FROM_NODELABEL(int_usba));
#endif
+ /* If CCD mode has enabled before init, force the ccd_interrupt. */
+ if (!gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_ccd_mode_odl))) {
+ ccd_interrupt(GPIO_CCD_MODE_ODL);
+ }
+ gpio_enable_dt_interrupt(GPIO_INT_FROM_NODELABEL(int_ccd_mode_odl));
}
DECLARE_HOOK(HOOK_INIT, baseboard_init, HOOK_PRIO_PRE_DEFAULT);
diff --git a/zephyr/test/kingler/CMakeLists.txt b/zephyr/test/kingler/CMakeLists.txt
index a78c4dd497..6747b2ed99 100644
--- a/zephyr/test/kingler/CMakeLists.txt
+++ b/zephyr/test/kingler/CMakeLists.txt
@@ -28,3 +28,5 @@ target_sources_ifdef(CONFIG_TEST_DB_DETECT_NONE
app PRIVATE src/db_detect_none.c)
target_sources_ifdef(CONFIG_TEST_ALT_SENSOR_PROBE
app PRIVATE src/alt_sensor.c)
+target_sources_ifdef(CONFIG_TEST_KINGLER_CCD
+app PRIVATE src/ccd.c ${PLATFORM_EC}/zephyr/projects/corsola/src/board.c)
diff --git a/zephyr/test/kingler/Kconfig b/zephyr/test/kingler/Kconfig
index 67454c5894..930185a5ef 100644
--- a/zephyr/test/kingler/Kconfig
+++ b/zephyr/test/kingler/Kconfig
@@ -48,4 +48,9 @@ config TEST_ALT_SENSOR_PROBE
Include alt_sensor.c into the binary to test the alt sensor probe via
SSFC.
+config TEST_KINGLER_CCD
+ bool "Run the tests intended for alt sensor probe"
+ help
+ Include alt_sensor.c into the binary to test the alt sensor probe via
+ SSFC.
source "Kconfig.zephyr"
diff --git a/zephyr/test/kingler/common.dts b/zephyr/test/kingler/common.dts
index cf851a9ed0..39b6f25036 100644
--- a/zephyr/test/kingler/common.dts
+++ b/zephyr/test/kingler/common.dts
@@ -7,6 +7,19 @@
#include <npcx_emul.dts>
/ {
+ usbc {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ port0@0 {
+ compatible = "named-usbc-port";
+ reg = <0>;
+ };
+ port1@1 {
+ compatible = "named-usbc-port";
+ reg = <1>;
+ };
+ };
+
/* These are temporary just to get the test to build.
* Should be replaced with the correct accel drivers,
* but we're not testing that code right now anyway.
diff --git a/zephyr/test/kingler/src/ccd.c b/zephyr/test/kingler/src/ccd.c
new file mode 100644
index 0000000000..1b46631dc6
--- /dev/null
+++ b/zephyr/test/kingler/src/ccd.c
@@ -0,0 +1,110 @@
+/* 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.
+ */
+
+#include "zephyr/kernel.h"
+#include <zephyr/drivers/gpio/gpio_emul.h>
+#include <zephyr/fff.h>
+#include <zephyr/ztest.h>
+
+#include "gpio_signal.h"
+#include "gpio/gpio_int.h"
+#include "hooks.h"
+
+FAKE_VOID_FUNC(typec_set_sbu, int, bool);
+/* fake definitions to pass build */
+FAKE_VOID_FUNC(bmi3xx_interrupt, enum gpio_signal);
+FAKE_VOID_FUNC(x_ec_interrupt, enum gpio_signal);
+
+#define FFF_FAKES_LIST(FAKE) \
+ FAKE(typec_set_sbu) \
+ FAKE(bmi3xx_interrupt) \
+ FAKE(x_ec_interrupt)
+
+struct kingler_ccd_fixture {
+ int default_ccd_lvl;
+ int default_aux_path_lvl;
+};
+
+static void *ccd_setup(void)
+{
+ static struct kingler_ccd_fixture f;
+
+ return &f;
+}
+
+static void kingler_ccd_reset_rule_before(const struct ztest_unit_test *test,
+ void *data)
+{
+ ARG_UNUSED(test);
+ ARG_UNUSED(data);
+ FFF_FAKES_LIST(RESET_FAKE);
+ FFF_RESET_HISTORY();
+}
+ZTEST_RULE(kingler_ccd_reset_rule, kingler_ccd_reset_rule_before, NULL);
+
+static void kingler_ccd_before(void *data)
+{
+ struct kingler_ccd_fixture *f = (struct kingler_ccd_fixture *)data;
+
+ f->default_ccd_lvl =
+ gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_ccd_mode_odl));
+ f->default_aux_path_lvl =
+ gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(dp_aux_path_sel));
+
+ zassert_ok(gpio_enable_dt_interrupt(
+ GPIO_INT_FROM_NODELABEL(int_ccd_mode_odl)));
+}
+
+static void kingler_ccd_after(void *data)
+{
+ struct kingler_ccd_fixture *f = (struct kingler_ccd_fixture *)data;
+
+ zassert_ok(gpio_disable_dt_interrupt(
+ GPIO_INT_FROM_NODELABEL(int_ccd_mode_odl)));
+ zassert_ok(gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_ccd_mode_odl),
+ f->default_ccd_lvl));
+ zassert_ok(gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(dp_aux_path_sel),
+ f->default_aux_path_lvl));
+}
+
+ZTEST_SUITE(kingler_ccd, NULL, ccd_setup, kingler_ccd_before, kingler_ccd_after,
+ NULL);
+
+ZTEST_F(kingler_ccd, test_dp_aux_path)
+{
+ const struct device *ccd_mode_odl_gpio = DEVICE_DT_GET(
+ DT_GPIO_CTLR(DT_NODELABEL(gpio_ccd_mode_odl), gpios));
+ const gpio_port_pins_t ccd_mode_odl_pin =
+ DT_GPIO_PIN(DT_NODELABEL(gpio_ccd_mode_odl), gpios);
+ const struct device *dp_aux_gpio = DEVICE_DT_GET(
+ DT_GPIO_CTLR(DT_NODELABEL(dp_aux_path_sel), gpios));
+ const gpio_port_pins_t dp_aux_pin =
+ DT_GPIO_PIN(DT_NODELABEL(dp_aux_path_sel), gpios);
+
+ /* reset CCD mode and mux AUX path to CCD port by default */
+ zassert_ok(gpio_emul_input_set(ccd_mode_odl_gpio, ccd_mode_odl_pin, 1),
+ NULL);
+ zassert_ok(gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(dp_aux_path_sel), 0),
+ NULL);
+ zassert_equal(0, gpio_emul_output_get(dp_aux_gpio, dp_aux_pin), NULL);
+
+ /* CCD asserts and trigger ccd_interrupt */
+ zassert_ok(gpio_emul_input_set(ccd_mode_odl_gpio, ccd_mode_odl_pin, 0),
+ NULL);
+ k_sleep(K_MSEC(100));
+
+ zassert_equal(1, typec_set_sbu_fake.call_count, NULL);
+ /* CCD triggered, aux path has to be muxed to port 1 */
+ zassert_equal(1, gpio_emul_output_get(dp_aux_gpio, dp_aux_pin), NULL);
+
+ /* CCD deasserts */
+ zassert_ok(gpio_emul_input_set(ccd_mode_odl_gpio, ccd_mode_odl_pin, 1),
+ NULL);
+
+ k_sleep(K_MSEC(100));
+ /* do not touch dp aux path when CCD deasserted */
+ zassert_equal(1, gpio_emul_output_get(dp_aux_gpio, dp_aux_pin), NULL);
+ zassert_equal(1, typec_set_sbu_fake.call_count, NULL);
+}
diff --git a/zephyr/test/kingler/src/fakes.c b/zephyr/test/kingler/src/fakes.c
index bc6e2ae523..9b3194f18a 100644
--- a/zephyr/test/kingler/src/fakes.c
+++ b/zephyr/test/kingler/src/fakes.c
@@ -18,6 +18,9 @@ FAKE_VOID_FUNC(switch_interrupt, enum gpio_signal);
FAKE_VOID_FUNC(tcpc_alert_event, enum gpio_signal);
FAKE_VOID_FUNC(ppc_interrupt, enum gpio_signal);
FAKE_VOID_FUNC(bc12_interrupt, enum gpio_signal);
+#ifndef CONFIG_TEST_KINGLER_CCD
+FAKE_VOID_FUNC(ccd_interrupt, enum gpio_signal);
+#endif
#ifdef CONFIG_TEST_STEELIX_RUSTY
FAKE_VOID_FUNC(x_ec_interrupt, enum gpio_signal);
diff --git a/zephyr/test/kingler/testcase.yaml b/zephyr/test/kingler/testcase.yaml
index 1083e1f804..9b7e9f58ff 100644
--- a/zephyr/test/kingler/testcase.yaml
+++ b/zephyr/test/kingler/testcase.yaml
@@ -30,6 +30,10 @@ tests:
extra_configs:
- CONFIG_TEST_DB_DETECT_NONE=y
- CONFIG_VARIANT_CORSOLA_DB_DETECTION=y
+ kingler.ccd:
+ extra_args: DTC_OVERLAY_FILE="./common.dts;../projects/corsola/interrupts_kingler.dts;../projects/corsola/cbi_steelix.dts;../projects/corsola/gpio_steelix.dts"
+ extra_configs:
+ - CONFIG_TEST_KINGLER_CCD=y
kingler.alt_sensor:
extra_args: DTC_OVERLAY_FILE="./common.dts;../projects/corsola/interrupts_kingler.dts;../projects/corsola/interrupts_steelix.dts;../projects/corsola/cbi_steelix.dts;../projects/corsola/gpio_steelix.dts"
extra_configs: