| /* |
| * Copyright (c) 2016 Piotr Mienkowski |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** @file |
| * @brief Atmel SAM MCU family Ethernet PHY (GMAC) driver. |
| */ |
| |
| #ifndef _PHY_SAM_GMAC_H_ |
| #define _PHY_SAM_GMAC_H_ |
| |
| #include <zephyr/types.h> |
| #include <soc.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define PHY_DUPLEX_FULL GMAC_NCFGR_FD |
| #define PHY_DUPLEX_HALF 0 |
| #define PHY_SPEED_100M GMAC_NCFGR_SPD |
| #define PHY_SPEED_10M 0 |
| |
| struct phy_sam_gmac_dev { |
| Gmac *regs; |
| u8_t address; |
| }; |
| |
| /** |
| * @brief Initialize Ethernet PHY device. |
| * |
| * @param phy PHY instance |
| * @return 0 on success or a negative error value on failure |
| */ |
| int phy_sam_gmac_init(const struct phy_sam_gmac_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_sam_gmac_auto_negotiate(const struct phy_sam_gmac_dev *phy, |
| u32_t *status); |
| |
| /** |
| * @brief Get PHY ID value. |
| * |
| * @param phy PHY instance |
| * @return PHY ID value or 0xFFFFFFFF on failure |
| */ |
| u32_t phy_sam_gmac_id_get(const struct phy_sam_gmac_dev *phy); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* _PHY_SAM_GMAC_H_ */ |