summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/projects/corsola/gpio_kingler.dts30
-rw-r--r--zephyr/projects/corsola/gpio_krabby.dts28
-rw-r--r--zephyr/projects/corsola/include/gpio_map.h8
-rw-r--r--zephyr/projects/corsola/interrupts_krabby.dts7
-rw-r--r--zephyr/projects/corsola/src/board_chipset.c4
-rw-r--r--zephyr/projects/corsola/src/hibernate.c2
-rw-r--r--zephyr/projects/corsola/src/kingler/usbc_config.c20
-rw-r--r--zephyr/projects/corsola/src/krabby/hooks.c4
-rw-r--r--zephyr/projects/corsola/src/krabby/usbc_config.c14
-rw-r--r--zephyr/projects/corsola/src/usb_pd_policy.c10
-rw-r--r--zephyr/projects/corsola/src/usbc_config.c9
-rw-r--r--zephyr/projects/corsola/src/variant_db_detection.c28
12 files changed, 103 insertions, 61 deletions
diff --git a/zephyr/projects/corsola/gpio_kingler.dts b/zephyr/projects/corsola/gpio_kingler.dts
index 58aac30941..3afe4231ce 100644
--- a/zephyr/projects/corsola/gpio_kingler.dts
+++ b/zephyr/projects/corsola/gpio_kingler.dts
@@ -39,7 +39,7 @@
GPIO_ACTIVE_LOW)>;
enum-name = "GPIO_AP_IN_SLEEP_L";
};
- en_ulp {
+ gpio_en_ulp: en_ulp {
gpios = <&gpioc 6 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_ULP";
};
@@ -133,7 +133,7 @@
gpios = <&gpio0 1 GPIO_INPUT>;
enum-name = "GPIO_POWER_BUTTON_L";
};
- en_5v_usm {
+ gpio_en_5v_usm: en_5v_usm {
gpios = <&gpio0 2 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_5V_USM";
};
@@ -162,19 +162,19 @@
gpios = <&gpio7 0 GPIO_INPUT>;
enum-name = "GPIO_PG_PP5000_Z2_OD";
};
- ec_x_gpio1 {
+ gpio_ec_x_gpio1: ec_x_gpio1 {
gpios = <&gpio6 2 GPIO_OUT_LOW>;
enum-name = "GPIO_EC_X_GPIO1";
};
- dp_aux_path_sel {
+ dp_aux_path_sel: dp_aux_path_sel {
gpios = <&gpio6 3 GPIO_OUT_LOW>;
enum-name = "GPIO_DP_AUX_PATH_SEL";
};
- ec_bl_en_od {
+ gpio_ec_bl_en_od: ec_bl_en_od {
gpios = <&gpio4 0 (GPIO_ODR_LOW | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_EC_BL_EN_OD";
};
- ec_x_gpio3 {
+ gpio_ec_x_gpio3: ec_x_gpio3 {
gpios = <&gpiod 3 GPIO_OUT_LOW>;
enum-name = "GPIO_EC_X_GPIO3";
};
@@ -182,7 +182,7 @@
gpios = <&gpio7 3 GPIO_INPUT>;
enum-name = "GPIO_USB_C0_TCPC_INT_ODL";
};
- usb_c0_tcpc_rst {
+ gpio_usb_c0_tcpc_rst: usb_c0_tcpc_rst {
gpios = <&gpioc 0 GPIO_OUT_LOW>;
enum-name = "GPIO_USB_C0_TCPC_RST";
};
@@ -190,7 +190,7 @@
gpios = <&gpio6 0 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_PP5000_USB_A0_VBUS";
};
- hdmi_prsnt_odl {
+ gpio_hdmi_prsnt_odl: hdmi_prsnt_odl {
gpios = <&gpio3 7 GPIO_INPUT>;
enum-name = "GPIO_HDMI_PRSNT_ODL";
};
@@ -210,7 +210,7 @@
gpios = <&gpioc 7 GPIO_INPUT>;
enum-name = "GPIO_USB_A0_FAULT_ODL";
};
- ec_ap_dp_hpd_odl {
+ ec_ap_dp_hpd_odl: ec_ap_dp_hpd_odl {
gpios = <&gpio6 1 (GPIO_ODR_HIGH | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_EC_AP_DP_HPD_ODL";
};
@@ -232,6 +232,18 @@
};
};
+ /*
+ * aliases for sub-board GPIOs
+ */
+ aliases {
+ gpio-en-hdmi-pwr = &gpio_ec_x_gpio1;
+ gpio-usb-c1-frs-en = &gpio_ec_x_gpio1;
+ gpio-usb-c1-ppc-int-odl = &gpio_x_ec_gpio2;
+ gpio-ps185-ec-dp-hpd = &gpio_x_ec_gpio2;
+ gpio-usb-c1-dp-in-hpd = &gpio_ec_x_gpio3;
+ gpio-ps185-pwrdn-odl = &gpio_ec_x_gpio3;
+ };
+
def-lvol-io-list {
compatible = "nuvoton,npcx-lvolctrl-def";
lvol-io-pads = <
diff --git a/zephyr/projects/corsola/gpio_krabby.dts b/zephyr/projects/corsola/gpio_krabby.dts
index 0d04068fd5..a19ca3d021 100644
--- a/zephyr/projects/corsola/gpio_krabby.dts
+++ b/zephyr/projects/corsola/gpio_krabby.dts
@@ -48,7 +48,7 @@
gpios = <&gpiod 6 GPIO_INPUT>;
enum-name = "GPIO_VOLUME_UP_L";
};
- ap_xhci_init_done: ap_xhci_init_done {
+ gpio_ap_xhci_init_done: ap_xhci_init_done {
gpios = <&gpioj 5 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_AP_XHCI_INIT_DONE";
};
@@ -63,7 +63,7 @@
spi0_cs: spi0_cs {
gpios = <&gpiom 5 (GPIO_INPUT | GPIO_VOLTAGE_1P8)>;
};
- x_ec_gpio2: x_ec_gpio2 {
+ gpio_x_ec_gpio2: x_ec_gpio2 {
gpios = <&gpiob 2 (GPIO_INPUT | GPIO_ODR_HIGH)>;
enum-name = "GPIO_X_EC_GPIO2";
};
@@ -83,7 +83,7 @@
gpios = <&gpioc 6 GPIO_OUT_HIGH>;
enum-name = "GPIO_EN_PP5000_Z2";
};
- en_ulp: en_ulp {
+ gpio_en_ulp: en_ulp {
gpios = <&gpioe 3 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_ULP";
};
@@ -91,7 +91,7 @@
gpios = <&gpiog 1 GPIO_ODR_LOW>;
enum-name = "GPIO_SYS_RST_ODL";
};
- ec_bl_en_od: ec_bl_en_od {
+ gpio_ec_bl_en_od: ec_bl_en_od {
gpios = <&gpiob 5 (GPIO_ODR_LOW | GPIO_VOLTAGE_1P8)>;
enum-name = "GPIO_EC_BL_EN_OD";
};
@@ -137,7 +137,7 @@
gpios = <&gpioc 5 GPIO_OUT_LOW>;
enum-name = "GPIO_ENTERING_RW";
};
- en_5v_usm: en_5v_usm {
+ gpio_en_5v_usm: en_5v_usm {
gpios = <&gpiog 3 GPIO_OUT_LOW>;
enum-name = "GPIO_EN_5V_USM";
};
@@ -193,20 +193,32 @@
gpios = <&gpioa 5 GPIO_INPUT>;
enum-name = "GPIO_I2C_F_SDA";
};
- ec_x_gpio1: ec_x_gpio1 {
+ gpio_ec_x_gpio1: ec_x_gpio1 {
gpios = <&gpioh 4 GPIO_OUT_LOW>;
enum-name = "GPIO_EC_X_GPIO1";
};
- ec_x_gpio3: ec_x_gpio3 {
+ gpio_ec_x_gpio3: ec_x_gpio3 {
gpios = <&gpioj 1 GPIO_INPUT>;
enum-name = "GPIO_EC_X_GPIO3";
};
- hdmi_prsnt_odl: hdmi_prsnt_odl {
+ gpio_hdmi_prsnt_odl: hdmi_prsnt_odl {
gpios = <&gpioj 3 GPIO_INPUT>;
enum-name = "GPIO_HDMI_PRSNT_ODL";
};
};
+ /*
+ * aliases for sub-board GPIOs
+ */
+ aliases {
+ gpio-en-hdmi-pwr = &gpio_ec_x_gpio1;
+ gpio-usb-c1-frs-en = &gpio_ec_x_gpio1;
+ gpio-usb-c1-ppc-int-odl = &gpio_x_ec_gpio2;
+ gpio-ps185-ec-dp-hpd = &gpio_x_ec_gpio2;
+ gpio-usb-c1-dp-in-hpd = &gpio_ec_x_gpio3;
+ gpio-ps185-pwrdn-odl = &gpio_ec_x_gpio3;
+ };
+
ec-mkbp-host-event-wakeup-mask {
compatible = "ec-wake-mask-event";
wakeup-mask = <(
diff --git a/zephyr/projects/corsola/include/gpio_map.h b/zephyr/projects/corsola/include/gpio_map.h
index 262951f00b..9831a32579 100644
--- a/zephyr/projects/corsola/include/gpio_map.h
+++ b/zephyr/projects/corsola/include/gpio_map.h
@@ -12,14 +12,6 @@
#define GPIO_ENTERING_RW GPIO_UNIMPLEMENTED
-/* daughterboard GPIO remap */
-#define GPIO_EN_HDMI_PWR GPIO_EC_X_GPIO1
-#define GPIO_USB_C1_FRS_EN GPIO_EC_X_GPIO1
-#define GPIO_USB_C1_PPC_INT_ODL GPIO_X_EC_GPIO2
-#define GPIO_PS185_EC_DP_HPD GPIO_X_EC_GPIO2
-#define GPIO_USB_C1_DP_IN_HPD GPIO_EC_X_GPIO3
-#define GPIO_PS185_PWRDN_ODL GPIO_EC_X_GPIO3
-
#ifdef CONFIG_PLATFORM_EC_USB_PD_TCPM_RT1718S
#define GPIO_EN_USB_C1_SINK RT1718S_GPIO1
#define GPIO_EN_USB_C1_SOURCE RT1718S_GPIO2
diff --git a/zephyr/projects/corsola/interrupts_krabby.dts b/zephyr/projects/corsola/interrupts_krabby.dts
index 1750e01dd0..45a2ef4936 100644
--- a/zephyr/projects/corsola/interrupts_krabby.dts
+++ b/zephyr/projects/corsola/interrupts_krabby.dts
@@ -68,7 +68,7 @@
handler = "extpower_interrupt";
};
int_usba: usba {
- irq-pin = <&ap_xhci_init_done>;
+ irq-pin = <&gpio_ap_xhci_init_done>;
flags = <GPIO_INT_EDGE_BOTH>;
handler = "usb_a0_interrupt";
};
@@ -82,6 +82,11 @@
flags = <GPIO_INT_EDGE_BOTH>;
handler = "spi_event";
};
+ int_x_ec_gpio2: x_ec_gpio2 {
+ irq-pin = <&gpio_x_ec_gpio2>;
+ flags = <GPIO_INT_EDGE_BOTH>;
+ handler = "x_ec_interrupt";
+ };
int_base_imu: base_imu {
irq-pin = <&base_imu_int_l>;
flags = <GPIO_INT_EDGE_FALLING>;
diff --git a/zephyr/projects/corsola/src/board_chipset.c b/zephyr/projects/corsola/src/board_chipset.c
index 7e06a49792..22d5de5346 100644
--- a/zephyr/projects/corsola/src/board_chipset.c
+++ b/zephyr/projects/corsola/src/board_chipset.c
@@ -12,13 +12,13 @@
/* Called on AP S3 -> S0 transition */
static void board_chipset_resume(void)
{
- gpio_set_level(GPIO_EC_BL_EN_OD, 1);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_ec_bl_en_od), 1);
}
DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
/* Called on AP S0 -> S3 transition */
static void board_chipset_suspend(void)
{
- gpio_set_level(GPIO_EC_BL_EN_OD, 0);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_ec_bl_en_od), 0);
}
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
diff --git a/zephyr/projects/corsola/src/hibernate.c b/zephyr/projects/corsola/src/hibernate.c
index efe36b28ae..e70047b7ab 100644
--- a/zephyr/projects/corsola/src/hibernate.c
+++ b/zephyr/projects/corsola/src/hibernate.c
@@ -15,7 +15,7 @@ __override void board_hibernate_late(void)
isl9238c_hibernate(CHARGER_SOLO);
#endif
- gpio_set_level(GPIO_EN_ULP, 1);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_en_ulp), 1);
/* should not reach here */
__builtin_unreachable();
diff --git a/zephyr/projects/corsola/src/kingler/usbc_config.c b/zephyr/projects/corsola/src/kingler/usbc_config.c
index e0cc32f9a6..37ce89e781 100644
--- a/zephyr/projects/corsola/src/kingler/usbc_config.c
+++ b/zephyr/projects/corsola/src/kingler/usbc_config.c
@@ -200,9 +200,9 @@ void board_reset_pd_mcu(void)
/* reset C0 ANX3447 */
/* Assert reset */
- gpio_set_level(GPIO_USB_C0_TCPC_RST, 1);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_usb_c0_tcpc_rst), 1);
msleep(1);
- gpio_set_level(GPIO_USB_C0_TCPC_RST, 0);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_usb_c0_tcpc_rst), 0);
/* After TEST_R release, anx7447/3447 needs 2ms to finish eFuse
* loading.
*/
@@ -290,12 +290,14 @@ uint16_t tcpc_get_alert_status(void)
{
uint16_t status = 0;
- if (!gpio_get_level(GPIO_USB_C0_TCPC_INT_ODL)) {
- if (!gpio_get_level(GPIO_USB_C0_TCPC_RST))
+ if (!gpio_pin_get_dt(
+ GPIO_DT_FROM_NODELABEL(gpio_usb_c0_tcpc_int_odl))) {
+ if (!gpio_pin_get_dt(
+ GPIO_DT_FROM_NODELABEL(gpio_usb_c0_tcpc_rst)))
status |= PD_STATUS_TCPC_ALERT_0;
}
- if (!gpio_get_level(GPIO_USB_C1_TCPC_INT_ODL))
+ if (!gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_usb_c1_tcpc_int_odl)))
return status |= PD_STATUS_TCPC_ALERT_1;
return status;
}
@@ -305,10 +307,10 @@ void tcpc_alert_event(enum gpio_signal signal)
int port;
switch (signal) {
- case GPIO_USB_C0_TCPC_INT_ODL:
+ case GPIO_SIGNAL(DT_NODELABEL(gpio_usb_c0_tcpc_int_odl)):
port = 0;
break;
- case GPIO_USB_C1_TCPC_INT_ODL:
+ case GPIO_SIGNAL(DT_NODELABEL(gpio_usb_c1_tcpc_int_odl)):
port = 1;
break;
default:
@@ -321,10 +323,10 @@ void tcpc_alert_event(enum gpio_signal signal)
void ppc_interrupt(enum gpio_signal signal)
{
switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
+ case GPIO_SIGNAL(DT_NODELABEL(gpio_usb_c0_ppc_int_odl)):
ppc_chips[0].drv->interrupt(0);
break;
- case GPIO_USB_C1_PPC_INT_ODL:
+ case GPIO_SIGNAL(DT_ALIAS(gpio_usb_c1_ppc_int_odl)):
ppc_chips[1].drv->interrupt(1);
break;
default:
diff --git a/zephyr/projects/corsola/src/krabby/hooks.c b/zephyr/projects/corsola/src/krabby/hooks.c
index cea6667650..59d56fec1d 100644
--- a/zephyr/projects/corsola/src/krabby/hooks.c
+++ b/zephyr/projects/corsola/src/krabby/hooks.c
@@ -8,12 +8,12 @@
static void board_suspend(void)
{
- gpio_set_level(GPIO_EN_5V_USM, 0);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_en_5v_usm), 0);
}
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_suspend, HOOK_PRIO_DEFAULT);
static void board_resume(void)
{
- gpio_set_level(GPIO_EN_5V_USM, 1);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(gpio_en_5v_usm), 1);
}
DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_resume, HOOK_PRIO_DEFAULT);
diff --git a/zephyr/projects/corsola/src/krabby/usbc_config.c b/zephyr/projects/corsola/src/krabby/usbc_config.c
index 28ce147b1a..933a5fbcea 100644
--- a/zephyr/projects/corsola/src/krabby/usbc_config.c
+++ b/zephyr/projects/corsola/src/krabby/usbc_config.c
@@ -47,13 +47,13 @@ struct ppc_config_t ppc_chips[CONFIG_USB_PD_PORT_MAX_COUNT] = {
.i2c_port = I2C_PORT_PPC0,
.i2c_addr_flags = SYV682X_ADDR0_FLAGS,
.drv = &syv682x_drv,
- .frs_en = GPIO_USB_C0_PPC_FRSINFO,
+ .frs_en = GPIO_SIGNAL(DT_NODELABEL(usb_c0_ppc_frsinfo)),
},
{
.i2c_port = I2C_PORT_PPC1,
.i2c_addr_flags = SYV682X_ADDR0_FLAGS,
.drv = &syv682x_drv,
- .frs_en = GPIO_USB_C1_FRS_EN,
+ .frs_en = GPIO_SIGNAL(DT_ALIAS(gpio_usb_c1_frs_en)),
},
};
unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
@@ -144,16 +144,18 @@ DECLARE_HOOK(HOOK_INIT, board_usb_mux_init, HOOK_PRIO_INIT_I2C + 1);
void ppc_interrupt(enum gpio_signal signal)
{
- if (signal == GPIO_USB_C1_PPC_INT_ODL)
+ if (signal == GPIO_SIGNAL(DT_ALIAS(gpio_usb_c1_ppc_int_odl)))
syv682x_interrupt(1);
}
int ppc_get_alert_status(int port)
{
if (port == 0)
- return gpio_get_level(GPIO_USB_C0_PPC_BC12_INT_ODL) == 0;
+ return gpio_pin_get_dt(
+ GPIO_DT_FROM_NODELABEL(usb_c0_ppc_bc12_int_odl)) == 0;
if (port == 1 && corsola_get_db_type() == CORSOLA_DB_TYPEC)
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
+ return gpio_pin_get_dt(
+ GPIO_DT_FROM_ALIAS(gpio_usb_c1_ppc_int_odl)) == 0;
return 0;
}
@@ -284,7 +286,7 @@ static int board_ps8743_mux_set(const struct usb_mux *me,
*
* Enable/Disable IN_HPD on the DB.
*/
- gpio_set_level(GPIO_USB_C1_DP_IN_HPD,
+ gpio_pin_set_dt(GPIO_DT_FROM_ALIAS(gpio_usb_c1_dp_in_hpd),
mux_state & USB_PD_MUX_DP_ENABLED);
return ps8743_write(me, PS8743_REG_MODE, reg);
diff --git a/zephyr/projects/corsola/src/usb_pd_policy.c b/zephyr/projects/corsola/src/usb_pd_policy.c
index bfaa6f0c55..88eb297694 100644
--- a/zephyr/projects/corsola/src/usb_pd_policy.c
+++ b/zephyr/projects/corsola/src/usb_pd_policy.c
@@ -27,7 +27,7 @@ int pd_check_vconn_swap(int port)
int svdm_get_hpd_gpio(int port)
{
/* HPD is low active, inverse the result */
- return !gpio_get_level(GPIO_EC_AP_DP_HPD_ODL);
+ return !gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(ec_ap_dp_hpd_odl));
}
void svdm_set_hpd_gpio(int port, int en)
@@ -36,7 +36,7 @@ void svdm_set_hpd_gpio(int port, int en)
* HPD is low active, inverse the en
* TODO: C0&C1 shares the same HPD, implement FCFS policy.
*/
- gpio_set_level(GPIO_EC_AP_DP_HPD_ODL, !en);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(ec_ap_dp_hpd_odl), !en);
}
/**
@@ -78,8 +78,10 @@ __override int svdm_dp_attention(int port, uint32_t *payload)
return 0; /* nak */
}
- if (lvl)
- gpio_set_level_verbose(CC_USBPD, GPIO_DP_AUX_PATH_SEL, port);
+ if (lvl) {
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(dp_aux_path_sel), port);
+ CPRINTS("Set DP_AUX_PATH_SEL: %d", port);
+ }
if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND) &&
(irq || lvl))
diff --git a/zephyr/projects/corsola/src/usbc_config.c b/zephyr/projects/corsola/src/usbc_config.c
index 5db1ab8a94..0aabc53b8f 100644
--- a/zephyr/projects/corsola/src/usbc_config.c
+++ b/zephyr/projects/corsola/src/usbc_config.c
@@ -70,7 +70,8 @@ BUILD_ASSERT(ARRAY_SIZE(usb_port_enable) == USB_PORT_COUNT);
void usb_a0_interrupt(enum gpio_signal signal)
{
- enum usb_charge_mode mode = gpio_get_level(signal) ?
+ enum usb_charge_mode mode = gpio_pin_get_dt(
+ GPIO_DT_FROM_NODELABEL(gpio_ap_xhci_init_done)) ?
USB_CHARGE_MODE_ENABLED : USB_CHARGE_MODE_DISABLED;
for (int i = 0; i < USB_PORT_COUNT; i++)
@@ -100,7 +101,8 @@ int debounced_hpd;
static void ps185_hdmi_hpd_deferred(void)
{
- const int new_hpd = gpio_get_level(GPIO_PS185_EC_DP_HPD);
+ const int new_hpd = gpio_pin_get_dt(
+ GPIO_DT_FROM_ALIAS(gpio_ps185_ec_dp_hpd));
/* HPD status not changed, probably a glitch, just return. */
if (debounced_hpd == new_hpd)
@@ -108,7 +110,8 @@ static void ps185_hdmi_hpd_deferred(void)
debounced_hpd = new_hpd;
- gpio_set_level(GPIO_EC_AP_DP_HPD_ODL, !debounced_hpd);
+ gpio_pin_set_dt(GPIO_DT_FROM_NODELABEL(ec_ap_dp_hpd_odl),
+ !debounced_hpd);
CPRINTS(debounced_hpd ? "HDMI plug" : "HDMI unplug");
}
DECLARE_DEFERRED(ps185_hdmi_hpd_deferred);
diff --git a/zephyr/projects/corsola/src/variant_db_detection.c b/zephyr/projects/corsola/src/variant_db_detection.c
index 340d54a196..d5e79b5680 100644
--- a/zephyr/projects/corsola/src/variant_db_detection.c
+++ b/zephyr/projects/corsola/src/variant_db_detection.c
@@ -7,6 +7,7 @@
#include "console.h"
#include "gpio.h"
+#include "gpio/gpio_int.h"
#include "hooks.h"
#include "variant_db_detection.h"
@@ -19,20 +20,31 @@ static void corsola_db_config(enum corsola_db_type type)
switch (type) {
case CORSOLA_DB_HDMI:
/* EC_X_GPIO1 */
- gpio_set_flags(GPIO_EN_HDMI_PWR, GPIO_OUT_HIGH);
+ gpio_pin_configure_dt(GPIO_DT_FROM_ALIAS(gpio_en_hdmi_pwr),
+ GPIO_OUT_HIGH);
/* X_EC_GPIO2 */
- gpio_set_flags(GPIO_PS185_EC_DP_HPD, GPIO_INT_BOTH);
+ gpio_pin_configure_dt(GPIO_DT_FROM_ALIAS(gpio_ps185_ec_dp_hpd),
+ GPIO_INPUT);
+ gpio_enable_dt_interrupt(
+ GPIO_INT_FROM_NODELABEL(int_x_ec_gpio2));
/* EC_X_GPIO3 */
- gpio_set_flags(GPIO_PS185_PWRDN_ODL, GPIO_ODR_HIGH);
+ gpio_pin_configure_dt(GPIO_DT_FROM_ALIAS(gpio_ps185_pwrdn_odl),
+ GPIO_ODR_HIGH);
return;
case CORSOLA_DB_TYPEC:
/* EC_X_GPIO1 */
- gpio_set_flags(GPIO_USB_C1_FRS_EN, GPIO_OUT_LOW);
+ gpio_pin_configure_dt(GPIO_DT_FROM_ALIAS(gpio_usb_c1_frs_en),
+ GPIO_OUT_LOW);
/* X_EC_GPIO2 */
- gpio_set_flags(GPIO_USB_C1_PPC_INT_ODL,
- GPIO_INT_BOTH | GPIO_PULL_UP);
+ gpio_pin_configure_dt(
+ GPIO_DT_FROM_ALIAS(gpio_usb_c1_ppc_int_odl),
+ GPIO_INPUT | GPIO_PULL_UP);
+ gpio_enable_dt_interrupt(
+ GPIO_INT_FROM_NODELABEL(int_x_ec_gpio2));
/* EC_X_GPIO3 */
- gpio_set_flags(GPIO_USB_C1_DP_IN_HPD, GPIO_OUT_LOW);
+ gpio_pin_configure_dt(
+ GPIO_DT_FROM_ALIAS(gpio_usb_c1_dp_in_hpd),
+ GPIO_OUT_LOW);
return;
default:
break;
@@ -47,7 +59,7 @@ enum corsola_db_type corsola_get_db_type(void)
if (db != CORSOLA_DB_NONE)
return db;
- if (!gpio_get_level(GPIO_HDMI_PRSNT_ODL))
+ if (!gpio_pin_get_dt(GPIO_DT_FROM_NODELABEL(gpio_hdmi_prsnt_odl)))
db = CORSOLA_DB_HDMI;
else
db = CORSOLA_DB_TYPEC;