swconfig: fix Broadcom b53 support
authorTobias Schramm <tobleminer@gmail.com>
Tue, 3 Dec 2019 21:30:00 +0000 (22:30 +0100)
committerDavid Bauer <mail@david-bauer.net>
Sun, 12 Jan 2020 13:12:50 +0000 (14:12 +0100)
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 <tobleminer@gmail.com>
target/linux/generic/files/drivers/net/phy/b53/b53_mdio.c
target/linux/generic/files/drivers/net/phy/swconfig.c

index 6de8623..5675232 100644 (file)
@@ -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)
index 20d6c69..abf1a45 100644 (file)
@@ -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)