@@ -140,10 +140,10 @@ struct gpio_port_callback *find_gpio_port_callback(const struct device *dev)
140140
141141void setInterruptHandler (pin_size_t pinNumber, voidFuncPtr func)
142142{
143- struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
143+ struct gpio_port_callback *pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
144144
145145 if (pcb) {
146- pcb->handlers [BIT (arduino_pins[ pinNumber]. pin )].handler = func;
146+ pcb->handlers [BIT (local_gpio_pin ( pinNumber) )].handler = func;
147147 }
148148}
149149
@@ -229,26 +229,26 @@ void yield(void) {
229229 */
230230void pinMode (pin_size_t pinNumber, PinMode pinMode) {
231231 if (pinMode == INPUT) { // input mode
232- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
232+ global_gpio_pin_configure ( pinNumber,
233233 GPIO_INPUT | GPIO_ACTIVE_HIGH);
234234 } else if (pinMode == INPUT_PULLUP) { // input with internal pull-up
235- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
235+ global_gpio_pin_configure ( pinNumber,
236236 GPIO_INPUT | GPIO_PULL_UP | GPIO_ACTIVE_HIGH);
237237 } else if (pinMode == INPUT_PULLDOWN) { // input with internal pull-down
238- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
238+ global_gpio_pin_configure ( pinNumber,
239239 GPIO_INPUT | GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH);
240240 } else if (pinMode == OUTPUT) { // output mode
241- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
241+ global_gpio_pin_configure ( pinNumber,
242242 GPIO_OUTPUT_LOW | GPIO_ACTIVE_HIGH);
243243 }
244244}
245245
246246void digitalWrite (pin_size_t pinNumber, PinStatus status) {
247- gpio_pin_set_dt (&arduino_pins[ pinNumber] , status);
247+ gpio_pin_set ( local_gpio_port ( pinNumber), local_gpio_pin (pinNumber) , status);
248248}
249249
250250PinStatus digitalRead (pin_size_t pinNumber) {
251- return (gpio_pin_get_dt (&arduino_pins[ pinNumber] ) == 1 ) ? HIGH : LOW;
251+ return (gpio_pin_get ( local_gpio_port ( pinNumber), local_gpio_pin (pinNumber) ) == 1 ) ? HIGH : LOW;
252252}
253253
254254struct pin_timer {
@@ -415,16 +415,16 @@ void attachInterrupt(pin_size_t pinNumber, voidFuncPtr callback, PinStatus pinSt
415415 return ;
416416 }
417417
418- pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
418+ pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
419419 __ASSERT (pcb != nullptr , " gpio_port_callback not found" );
420420
421- pcb->pins |= BIT (arduino_pins[ pinNumber]. pin );
421+ pcb->pins |= BIT (local_gpio_pin ( pinNumber) );
422422 setInterruptHandler (pinNumber, callback);
423423 enableInterrupt (pinNumber);
424424
425- gpio_pin_interrupt_configure (arduino_pins[ pinNumber]. port , arduino_pins[ pinNumber]. pin , intmode);
425+ gpio_pin_interrupt_configure (local_gpio_port ( pinNumber), local_gpio_pin ( pinNumber) , intmode);
426426 gpio_init_callback (&pcb->callback , handleGpioCallback, pcb->pins );
427- gpio_add_callback (arduino_pins[ pinNumber]. port , &pcb->callback );
427+ gpio_add_callback (local_gpio_port ( pinNumber) , &pcb->callback );
428428}
429429
430430void detachInterrupt (pin_size_t pinNumber)
@@ -496,18 +496,18 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout
496496#endif // CONFIG_GPIO_GET_DIRECTION
497497
498498void enableInterrupt (pin_size_t pinNumber) {
499- struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
499+ struct gpio_port_callback *pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
500500
501501 if (pcb) {
502- pcb->handlers [BIT (arduino_pins[ pinNumber]. pin )].enabled = true ;
502+ pcb->handlers [BIT (local_gpio_pin ( pinNumber) )].enabled = true ;
503503 }
504504}
505505
506506void disableInterrupt (pin_size_t pinNumber) {
507- struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
507+ struct gpio_port_callback *pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
508508
509509 if (pcb) {
510- pcb->handlers [BIT (arduino_pins[ pinNumber]. pin )].enabled = false ;
510+ pcb->handlers [BIT (local_gpio_pin ( pinNumber) )].enabled = false ;
511511 }
512512}
513513
@@ -527,7 +527,7 @@ void noInterrupts(void) {
527527
528528int digitalPinToInterrupt (pin_size_t pin) {
529529 struct gpio_port_callback *pcb =
530- find_gpio_port_callback (arduino_pins[ pin]. port );
530+ find_gpio_port_callback (local_gpio_port ( pin) );
531531
532532 return (pcb) ? pin : -1 ;
533533}
@@ -537,5 +537,6 @@ int digitalPinToInterrupt(pin_size_t pin) {
537537#define PRINT_PIN (p, _ ) printf(STRINGIFY(Dx(p)) " :%d:%p:%d - " STRINGIFY(DXx(p)) " :%d:%p:%d\n " , Dx(p), arduino_pins[Dx(p)].port, arduino_pins[Dx(p)].pin, DXx(p), local_gpio_port(DXx(p)), local_gpio_pin(DXx(p)));
538538
539539void debug_dump (void ) {
540+ int x = LED_BUILTIN;
540541 LISTIFY (DT_PROP_LEN (DT_PATH (zephyr_user), digital_pin_gpios), PRINT_PIN, ());
541542}
0 commit comments