aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-08-15 14:27:31 +0200
committerDario Nieuwenhuis <[email protected]>2023-08-15 14:27:31 +0200
commitea9f887ee168aab502ab595aa460c7c0910ff6b9 (patch)
tree8df4203aa5c0407c0d725adf616675220b4f27be
parentf7f75167accd1fb91238b05f30a280bf115baddf (diff)
net-enc28j60: add docs, readme.
-rw-r--r--embassy-net-enc28j60/README.md18
-rw-r--r--embassy-net-enc28j60/src/lib.rs9
2 files changed, 27 insertions, 0 deletions
diff --git a/embassy-net-enc28j60/README.md b/embassy-net-enc28j60/README.md
index e12d240c3..39011ca13 100644
--- a/embassy-net-enc28j60/README.md
+++ b/embassy-net-enc28j60/README.md
@@ -1 +1,19 @@
1# `embassy-net-enc28j60` 1# `embassy-net-enc28j60`
2
3[`embassy-net`](https://crates.io/crates/embassy-net) integration for the Microchip ENC28J60 Ethernet chip.
4
5Based on [@japaric](https://github.com/japaric)'s [`enc28j60`](https://github.com/japaric/enc28j60) crate.
6
7## Interoperability
8
9This crate can run on any executor.
10
11## License
12
13This work is licensed under either of
14
15- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
16 http://www.apache.org/licenses/LICENSE-2.0)
17- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
18
19at your option.
diff --git a/embassy-net-enc28j60/src/lib.rs b/embassy-net-enc28j60/src/lib.rs
index d77dc2c5e..09e77bafd 100644
--- a/embassy-net-enc28j60/src/lib.rs
+++ b/embassy-net-enc28j60/src/lib.rs
@@ -1,5 +1,6 @@
1#![no_std] 1#![no_std]
2#![doc = include_str!("../README.md")] 2#![doc = include_str!("../README.md")]
3#![warn(missing_docs)]
3 4
4// must go first. 5// must go first.
5mod fmt; 6mod fmt;
@@ -43,6 +44,7 @@ const _TXND: u16 = 0x1fff;
43 44
44const MTU: usize = 1514; // 1500 IP + 14 ethernet header 45const MTU: usize = 1514; // 1500 IP + 14 ethernet header
45 46
47/// ENC28J60 embassy-net driver
46pub struct Enc28j60<S, O> { 48pub struct Enc28j60<S, O> {
47 mac_addr: [u8; 6], 49 mac_addr: [u8; 6],
48 50
@@ -60,6 +62,10 @@ where
60 S: SpiDevice, 62 S: SpiDevice,
61 O: OutputPin, 63 O: OutputPin,
62{ 64{
65 /// Create a new ENC28J60 driver instance.
66 ///
67 /// The RST pin is optional. If None, reset will be done with a SPI
68 /// soft reset command, instead of via the RST pin.
63 pub fn new(spi: S, rst: Option<O>, mac_addr: [u8; 6]) -> Self { 69 pub fn new(spi: S, rst: Option<O>, mac_addr: [u8; 6]) -> Self {
64 let mut res = Self { 70 let mut res = Self {
65 mac_addr, 71 mac_addr,
@@ -300,6 +306,7 @@ where
300 }*/ 306 }*/
301 } 307 }
302 308
309 /// Get whether the link is up
303 pub fn is_link_up(&mut self) -> bool { 310 pub fn is_link_up(&mut self) -> bool {
304 let bits = self.read_phy_register(phy::Register::PHSTAT2); 311 let bits = self.read_phy_register(phy::Register::PHSTAT2);
305 phy::PHSTAT2(bits).lstat() == 1 312 phy::PHSTAT2(bits).lstat() == 1
@@ -659,6 +666,7 @@ where
659 } 666 }
660} 667}
661 668
669/// embassy-net RX token.
662pub struct RxToken<'a> { 670pub struct RxToken<'a> {
663 buf: &'a mut [u8], 671 buf: &'a mut [u8],
664} 672}
@@ -672,6 +680,7 @@ impl<'a> embassy_net_driver::RxToken for RxToken<'a> {
672 } 680 }
673} 681}
674 682
683/// embassy-net TX token.
675pub struct TxToken<'a, S, O> 684pub struct TxToken<'a, S, O>
676where 685where
677 S: SpiDevice, 686 S: SpiDevice,