C++-ize W6300 driver: remove vtable indirection, constexpr pins, pragma once

This commit is contained in:
Ian Gulliver
2026-04-04 16:22:37 +09:00
parent dec8d0c68d
commit 92e00476da
16 changed files with 967 additions and 1655 deletions

View File

@@ -1,43 +1,10 @@
#ifndef _WIZNET_SPI_FUNCS_H_
#define _WIZNET_SPI_FUNCS_H_
#pragma once
#include <cstdint>
#include <stdint.h>
void wizchip_pio_init();
void wizchip_pio_close();
typedef struct wiznet_spi_funcs** wiznet_spi_handle_t;
typedef struct wiznet_spi_config {
uint16_t clock_div_major;
uint8_t clock_div_minor;
uint8_t clock_pin;
uint8_t data_io0_pin;
uint8_t data_io1_pin;
uint8_t data_io2_pin;
uint8_t data_io3_pin;
uint8_t cs_pin;
uint8_t reset_pin;
uint8_t irq_pin;
} wiznet_spi_config_t;
typedef struct wiznet_spi_funcs {
void (*close)(wiznet_spi_handle_t funcs);
void (*set_active)(wiznet_spi_handle_t funcs);
void (*set_inactive)(void);
void (*frame_start)(void);
void (*frame_end)(void);
void (*read_byte)(uint8_t opcode, uint16_t addr, uint8_t* pBuf, uint16_t len);
void (*write_byte)(uint8_t opcode, uint16_t addr, uint8_t* pBuf, uint16_t len);
void (*read_buffer)(uint8_t *pBuf, uint16_t len);
void (*write_buffer)(uint8_t *pBuf, uint16_t len);
void (*reset)(wiznet_spi_handle_t funcs);
} wiznet_spi_funcs_t;
#endif
#ifndef _WIZNET_SPI_PIO_H_
#define _WIZNET_SPI_PIO_H_
#include "wizchip_spi.h"
wiznet_spi_handle_t wiznet_spi_pio_open(const wiznet_spi_config_t *spi_config);
#endif
void wizchip_pio_frame_start();
void wizchip_pio_frame_end();
void wizchip_pio_read(uint8_t opcode, uint16_t addr, uint8_t* buf, uint16_t len);
void wizchip_pio_write(uint8_t opcode, uint16_t addr, uint8_t* buf, uint16_t len);