Skip to content

Commit 0ac2dca

Browse files
committed
tmp
1 parent 3ce126a commit 0ac2dca

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

cores/arduino/Arduino.h

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/*
22
* Copyright (c) 2022 Dhruva Gole
3+
* Copyright (c) 2025 TOKITA Hiroshi
34
*
45
* SPDX-License-Identifier: Apache-2.0
56
*/
@@ -14,6 +15,14 @@
1415
#include <zephyr/drivers/adc.h>
1516
#include <zephyr/drivers/i2c.h>
1617

18+
#define ZARD_ADD_NGPIOS(i, n, p) DT_PROP(DT_PROP_BY_IDX(n, p, i), ngpios) +
19+
#define ZARD_ACCUM_NGPIOS(n, p, i, nd) \
20+
COND_CODE_1(DT_SAME_NODE(DT_PROP_BY_IDX(n, p, i), nd), \
21+
(LISTIFY(i, ZARD_ADD_NGPIOS, (), n, p)), ())
22+
#define ZARD_GLOBAL_GPIO_NUM(n, p, i) \
23+
DT_FOREACH_PROP_ELEM_VARGS(DT_PATH(zephyr_user), gpios, ZARD_ACCUM_NGPIOS, \
24+
DT_PHANDLE_BY_IDX(n, p, i)) \
25+
DT_PHA_BY_IDX(n, p, i, pin)
1726
#define DIGITAL_PIN_EXISTS(n, p, i, dev, num) \
1827
(((dev == DT_REG_ADDR(DT_PHANDLE_BY_IDX(n, p, i))) && \
1928
(num == DT_PHA_BY_IDX(n, p, i, pin))) \
@@ -46,6 +55,7 @@
4655

4756
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), builtin_led_gpios) && \
4857
(DT_PROP_LEN(DT_PATH(zephyr_user), builtin_led_gpios) > 0)
58+
#define LED_BUILTIN ZARD_GLOBAL_GPIO_NUM(DT_PATH(zephyr_user), builtin_led_gpios, 0)
4959

5060
#if !(DT_FOREACH_PROP_ELEM_SEP_VARGS( \
5161
DT_PATH(zephyr_user), digital_pin_gpios, DIGITAL_PIN_EXISTS, (+), \
@@ -67,6 +77,7 @@
6777
DT_PHA_BY_IDX(DT_ALIAS(led0), gpios, 0, pin)) > 0)
6878
#warning "pin not found in digital_pin_gpios"
6979
#else
80+
//#define LED_BUILTIN ZARD_GLOBAL_GPIO_NUM(DT_ALIAS(led0), gpios, 0)
7081
#define LED_BUILTIN \
7182
DIGITAL_PIN_GPIOS_FIND_PIN(DT_REG_ADDR(DT_PHANDLE_BY_IDX(DT_ALIAS(led0), gpios, 0)), \
7283
DT_PHA_BY_IDX(DT_ALIAS(led0), gpios, 0, pin))
@@ -80,15 +91,24 @@
8091

8192
/*
8293
* expand as
83-
* enum digitalPins { D0, D1, ... LED... NUM_OF_DIGITAL_PINS };
94+
* enum digitalPins { D0, D1, ... };
8495
*/
96+
#define ZARD_DN_ENUMS(n, p, i) DX##i = ZARD_GLOBAL_GPIO_NUM(n, p, i)
97+
enum digitalPinsx {
98+
DT_FOREACH_PROP_ELEM_SEP(DT_PATH(zephyr_user), digital_pin_gpios, ZARD_DN_ENUMS, (,))
99+
};
100+
85101
enum digitalPins {
86102
DT_FOREACH_PROP_ELEM_SEP(DT_PATH(zephyr_user), digital_pin_gpios, DN_ENUMS, (, )),
87103
NUM_OF_DIGITAL_PINS
88104
};
89105

90106
#ifdef CONFIG_ADC
91107

108+
#define ZARD_AN_ENUMS(n, p, i) AX##i = ZARD_GLOBAL_GPIO_NUM(n, p, i)
109+
enum analogPinsx {
110+
DT_FOREACH_PROP_ELEM_SEP(DT_PATH(zephyr_user), adc_pin_gpios, ZARD_AN_ENUMS, (,))
111+
};
92112
#define AN_ENUMS(n, p, i) A ## i = DIGITAL_PIN_GPIOS_FIND_PIN( \
93113
DT_REG_ADDR(DT_PHANDLE_BY_IDX(DT_PATH(zephyr_user), p, i)), \
94114
DT_PHA_BY_IDX(DT_PATH(zephyr_user), p, i, pin)),

0 commit comments

Comments
 (0)