summaryrefslogtreecommitdiff
path: root/zephyr/shim/src/gpio_id.c
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/shim/src/gpio_id.c')
-rw-r--r--zephyr/shim/src/gpio_id.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/zephyr/shim/src/gpio_id.c b/zephyr/shim/src/gpio_id.c
index e157e2d487..b994154cd1 100644
--- a/zephyr/shim/src/gpio_id.c
+++ b/zephyr/shim/src/gpio_id.c
@@ -3,14 +3,16 @@
* found in the LICENSE file.
*/
+#include <zephyr/devicetree.h>
+
#ifdef __REQUIRE_ZEPHYR_GPIOS__
#undef __REQUIRE_ZEPHYR_GPIOS__
#endif
-
#include "gpio.h"
#include "util.h"
-#include <zephyr/devicetree.h>
+#define IS_BOARD_COMPATIBLE DT_NODE_HAS_COMPAT(DT_PATH(board), cros_ec_gpio_id)
+#define IS_SKU_COMPATIBLE DT_NODE_HAS_COMPAT(DT_PATH(sku), cros_ec_gpio_id)
#define CONVERT_NUMERAL_SYSTEM_EVAL(system, bits, nbits) \
system##_from_bits(bits, nbits)
@@ -21,15 +23,14 @@
#define READ_PIN_FROM_PHANDLE(node_id, prop, idx) \
gpio_get_ternary(GPIO_SIGNAL(DT_PHANDLE_BY_IDX(node_id, prop, idx))),
-#define SKU_GPIO_ID_NODE DT_NODELABEL(gpio_id_sku)
-#if DT_NODE_HAS_STATUS(SKU_GPIO_ID_NODE, okay)
+#if DT_NODE_EXISTS(DT_PATH(sku)) && IS_SKU_COMPATIBLE
__override uint32_t board_get_sku_id(void)
{
static uint32_t sku_id = (uint32_t)-1;
if (sku_id == (uint32_t)-1) {
- int bits[] = { DT_FOREACH_PROP_ELEM(SKU_GPIO_ID_NODE, bits,
+ int bits[] = { DT_FOREACH_PROP_ELEM(DT_PATH(sku), bits,
READ_PIN_FROM_PHANDLE) };
if (sizeof(bits) == 0)
@@ -45,15 +46,14 @@ __override uint32_t board_get_sku_id(void)
#endif
-#define BOARD_GPIO_ID_NODE DT_NODELABEL(gpio_id_board)
-#if DT_NODE_HAS_STATUS(SKU_GPIO_ID_NODE, okay)
+#if DT_NODE_EXISTS(DT_PATH(board)) && IS_BOARD_COMPATIBLE
__override int board_get_version(void)
{
static int board_version = -1;
if (board_version == -1) {
- int bits[] = { DT_FOREACH_PROP_ELEM(BOARD_GPIO_ID_NODE, bits,
+ int bits[] = { DT_FOREACH_PROP_ELEM(DT_PATH(board), bits,
READ_PIN_FROM_PHANDLE) };
if (sizeof(bits) == 0)
@@ -68,7 +68,3 @@ __override int board_get_version(void)
}
#endif
-
-BUILD_ASSERT(DT_NODE_HAS_STATUS(SKU_GPIO_ID_NODE, okay) ||
- DT_NODE_HAS_STATUS(BOARD_GPIO_ID_NODE, okay),
- "neither sku or board id nodelabels found");