| From dd53e322d2810baded275f961ee2ec81a6e7b780 Mon Sep 17 00:00:00 2001 |
| From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Date: Tue, 10 Dec 2013 02:20:41 +0300 |
| Subject: micrel: add support for KSZ8041RNLI |
| |
| Renesas R-Car development boards use KSZ8041RNLI PHY which for some reason has |
| ID of 0x00221537 that is not documented for KSZ8041-family PHYs and does not |
| match the documented ID of 0x0022151x (where 'x' is the revision). We have |
| to add the new #define PHY_ID_* and new ksphy_driver[] entry, almost the same |
| as KSZ8041 one, differing only in the 'phy_id' and 'name' fields. |
| |
| Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> |
| Tested-by: Geert Uytterhoeven <geert@linux-m68k.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| (cherry picked from commit 4bd7b5127bd02c12c1cc837a7a0b6ce295eb2505) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/net/phy/micrel.c | 15 +++++++++++++++ |
| include/linux/micrel_phy.h | 2 ++ |
| 2 files changed, 17 insertions(+) |
| |
| diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c |
| index 2510435f34ed..d8766ec4085b 100644 |
| --- a/drivers/net/phy/micrel.c |
| +++ b/drivers/net/phy/micrel.c |
| @@ -227,6 +227,21 @@ static struct phy_driver ksphy_driver[] = { |
| .config_intr = kszphy_config_intr, |
| .driver = { .owner = THIS_MODULE,}, |
| }, { |
| + .phy_id = PHY_ID_KSZ8041RNLI, |
| + .phy_id_mask = 0x00fffff0, |
| + .name = "Micrel KSZ8041RNLI", |
| + .features = PHY_BASIC_FEATURES | |
| + SUPPORTED_Pause | SUPPORTED_Asym_Pause, |
| + .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT, |
| + .config_init = kszphy_config_init, |
| + .config_aneg = genphy_config_aneg, |
| + .read_status = genphy_read_status, |
| + .ack_interrupt = kszphy_ack_interrupt, |
| + .config_intr = kszphy_config_intr, |
| + .suspend = genphy_suspend, |
| + .resume = genphy_resume, |
| + .driver = { .owner = THIS_MODULE,}, |
| +}, { |
| .phy_id = PHY_ID_KSZ8051, |
| .phy_id_mask = 0x00fffff0, |
| .name = "Micrel KSZ8051", |
| diff --git a/include/linux/micrel_phy.h b/include/linux/micrel_phy.h |
| index 8752dbbc6135..6075596f0095 100644 |
| --- a/include/linux/micrel_phy.h |
| +++ b/include/linux/micrel_phy.h |
| @@ -21,6 +21,8 @@ |
| #define PHY_ID_KSZ8021 0x00221555 |
| #define PHY_ID_KSZ8031 0x00221556 |
| #define PHY_ID_KSZ8041 0x00221510 |
| +/* undocumented */ |
| +#define PHY_ID_KSZ8041RNLI 0x00221537 |
| #define PHY_ID_KSZ8051 0x00221550 |
| /* same id: ks8001 Rev. A/B, and ks8721 Rev 3. */ |
| #define PHY_ID_KSZ8001 0x0022161A |
| -- |
| 1.8.5.rc3 |
| |