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