Skip to content

Commit b3744ae

Browse files
committed
x
1 parent 6f25613 commit b3744ae

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

cores/arduino/zephyrCommon.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,15 @@ void handleGpioCallback(const struct device *port, struct gpio_callback *cb, uin
242242
())
243243

244244
const struct pwm_dt_spec arduino_pwm[] = {
245+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), pwm_pin_gpios)
246+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), digital_pin_gpios)
245247
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), pwms)
246248
DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user), pwms, PWM_DT_SPEC)
249+
#endif
250+
#else // global pin rule
251+
//TODO
252+
#endif
253+
#endif
247254
#elif defined(ZARD_PWM_CONNECTOR)
248255
DT_FOREACH_MAP_ENTRY(DT_NODELABEL(ZARD_PWM_CONNECTOR), pwm_map, PWM_CONN_CHANNEL_DT)
249256
#endif
@@ -258,6 +265,8 @@ const pin_size_t arduino_pwm_pins[] = {
258265
#endif
259266
};
260267

268+
BUILD_ASSERT(ARRAY_SIZE(arduino_pwm) == ARRAY_SIZE(arduino_pwm_pins));
269+
261270
size_t pwm_pin_index(pin_size_t pinNumber) {
262271
for(size_t i=0; i<ARRAY_SIZE(arduino_pwm_pins); i++) {
263272
if (arduino_pwm_pins[i] == pinNumber) {
@@ -294,7 +303,13 @@ size_t pwm_pin_index(pin_size_t pinNumber) {
294303

295304
const struct adc_dt_spec arduino_adc[] = {
296305
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), adc_pin_gpios)
306+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), digital_pin_gpios)
307+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), io_channels)
297308
DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user), io_channels, ADC_DT_SPEC)
309+
#endif
310+
#else //global pin rule
311+
//TODO
312+
#endif
298313
#elif defined(ZARD_ADC_CONNECTOR)
299314
DT_FOREACH_MAP_ENTRY(DT_NODELABEL(ZARD_ADC_CONNECTOR), io_channel_map, ADC_CONN_CHANNEL_DT)
300315
#endif
@@ -311,12 +326,19 @@ const pin_size_t arduino_analog_pins[] = {
311326

312327
struct adc_channel_cfg channel_cfg[ARRAY_SIZE(arduino_analog_pins)] = {
313328
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), adc_pin_gpios)
329+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), digital_pin_gpios)
330+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), io_channels)
314331
DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user), io_channels, ADC_CH_CFG)
332+
#endif
333+
#else // global pin rule
334+
// TODO
315335
#elif defined(ZARD_ADC_CONNECTOR)
316336
DT_FOREACH_MAP_ENTRY(DT_NODELABEL(ZARD_ADC_CONNECTOR), io_channel_map, ADC_CONN_CHANNEL_CFG)
317337
#endif
318338
};
319339

340+
BUILD_ASSERT(ARRAY_SIZE(arduino_adc) == ARRAY_SIZE(arduino_analog_pins));
341+
320342
size_t analog_pin_index(pin_size_t pinNumber) {
321343
for(size_t i=0; i<ARRAY_SIZE(arduino_analog_pins); i++) {
322344
if (arduino_analog_pins[i] == pinNumber) {

0 commit comments

Comments
 (0)