Skip to content

Commit 7dde3d9

Browse files
facchinmsoburi
authored andcommitted
boards: unoq/giga: add implementation of low-level gpio APIs
Allows compatibility with a broad set of libraries, like Adafruit's NeoPixel Co-Authored-by: Martino Facchin <m.facchin@arduino.cc> Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
1 parent 3eda1a6 commit 7dde3d9

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

cores/arduino/Arduino.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,23 @@ void noInterrupts(void);
131131

132132
int digitalPinToInterrupt(pin_size_t pin);
133133

134+
// These defines can be overridden by variant.h if implemented
134135
#define digitalPinToPort(x) (x)
135136
#define digitalPinToBitMask(x) (x)
136137
#define portOutputRegister(x) (x)
137138
#define portInputRegister(x) (x)
138139

140+
const struct device *digitalPinToPortDevice(pin_size_t pinNumber);
141+
int digitalPinToPinIndex(pin_size_t pinNumber);
142+
139143
#if defined(CONFIG_PWM) || defined(CONFIG_DAC)
140144
void analogWriteResolution(int bits);
141145
#endif
142146

147+
#if defined(__arm__)
148+
#define F_CPU (SystemCoreClock)
149+
#endif
150+
143151
#include <variant.h>
144152

145153
#if !defined(LED_BUILTIN) && defined(ZARD_LED_BUILTIN)

cores/arduino/zephyrCommon.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,18 @@ void yield(void) {
231231
k_yield();
232232
}
233233

234+
const struct device *digitalPinToPortDevice(pin_size_t pinNumber) {
235+
RETURN_ON_INVALID_PIN(pinNumber, nullptr);
236+
237+
return arduino_pins[pinNumber].port;
238+
}
239+
240+
int digitalPinToPinIndex(pin_size_t pinNumber) {
241+
RETURN_ON_INVALID_PIN(pinNumber, -1);
242+
243+
return arduino_pins[pinNumber].pin;
244+
}
245+
234246
/*
235247
* The ACTIVE_HIGH flag is set so that A low physical
236248
* level on the pin will be interpreted as value 0.

0 commit comments

Comments
 (0)