123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- #ifndef ZEPHYR_INCLUDE_DRIVERS_MDIO_H_
- #define ZEPHYR_INCLUDE_DRIVERS_MDIO_H_
- #include <zephyr/types.h>
- #include <device.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- enum MDIO_PROTOCOL {
- CLAUSE_22 = 0,
- CLAUSE_45 = 1,
- MICREL_SMI = 2,
- };
- __subsystem struct mdio_driver_api {
-
- void (*bus_enable)(const struct device *dev);
-
- void (*bus_disable)(const struct device *dev);
-
- int (*read)(const struct device *dev, uint8_t prtad, uint8_t devad,
- uint16_t *data);
-
- int (*write)(const struct device *dev, uint8_t prtad, uint8_t devad,
- uint16_t data);
- };
- __syscall void mdio_bus_enable(const struct device *dev);
- static inline void z_impl_mdio_bus_enable(const struct device *dev)
- {
- const struct mdio_driver_api *api =
- (const struct mdio_driver_api *)dev->api;
- return api->bus_enable(dev);
- }
- __syscall void mdio_bus_disable(const struct device *dev);
- static inline void z_impl_mdio_bus_disable(const struct device *dev)
- {
- const struct mdio_driver_api *api =
- (const struct mdio_driver_api *)dev->api;
- return api->bus_disable(dev);
- }
- __syscall int mdio_read(const struct device *dev, uint8_t prtad, uint8_t devad,
- uint16_t *data);
- static inline int z_impl_mdio_read(const struct device *dev, uint8_t prtad,
- uint8_t devad, uint16_t *data)
- {
- const struct mdio_driver_api *api =
- (const struct mdio_driver_api *)dev->api;
- return api->read(dev, prtad, devad, data);
- }
- __syscall int mdio_write(const struct device *dev, uint8_t prtad, uint8_t devad,
- uint16_t data);
- static inline int z_impl_mdio_write(const struct device *dev, uint8_t prtad,
- uint8_t devad, uint16_t data)
- {
- const struct mdio_driver_api *api =
- (const struct mdio_driver_api *)dev->api;
- return api->write(dev, prtad, devad, data);
- }
- #ifdef __cplusplus
- }
- #endif
- #include <syscalls/mdio.h>
- #endif
|