18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci#include <linux/kernel.h> 38c2ecf20Sopenharmony_ci#include <linux/init.h> 48c2ecf20Sopenharmony_ci#include <linux/phy.h> 58c2ecf20Sopenharmony_ci#include <net/dsa.h> 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include "dsa_loop.h" 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cistatic struct dsa_loop_pdata dsa_loop_pdata = { 108c2ecf20Sopenharmony_ci .cd = { 118c2ecf20Sopenharmony_ci .port_names[0] = "lan1", 128c2ecf20Sopenharmony_ci .port_names[1] = "lan2", 138c2ecf20Sopenharmony_ci .port_names[2] = "lan3", 148c2ecf20Sopenharmony_ci .port_names[3] = "lan4", 158c2ecf20Sopenharmony_ci .port_names[DSA_LOOP_CPU_PORT] = "cpu", 168c2ecf20Sopenharmony_ci }, 178c2ecf20Sopenharmony_ci .name = "DSA mockup driver", 188c2ecf20Sopenharmony_ci .enabled_ports = 0x1f, 198c2ecf20Sopenharmony_ci .netdev = "eth0", 208c2ecf20Sopenharmony_ci}; 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_cistatic const struct mdio_board_info bdinfo = { 238c2ecf20Sopenharmony_ci .bus_id = "fixed-0", 248c2ecf20Sopenharmony_ci .modalias = "dsa-loop", 258c2ecf20Sopenharmony_ci .mdio_addr = 31, 268c2ecf20Sopenharmony_ci .platform_data = &dsa_loop_pdata, 278c2ecf20Sopenharmony_ci}; 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistatic int __init dsa_loop_bdinfo_init(void) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci return mdiobus_register_board_info(&bdinfo, 1); 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ciarch_initcall(dsa_loop_bdinfo_init) 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL"); 36