* fix mbedtls bad pointer in function call (prototype mismatch) * fix issue with weak families functions implemented in static library, it will never be linked. fixed by redefining prototypes inside families * [ln882x] add support for lightning ln882x & ln882h families * add i2c (wire) support * add analog (adc) support * add watchdog support * [ln882x] changed default uart 0/1 pins; added board wl2s * [ln882x] fix IRQ & ADC pins * [ln882x] boards cosmetic * [ln882x] wifi sta use otp mac addr by default; re-enabled wifi powersave mode * [ln882x] clang-format clean code * [ln882x] clang-format clean code * Update families.json * Apply suggestions from code review * [ln882x] reformat json board files * [ln882x] os_queue cleanup * [ln882x] removed Beken auto-download command * [ln882x] removed personal script file * [ln882x] removed unusefull pi section in debugging.md * [ln882x] removed Arduino.h and changed private I2C definition * [ln882x] updated README.md * [ln882x] changed pin naming scheme to PA/PB * [ln882x] clean code * [ln882x] clean code * [ln882x] add ota image verification * Update push-dev.yml * [ln882x] fix boards ADC missing inputs] * [ln882x] removed reg_xxx fixup files and use include guards instead * [ln882x] cleanup code * [ln882x] cleanup code * [ln882x] fix lt_init weak functions linking * [ln882x] revert lt_api.h modification, fixed with previous commit * [ln882x] setup UF2 firmware for flasher with partitions * [ln882x] update README.md * [ln882x] include ln_wifi.h and ln_serial.h to avoid including bad headers on case insensitive systems * [ln882x] Replace RingBuffer by SerialRingBuffer * [ln882x] clang-format * [ln882x] update README.md * Apply suggestions from code review * Reformat board JSON files * Add mkdocs link redirect * Update ltchiptool to v4.12.0 --------- Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
#ifndef __SERIAL_HW_H__
|
|
#define __SERIAL_HW_H__
|
|
|
|
#include "hal/hal_uart.h"
|
|
#include "ln_types.h"
|
|
|
|
struct SerialHardware;
|
|
struct Serial;
|
|
|
|
typedef enum {
|
|
SER_PORT_UART0 = 0,
|
|
SER_PORT_UART1 = 1,
|
|
SER_PORT_UART2 = 2,
|
|
SER_PORT_NUM = 3, /**< Number of serial ports */
|
|
SER_PORT_ID_INVALID = SER_PORT_NUM
|
|
}serial_port_id_t;
|
|
|
|
struct SerialHardwareVT
|
|
{
|
|
void (*init )(struct SerialHardware *ctx, struct Serial *ser, uint32_t baudrate);
|
|
void (*cleanup )(struct SerialHardware *ctx);
|
|
void (*txStart )(struct SerialHardware *ctx);
|
|
int8_t (*txSending )(struct SerialHardware *ctx);
|
|
int8_t (*setBaudrate)(struct SerialHardware *ctx, uint32_t baudrate);
|
|
};
|
|
|
|
struct SerialHardware
|
|
{
|
|
const struct SerialHardwareVT *table;
|
|
unsigned char *txbuffer;
|
|
unsigned char *rxbuffer;
|
|
size_t txbuffer_size;
|
|
size_t rxbuffer_size;
|
|
void *hw_device;
|
|
volatile int8_t isSending;
|
|
};
|
|
|
|
struct SerialHardware *serial_hw_getdesc(serial_port_id_t port_id);
|
|
|
|
|
|
|
|
#endif /* __SERIAL_HW_H__ */
|