From 74b190af723b38f3766b0bab63cf9e26f8fa7be3 Mon Sep 17 00:00:00 2001 From: Yuval Peress Date: Tue, 6 Apr 2021 00:10:56 -0600 Subject: zephyr: gpio: Move named GPIO entries to devicetree Migrate NAMED_GPIO() to devicetree enums. This allows us to create common boards and share the GPIO mappings in dts files. BRANCH=none BUG=none TEST=zmake testall Signed-off-by: Yuval Peress Change-Id: I41c6151569a04628ac6dcc597f05e529327b7b46 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2804495 Reviewed-by: Denis Brockus Reviewed-by: Simon Glass Reviewed-by: Fabio Baltieri --- zephyr/dts/bindings/gpio/gpio-enum-name.yaml | 98 ++++++++++++++++++++++ zephyr/dts/bindings/gpio/named-gpios.yaml | 1 + .../projects/kohaku/boards/arm/kohaku/kohaku.dts | 25 ++++++ zephyr/projects/kohaku/include/gpio_map.h | 22 ----- zephyr/projects/trogdor/lazor/gpio.dts | 54 ++++++++++++ zephyr/projects/trogdor/lazor/include/gpio_map.h | 47 ----------- zephyr/projects/volteer/delbin/gpio.dts | 29 +++++++ zephyr/projects/volteer/delbin/include/gpio_map.h | 25 ------ zephyr/projects/volteer/volteer/gpio.dts | 74 ++++++++++++++++ zephyr/projects/volteer/volteer/include/gpio_map.h | 69 +-------------- zephyr/shim/include/zephyr_gpio_signal.h | 5 +- zephyr/shim/src/gpio.c | 20 +++-- 12 files changed, 297 insertions(+), 172 deletions(-) create mode 100644 zephyr/dts/bindings/gpio/gpio-enum-name.yaml diff --git a/zephyr/dts/bindings/gpio/gpio-enum-name.yaml b/zephyr/dts/bindings/gpio/gpio-enum-name.yaml new file mode 100644 index 0000000000..33ba278d53 --- /dev/null +++ b/zephyr/dts/bindings/gpio/gpio-enum-name.yaml @@ -0,0 +1,98 @@ +description: Named GPIOs parent node +properties: + enum-name: + type: string + description: + Enum used in code. + enum: + - GPIO_AC_PRESENT + - GPIO_AP_RST_L + - GPIO_AP_SUSPEND + - GPIO_BATT_PRES_ODL + - GPIO_BOARD_VERSION1 + - GPIO_BOARD_VERSION2 + - GPIO_BOARD_VERSION3 + - GPIO_CCD_MODE_ODL + - GPIO_CPU_PROCHOT + - GPIO_DA9313_GPIO0 + - GPIO_DEPRECATED_AP_RST_REQ + - GPIO_DP_HOT_PLUG_DET + - GPIO_DP_MUX_OE_L + - GPIO_DP_MUX_SEL + - GPIO_EC_ALS_RGB_INT_L + - GPIO_EC_BATT_PRES_ODL + - GPIO_EC_I2C0_SENSOR_SCL + - GPIO_EC_I2C0_SENSOR_SDA + - GPIO_EC_IMU_INT_L + - GPIO_EC_INT_L + - GPIO_EC_PCH_SYS_PWROK + - GPIO_EC_PCH_WAKE_ODL + - GPIO_EC_PROCHOT_IN_L + - GPIO_EC_WP_L + - GPIO_EN_A_RAILS + - GPIO_EN_PP3300_A + - GPIO_EN_PP5000 + - GPIO_EN_PP5000_A + - GPIO_EN_PP5000_FAN + - GPIO_EN_PP5000_USBA + - GPIO_EN_PPVAR_VCCIN + - GPIO_EN_USB_A_5V + - GPIO_ENABLE_BACKLIGHT + - GPIO_ENTERING_RW + - GPIO_KBD_KSO2 + - GPIO_LID_OPEN + - GPIO_PACKET_MODE_EN + - GPIO_PCH_DSW_PWROK + - GPIO_PCH_PWRBTN_L + - GPIO_PCH_RSMRST_L + - GPIO_PCH_RTCRST + - GPIO_PCH_SLP_S0_L + - GPIO_PCH_SLP_S3_L + - GPIO_PCH_SLP_S4_L + - GPIO_PCH_SLP_SUS_L + - GPIO_PCH_SYS_PWROK + - GPIO_PG_EC_ALL_SYS_PWRGD + - GPIO_PG_EC_DSW_PWROK + - GPIO_PG_EC_RSMRST_ODL + - GPIO_PMIC_KPD_PWR_ODL + - GPIO_PMIC_RESIN_L + - GPIO_POWER_BUTTON_L + - GPIO_POWER_GOOD + - GPIO_PP5000_A_PG_OD + - GPIO_PS_HOLD + - GPIO_QSIP_ON + - GPIO_RSMRST_L_PGOOD + - GPIO_SKU_ID0 + - GPIO_SKU_ID1 + - GPIO_SKU_ID2 + - GPIO_SLP_SUS_L + - GPIO_SWITCHCAP_ON + - GPIO_SWITCHCAP_ON_L + - GPIO_SWITCHCAP_PG_INT_L + - GPIO_SYS_RESET_L + - GPIO_TABLET_MODE_L + - GPIO_USB_A0_OC_ODL + - GPIO_USB_C0_BC12_INT_L + - GPIO_USB_C0_BC12_INT_ODL + - GPIO_USB_C0_OC_ODL + - GPIO_USB_C0_PD_INT_ODL + - GPIO_USB_C0_PD_RST_L + - GPIO_USB_C0_PPC_INT_ODL + - GPIO_USB_C0_SWCTL_INT_ODL + - GPIO_USB_C0_TCPC_INT_ODL + - GPIO_USB_C1_BC12_INT_L + - GPIO_USB_C1_BC12_INT_ODL + - GPIO_USB_C1_FRS_EN + - GPIO_USB_C1_LS_EN + - GPIO_USB_C1_MIX_INT_ODL + - GPIO_USB_C1_OC_ODL + - GPIO_USB_C1_PD_INT_ODL + - GPIO_USB_C1_PD_RST_L + - GPIO_USB_C1_PPC_INT_ODL + - GPIO_USB_C1_RT_RST_ODL + - GPIO_USB_C1_SWCTL_INT_ODL + - GPIO_USB_C1_TCPC_INT_ODL + - GPIO_VOLUME_DOWN_L + - GPIO_VOLUME_UP_L + - GPIO_WARM_RESET_L + - GPIO_WP_L diff --git a/zephyr/dts/bindings/gpio/named-gpios.yaml b/zephyr/dts/bindings/gpio/named-gpios.yaml index 10c79c5f70..563c841f54 100644 --- a/zephyr/dts/bindings/gpio/named-gpios.yaml +++ b/zephyr/dts/bindings/gpio/named-gpios.yaml @@ -4,6 +4,7 @@ compatible: "named-gpios" child-binding: description: Named GPIOs child node + include: gpio-enum-name.yaml properties: gpios: type: phandle-array diff --git a/zephyr/projects/kohaku/boards/arm/kohaku/kohaku.dts b/zephyr/projects/kohaku/boards/arm/kohaku/kohaku.dts index df8149d8bc..1117a59482 100644 --- a/zephyr/projects/kohaku/boards/arm/kohaku/kohaku.dts +++ b/zephyr/projects/kohaku/boards/arm/kohaku/kohaku.dts @@ -37,42 +37,52 @@ lid_open { gpios = <&gpiod 2 GPIO_INPUT>; + enum-name = "GPIO_LID_OPEN"; label = "LID_OPEN"; }; wp_l { gpios = <&gpioa 1 GPIO_INPUT>; + enum-name = "GPIO_WP_L"; label = "WP_L"; }; power_button_l { gpios = <&gpio0 1 GPIO_INPUT>; + enum-name = "GPIO_POWER_BUTTON_L"; label = "POWER_BUTTON_L"; }; acok_od { gpios = <&gpio0 0 GPIO_INPUT>; + enum-name = "GPIO_AC_PRESENT"; label = "ACOK_OD"; }; slp_s0_l { gpios = <&gpiod 5 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S0_L"; label = "SLP_S0_L"; }; slp_s3_l { gpios = <&gpioa 5 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S3_L"; label = "SLP_S3_L"; }; slp_s4_l { gpios = <&gpiod 4 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S4_L"; label = "SLP_S4_L"; }; pg_ec_rsmrst_l { gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_RSMRST_L_PGOOD"; label = "PG_EC_RSMRST_L"; }; pg_ec_all_sys_pwrgd { gpios = <&gpiof 4 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_ALL_SYS_PWRGD"; label = "PG_EC_ALL_SYS_PWRGD"; }; pp5000_a_pg_od { gpios = <&gpiod 7 GPIO_INPUT>; + enum-name = "GPIO_PP5000_A_PG_OD"; label = "PP5000_A_PG_OD"; }; base_sixaxis_int_l { @@ -121,38 +131,52 @@ }; sys_reset_l { gpios = <&gpioc 5 GPIO_ODR_HIGH>; + enum-name = "GPIO_SYS_RESET_L"; label = "SYS_RESET_L"; }; entering_rw { gpios = <&gpioe 3 GPIO_OUT_LOW>; + enum-name = "GPIO_ENTERING_RW"; label = "ENTERING_RW"; }; pch_wake_l { gpios = <&gpio7 4 GPIO_ODR_HIGH>; + enum-name = "GPIO_EC_PCH_WAKE_ODL"; label = "PCH_WAKE_L"; }; pch_pwrbtn_l { gpios = <&gpioc 1 GPIO_ODR_HIGH>; + enum-name = "GPIO_PCH_PWRBTN_L"; label = "PCH_PWRBTN_L"; }; en_pp5000_a { gpios = <&gpioa 4 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000_A"; label = "EN_PP5000_A"; }; + en_pp5000 { + gpios = <&gpioa 4 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000"; + label = "EN_PP5000"; + }; gpio_edp_bklten_od { gpios = <&gpiod 3 GPIO_ODR_HIGH>; + enum-name = "GPIO_ENABLE_BACKLIGHT"; label = "EDP_BKLTEN_OD"; }; en_a_rails { gpios = <&gpioa 3 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_A_RAILS"; label = "EN_A_RAILS"; }; ec_pch_rsmrst_l { gpios = <&gpioa 6 GPIO_OUT_LOW>; + enum-name = "GPIO_PCH_RSMRST_L"; label = "EC_PCH_RSMRST_L"; }; ec_prochot_odl { gpios = <&gpio6 3 GPIO_ODR_HIGH>; + enum-name = "GPIO_CPU_PROCHOT"; label = "EC_PROCHOT_ODL"; }; ec_prochot_in_od { @@ -161,6 +185,7 @@ }; ec_pch_sys_pwrok { gpios = <&gpio3 7 GPIO_OUT_LOW>; + enum-name = "GPIO_PCH_SYS_PWROK"; label = "EC_PCH_SYS_PWROK"; }; cpu_c10_gate_l { diff --git a/zephyr/projects/kohaku/include/gpio_map.h b/zephyr/projects/kohaku/include/gpio_map.h index 16f197f657..05fc93d5d5 100644 --- a/zephyr/projects/kohaku/include/gpio_map.h +++ b/zephyr/projects/kohaku/include/gpio_map.h @@ -9,28 +9,6 @@ #include #include -#define GPIO_AC_PRESENT NAMED_GPIO(acok_od) -#define GPIO_CPU_PROCHOT NAMED_GPIO(ec_prochot_odl) -#define GPIO_EC_PCH_WAKE_ODL NAMED_GPIO(pch_wake_l) -#define GPIO_EN_A_RAILS NAMED_GPIO(en_a_rails) -#define GPIO_EN_PP5000_A NAMED_GPIO(en_pp5000_a) -#define GPIO_EN_PP5000 NAMED_GPIO(en_pp5000_a) -#define GPIO_ENABLE_BACKLIGHT NAMED_GPIO(gpio_edp_bklten_od) -#define GPIO_ENTERING_RW NAMED_GPIO(entering_rw) -#define GPIO_LID_OPEN NAMED_GPIO(lid_open) -#define GPIO_PCH_PWRBTN_L NAMED_GPIO(pch_pwrbtn_l) -#define GPIO_PCH_RSMRST_L NAMED_GPIO(ec_pch_rsmrst_l) -#define GPIO_PCH_SLP_S0_L NAMED_GPIO(slp_s0_l) -#define GPIO_PCH_SLP_S3_L NAMED_GPIO(slp_s3_l) -#define GPIO_PCH_SLP_S4_L NAMED_GPIO(slp_s4_l) -#define GPIO_PCH_SYS_PWROK NAMED_GPIO(ec_pch_sys_pwrok) -#define GPIO_PG_EC_ALL_SYS_PWRGD NAMED_GPIO(pg_ec_all_sys_pwrgd) -#define GPIO_POWER_BUTTON_L NAMED_GPIO(power_button_l) -#define GPIO_PP5000_A_PG_OD NAMED_GPIO(pp5000_a_pg_od) -#define GPIO_RSMRST_L_PGOOD NAMED_GPIO(pg_ec_rsmrst_l) -#define GPIO_SYS_RESET_L NAMED_GPIO(sys_reset_l) -#define GPIO_WP_L NAMED_GPIO(wp_l) - /* Cometlake power sequencing requires this definition */ #define PP5000_PGOOD_POWER_SIGNAL_MASK POWER_SIGNAL_MASK(X86_PP5000_A_PGOOD) diff --git a/zephyr/projects/trogdor/lazor/gpio.dts b/zephyr/projects/trogdor/lazor/gpio.dts index 951e199b0e..418edf29dc 100644 --- a/zephyr/projects/trogdor/lazor/gpio.dts +++ b/zephyr/projects/trogdor/lazor/gpio.dts @@ -9,82 +9,102 @@ usb_c0_pd_int_odl { gpios = <&gpioe 0 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_PD_INT_ODL"; label = "USB_C0_PD_INT_ODL"; }; usb_c1_pd_int_odl { gpios = <&gpiof 5 GPIO_INPUT>; + enum-name = "GPIO_USB_C1_PD_INT_ODL"; label = "USB_C1_PD_INT_ODL"; }; usb_c0_swctl_int_odl { gpios = <&gpio0 3 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_SWCTL_INT_ODL"; label = "USB_C0_SWCTL_INT_ODL"; }; usb_c1_swctl_int_odl { gpios = <&gpio4 0 GPIO_INPUT>; + enum-name = "GPIO_USB_C1_SWCTL_INT_ODL"; label = "USB_C1_SWCTL_INT_ODL"; }; usb_c0_bc12_int_l { gpios = <&gpio6 1 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_USB_C0_BC12_INT_L"; label = "USB_C0_BC12_INT_L"; }; usb_c1_bc12_int_l { gpios = <&gpio8 2 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_USB_C1_BC12_INT_L"; label = "USB_C1_BC12_INT_L"; }; usb_a0_oc_odl { gpios = <&gpiod 1 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_USB_A0_OC_ODL"; label = "USB_A0_OC_ODL"; }; acok_od { gpios = <&gpio0 0 GPIO_INPUT>; + enum-name = "GPIO_AC_PRESENT"; label = "ACOK_OD"; }; ccd_mode_odl { gpios = <&gpioe 3 GPIO_INPUT>; + enum-name = "GPIO_CCD_MODE_ODL"; label = "CCD_MODE_ODL"; }; ec_pwr_btn_odl { gpios = <&gpio0 1 GPIO_INPUT>; + enum-name = "GPIO_POWER_BUTTON_L"; label = "EC_PWR_BTN_ODL"; }; ec_voldn_btn_odl { gpios = <&gpio7 0 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_VOLUME_DOWN_L"; label = "EC_VOLDN_BTN_ODL"; }; ec_volup_btn_odl { gpios = <&gpiof 2 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_VOLUME_UP_L"; label = "EC_VOLUP_BTN_ODL"; }; ec_wp_odl { gpios = <&gpioa 1 GPIO_INPUT>; + enum-name = "GPIO_WP_L"; label = "EC_WP_ODL"; }; lid_open_ec { gpios = <&gpiod 2 GPIO_INPUT>; + enum-name = "GPIO_LID_OPEN"; label = "LID_OPEN_EC"; }; ap_rst_l { gpios = <&gpioc 1 GPIO_INPUT>; + enum-name = "GPIO_AP_RST_L"; label = "AP_RST_L"; }; ps_hold { gpios = <&gpioa 4 (GPIO_INPUT | GPIO_PULL_DOWN)>; + enum-name = "GPIO_PS_HOLD"; label = "PS_HOLD"; }; ap_suspend { gpios = <&gpio5 7 GPIO_INPUT>; + enum-name = "GPIO_AP_SUSPEND"; label = "AP_SUSPEND"; }; deprecated_ap_rst_req { gpios = <&gpioc 2 (GPIO_INPUT | GPIO_PULL_DOWN)>; + enum-name = "GPIO_DEPRECATED_AP_RST_REQ"; label = "DEPRECATED_AP_RST_REQ"; }; power_good { gpios = <&gpio5 4 (GPIO_INPUT | GPIO_PULL_DOWN)>; + enum-name = "GPIO_POWER_GOOD"; label = "POWER_GOOD"; }; warm_reset_l { gpios = <&gpiof 4 GPIO_INPUT>; + enum-name = "GPIO_WARM_RESET_L"; label = "WARM_RESET_L"; }; ap_ec_spi_cs_l { @@ -101,34 +121,46 @@ }; da9313_gpio0 { gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_DA9313_GPIO0"; label = "DA9313_GPIO0"; }; + switchcap_pg_int_l { + gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_SWITCHCAP_PG_INT_L"; + label = "SWITCHCAP_PG_INT_L"; + }; ec_rst_odl { gpios = <&gpio0 2 GPIO_INPUT>; label = "EC_RST_ODL"; }; ec_entering_rw { gpios = <&gpioe 1 GPIO_OUT_LOW>; + enum-name = "GPIO_ENTERING_RW"; label = "EC_ENTERING_RW"; }; ec_batt_pres_odl { gpios = <&gpioe 5 GPIO_INPUT>; + enum-name = "GPIO_BATT_PRES_ODL"; label = "EC_BATT_PRES_ODL"; }; pm845_resin_l { gpios = <&gpio3 2 GPIO_ODR_HIGH>; + enum-name = "GPIO_PMIC_RESIN_L"; label = "PM845_RESIN_L"; }; pmic_kpd_pwr_odl { gpios = <&gpiod 6 GPIO_ODR_HIGH>; + enum-name = "GPIO_PMIC_KPD_PWR_ODL"; label = "PMIC_KPD_PWR_ODL"; }; ec_int_l { gpios = <&gpioa 2 GPIO_ODR_HIGH>; + enum-name = "GPIO_EC_INT_L"; label = "EC_INT_L"; }; qsip_on { gpios = <&gpio5 0 GPIO_OUT_LOW>; + enum-name = "GPIO_QSIP_ON"; label = "QSIP_ON"; }; hibernate_l { @@ -137,22 +169,31 @@ }; switchcap_on { gpios = <&gpiod 5 GPIO_OUT_LOW>; + enum-name = "GPIO_SWITCHCAP_ON"; label = "SWITCHCAP_ON"; }; + switchcap_on_l { + gpios = <&gpiod 5 GPIO_OUT_LOW>; + enum-name = "GPIO_SWITCHCAP_ON_L"; + label = "SWITCHCAP_ON_L"; + }; vbob_en { gpios = <&gpiod 3 GPIO_OUT_LOW>; label = "VBOB_EN"; }; en_pp3300_a { gpios = <&gpioa 6 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP3300_A"; label = "EN_PP3300_A"; }; en_pp5000_a { gpios = <&gpio6 7 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000"; label = "EN_PP5000_A"; }; ec_bl_disable_l { gpios = <&gpiob 6 GPIO_OUT_LOW>; + enum-name = "GPIO_ENABLE_BACKLIGHT"; label = "EC_BL_DISABLE_L"; }; lid_accel_int_l { @@ -165,26 +206,32 @@ }; usb_c0_pd_rst_l { gpios = <&gpiof 1 GPIO_ODR_HIGH>; + enum-name = "GPIO_USB_C0_PD_RST_L"; label = "USB_C0_PD_RST_L"; }; usb_c1_pd_rst_l { gpios = <&gpioe 4 GPIO_ODR_HIGH>; + enum-name = "GPIO_USB_C1_PD_RST_L"; label = "USB_C1_PD_RST_L"; }; dp_mux_oe_l { gpios = <&gpio9 6 GPIO_ODR_HIGH>; + enum-name = "GPIO_DP_MUX_OE_L"; label = "DP_MUX_OE_L"; }; dp_mux_sel { gpios = <&gpio4 5 GPIO_OUT_LOW>; + enum-name = "GPIO_DP_MUX_SEL"; label = "DP_MUX_SEL"; }; dp_hot_plug_det { gpios = <&gpio9 5 GPIO_OUT_LOW>; + enum-name = "GPIO_DP_HOT_PLUG_DET"; label = "DP_HOT_PLUG_DET"; }; en_usb_a_5v { gpios = <&gpio8 6 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_USB_A_5V"; label = "EN_USB_A_5V"; }; usb_a_cdp_ilim_en { @@ -273,26 +320,32 @@ }; brd_id0 { gpios = <&gpioc 7 GPIO_INPUT>; + enum-name = "GPIO_BOARD_VERSION1"; label = "BRD_ID0"; }; brd_id1 { gpios = <&gpio9 3 GPIO_INPUT>; + enum-name = "GPIO_BOARD_VERSION2"; label = "BRD_ID1"; }; brd_id2 { gpios = <&gpio6 3 GPIO_INPUT>; + enum-name = "GPIO_BOARD_VERSION3"; label = "BRD_ID2"; }; sku_id0 { gpios = <&gpiof 0 GPIO_INPUT>; + enum-name = "GPIO_SKU_ID0"; label = "SKU_ID0"; }; sku_id1 { gpios = <&gpio4 1 GPIO_INPUT>; + enum-name = "GPIO_SKU_ID1"; label = "SKU_ID1"; }; sku_id2 { gpios = <&gpiod 4 GPIO_INPUT>; + enum-name = "GPIO_SKU_ID2"; label = "SKU_ID2"; }; arm_x86 { @@ -301,6 +354,7 @@ }; ec_kso_02_inv { gpios = <&gpio1 7 GPIO_OUT_LOW>; + enum-name = "GPIO_KBD_KSO2"; label = "EC_KSO_02_INV"; }; }; diff --git a/zephyr/projects/trogdor/lazor/include/gpio_map.h b/zephyr/projects/trogdor/lazor/include/gpio_map.h index 08cd2641b0..0d6211c6fb 100644 --- a/zephyr/projects/trogdor/lazor/include/gpio_map.h +++ b/zephyr/projects/trogdor/lazor/include/gpio_map.h @@ -9,53 +9,6 @@ #include #include -#define GPIO_AC_PRESENT NAMED_GPIO(acok_od) -#define GPIO_AP_RST_L NAMED_GPIO(ap_rst_l) -#define GPIO_AP_SUSPEND NAMED_GPIO(ap_suspend) -#define GPIO_BATT_PRES_ODL NAMED_GPIO(ec_batt_pres_odl) -#define GPIO_BOARD_VERSION1 NAMED_GPIO(brd_id0) -#define GPIO_BOARD_VERSION2 NAMED_GPIO(brd_id1) -#define GPIO_BOARD_VERSION3 NAMED_GPIO(brd_id2) -#define GPIO_CCD_MODE_ODL NAMED_GPIO(ccd_mode_odl) -#define GPIO_DA9313_GPIO0 NAMED_GPIO(da9313_gpio0) -#define GPIO_DP_HOT_PLUG_DET NAMED_GPIO(dp_hot_plug_det) -#define GPIO_DP_MUX_SEL NAMED_GPIO(dp_mux_sel) -#define GPIO_DP_MUX_OE_L NAMED_GPIO(dp_mux_oe_l) -#define GPIO_DEPRECATED_AP_RST_REQ NAMED_GPIO(deprecated_ap_rst_req) -#define GPIO_ENTERING_RW NAMED_GPIO(ec_entering_rw) -#define GPIO_EN_PP3300_A NAMED_GPIO(en_pp3300_a) -#define GPIO_EN_PP5000 NAMED_GPIO(en_pp5000_a) -#define GPIO_EN_USB_A_5V NAMED_GPIO(en_usb_a_5v) -#define GPIO_USB_C0_PD_INT_ODL NAMED_GPIO(usb_c0_pd_int_odl) -#define GPIO_USB_C1_PD_INT_ODL NAMED_GPIO(usb_c1_pd_int_odl) -#define GPIO_LID_OPEN NAMED_GPIO(lid_open_ec) -#define GPIO_PMIC_KPD_PWR_ODL NAMED_GPIO(pmic_kpd_pwr_odl) -#define GPIO_PMIC_RESIN_L NAMED_GPIO(pm845_resin_l) -#define GPIO_POWER_BUTTON_L NAMED_GPIO(ec_pwr_btn_odl) -#define GPIO_POWER_GOOD NAMED_GPIO(power_good) -#define GPIO_PS_HOLD NAMED_GPIO(ps_hold) -#define GPIO_QSIP_ON NAMED_GPIO(qsip_on) -#define GPIO_SKU_ID0 NAMED_GPIO(sku_id0) -#define GPIO_SKU_ID1 NAMED_GPIO(sku_id1) -#define GPIO_SKU_ID2 NAMED_GPIO(sku_id2) -#define GPIO_SWITCHCAP_ON NAMED_GPIO(switchcap_on) -#define GPIO_SWITCHCAP_ON_L NAMED_GPIO(switchcap_on) -#define GPIO_SWITCHCAP_PG_INT_L NAMED_GPIO(da9313_gpio0) -#define GPIO_USB_A0_OC_ODL NAMED_GPIO(usb_a0_oc_odl) -#define GPIO_USB_C0_BC12_INT_L NAMED_GPIO(usb_c0_bc12_int_l) -#define GPIO_USB_C1_BC12_INT_L NAMED_GPIO(usb_c1_bc12_int_l) -#define GPIO_USB_C0_PD_RST_L NAMED_GPIO(usb_c0_pd_rst_l) -#define GPIO_USB_C1_PD_RST_L NAMED_GPIO(usb_c1_pd_rst_l) -#define GPIO_USB_C0_SWCTL_INT_ODL NAMED_GPIO(usb_c0_swctl_int_odl) -#define GPIO_USB_C1_SWCTL_INT_ODL NAMED_GPIO(usb_c1_swctl_int_odl) -#define GPIO_WARM_RESET_L NAMED_GPIO(warm_reset_l) -#define GPIO_WP_L NAMED_GPIO(ec_wp_odl) -#define GPIO_EC_INT_L NAMED_GPIO(ec_int_l) -#define GPIO_KBD_KSO2 NAMED_GPIO(ec_kso_02_inv) -#define GPIO_ENABLE_BACKLIGHT NAMED_GPIO(ec_bl_disable_l) -#define GPIO_VOLUME_DOWN_L NAMED_GPIO(ec_voldn_btn_odl) -#define GPIO_VOLUME_UP_L NAMED_GPIO(ec_volup_btn_odl) - /* * Set EC_CROS_GPIO_INTERRUPTS to a space-separated list of GPIO_INT items. * diff --git a/zephyr/projects/volteer/delbin/gpio.dts b/zephyr/projects/volteer/delbin/gpio.dts index 03f4b3ffd3..c29b8a95c3 100644 --- a/zephyr/projects/volteer/delbin/gpio.dts +++ b/zephyr/projects/volteer/delbin/gpio.dts @@ -9,42 +9,57 @@ ec_lid_open { gpios = <&gpiod 2 GPIO_INPUT>; + enum-name = "GPIO_LID_OPEN"; label = "EC_LID_OPEN"; }; ec_wp_l { gpios = <&gpioa 1 GPIO_INPUT>; + enum-name = "GPIO_WP_L"; label = "EC_WP_L"; }; h1_ec_pwr_btn_odl { gpios = <&gpio0 1 GPIO_INPUT>; + enum-name = "GPIO_POWER_BUTTON_L"; label = "H1_EC_PWR_BTN_ODL"; }; acok_od { gpios = <&gpio0 0 GPIO_INPUT>; + enum-name = "GPIO_AC_PRESENT"; label = "ACOK_OD"; }; slp_s0_l { gpios = <&gpiod 5 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S0_L"; label = "SLP_S0_L"; }; slp_s3_l { gpios = <&gpioa 5 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S3_L"; label = "SLP_S3_L"; }; slp_sus_l { gpios = <&gpiod 7 GPIO_INPUT>; + enum-name = "GPIO_SLP_SUS_L"; label = "SLP_SUS_L"; }; pg_ec_rsmrst_odl { gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_RSMRST_ODL"; label = "PG_EC_RSMRST_ODL"; }; + rsmrst_l_pgood { + gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_RSMRST_L_PGOOD"; + label = "RSMRST_L_PGOOD"; + }; dsw_pwrok { gpios = <&gpioc 7 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_DSW_PWROK"; label = "DSW_PWROK"; }; pg_ec_all_sys_pwrgd { gpios = <&gpiof 4 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_ALL_SYS_PWRGD"; label = "PG_EC_ALL_SYS_PWRGD"; }; ec_imu_int_l { @@ -93,14 +108,17 @@ }; en_pp3300_a { gpios = <&gpioa 3 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP3300_A"; label = "EN_PP3300_A"; }; en_pp5000_a { gpios = <&gpioa 4 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000"; label = "EN_PP5000_A"; }; en_ppvar_vccin { gpios = <&gpio4 3 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PPVAR_VCCIN"; label = "EN_PPVAR_VCCIN"; }; ec_rst_odl { @@ -109,38 +127,47 @@ }; ec_pch_sys_pwrok { gpios = <&gpio3 7 GPIO_OUT_LOW>; + enum-name = "GPIO_EC_PCH_SYS_PWROK"; label = "EC_PCH_SYS_PWROK"; }; ec_pch_rsmrst_odl { gpios = <&gpioa 6 GPIO_ODR_LOW>; + enum-name = "GPIO_PCH_RSMRST_L"; label = "EC_PCH_RSMRST_ODL"; }; ec_pch_pwr_btn_odl { gpios = <&gpioc 1 GPIO_ODR_HIGH>; + enum-name = "GPIO_PCH_PWRBTN_L"; label = "EC_PCH_PWR_BTN_ODL"; }; ec_pch_rtcrst { gpios = <&gpio7 6 GPIO_OUT_LOW>; + enum-name = "GPIO_PCH_RTCRST"; label = "EC_PCH_RTCRST"; }; ec_pch_wake_odl { gpios = <&gpio7 4 GPIO_ODR_HIGH>; + enum-name = "GPIO_EC_PCH_WAKE_ODL"; label = "EC_PCH_WAKE_ODL"; }; ec_entering_rw { gpios = <&gpioe 3 GPIO_OUT_LOW>; + enum-name = "GPIO_ENTERING_RW"; label = "EC_ENTERING_RW"; }; ec_prochot_odl { gpios = <&gpio6 3 GPIO_ODR_HIGH>; + enum-name = "GPIO_CPU_PROCHOT"; label = "EC_PROCHOT_ODL"; }; ec_prochot_in_l { gpios = <&gpiof 0 GPIO_INPUT>; + enum-name = "GPIO_EC_PROCHOT_IN_L"; label = "EC_PROCHOT_IN_L"; }; sys_rst_odl { gpios = <&gpioc 5 GPIO_ODR_HIGH>; + enum-name = "GPIO_SYS_RESET_L"; label = "SYS_RST_ODL"; }; ec_pch_int_odl { @@ -225,6 +252,7 @@ }; ec_edp_bl_en { gpios = <&gpiod 3 GPIO_OUT_HIGH>; + enum-name = "GPIO_ENABLE_BACKLIGHT"; label = "EC_EDP_BL_EN"; }; ec_i2c0_sensor_scl { @@ -293,6 +321,7 @@ }; ec_kso_02_inv { gpios = <&gpio1 7 GPIO_OUT_LOW>; + enum-name = "GPIO_KBD_KSO2"; label = "EC_KSO_02_INV"; }; }; diff --git a/zephyr/projects/volteer/delbin/include/gpio_map.h b/zephyr/projects/volteer/delbin/include/gpio_map.h index a9720151a5..0dce0d3be8 100644 --- a/zephyr/projects/volteer/delbin/include/gpio_map.h +++ b/zephyr/projects/volteer/delbin/include/gpio_map.h @@ -9,32 +9,7 @@ #include #include -#define GPIO_AC_PRESENT NAMED_GPIO(acok_od) -#define GPIO_CPU_PROCHOT NAMED_GPIO(ec_prochot_odl) -#define GPIO_EC_PCH_SYS_PWROK NAMED_GPIO(ec_pch_sys_pwrok) -#define GPIO_EC_PCH_WAKE_ODL NAMED_GPIO(ec_pch_wake_odl) -#define GPIO_EC_PROCHOT_IN_L NAMED_GPIO(ec_prochot_in_l) -#define GPIO_ENABLE_BACKLIGHT NAMED_GPIO(ec_edp_bl_en) -#define GPIO_ENTERING_RW NAMED_GPIO(ec_entering_rw) -#define GPIO_EN_PP3300_A NAMED_GPIO(en_pp3300_a) -#define GPIO_EN_PP5000 NAMED_GPIO(en_pp5000_a) -#define GPIO_EN_PPVAR_VCCIN NAMED_GPIO(en_ppvar_vccin) -#define GPIO_KBD_KSO2 NAMED_GPIO(ec_kso_02_inv) -#define GPIO_LID_OPEN NAMED_GPIO(ec_lid_open) -#define GPIO_PCH_PWRBTN_L NAMED_GPIO(ec_pch_pwr_btn_odl) -#define GPIO_PCH_RSMRST_L NAMED_GPIO(ec_pch_rsmrst_odl) -#define GPIO_PCH_RTCRST NAMED_GPIO(ec_pch_rtcrst) -#define GPIO_PCH_SLP_S0_L NAMED_GPIO(slp_s0_l) -#define GPIO_PCH_SLP_S3_L NAMED_GPIO(slp_s3_l) #define GPIO_PCH_DSW_PWROK GPIO_UNIMPLEMENTED -#define GPIO_PG_EC_ALL_SYS_PWRGD NAMED_GPIO(pg_ec_all_sys_pwrgd) -#define GPIO_PG_EC_DSW_PWROK NAMED_GPIO(dsw_pwrok) -#define GPIO_PG_EC_RSMRST_ODL NAMED_GPIO(pg_ec_rsmrst_odl) -#define GPIO_POWER_BUTTON_L NAMED_GPIO(h1_ec_pwr_btn_odl) -#define GPIO_RSMRST_L_PGOOD NAMED_GPIO(pg_ec_rsmrst_odl) -#define GPIO_SLP_SUS_L NAMED_GPIO(slp_sus_l) -#define GPIO_SYS_RESET_L NAMED_GPIO(sys_rst_odl) -#define GPIO_WP_L NAMED_GPIO(ec_wp_l) #ifdef CONFIG_PLATFORM_EC_POWERSEQ #define POWER_SIGNAL_INT(gpio, edge) \ diff --git a/zephyr/projects/volteer/volteer/gpio.dts b/zephyr/projects/volteer/volteer/gpio.dts index cd4e780253..c5934b77b2 100644 --- a/zephyr/projects/volteer/volteer/gpio.dts +++ b/zephyr/projects/volteer/volteer/gpio.dts @@ -9,54 +9,82 @@ ec_lid_open { gpios = <&gpiod 2 GPIO_INPUT>; + enum-name = "GPIO_LID_OPEN"; label = "EC_LID_OPEN"; }; ec_wp_l { gpios = <&gpioa 1 GPIO_INPUT>; + enum-name = "GPIO_EC_WP_L"; label = "EC_WP_L"; }; + wp_l { + gpios = <&gpioa 1 GPIO_INPUT>; + enum-name = "GPIO_WP_L"; + label = "WP_L"; + }; h1_ec_pwr_btn_odl { gpios = <&gpio0 1 GPIO_INPUT>; + enum-name = "GPIO_POWER_BUTTON_L"; label = "H1_EC_PWR_BTN_ODL"; }; acok_od { gpios = <&gpio0 0 GPIO_INPUT>; + enum-name = "GPIO_AC_PRESENT"; label = "ACOK_OD"; }; slp_s0_l { gpios = <&gpiod 5 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S0_L"; label = "SLP_S0_L"; }; slp_s3_l { gpios = <&gpioa 5 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_S3_L"; label = "SLP_S3_L"; }; + pch_slp_sus_l { + gpios = <&gpiod 7 GPIO_INPUT>; + enum-name = "GPIO_PCH_SLP_SUS_L"; + label = "PCH_SLP_SUS_L"; + }; slp_sus_l { gpios = <&gpiod 7 GPIO_INPUT>; + enum-name = "GPIO_SLP_SUS_L"; label = "SLP_SUS_L"; }; pg_ec_rsmrst_odl { gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_RSMRST_ODL"; label = "PG_EC_RSMRST_ODL"; }; + rsmrst_l_pgood { + gpios = <&gpioe 2 GPIO_INPUT>; + enum-name = "GPIO_RSMRST_L_PGOOD"; + label = "RSMRST_L_PGOOD"; + }; pg_ec_dsw_pwrok { gpios = <&gpioc 7 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_DSW_PWROK"; label = "PG_EC_DSW_PWROK"; }; pg_ec_all_sys_pwrgd { gpios = <&gpiof 4 GPIO_INPUT>; + enum-name = "GPIO_PG_EC_ALL_SYS_PWRGD"; label = "PG_EC_ALL_SYS_PWRGD"; }; gpio_ec_imu_int_l: ec_imu_int_l { gpios = <&gpio5 6 GPIO_INPUT>; + enum-name = "GPIO_EC_IMU_INT_L"; label = "EC_IMU_INT_L"; }; gpio_ec_als_rgb_int_l: ec_als_rgb_int_l { gpios = <&gpiod 4 GPIO_INPUT>; + enum-name = "GPIO_EC_ALS_RGB_INT_L"; label = "EC_ALS_RGB_INT_L"; }; tablet_mode_l { gpios = <&gpio9 5 GPIO_INPUT>; + enum-name = "GPIO_TABLET_MODE_L"; label = "TABLET_MODE_L"; }; ec_accel_int { @@ -65,55 +93,79 @@ }; usb_c0_tcpc_int_odl { gpios = <&gpioe 0 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_TCPC_INT_ODL"; label = "USB_C0_TCPC_INT_ODL"; }; usb_c1_tcpc_int_odl { gpios = <&gpioa 2 GPIO_INPUT>; + enum-name = "GPIO_USB_C1_TCPC_INT_ODL"; label = "USB_C1_TCPC_INT_ODL"; }; usb_c0_ppc_int_odl { gpios = <&gpio6 2 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_PPC_INT_ODL"; label = "USB_C0_PPC_INT_ODL"; }; usb_c1_ppc_int_odl { gpios = <&gpiof 5 GPIO_INPUT>; + enum-name = "GPIO_USB_C1_PPC_INT_ODL"; label = "USB_C1_PPC_INT_ODL"; }; usb_c0_bc12_int_odl { gpios = <&gpioe 4 GPIO_INPUT>; + enum-name = "GPIO_USB_C0_BC12_INT_ODL"; label = "USB_C0_BC12_INT_ODL"; }; gpio_usb_c1_mix_int_odl: usb_c1_mix_int_odl { #gpio-cells = <0>; gpios = <&gpio0 3 GPIO_INPUT>; + enum-name = "GPIO_USB_C1_MIX_INT_ODL"; label = "USB_C1_MIX_INT_ODL"; }; + usb_c1_bc12_int_odl { + #gpio-cells = <0>; + gpios = <&gpio0 3 GPIO_INPUT>; + enum-name = "GPIO_USB_C1_BC12_INT_ODL"; + label = "USB_C1_BC12_INT_ODL"; + }; usb_c1_frs_en { gpios = <&gpio9 4 GPIO_OUT_LOW>; + enum-name = "GPIO_USB_C1_FRS_EN"; label = "USB_C1_FRS_EN"; }; ec_voldn_btn_odl { gpios = <&gpio9 3 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_VOLUME_DOWN_L"; label = "EC_VOLDN_BTN_ODL"; }; ec_volup_btn_odl { gpios = <&gpio9 7 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_VOLUME_UP_L"; label = "EC_VOLUP_BTN_ODL"; }; en_pp3300_a { gpios = <&gpioa 3 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP3300_A"; label = "EN_PP3300_A"; }; + en_pp5000 { + gpios = <&gpioa 4 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000"; + label = "EN_PP5000"; + }; en_pp5000_a { gpios = <&gpioa 4 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000_A"; label = "EN_PP5000_A"; }; en_ppvar_vccin { gpios = <&gpio4 3 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PPVAR_VCCIN"; label = "EN_PPVAR_VCCIN"; }; ec_pch_dsw_pwrok { gpios = <&gpioc 0 GPIO_OUT_LOW>; + enum-name = "GPIO_PCH_DSW_PWROK"; label = "EC_PCH_DSW_PWROK"; }; ec_rst_odl { @@ -122,46 +174,57 @@ }; ec_pch_sys_pwrok { gpios = <&gpio3 7 GPIO_OUT_LOW>; + enum-name = "GPIO_EC_PCH_SYS_PWROK"; label = "EC_PCH_SYS_PWROK"; }; ec_pch_rsmrst_odl { gpios = <&gpioa 6 GPIO_ODR_LOW>; + enum-name = "GPIO_PCH_RSMRST_L"; label = "EC_PCH_RSMRST_ODL"; }; ec_pch_pwr_btn_odl { gpios = <&gpioc 1 GPIO_ODR_HIGH>; + enum-name = "GPIO_PCH_PWRBTN_L"; label = "EC_PCH_PWR_BTN_ODL"; }; ec_pch_rtcrst { gpios = <&gpio7 6 GPIO_OUT_LOW>; + enum-name = "GPIO_PCH_RTCRST"; label = "EC_PCH_RTCRST"; }; ec_pch_wake_odl { gpios = <&gpio7 4 GPIO_ODR_HIGH>; + enum-name = "GPIO_EC_PCH_WAKE_ODL"; label = "EC_PCH_WAKE_ODL"; }; ec_entering_rw { gpios = <&gpioe 3 GPIO_OUT_LOW>; + enum-name = "GPIO_ENTERING_RW"; label = "EC_ENTERING_RW"; }; ec_prochot_odl { gpios = <&gpio6 3 GPIO_ODR_HIGH>; + enum-name = "GPIO_CPU_PROCHOT"; label = "EC_PROCHOT_ODL"; }; ec_prochot_in_l { gpios = <&gpiof 0 GPIO_INPUT>; + enum-name = "GPIO_EC_PROCHOT_IN_L"; label = "EC_PROCHOT_IN_L"; }; sys_rst_odl { gpios = <&gpioc 5 GPIO_ODR_HIGH>; + enum-name = "GPIO_SYS_RESET_L"; label = "SYS_RST_ODL"; }; ec_pch_int_odl { gpios = <&gpiob 0 GPIO_ODR_HIGH>; + enum-name = "GPIO_EC_INT_L"; label = "EC_PCH_INT_ODL"; }; en_pp5000_usba { gpios = <&gpioc 6 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000_USBA"; label = "EN_PP5000_USBA"; }; usb_a_low_pwr_od { @@ -176,14 +239,17 @@ gpio_usb_c1_rt_rst_odl: usb_c1_rt_rst_odl { #gpio-cells = <0>; gpios = <&gpio8 3 GPIO_ODR_LOW>; + enum-name = "GPIO_USB_C1_RT_RST_ODL"; label = "USB_C1_RT_RST_ODL"; }; usb_c0_oc_odl { gpios = <&gpiob 1 GPIO_ODR_HIGH>; + enum-name = "GPIO_USB_C0_OC_ODL"; label = "USB_C0_OC_ODL"; }; usb_c1_oc_odl { gpios = <&gpio5 0 GPIO_ODR_HIGH>; + enum-name = "GPIO_USB_C1_OC_ODL"; label = "USB_C1_OC_ODL"; }; usb_c1_rt_int_odl { @@ -192,6 +258,7 @@ }; ec_h1_packet_mode { gpios = <&gpio7 5 GPIO_OUT_LOW>; + enum-name = "GPIO_PACKET_MODE_EN"; label = "EC_H1_PACKET_MODE"; }; m2_ssd_pln { @@ -213,6 +280,7 @@ gpio_unused_gpio41: unused_gpio41 { #gpio-cells = <0>; gpios = <&gpio4 1 (GPIO_INPUT | GPIO_PULL_UP)>; + enum-name = "GPIO_USB_C1_LS_EN"; label = "UNUSED_GPIO41"; }; unused_gpiof2 { @@ -237,14 +305,17 @@ }; ec_edp_bl_en { gpios = <&gpiod 3 GPIO_OUT_HIGH>; + enum-name = "GPIO_ENABLE_BACKLIGHT"; label = "EC_EDP_BL_EN"; }; ec_i2c0_sensor_scl { gpios = <&gpiob 5 GPIO_INPUT>; + enum-name = "GPIO_EC_I2C0_SENSOR_SCL"; label = "EC_I2C0_SENSOR_SCL"; }; ec_i2c0_sensor_sda { gpios = <&gpiob 4 GPIO_INPUT>; + enum-name = "GPIO_EC_I2C0_SENSOR_SDA"; label = "EC_I2C0_SENSOR_SDA"; }; ec_i2c1_usb_c0_scl { @@ -289,14 +360,17 @@ }; ec_batt_pres_odl { gpios = <&gpioe 1 GPIO_INPUT>; + enum-name = "GPIO_EC_BATT_PRES_ODL"; label = "EC_BATT_PRES_ODL"; }; gpio_en_pp5000_fan: en_pp5000_fan { gpios = <&gpio6 1 GPIO_OUT_LOW>; + enum-name = "GPIO_EN_PP5000_FAN"; label = "EN_PP5000_FAN"; }; ec_kso_02_inv { gpios = <&gpio1 7 GPIO_OUT_LOW>; + enum-name = "GPIO_KBD_KSO2"; label = "EC_KSO_02_INV"; }; }; diff --git a/zephyr/projects/volteer/volteer/include/gpio_map.h b/zephyr/projects/volteer/volteer/include/gpio_map.h index 0b2f33f86d..d1de4eed76 100644 --- a/zephyr/projects/volteer/volteer/include/gpio_map.h +++ b/zephyr/projects/volteer/volteer/include/gpio_map.h @@ -21,74 +21,7 @@ * Note we only need to create aliases for GPIOs that are referenced in common * platform/ec code. */ -#define GPIO_AC_PRESENT NAMED_GPIO(acok_od) -#define GPIO_CPU_PROCHOT NAMED_GPIO(ec_prochot_odl) -#define GPIO_EC_ALS_RGB_INT_L NAMED_GPIO(ec_als_rgb_int_l) -#define GPIO_EC_BATT_PRES_ODL NAMED_GPIO(ec_batt_pres_odl) -#define GPIO_EC_INT_L NAMED_GPIO(ec_pch_int_odl) -#define GPIO_EC_IMU_INT_L NAMED_GPIO(ec_imu_int_l) -#define GPIO_EC_PCH_SYS_PWROK NAMED_GPIO(ec_pch_sys_pwrok) -#define GPIO_EC_PCH_WAKE_ODL NAMED_GPIO(ec_pch_wake_odl) -#define GPIO_EC_WP_L NAMED_GPIO(ec_wp_l) -#define GPIO_EN_PP3300_A NAMED_GPIO(en_pp3300_a) -#define GPIO_EN_PP5000 NAMED_GPIO(en_pp5000_a) -#define GPIO_EN_PP5000_A NAMED_GPIO(en_pp5000_a) -#define GPIO_EN_PPVAR_VCCIN NAMED_GPIO(en_ppvar_vccin) -#define GPIO_ENABLE_BACKLIGHT NAMED_GPIO(ec_edp_bl_en) -#define GPIO_ENTERING_RW NAMED_GPIO(ec_entering_rw) -#define GPIO_KBD_KSO2 NAMED_GPIO(ec_kso_02_inv) -#define GPIO_LID_OPEN NAMED_GPIO(ec_lid_open) -#define GPIO_PACKET_MODE_EN NAMED_GPIO(ec_h1_packet_mode) -#define GPIO_PCH_DSW_PWROK NAMED_GPIO(ec_pch_dsw_pwrok) -#define GPIO_PCH_PWRBTN_L NAMED_GPIO(ec_pch_pwr_btn_odl) -#define GPIO_PCH_RSMRST_L NAMED_GPIO(ec_pch_rsmrst_odl) -#define GPIO_PCH_RTCRST NAMED_GPIO(ec_pch_rtcrst) -#define GPIO_PCH_SLP_S0_L NAMED_GPIO(slp_s0_l) -#define GPIO_PCH_SLP_S3_L NAMED_GPIO(slp_s3_l) -#define GPIO_PCH_SLP_SUS_L NAMED_GPIO(slp_sus_l) -#define GPIO_PG_EC_ALL_SYS_PWRGD NAMED_GPIO(pg_ec_all_sys_pwrgd) -#define GPIO_PG_EC_DSW_PWROK NAMED_GPIO(pg_ec_dsw_pwrok) -#define GPIO_PG_EC_RSMRST_ODL NAMED_GPIO(pg_ec_rsmrst_odl) -#define GPIO_POWER_BUTTON_L NAMED_GPIO(h1_ec_pwr_btn_odl) -#define GPIO_RSMRST_L_PGOOD NAMED_GPIO(pg_ec_rsmrst_odl) -#define GPIO_SLP_SUS_L NAMED_GPIO(slp_sus_l) -#define GPIO_SYS_RESET_L NAMED_GPIO(sys_rst_odl) -#define GPIO_TABLET_MODE_L NAMED_GPIO(tablet_mode_l) -#define GPIO_VOLUME_DOWN_L NAMED_GPIO(ec_voldn_btn_odl) -#define GPIO_VOLUME_UP_L NAMED_GPIO(ec_volup_btn_odl) -#define GPIO_WP_L NAMED_GPIO(ec_wp_l) -#define CONFIG_TEMP_SENSOR_POWER_GPIO NAMED_GPIO(pg_ec_dsw_pwrok) - -/* USB-C interrupts */ -#define GPIO_USB_C0_TCPC_INT_ODL NAMED_GPIO(usb_c0_tcpc_int_odl) -#define GPIO_USB_C1_TCPC_INT_ODL NAMED_GPIO(usb_c1_tcpc_int_odl) - -#define GPIO_USB_C0_PPC_INT_ODL NAMED_GPIO(usb_c0_ppc_int_odl) -#define GPIO_USB_C1_PPC_INT_ODL NAMED_GPIO(usb_c1_ppc_int_odl) - -#define GPIO_USB_C0_BC12_INT_ODL NAMED_GPIO(usb_c0_bc12_int_odl) -#define GPIO_USB_C1_MIX_INT_ODL NAMED_GPIO(usb_c1_mix_int_odl) - -#define GPIO_USB_C0_OC_ODL NAMED_GPIO(usb_c0_oc_odl) -#define GPIO_USB_C1_OC_ODL NAMED_GPIO(usb_c1_oc_odl) - -/* USB and USBC Signals */ -#define GPIO_EN_PP5000_USBA NAMED_GPIO(en_pp5000_usba) -#define GPIO_USB_C1_FRS_EN NAMED_GPIO(usb_c1_frs_en) -#define GPIO_USB_C1_RT_RST_ODL \ - NAMED_GPIO_NODELABEL(usb_c1_bb_retimer, reset_gpios) - -/* Fan control */ -#define GPIO_EN_PP5000_FAN NAMED_GPIO(en_pp5000_fan) - -/* Don't have a load switch for retimer */ -/* TODO(b/176559881): How to do unimplemented GPIOs? */ -#define GPIO_USB_C1_LS_EN \ - NAMED_GPIO_NODELABEL(usb_c1_bb_retimer, ls_en_gpios) - -#define GPIO_USB_C1_BC12_INT_ODL GPIO_USB_C1_MIX_INT_ODL - -#define GPIO_EC_PROCHOT_IN_L NAMED_GPIO(ec_prochot_in_l) +#define CONFIG_TEMP_SENSOR_POWER_GPIO GPIO_PG_EC_DSW_PWROK /* Helper macros for generating CROS_EC_GPIO_INTERRUPTS */ #ifdef CONFIG_PLATFORM_EC_POWERSEQ diff --git a/zephyr/shim/include/zephyr_gpio_signal.h b/zephyr/shim/include/zephyr_gpio_signal.h index c2b64e117b..ff047476d9 100644 --- a/zephyr/shim/include/zephyr_gpio_signal.h +++ b/zephyr/shim/include/zephyr_gpio_signal.h @@ -11,8 +11,9 @@ #include #include -#define GPIO_SIGNAL(id) DT_CAT(GPIO_, id) -#define GPIO_SIGNAL_WITH_COMMA(id) GPIO_SIGNAL(id), +#define GPIO_SIGNAL(id) DT_ENUM_UPPER_TOKEN(id, enum_name) +#define GPIO_SIGNAL_WITH_COMMA(id) \ + COND_CODE_1(DT_NODE_HAS_PROP(id, enum_name), (GPIO_SIGNAL(id), ), ()) enum gpio_signal { GPIO_UNIMPLEMENTED = -1, #if DT_NODE_EXISTS(DT_PATH(named_gpios)) diff --git a/zephyr/shim/src/gpio.c b/zephyr/shim/src/gpio.c index 020cb54d31..37cfe3e3b4 100644 --- a/zephyr/shim/src/gpio.c +++ b/zephyr/shim/src/gpio.c @@ -27,13 +27,17 @@ struct gpio_config { gpio_flags_t init_flags; }; -#define GPIO_CONFIG(id) \ - { \ - .name = DT_LABEL(id), \ - .dev_name = DT_LABEL(DT_PHANDLE(id, gpios)), \ - .pin = DT_GPIO_PIN(id, gpios), \ - .init_flags = DT_GPIO_FLAGS(id, gpios), \ - }, +#define GPIO_CONFIG(id) \ + COND_CODE_1( \ + DT_NODE_HAS_PROP(id, enum_name), \ + ( \ + { \ + .name = DT_LABEL(id), \ + .dev_name = DT_LABEL(DT_PHANDLE(id, gpios)), \ + .pin = DT_GPIO_PIN(id, gpios), \ + .init_flags = DT_GPIO_FLAGS(id, gpios), \ + }, ), \ + ()) static const struct gpio_config configs[] = { #if DT_NODE_EXISTS(DT_PATH(named_gpios)) DT_FOREACH_CHILD(DT_PATH(named_gpios), GPIO_CONFIG) @@ -46,7 +50,7 @@ struct gpio_data { const struct device *dev; }; -#define GPIO_DATA(id) {}, +#define GPIO_DATA(id) COND_CODE_1(DT_NODE_HAS_PROP(id, enum_name), ({}, ), ()) static struct gpio_data data[] = { #if DT_NODE_EXISTS(DT_PATH(named_gpios)) DT_FOREACH_CHILD(DT_PATH(named_gpios), GPIO_DATA) -- cgit v1.2.1