mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
851e7f77e4
New stm32 target introduces support for stm32mp1 based devices. For now it includes an initial support of the STM32MP135F-DK device. The specifications bellow only list supported features. Specifications -------------- SOC: STM32MP135FAF7 RAM: 512 MiB Storage: SD Card Ethernet: 2x 100 Mbps Wireless: 2.4GHz Cypress CYW43455 (802.11b/g/n) LEDs: Heartbeat (Blue) Buttons: 1x Reset, 1x User (USER2) USB: 4x 2.0 Type-A Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: https://github.com/openwrt/openwrt/pull/16716 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
72 lines
2.2 KiB
Diff
72 lines
2.2 KiB
Diff
From bb7ab910631ee0ade0758a3c4aa8dadc3b6934b6 Mon Sep 17 00:00:00 2001
|
|
From: Marek Vasut <marex@denx.de>
|
|
Date: Tue, 11 Jun 2024 10:36:02 +0200
|
|
Subject: [PATCH 5/8] net: stmmac: dwmac-stm32: Extract PMCR configuration
|
|
|
|
Pull the PMCR clock mux configuration into a separate function. This is
|
|
the final change of three, which moves external clock rate validation,
|
|
external clock selector decoding, and clock mux configuration into
|
|
separate functions. This should make the code easier to understand.
|
|
No functional change intended.
|
|
|
|
Signed-off-by: Marek Vasut <marex@denx.de>
|
|
Signed-off-by: Christophe Roullier <christophe.roullier@foss.st.com>
|
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
---
|
|
.../net/ethernet/stmicro/stmmac/dwmac-stm32.c | 27 ++++++++++++-------
|
|
1 file changed, 17 insertions(+), 10 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
|
|
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-stm32.c
|
|
@@ -219,15 +219,11 @@ static int stm32mp1_validate_ethck_rate(
|
|
return -EINVAL;
|
|
}
|
|
|
|
-static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
|
|
+static int stm32mp1_configure_pmcr(struct plat_stmmacenet_data *plat_dat)
|
|
{
|
|
struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
|
|
u32 reg = dwmac->mode_reg;
|
|
- int val, ret;
|
|
-
|
|
- ret = stm32mp1_select_ethck_external(plat_dat);
|
|
- if (ret)
|
|
- return ret;
|
|
+ int val;
|
|
|
|
switch (plat_dat->mac_interface) {
|
|
case PHY_INTERFACE_MODE_MII:
|
|
@@ -262,10 +258,6 @@ static int stm32mp1_set_mode(struct plat
|
|
return -EINVAL;
|
|
}
|
|
|
|
- ret = stm32mp1_validate_ethck_rate(plat_dat);
|
|
- if (ret)
|
|
- return ret;
|
|
-
|
|
/* Need to update PMCCLRR (clear register) */
|
|
regmap_write(dwmac->regmap, reg + SYSCFG_PMCCLRR_OFFSET,
|
|
dwmac->ops->syscfg_eth_mask);
|
|
@@ -275,6 +267,21 @@ static int stm32mp1_set_mode(struct plat
|
|
dwmac->ops->syscfg_eth_mask, val);
|
|
}
|
|
|
|
+static int stm32mp1_set_mode(struct plat_stmmacenet_data *plat_dat)
|
|
+{
|
|
+ int ret;
|
|
+
|
|
+ ret = stm32mp1_select_ethck_external(plat_dat);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
+ ret = stm32mp1_validate_ethck_rate(plat_dat);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
+ return stm32mp1_configure_pmcr(plat_dat);
|
|
+}
|
|
+
|
|
static int stm32mcu_set_mode(struct plat_stmmacenet_data *plat_dat)
|
|
{
|
|
struct stm32_dwmac *dwmac = plat_dat->bsp_priv;
|