diff --git a/os/io/phy.c b/os/io/phy.c index 7c61019dd..bac18c45a 100644 --- a/os/io/phy.c +++ b/os/io/phy.c @@ -28,82 +28,4 @@ #include #include -/** - * @brief Interface status. - */ -static enum {ifStopped = 0, ifStarted} state; - -/** - * @brief PHY Driver initialization. - */ -void phyInit(void) { - - state = ifStopped; -} - -/** - * Initializes a PHY device. - * - * @param[in] macp pointer to the @p MACDriver object - */ -void phyReset(MACDriver *macp) { - -} - -/** - * @brief Puts the PHY device in active mode. - * - * @param[in] macp pointer to the @p MACDriver object - */ -void phyStart(MACDriver *macp) { - - chSysLock(); - if (state == ifStarted) { - chSysUnlock(); - return; - } - state = ifStarted; - chSysUnlock(); - phy_lld_start(macp); -} - -/** - * @brief Puts the PHY device in a low power mode. - * - * @param[in] macp pointer to the @p MACDriver object - */ -void phyStop(MACDriver *macp) { - - chSysLock(); - if (state == ifStopped) { - chSysUnlock(); - return; - } - state = ifStopped; - chSysUnlock(); - phy_lld_stop(macp); -} - -/** - * @brief Reads a PHY register. - * - * @param[in] macp pointer to the @p MACDriver object - * @param addr the register address - * @return The register value. - */ -phyreg_t phyGet(MACDriver *macp, phyaddr_t addr) { - -} - -/** - * @brief Writes a PHY register. - * - * @param[in] macp pointer to the @p MACDriver object - * @param addr the register address - * @param value the new register value - */ -void phyPut(MACDriver *macp, phyaddr_t addr, phyreg_t value) { - -} - /** @} */ diff --git a/os/io/phy.h b/os/io/phy.h index ffafa4025..e333b034d 100644 --- a/os/io/phy.h +++ b/os/io/phy.h @@ -31,27 +31,34 @@ #include "phy_lld.h" /** - * @brief Type of a PHY register value. + * @brief PHY Driver initialization. */ -typedef uint16_t phyreg_t; +#define phyInit() phy_lld_init() /** - * @brief Type of a PHY register address. + * Resets a PHY device. + * + * @param[in] macp pointer to the @p MACDriver object */ -typedef uint8_t phyaddr_t; +#define phyReset(macp) phy_lld_reset(macp) -#ifdef __cplusplus -extern "C" { -#endif - void phyInit(void); - void phyReset(MACDriver *macp); - void phyStart(MACDriver *macp); - void phyStop(MACDriver *macp); - phyreg_t phyGet(MACDriver *macp, phyaddr_t addr); - void phyPut(MACDriver *macp, phyaddr_t addr, phyreg_t value); -#ifdef __cplusplus -} -#endif +/** + * @brief Reads a PHY register. + * + * @param[in] macp pointer to the @p MACDriver object + * @param addr the register address + * @return The register value. + */ +#define phyGet(macp, addr) phy_lld_get(macp, addr) + +/** + * @brief Writes a PHY register. + * + * @param[in] macp pointer to the @p MACDriver object + * @param addr the register address + * @param value the new register value + */ +#define phyPut(macp, addr, value) phy_lld_put(macp, addr, value) #endif /* _PHY_H_ */ diff --git a/os/io/platforms/AT91SAM7X/phy_lld.c b/os/io/platforms/AT91SAM7X/phy_lld.c new file mode 100644 index 000000000..1b965d3e5 --- /dev/null +++ b/os/io/platforms/AT91SAM7X/phy_lld.c @@ -0,0 +1,70 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/mac_lld.c + * @brief MAC Driver subsystem low level driver source template + * @addtogroup MAC_LLD + * @{ + */ + +#include +#include +#include + +/** + * @brief Low level PHY initialization. + */ +void phy_lld_init(void) { + +} + +/** + * Resets a PHY device. + * + * @param[in] macp pointer to the @p MACDriver object + */ +void phy_lld_reset(MACDriver *macp) { + +} + +/** + * @brief Reads a PHY register. + * + * @param[in] macp pointer to the @p MACDriver object + * @param addr the register address + * @return The register value. + */ +phyreg_t phy_lld_get(MACDriver *macp, phyaddr_t addr) { + + return 0; +} + +/** + * @brief Writes a PHY register. + * + * @param[in] macp pointer to the @p MACDriver object + * @param addr the register address + * @param value the new register value + */ +void phy_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value) { + +} + +/** @} */ diff --git a/os/io/platforms/AT91SAM7X/phy_lld.h b/os/io/platforms/AT91SAM7X/phy_lld.h new file mode 100644 index 000000000..09f7bbc92 --- /dev/null +++ b/os/io/platforms/AT91SAM7X/phy_lld.h @@ -0,0 +1,65 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/phy_lld.h + * @brief PHY Driver subsystem low level driver header template + * @addtogroup PHY_LLD + * @{ + */ + +#ifndef _PHY_LLD_H_ +#define _PHY_LLD_H_ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief Type of a PHY register value. + */ +typedef uint16_t phyreg_t; + +/** + * @brief Type of a PHY register address. + */ +typedef uint8_t phyaddr_t; + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + void phy_lld_init(void); + void phy_lld_reset(MACDriver *macp); + phyreg_t phy_lld_get(MACDriver *macp, phyaddr_t addr); + void phy_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value); +#ifdef __cplusplus +} +#endif + +#endif /* _PHY_LLD_H_ */ + +/** @} */ diff --git a/os/io/templates/mac_lld.c b/os/io/templates/mac_lld.c index 100f871d2..8dc674fcb 100644 --- a/os/io/templates/mac_lld.c +++ b/os/io/templates/mac_lld.c @@ -25,7 +25,7 @@ */ #include -#include +#include /** * @brief Low level MAC initialization. diff --git a/os/io/templates/phy_lld.c b/os/io/templates/phy_lld.c new file mode 100644 index 000000000..1b965d3e5 --- /dev/null +++ b/os/io/templates/phy_lld.c @@ -0,0 +1,70 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/mac_lld.c + * @brief MAC Driver subsystem low level driver source template + * @addtogroup MAC_LLD + * @{ + */ + +#include +#include +#include + +/** + * @brief Low level PHY initialization. + */ +void phy_lld_init(void) { + +} + +/** + * Resets a PHY device. + * + * @param[in] macp pointer to the @p MACDriver object + */ +void phy_lld_reset(MACDriver *macp) { + +} + +/** + * @brief Reads a PHY register. + * + * @param[in] macp pointer to the @p MACDriver object + * @param addr the register address + * @return The register value. + */ +phyreg_t phy_lld_get(MACDriver *macp, phyaddr_t addr) { + + return 0; +} + +/** + * @brief Writes a PHY register. + * + * @param[in] macp pointer to the @p MACDriver object + * @param addr the register address + * @param value the new register value + */ +void phy_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value) { + +} + +/** @} */ diff --git a/os/io/templates/phy_lld.h b/os/io/templates/phy_lld.h new file mode 100644 index 000000000..09f7bbc92 --- /dev/null +++ b/os/io/templates/phy_lld.h @@ -0,0 +1,65 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/phy_lld.h + * @brief PHY Driver subsystem low level driver header template + * @addtogroup PHY_LLD + * @{ + */ + +#ifndef _PHY_LLD_H_ +#define _PHY_LLD_H_ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief Type of a PHY register value. + */ +typedef uint16_t phyreg_t; + +/** + * @brief Type of a PHY register address. + */ +typedef uint8_t phyaddr_t; + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + void phy_lld_init(void); + void phy_lld_reset(MACDriver *macp); + phyreg_t phy_lld_get(MACDriver *macp, phyaddr_t addr); + void phy_lld_put(MACDriver *macp, phyaddr_t addr, phyreg_t value); +#ifdef __cplusplus +} +#endif + +#endif /* _PHY_LLD_H_ */ + +/** @} */