1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 #ifndef __LINUX_MDIO_BITBANG_H 3 #define __LINUX_MDIO_BITBANG_H 4 5 #include <linux/phy.h> 6 7 struct module; 8 9 struct mdiobb_ctrl; 10 11 struct mdiobb_ops { 12 struct module *owner; 13 14 /* Set the Management Data Clock high 15 * low if level is zero. 16 */ 17 void (*set_mdc)(struct mdiobb_ctrl *ct 18 19 /* Configure the Management Data I/O p 20 * "output" is zero, or an output if " 21 */ 22 void (*set_mdio_dir)(struct mdiobb_ctr 23 24 /* Set the Management Data I/O pin hig 25 * low if "value" is zero. This may o 26 * when the MDIO pin is configured as 27 */ 28 void (*set_mdio_data)(struct mdiobb_ct 29 30 /* Retrieve the state Management Data 31 int (*get_mdio_data)(struct mdiobb_ctr 32 }; 33 34 struct mdiobb_ctrl { 35 const struct mdiobb_ops *ops; 36 unsigned int override_op_c22; 37 u8 op_c22_read; 38 u8 op_c22_write; 39 }; 40 41 int mdiobb_read_c22(struct mii_bus *bus, int p 42 int mdiobb_write_c22(struct mii_bus *bus, int 43 int mdiobb_read_c45(struct mii_bus *bus, int d 44 int mdiobb_write_c45(struct mii_bus *bus, int 45 46 /* The returned bus is not yet registered with 47 struct mii_bus *alloc_mdio_bitbang(struct mdio 48 49 /* The bus must already have been unregistered 50 void free_mdio_bitbang(struct mii_bus *bus); 51 52 #endif 53
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.