From: Andrew Lunn <andrew@lunn.ch>
To: Parthiban.Veerasooran@microchip.com
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, horms@kernel.org, saeedm@nvidia.com,
anthony.l.nguyen@intel.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, corbet@lwn.net,
linux-doc@vger.kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
devicetree@vger.kernel.org, Horatiu.Vultur@microchip.com,
ruanjinjie@huawei.com, Steen.Hegelund@microchip.com,
vladimir.oltean@nxp.com, UNGLinuxDriver@microchip.com,
Thorsten.Kummermehr@microchip.com, Pier.Beruto@onsemi.com,
Selvamani.Rajagopal@onsemi.com, Nicolas.Ferre@microchip.com,
benjamin.bigler@bernformulastudent.ch
Subject: Re: [PATCH net-next v3 06/12] net: ethernet: oa_tc6: implement internal PHY initialization
Date: Fri, 8 Mar 2024 14:33:12 +0100 [thread overview]
Message-ID: <8de7a4bb-a127-4771-97dd-038f08fcce9d@lunn.ch> (raw)
In-Reply-To: <e9bc573e-61f0-484a-b1fb-b5100eb9ee0a@microchip.com>
> Ok, as per the table 6 in the spec, PHY C45 registers are mapped in the
> MMS like below,
>
> PHY – PCS Registers (MMD 3) ---> MMS 2
> PHY – PMA/PMD Registers (MMD 1) ---> MMS 3
> PHY – Vendor Specific and PLCA Registers (MMD 31) ---> MMS 4
> PHY – Auto-Negotiation Registers (MMD 7) ---> MMS 5
> PHY – Power Unit (MMD 13) ---> MMS 6
>
> MMD 13 for PHY - Power Unit is not defined in the mdio.h. So in the
> below code I have defined it locally (MDIO_MMD_POWER_UNIT). May be
> needed to do this in the mdio.h file when coming to this patch.
Yes, please add it to mdio.h
> /* PHY – Clause 45 registers memory map selector (MMS) as per table 6 in
> the OPEN Alliance specification.
> */
> #define OA_TC6_PHY_PCS_MMS2 2 /* MMD 3 */
> #define OA_TC6_PHY_PMA_PMD_MMS3 3 /* MMD 1 */
> #define OA_TC6_PHY_VS_PLCA_MMS4 4 /* MMD 31 */
> #define OA_TC6_PHY_AUTO_NEG_MMS5 5 /* MMD 7 */
> #define OA_TC6_PHY_POWER_UNIT_MMS6 6 /* MMD 13 */
>
> /* MDIO Manageable Device (MMD) for PHY Power Unit */
> #define MDIO_MMD_POWER_UNIT 13 /* PHY Power Unit */
>
> static int oa_tc6_mdiobus_read_c45(struct mii_bus *bus, int addr, int
> devnum, int regnum)
> {
>
> struct oa_tc6 *tc6 = bus->priv;
>
> u32 regval;
>
> bool ret;
>
> u32 mms;
>
>
>
> if (devnum == MDIO_MMD_PCS)
>
> mms = OA_TC6_PHY_PCS_MMS2;
>
> else if (devnum == MDIO_MMD_PMAPMD)
>
> mms = OA_TC6_PHY_PMA_PMD_MMS3;
>
> else if (devnum == MDIO_MMD_VEND2)
>
> mms = OA_TC6_PHY_VS_PLCA_MMS4;
>
> else if (devnum == MDIO_MMD_AN)
>
> mms = OA_TC6_PHY_AUTO_NEG_MMS5;
>
> else if (devnum == MDIO_MMD_POWER_UNIT)
>
> mms = OA_TC6_PHY_POWER_UNIT_MMS6;
I would probably use a switch statement.
>
> else
>
> return -ENOTSUPP;
802.3 says:
If a device supports the MDIO interface it shall respond to all
possible register addresses for the device and return a value of
zero for undefined and unsupported registers. Writes to undefined
registers and read-only registers shall have no effect. The
operation of an MMD shall not be affected by writes to reserved and
unsupported register bits, and such register bits shall return a
value of zero when read.
So maybe return 0. ENOTSUPP is wrong, that is an NFS only error
code. The generic one is EOPNOTSUPP. I would say -EOPNOTSUPP is also
O.K.
> ret = oa_tc6_read_register(tc6, (mms << 16) | regnum, ®val);
>
> if (ret)
>
> return -ENODEV;
oa_tc6_read_register() should return an error code, so return whatever
is returns. Don't overwrite error codes. It makes it harder to track
errors through the call stack.
Andrew
next prev parent reply other threads:[~2024-03-08 13:32 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 8:50 [PATCH net-next v3 00/12] Add support for OPEN Alliance 10BASE-T1x MACPHY Serial Interface Parthiban Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 01/12] Documentation: networking: add OPEN Alliance 10BASE-T1x MAC-PHY serial interface Parthiban Veerasooran
2024-03-06 13:23 ` Andrew Lunn
2024-03-07 6:29 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 02/12] net: ethernet: oa_tc6: implement register write operation Parthiban Veerasooran
2024-03-06 13:40 ` Andrew Lunn
2024-03-07 6:46 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 03/12] net: ethernet: oa_tc6: implement register read operation Parthiban Veerasooran
2024-03-07 0:19 ` Andrew Lunn
2024-03-07 7:04 ` Parthiban.Veerasooran
2024-03-07 13:22 ` Andrew Lunn
2024-03-08 7:12 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 04/12] net: ethernet: oa_tc6: implement software reset Parthiban Veerasooran
2024-03-07 0:35 ` Andrew Lunn
2024-03-07 7:39 ` Parthiban.Veerasooran
2024-03-07 13:24 ` Andrew Lunn
2024-03-08 8:25 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 05/12] net: ethernet: oa_tc6: implement error interrupts unmasking Parthiban Veerasooran
2024-03-07 0:43 ` Andrew Lunn
2024-03-07 8:28 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 06/12] net: ethernet: oa_tc6: implement internal PHY initialization Parthiban Veerasooran
2024-03-07 1:13 ` Andrew Lunn
2024-03-07 14:41 ` Parthiban.Veerasooran
2024-03-07 16:36 ` Andrew Lunn
2024-03-08 12:05 ` Parthiban.Veerasooran
2024-03-08 13:33 ` Andrew Lunn [this message]
2024-03-18 11:01 ` Parthiban.Veerasooran
2024-04-12 10:43 ` Parthiban.Veerasooran
2024-04-15 13:15 ` Andrew Lunn
2024-04-16 11:02 ` Parthiban.Veerasooran
2024-04-16 18:18 ` Andrew Lunn
2024-04-17 8:55 ` Parthiban.Veerasooran
2024-03-21 18:49 ` Selvamani Rajagopal
2024-03-22 5:50 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 07/12] net: ethernet: oa_tc6: enable open alliance tc6 data communication Parthiban Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 08/12] net: ethernet: oa_tc6: implement transmit path to transfer tx ethernet frames Parthiban Veerasooran
2024-03-07 17:08 ` Andrew Lunn
2024-03-19 12:54 ` Parthiban.Veerasooran
2024-03-19 13:19 ` Andrew Lunn
2024-03-20 10:43 ` Parthiban.Veerasooran
2024-03-21 19:04 ` Selvamani Rajagopal
2024-03-21 19:42 ` Andrew Lunn
2024-03-22 18:31 ` Selvamani Rajagopal
2024-03-06 8:50 ` [PATCH net-next v3 09/12] net: ethernet: oa_tc6: implement receive path to receive rx " Parthiban Veerasooran
2024-03-08 0:14 ` Andrew Lunn
2024-03-19 12:54 ` Parthiban.Veerasooran
2024-03-19 13:20 ` Andrew Lunn
2024-03-20 5:55 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 10/12] net: ethernet: oa_tc6: implement mac-phy interrupt Parthiban Veerasooran
2024-03-06 23:42 ` Woojung.Huh
2024-03-07 10:16 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 11/12] microchip: lan865x: add driver support for Microchip's LAN865X MAC-PHY Parthiban Veerasooran
2024-03-06 23:44 ` Woojung.Huh
2024-03-07 9:13 ` Parthiban.Veerasooran
2024-03-06 8:50 ` [PATCH net-next v3 12/12] dt-bindings: net: add Microchip's LAN865X 10BASE-T1S MACPHY Parthiban Veerasooran
2024-03-06 18:16 ` Conor Dooley
2024-03-06 18:48 ` Andrew Lunn
2024-03-06 19:01 ` Conor Dooley
2024-03-20 8:40 ` Parthiban.Veerasooran
2024-03-20 9:53 ` Krzysztof Kozlowski
2024-03-21 8:38 ` Parthiban.Veerasooran
2024-03-21 8:40 ` Krzysztof Kozlowski
2024-03-21 12:00 ` Parthiban.Veerasooran
2024-03-21 15:34 ` Conor Dooley
2024-03-22 6:25 ` Parthiban.Veerasooran
2024-03-22 7:03 ` Krzysztof Kozlowski
2024-03-22 8:28 ` Parthiban.Veerasooran
2024-03-23 10:24 ` Krzysztof Kozlowski
2024-03-25 7:10 ` Parthiban.Veerasooran
2024-03-25 7:10 ` Parthiban.Veerasooran
2024-03-22 18:08 ` Conor Dooley
2024-03-25 7:12 ` Parthiban.Veerasooran
2024-03-20 8:40 ` Parthiban.Veerasooran
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=8de7a4bb-a127-4771-97dd-038f08fcce9d@lunn.ch \
--to=andrew@lunn.ch \
--cc=Horatiu.Vultur@microchip.com \
--cc=Nicolas.Ferre@microchip.com \
--cc=Parthiban.Veerasooran@microchip.com \
--cc=Pier.Beruto@onsemi.com \
--cc=Selvamani.Rajagopal@onsemi.com \
--cc=Steen.Hegelund@microchip.com \
--cc=Thorsten.Kummermehr@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=anthony.l.nguyen@intel.com \
--cc=benjamin.bigler@bernformulastudent.ch \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=robh+dt@kernel.org \
--cc=ruanjinjie@huawei.com \
--cc=saeedm@nvidia.com \
--cc=vladimir.oltean@nxp.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).