RISC-V/V003/midi/linux/gpio.h
2024-05-07 11:46:49 +02:00

37 lines
795 B
C++

#ifndef _GPIO_CLASS_H_
#define _GPIO_CLASS_H_
#include <stdint.h>
enum GPIO_MODE : uint32_t {
GPIO_Speed_In = 0u,
GPIO_Speed_10MHz = 1u,
GPIO_Speed_2MHz = 2u,
GPIO_Speed_50MHz = 3u,
};
enum GPIO_CNF : uint32_t {
GPIO_AI_PPO = 0u,
GPIO_FI_ODO = 1u << 2,
GPIO_UPDI_MPPO = 2u << 2,
GPIO_none_MPDO = 3u << 2,
};
enum GPIOPuPd_TypeDef {
GPIO_PuPd_NOPULL = 0x00,
GPIO_PuPd_UP = 0x01,
GPIO_PuPd_DOWN = 0x02
};
class GpioClass {
const uint32_t pin;
public:
explicit constexpr GpioClass (const uint32_t _pin, const uint32_t _mode = GPIO_AI_PPO) noexcept
: pin(_pin) {
}
void operator<< (const bool b) const {
}
operator bool () const {
return false;
}
void setPuPd (GPIOPuPd_TypeDef p) {
}
};
#endif // _GPIO_CLASS_H_