/* * Copyright (c) 2019 Interay Solutions B.V. * Copyright (c) 2019 Oane Kingma * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_ETHERNET_PHY_GECKO_H_ #define ZEPHYR_DRIVERS_ETHERNET_PHY_GECKO_H_ #include #include #ifdef __cplusplus extern "C" { #endif struct phy_gecko_dev { ETH_TypeDef *regs; uint8_t address; }; /** * @brief Initialize Ethernet PHY device. * * @param phy PHY instance * @return 0 on success or a negative error value on failure */ int phy_gecko_init(const struct phy_gecko_dev *phy); /** * @brief Auto-negotiate and configure link parameters. * * @param phy PHY instance * @param status link parameters common to remote and local PHY * @return 0 on success or a negative error value on failure */ int phy_gecko_auto_negotiate(const struct phy_gecko_dev *phy, uint32_t *status); /** * @brief Get PHY ID value. * * @param phy PHY instance * @return PHY ID value or 0xFFFFFFFF on failure */ uint32_t phy_gecko_id_get(const struct phy_gecko_dev *phy); /** * @brief Get PHY linked status. * * @param phy PHY instance * @return PHY linked status */ bool phy_gecko_is_linked(const struct phy_gecko_dev *phy); #ifdef __cplusplus } #endif #endif /* ZEPHYR_DRIVERS_ETHERNET_PHY_GECKO_H_ */