drivers/net/dsa/lantiq/lantiq_gswip.h
Source file repositories/reference/linux-study-clean/drivers/net/dsa/lantiq/lantiq_gswip.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/dsa/lantiq/lantiq_gswip.h- Extension
.h- Size
- 12555 bytes
- Lines
- 303
- 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/bitfield.hlinux/clk.hlinux/mutex.hlinux/phylink.hlinux/platform_device.hlinux/regmap.hlinux/reset.hlinux/swab.hnet/dsa.h
Detected Declarations
struct gswip_pce_microcodestruct gswip_hw_infostruct gswip_gphy_fwstruct gswip_vlanstruct gswip_priv
Annotated Snippet
struct gswip_pce_microcode {
u16 val_3;
u16 val_2;
u16 val_1;
u16 val_0;
};
struct gswip_hw_info {
int max_ports;
unsigned int allowed_cpu_ports;
s16 mii_cfg[GSWIP_MAX_PORTS];
s16 mii_pcdu[GSWIP_MAX_PORTS];
bool supports_2500m;
const struct gswip_pce_microcode (*pce_microcode)[];
size_t pce_microcode_size;
enum dsa_tag_protocol tag_protocol;
void (*phylink_get_caps)(struct dsa_switch *ds, int port,
struct phylink_config *config);
struct phylink_pcs *(*mac_select_pcs)(struct phylink_config *config,
phy_interface_t interface);
int (*port_setup)(struct dsa_switch *ds, int port);
};
struct gswip_gphy_fw {
struct clk *clk_gate;
struct reset_control *reset;
u32 fw_addr_offset;
char *fw_name;
};
struct gswip_vlan {
struct net_device *bridge;
u16 vid;
u8 fid;
};
struct gswip_priv {
struct regmap *gswip;
struct regmap *mdio;
struct regmap *mii;
const struct gswip_hw_info *hw_info;
const struct xway_gphy_match_data *gphy_fw_name_cfg;
struct dsa_switch *ds;
struct device *dev;
struct regmap *rcu_regmap;
struct gswip_vlan vlans[64];
int num_gphy_fw;
struct gswip_gphy_fw *gphy_fw;
struct mutex pce_table_lock;
u16 version;
};
int gswip_probe_common(struct gswip_priv *priv, u32 version);
#endif /* __LANTIQ_GSWIP_H */
Annotation
- Immediate include surface: `linux/bitfield.h`, `linux/clk.h`, `linux/mutex.h`, `linux/phylink.h`, `linux/platform_device.h`, `linux/regmap.h`, `linux/reset.h`, `linux/swab.h`.
- Detected declarations: `struct gswip_pce_microcode`, `struct gswip_hw_info`, `struct gswip_gphy_fw`, `struct gswip_vlan`, `struct gswip_priv`.
- 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.