]> git.baikalelectronics.ru Git - uboot.git/commit
ARM: dts: stm32: Switch DWMAC RMII clock to MCO2 on DHCOM
authorMarek Vasut <marex@denx.de>
Wed, 26 Jul 2023 23:58:07 +0000 (01:58 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Wed, 16 Aug 2023 13:37:14 +0000 (15:37 +0200)
commitdeca831deb902f3a46ddee20bab8d95ca0cd29f3
treeb5c15c4c9b8bb6304c1967b34d9f31b68623051e
parente32f1600f1c0adc627f530378427cbf445f1c136
ARM: dts: stm32: Switch DWMAC RMII clock to MCO2 on DHCOM

The DHCOM SoM has two options for supplying ETHRX clock to the DWMAC
block and PHY. Either (1) ETHCK_K generates 50 MHz clock on ETH_CLK
pad for the PHY and the same 50 MHz clock are fed back to ETHRX via
internal eth_clk_fb clock connection OR (2) ETH_CLK is not used at
all, MCO2 generates 50 MHz clock on MCO2 output pad for the PHY and
the same MCO2 clock are fed back into ETHRX via ETH_RX_CLK input pad
using external pad-to-pad connection.

Option (1) has two downsides. ETHCK_K is supplied directly from either
PLL3_Q or PLL4_P, hence the PLL output is limited to exactly 50 MHz and
since the same PLL output is also used to supply SDMMC blocks, the
performance of SD and eMMC access is affected. The second downside is
that using this option, the EMI of the SoM is higher.

Option (2) solves both of those problems, so implement it here. In this
case, the PLL4_P is no longer limited and can be operated faster, at
100 MHz, which improves SDMMC performance (read performance is improved
from ~41 MiB/s to ~57 MiB/s with dd if=/dev/mmcblk1 of=/dev/null bs=64M
count=1). The EMI interference also decreases.

Ported from Linux kernel commit
73ab99aad50cd ("ARM: dts: stm32: Switch DWMAC RMII clock to MCO2 on DHCOM")

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
arch/arm/dts/stm32mp15xx-dhcom-som.dtsi
arch/arm/dts/stm32mp15xx-dhcom-u-boot.dtsi