|
22 | 22 | #define PHY_ID_AQR107 0x03a1b4e0
|
23 | 23 | #define PHY_ID_AQCS109 0x03a1b5c2
|
24 | 24 | #define PHY_ID_AQR405 0x03a1b4b0
|
| 25 | +#define PHY_ID_AQR111 0x03a1b610 |
| 26 | +#define PHY_ID_AQR111B0 0x03a1b612 |
25 | 27 | #define PHY_ID_AQR112 0x03a1b662
|
26 | 28 | #define PHY_ID_AQR412 0x03a1b712
|
27 | 29 | #define PHY_ID_AQR113C 0x31c31c12
|
@@ -755,6 +757,16 @@ static int aqr107_probe(struct phy_device *phydev)
|
755 | 757 | return aqr_hwmon_probe(phydev);
|
756 | 758 | }
|
757 | 759 |
|
| 760 | +static int aqr111_config_init(struct phy_device *phydev) |
| 761 | +{ |
| 762 | + /* AQR111 reports supporting speed up to 10G, |
| 763 | + * however only speeds up to 5G are supported. |
| 764 | + */ |
| 765 | + phy_set_max_speed(phydev, SPEED_5000); |
| 766 | + |
| 767 | + return aqr107_config_init(phydev); |
| 768 | +} |
| 769 | + |
758 | 770 | static struct phy_driver aqr_driver[] = {
|
759 | 771 | {
|
760 | 772 | PHY_ID_MATCH_MODEL(PHY_ID_AQ1202),
|
@@ -828,6 +840,44 @@ static struct phy_driver aqr_driver[] = {
|
828 | 840 | .get_stats = aqr107_get_stats,
|
829 | 841 | .link_change_notify = aqr107_link_change_notify,
|
830 | 842 | },
|
| 843 | +{ |
| 844 | + PHY_ID_MATCH_MODEL(PHY_ID_AQR111), |
| 845 | + .name = "Aquantia AQR111", |
| 846 | + .probe = aqr107_probe, |
| 847 | + .get_rate_matching = aqr107_get_rate_matching, |
| 848 | + .config_init = aqr111_config_init, |
| 849 | + .config_aneg = aqr_config_aneg, |
| 850 | + .config_intr = aqr_config_intr, |
| 851 | + .handle_interrupt = aqr_handle_interrupt, |
| 852 | + .read_status = aqr107_read_status, |
| 853 | + .get_tunable = aqr107_get_tunable, |
| 854 | + .set_tunable = aqr107_set_tunable, |
| 855 | + .suspend = aqr107_suspend, |
| 856 | + .resume = aqr107_resume, |
| 857 | + .get_sset_count = aqr107_get_sset_count, |
| 858 | + .get_strings = aqr107_get_strings, |
| 859 | + .get_stats = aqr107_get_stats, |
| 860 | + .link_change_notify = aqr107_link_change_notify, |
| 861 | +}, |
| 862 | +{ |
| 863 | + PHY_ID_MATCH_MODEL(PHY_ID_AQR111B0), |
| 864 | + .name = "Aquantia AQR111B0", |
| 865 | + .probe = aqr107_probe, |
| 866 | + .get_rate_matching = aqr107_get_rate_matching, |
| 867 | + .config_init = aqr111_config_init, |
| 868 | + .config_aneg = aqr_config_aneg, |
| 869 | + .config_intr = aqr_config_intr, |
| 870 | + .handle_interrupt = aqr_handle_interrupt, |
| 871 | + .read_status = aqr107_read_status, |
| 872 | + .get_tunable = aqr107_get_tunable, |
| 873 | + .set_tunable = aqr107_set_tunable, |
| 874 | + .suspend = aqr107_suspend, |
| 875 | + .resume = aqr107_resume, |
| 876 | + .get_sset_count = aqr107_get_sset_count, |
| 877 | + .get_strings = aqr107_get_strings, |
| 878 | + .get_stats = aqr107_get_stats, |
| 879 | + .link_change_notify = aqr107_link_change_notify, |
| 880 | +}, |
831 | 881 | {
|
832 | 882 | PHY_ID_MATCH_MODEL(PHY_ID_AQR405),
|
833 | 883 | .name = "Aquantia AQR405",
|
@@ -903,6 +953,8 @@ static struct mdio_device_id __maybe_unused aqr_tbl[] = {
|
903 | 953 | { PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
|
904 | 954 | { PHY_ID_MATCH_MODEL(PHY_ID_AQCS109) },
|
905 | 955 | { PHY_ID_MATCH_MODEL(PHY_ID_AQR405) },
|
| 956 | + { PHY_ID_MATCH_MODEL(PHY_ID_AQR111) }, |
| 957 | + { PHY_ID_MATCH_MODEL(PHY_ID_AQR111B0) }, |
906 | 958 | { PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
|
907 | 959 | { PHY_ID_MATCH_MODEL(PHY_ID_AQR412) },
|
908 | 960 | { PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
|
|
0 commit comments