drivers/net/ethernet/davicom/dm9051.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/davicom/dm9051.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/davicom/dm9051.h- Extension
.h- Size
- 4074 bytes
- Lines
- 163
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bits.hlinux/netdevice.hlinux/types.h
Detected Declarations
function Copyright
Annotated Snippet
#ifndef _DM9051_H_
#define _DM9051_H_
#include <linux/bits.h>
#include <linux/netdevice.h>
#include <linux/types.h>
#define DM9051_ID 0x9051
#define DM9051_NCR 0x00
#define DM9051_NSR 0x01
#define DM9051_TCR 0x02
#define DM9051_RCR 0x05
#define DM9051_BPTR 0x08
#define DM9051_FCR 0x0A
#define DM9051_EPCR 0x0B
#define DM9051_EPAR 0x0C
#define DM9051_EPDRL 0x0D
#define DM9051_EPDRH 0x0E
#define DM9051_PAR 0x10
#define DM9051_MAR 0x16
#define DM9051_GPCR 0x1E
#define DM9051_GPR 0x1F
#define DM9051_VIDL 0x28
#define DM9051_VIDH 0x29
#define DM9051_PIDL 0x2A
#define DM9051_PIDH 0x2B
#define DM9051_SMCR 0x2F
#define DM9051_ATCR 0x30
#define DM9051_SPIBCR 0x38
#define DM9051_INTCR 0x39
#define DM9051_PPCR 0x3D
#define DM9051_MPCR 0x55
#define DM9051_LMCR 0x57
#define DM9051_MBNDRY 0x5E
#define DM9051_MRRL 0x74
#define DM9051_MRRH 0x75
#define DM9051_MWRL 0x7A
#define DM9051_MWRH 0x7B
#define DM9051_TXPLL 0x7C
#define DM9051_TXPLH 0x7D
#define DM9051_ISR 0x7E
#define DM9051_IMR 0x7F
#define DM_SPI_MRCMDX 0x70
#define DM_SPI_MRCMD 0x72
#define DM_SPI_MWCMD 0x78
#define DM_SPI_WR 0x80
/* dm9051 Ethernet controller registers bits
*/
/* 0x00 */
#define NCR_WAKEEN BIT(6)
#define NCR_FDX BIT(3)
#define NCR_RST BIT(0)
/* 0x01 */
#define NSR_SPEED BIT(7)
#define NSR_LINKST BIT(6)
#define NSR_WAKEST BIT(5)
#define NSR_TX2END BIT(3)
#define NSR_TX1END BIT(2)
/* 0x02 */
#define TCR_DIS_JABBER_TIMER BIT(6) /* for Jabber Packet support */
#define TCR_TXREQ BIT(0)
/* 0x05 */
#define RCR_DIS_WATCHDOG_TIMER BIT(6) /* for Jabber Packet support */
#define RCR_DIS_LONG BIT(5)
#define RCR_DIS_CRC BIT(4)
#define RCR_ALL BIT(3)
#define RCR_PRMSC BIT(1)
#define RCR_RXEN BIT(0)
#define RCR_RX_DISABLE (RCR_DIS_LONG | RCR_DIS_CRC)
/* 0x06 */
#define RSR_RF BIT(7)
#define RSR_MF BIT(6)
#define RSR_LCS BIT(5)
#define RSR_RWTO BIT(4)
#define RSR_PLE BIT(3)
#define RSR_AE BIT(2)
#define RSR_CE BIT(1)
#define RSR_FOE BIT(0)
#define RSR_ERR_BITS (RSR_RF | RSR_LCS | RSR_RWTO | RSR_PLE | \
RSR_AE | RSR_CE | RSR_FOE)
/* 0x0A */
#define FCR_TXPEN BIT(5)
#define FCR_BKPM BIT(3)
Annotation
- Immediate include surface: `linux/bits.h`, `linux/netdevice.h`, `linux/types.h`.
- Detected declarations: `function Copyright`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.