From: Andrew Lunn <andrew@lunn.ch>
To: Pavel Machek <pavel@denx.de>
Cc: Woojung.Huh@microchip.com, nathan.leigh.conrad@gmail.com,
vivien.didelot@savoirfairelinux.com, f.fainelli@gmail.com,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Tristram.Ha@micrel.com
Subject: Re: [PATCH] DSA support for Micrel KSZ8895
Date: Sun, 27 Aug 2017 18:31:22 +0200 [thread overview]
Message-ID: <20170827163122.GG13622@lunn.ch> (raw)
In-Reply-To: <20170827123658.GA727@amd>
> +/**
> + * sw_r_phy - read data from PHY register
> + * @sw: The switch instance.
> + * @phy: PHY address to read.
> + * @reg: PHY register to read.
> + * @val: Buffer to store the read data.
> + *
> + * This routine reads data from the PHY register.
> + */
> +static void sw_r_phy(struct ksz_device *sw, u16 phy, u16 reg, u16 *val)
> +{
> + u8 ctrl;
> + u8 restart;
> + u8 link;
> + u8 speed;
> + u8 force;
> + u8 p = phy;
> + u16 data = 0;
> +
> + switch (reg) {
> + case PHY_REG_CTRL:
> + ksz_pread8(sw, p, P_LOCAL_CTRL, &ctrl);
> + ksz_pread8(sw, p, P_NEG_RESTART_CTRL, &restart);
> + ksz_pread8(sw, p, P_SPEED_STATUS, &speed);
> + ksz_pread8(sw, p, P_FORCE_CTRL, &force);
> + if (restart & PORT_PHY_LOOPBACK)
> + data |= PHY_LOOPBACK;
> + if (force & PORT_FORCE_100_MBIT)
> + data |= PHY_SPEED_100MBIT;
> + if (!(force & PORT_AUTO_NEG_DISABLE))
> + data |= PHY_AUTO_NEG_ENABLE;
> + if (restart & PORT_POWER_DOWN)
> + data |= PHY_POWER_DOWN;
> + if (restart & PORT_AUTO_NEG_RESTART)
> + data |= PHY_AUTO_NEG_RESTART;
> + if (force & PORT_FORCE_FULL_DUPLEX)
> + data |= PHY_FULL_DUPLEX;
> + if (speed & PORT_HP_MDIX)
> + data |= PHY_HP_MDIX;
> + if (restart & PORT_FORCE_MDIX)
> + data |= PHY_FORCE_MDIX;
> + if (restart & PORT_AUTO_MDIX_DISABLE)
> + data |= PHY_AUTO_MDIX_DISABLE;
> + if (restart & PORT_TX_DISABLE)
> + data |= PHY_TRANSMIT_DISABLE;
> + if (restart & PORT_LED_OFF)
> + data |= PHY_LED_DISABLE;
> + break;
> + case PHY_REG_STATUS:
> + ksz_pread8(sw, p, P_LINK_STATUS, &link);
> + ksz_pread8(sw, p, P_SPEED_STATUS, &speed);
> + data = PHY_100BTX_FD_CAPABLE |
> + PHY_100BTX_CAPABLE |
> + PHY_10BT_FD_CAPABLE |
> + PHY_10BT_CAPABLE |
> + PHY_AUTO_NEG_CAPABLE;
> + if (link & PORT_AUTO_NEG_COMPLETE)
> + data |= PHY_AUTO_NEG_ACKNOWLEDGE;
> + if (link & PORT_STAT_LINK_GOOD)
> + data |= PHY_LINK_STATUS;
> + break;
> + case PHY_REG_ID_1:
> + data = KSZ8895_ID_HI;
> + break;
> + case PHY_REG_ID_2:
> + data = KSZ8895_ID_LO;
> + break;
According to the datasheet, the PHY has the normal ID registers,
which have the value 0x0022, 0x1450. So it should be possible to have
a standard PHY driver in drivers/net/phy.
In fact, the IDs suggest it is a micrel phy, and 1430, 1435 are
already supported. So it could be you only need minor modifications to
the micrel.c.
Andrew
next prev parent reply other threads:[~2017-08-27 16:31 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-16 7:55 DSA support for Micrel KSZ8895 Pavel Machek
2017-08-16 14:04 ` Andrew Lunn
2017-08-16 14:25 ` Woojung.Huh
2017-08-23 9:09 ` Pavel Machek
2017-08-23 12:42 ` Andrew Lunn
2017-08-23 21:48 ` Woojung.Huh
2017-08-28 10:14 ` Pavel Machek
2017-08-28 13:19 ` Andrew Lunn
2017-08-27 12:36 ` [PATCH] " Pavel Machek
2017-08-27 13:59 ` Andrew Lunn
2017-08-27 16:31 ` Andrew Lunn [this message]
2017-08-28 7:02 ` Pavel Machek
2017-08-28 14:09 ` Andrew Lunn
2017-08-28 14:47 ` Maxim Uvarov
2017-08-29 7:41 ` Pavel Machek
2017-08-29 12:26 ` Andrew Lunn
2017-08-29 21:15 ` Pavel Machek
2017-08-29 21:23 ` Florian Fainelli
2017-08-30 10:06 ` Maxim Uvarov
2017-08-29 7:45 ` Pavel Machek
2017-08-30 21:32 ` Tristram.Ha
2017-08-30 22:00 ` Andrew Lunn
2017-09-01 12:15 ` Pavel Machek
2017-09-01 22:18 ` Florian Fainelli
2017-09-02 15:40 ` Pavel Machek
2017-09-06 9:14 ` Maxim Uvarov
2017-09-06 16:47 ` Tristram.Ha
2017-09-06 17:09 ` Andrew Lunn
2017-08-27 16:44 ` Andrew Lunn
2017-08-28 6:40 ` Pavel Machek
2017-08-27 16:56 ` Florian Fainelli
2017-08-28 6:47 ` Pavel Machek
2017-08-27 22:03 ` Woojung.Huh
2017-08-29 15:33 ` kbuild test robot
2017-08-16 18:32 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170827163122.GG13622@lunn.ch \
--to=andrew@lunn.ch \
--cc=Tristram.Ha@micrel.com \
--cc=Woojung.Huh@microchip.com \
--cc=f.fainelli@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nathan.leigh.conrad@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pavel@denx.de \
--cc=vivien.didelot@savoirfairelinux.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).