From 8f9cd1af0f9c325a902dbd0e79e12015372e6bb0 Mon Sep 17 00:00:00 2001 From: Tobias Schramm Date: Tue, 3 Dec 2019 22:30:00 +0100 Subject: [PATCH] swconfig: fix Broadcom b53 support This commit fixes a bug in the main swconfig patch where a function needed by the b53 driver is not exported. Additionally it adds OF support to the b53_mdio driver for devicetree- based probing Signed-off-by: Tobias Schramm --- .../files/drivers/net/phy/b53/b53_mdio.c | 32 +++++++++++++++++++ .../generic/files/drivers/net/phy/swconfig.c | 1 + 2 files changed, 33 insertions(+) diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c index 6de8623612..5675232bef 100644 --- a/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c @@ -370,6 +370,26 @@ static int b53_phy_read_status(struct phy_device *phydev) return 0; } +static const struct of_device_id b53_of_match_1[] = { + { .compatible = "brcm,bcm5325" }, + { .compatible = "brcm,bcm5395" }, + { .compatible = "brcm,bcm5397" }, + { .compatible = "brcm,bcm5398" }, + { /* sentinel */ }, +}; + +static const struct of_device_id b53_of_match_2[] = { + { .compatible = "brcm,bcm53115" }, + { .compatible = "brcm,bcm53125" }, + { .compatible = "brcm,bcm53128" }, + { /* sentinel */ }, +}; + +static const struct of_device_id b53_of_match_3[] = { + { .compatible = "brcm,bcm5365" }, + { /* sentinel */ }, +}; + /* BCM5325, BCM539x */ static struct phy_driver b53_phy_driver_id1 = { .phy_id = 0x0143bc00, @@ -381,6 +401,10 @@ static struct phy_driver b53_phy_driver_id1 = { .config_aneg = b53_phy_config_aneg, .config_init = b53_phy_config_init, .read_status = b53_phy_read_status, + .mdiodrv.driver = { + .name = "bcm539x", + .of_match_table = b53_of_match_1, + }, }; /* BCM53125, BCM53128 */ @@ -394,6 +418,10 @@ static struct phy_driver b53_phy_driver_id2 = { .config_aneg = b53_phy_config_aneg, .config_init = b53_phy_config_init, .read_status = b53_phy_read_status, + .mdiodrv.driver = { + .name = "bcm531xx", + .of_match_table = b53_of_match_2, + }, }; /* BCM5365 */ @@ -407,6 +435,10 @@ static struct phy_driver b53_phy_driver_id3 = { .config_aneg = b53_phy_config_aneg, .config_init = b53_phy_config_init, .read_status = b53_phy_read_status, + .mdiodrv.driver = { + .name = "bcm5365", + .of_match_table = b53_of_match_3, + }, }; int __init b53_phy_driver_register(void) diff --git a/target/linux/generic/files/drivers/net/phy/swconfig.c b/target/linux/generic/files/drivers/net/phy/swconfig.c index 20d6c693da..abf1a4504b 100644 --- a/target/linux/generic/files/drivers/net/phy/swconfig.c +++ b/target/linux/generic/files/drivers/net/phy/swconfig.c @@ -1256,6 +1256,7 @@ switch_generic_set_link(struct switch_dev *dev, int port, return 0; } +EXPORT_SYMBOL_GPL(switch_generic_set_link); static int __init swconfig_init(void) -- 2.30.2