Re: [PATCH v3 02/11] net: stmmac: dwmac-stm32: Separate out external clock rate validation
From: Christophe ROULLIER
Date: Tue Jun 04 2024 - 05:16:20 EST
On 6/3/24 11:38, Russell King (Oracle) wrote:
On Mon, Jun 03, 2024 at 11:27:48AM +0200, Christophe Roullier wrote:
+static int stm32mp1_validate_ethck_rate(struct plat_stmmacenet_data *plat_dat)
+{
+ struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
+ const u32 clk_rate = clk_get_rate(dwmac->clk_eth_ck);
+
+ switch (plat_dat->mac_interface) {
Should these be phy_interface?
Hi,
The code is validating the clock frequency of clock that are INPUT into
the MAC. These clock can be generated by either the PHY, or Xtal, or
some other source, but they are still the clock which are INPUT into the
MAC. Therefore I believe mac_interface is correct here.
Does this clock depend on the interface
mode used with the PHY?
I don't think the clock depend on the PHY mode. Look at
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c :
"
458 plat->phy_interface = phy_mode;
459 rc = stmmac_of_get_mac_mode(np);
460 plat->mac_interface = rc < 0 ? plat->phy_interface : rc;
"
and this comment:
"
382 /**
383 * stmmac_of_get_mac_mode - retrieves the interface of the MAC
384 * @np: - device-tree node
385 * Description:
386 * Similar to `of_get_phy_mode()`, this function will retrieve (from
387 * the device-tree) the interface mode on the MAC side. This assumes
388 * that there is mode converter in-between the MAC & PHY
389 * (e.g. GMII-to-RGMII).
390 */
391 static int stmmac_of_get_mac_mode(struct device_node *np)
"
I think in the unlikely case that you would have a mode converter
between the MAC and PHY, the clock that are validated by this code would
still be the clock that are INPUT into the MAC, i.e. clock on the MAC
side of the mode converter and NOT on the PHY side , and those clock
would not depend on the PHY mode, they would depend on the MAC mode .