@@ -242,8 +242,14 @@ void handleGpioCallback(const struct device *port, struct gpio_callback *cb, uin
242242 ())
243243
244244const 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+
261269size_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
295303const 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
312326struct 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+
320342size_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