summaryrefslogtreecommitdiff
path: root/libhw/w5500_ll.h
diff options
context:
space:
mode:
Diffstat (limited to 'libhw/w5500_ll.h')
-rw-r--r--libhw/w5500_ll.h17
1 files changed, 8 insertions, 9 deletions
diff --git a/libhw/w5500_ll.h b/libhw/w5500_ll.h
index 25aa6b5..92d9f14 100644
--- a/libhw/w5500_ll.h
+++ b/libhw/w5500_ll.h
@@ -3,7 +3,7 @@
* Based entirely on the W5500 datasheet, v1.1.0.
* https://docs.wiznet.io/img/products/w5500/W5500_ds_v110e.pdf
*
- * Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
+ * Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
@@ -15,10 +15,9 @@
#include <libmisc/assert.h> /* for assert(), static_assert() */
#include <libmisc/endian.h> /* for uint16be_t */
-#include <libmisc/vcall.h> /* for VCALL() */
#include <libhw/generic/net.h> /* for struct net_eth_addr, struct net_ip4_addr */
-#include <libhw/generic/spi.h> /* for implements_spi */
+#include <libhw/generic/spi.h> /* for lo_interface spi */
/* Config *********************************************************************/
@@ -74,8 +73,8 @@ _w5500ll_write(const char *func,
#else
w5500ll_write(
#endif
- implements_spi *spidev, uint16_t addr, uint8_t block, void *data, size_t data_len) {
- assert(spidev);
+ lo_interface spi spidev, uint16_t addr, uint8_t block, void *data, size_t data_len) {
+ assert(!LO_IS_NULL(spidev));
assert((block & ~CTL_MASK_BLOCK) == 0);
assert(data);
assert(data_len);
@@ -94,7 +93,7 @@ w5500ll_write(
{.iov_read_dst = NULL, .iov_write_src = header, .iov_len = sizeof(header)},
{.iov_read_dst = NULL, .iov_write_src = data, .iov_len = data_len},
};
- VCALL(spidev, readwritev, iov, 2);
+ LO_CALL(spidev, readwritev, iov, 2);
}
static inline void
@@ -104,8 +103,8 @@ _w5500ll_read(const char *func,
#else
w5500ll_read(
#endif
- implements_spi *spidev, uint16_t addr, uint8_t block, void *data, size_t data_len) {
- assert(spidev);
+ lo_interface spi spidev, uint16_t addr, uint8_t block, void *data, size_t data_len) {
+ assert(!LO_IS_NULL(spidev));
assert((block & ~CTL_MASK_BLOCK) == 0);
assert(data);
assert(data_len);
@@ -124,7 +123,7 @@ w5500ll_read(
{.iov_read_dst = NULL, .iov_write_src = header, .iov_len = sizeof(header)},
{.iov_read_dst = data, .iov_write_src = NULL, .iov_len = data_len},
};
- VCALL(spidev, readwritev, iov, 2);
+ LO_CALL(spidev, readwritev, iov, 2);
}
/* Common chip-wide registers. ***********************************************/