#if !defined(__AVM_NET_PHY_PLC_) #define __AVM_NET_PHY_PLC_ #include #include int avmnet_phy_plc_init(avmnet_module_t *this); int avmnet_phy_plc_setup(avmnet_module_t *this); int avmnet_phy_plc_exit(avmnet_module_t *this); unsigned int avmnet_phy_plc_reg_read(avmnet_module_t *this, unsigned int addr, unsigned int reg); int avmnet_phy_plc_reg_write(avmnet_module_t *this, unsigned int addr, unsigned int reg, unsigned int val); int avmnet_phy_plc_lock(avmnet_module_t *this); void avmnet_phy_plc_unlock(avmnet_module_t *this); int avmnet_phy_plc_trylock(avmnet_module_t *this); void avmnet_phy_plc_status_changed(avmnet_module_t *this, avmnet_module_t *child); int avmnet_phy_plc_poll(avmnet_module_t *this); int avmnet_phy_plc_setup_irq(avmnet_module_t *this, unsigned int on); int avmnet_phy_plc_set_status(avmnet_module_t *this, avmnet_device_t *device_id, avmnet_linkstatus_t status); int avmnet_phy_plc_powerup(avmnet_module_t *this); int avmnet_phy_plc_powerdown(avmnet_module_t *this); struct avmnet_phy_plc_context { struct semaphore mutex; unsigned int reset; unsigned int powerdown; #if defined(CONFIG_MACH_ATHEROS) || defined(CONFIG_ATH79) struct resource gpio; #endif // CONFIG_MACH_ATHEROS != n }; #endif