Skip to content

Commit 0dbaf95

Browse files
committed
x
1 parent 6f25613 commit 0dbaf95

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,14 @@ 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
247253
#elif defined(ZARD_PWM_CONNECTOR)
248254
DT_FOREACH_MAP_ENTRY(DT_NODELABEL(ZARD_PWM_CONNECTOR), pwm_map, PWM_CONN_CHANNEL_DT)
249255
#endif
@@ -258,6 +264,8 @@ const pin_size_t arduino_pwm_pins[] = {
258264
#endif
259265
};
260266

267+
BUILD_ASSERT(ARRAY_SIZE(arduino_pwm) == ARRAY_SIZE(arduino_pwm_pins));
268+
261269
size_t pwm_pin_index(pin_size_t pinNumber) {
262270
for(size_t i=0; i<ARRAY_SIZE(arduino_pwm_pins); i++) {
263271
if (arduino_pwm_pins[i] == pinNumber) {
@@ -294,7 +302,13 @@ size_t pwm_pin_index(pin_size_t pinNumber) {
294302

295303
const struct adc_dt_spec arduino_adc[] = {
296304
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), adc_pin_gpios)
305+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), digital_pin_gpios)
306+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), io_channels)
297307
DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user), io_channels, ADC_DT_SPEC)
308+
#endif
309+
#else //global pin rule
310+
//TODO
311+
#endif
298312
#elif defined(ZARD_ADC_CONNECTOR)
299313
DT_FOREACH_MAP_ENTRY(DT_NODELABEL(ZARD_ADC_CONNECTOR), io_channel_map, ADC_CONN_CHANNEL_DT)
300314
#endif
@@ -311,12 +325,20 @@ const pin_size_t arduino_analog_pins[] = {
311325

312326
struct adc_channel_cfg channel_cfg[ARRAY_SIZE(arduino_analog_pins)] = {
313327
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), adc_pin_gpios)
328+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), digital_pin_gpios)
329+
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), io_channels)
314330
DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user), io_channels, ADC_CH_CFG)
331+
#endif
332+
#else // global pin rule
333+
// TODO
334+
#endif
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)