1 /* 2 * MDIO bus multiplexer framwork. 3 * 4 * This file is subject to the terms and conditions of the GNU General Public 5 * License. See the file "COPYING" in the main directory of this archive 6 * for more details. 7 * 8 * Copyright (C) 2011, 2012 Cavium, Inc. 9 */ 10 #ifndef __LINUX_MDIO_MUX_H 11 #define __LINUX_MDIO_MUX_H 12 #include <linux/device.h> 13 #include <linux/phy.h> 14 15 /* mdio_mux_init() - Initialize a MDIO mux 16 * @dev The device owning the MDIO mux 17 * @mux_node The device node of the MDIO mux 18 * @switch_fn The function called for switching target MDIO child 19 * mux_handle A pointer to a (void *) used internaly by mdio-mux 20 * @data Private data used by switch_fn() 21 * @mux_bus An optional parent bus (Other case are to use parent_bus property) 22 */ 23 int mdio_mux_init(struct device *dev, 24 struct device_node *mux_node, 25 int (*switch_fn) (int cur, int desired, void *data), 26 void **mux_handle, 27 void *data, 28 struct mii_bus *mux_bus); 29 30 void mdio_mux_uninit(void *mux_handle); 31 32 #endif /* __LINUX_MDIO_MUX_H */