Ethernet clock + reset signals don't do anything
Hello ST community
I am having trouble configuring the Ethernet PHY on my custom board using the stm32mp153aac. The MPU is supposed to generate a 50 MHz reference clock for the transceiver, but when I measure the pin with the oscilloscope I get nothing. The reset pin also seems to be configured as input and never changes.
The ethernet transceiver is connected according to "Figure 46. 10/100M Ethernet PHY connection with REFCLK from RCC example" (external ETH_CLK 50 MHz reference, RMII mode, 100 Mbit).
I followed the ST wiki on ethernet device tree configuration and also found this forum thread.
https://wiki.st.com/stm32mpu/wiki/Ethernet_device_tree_configuration
Here is my top-level device tree source file:
And here is stm32mp153a-raichu-cubemx-mx-u-boot.dtsi:
The relevant sections are:
ðernet0{
pinctrl-names = "default", "sleep";
pinctrl-0 = <ð1_pins_mx>;
pinctrl-1 = <ð1_sleep_pins_mx>;
status = "okay";
/* USER CODE BEGIN ethernet0 */
mac-address = [df921222a51c];
phy-mode = "rmii";
max-speed = <100>;
phy-handle = <&phy0>;
st,eth_ref_clk_sel;
snps,reset-active-low;
snps,reset-delays-us = <0>, <10000>, <1000000>;
snps,reset-gpio = <&gpiob 0 GPIO_ACTIVE_HIGH>;
/*enable-gpios = <&gpiob 0 GPIO_ACTIVE_HIGH>;*/
clock-names = "stmmaceth",
"mac-clk-tx",
"mac-clk-rx",
"eth-ck",
"syscfg-clk",
"ethstp";
clocks = <&rcc ETHMAC>,
<&rcc ETHTX>,
<&rcc ETHRX>,
<&rcc ETHCK_K>,
<&rcc SYSCFG>,
<&rcc ETHSTP>;
mdio0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,dwmac-mdio";
phy0: ethernet-phy@3 {
reg = <3>;
};
};
/* USER CODE END ethernet0 */
};eth1_pins_mx: eth1_mx-0 {
pins1 {
pinmux = <STM32_PINMUX('A', 1, AF11)>, /* ETH1_REF_CLK */
<STM32_PINMUX('C', 1, AF11)>, /* ETH1_MDC */
<STM32_PINMUX('G', 8, AF2)>, /* ETH1_CLK */
<STM32_PINMUX('G', 13, AF11)>, /* ETH1_TXD0 */
<STM32_PINMUX('G', 14, AF11)>; /* ETH1_TXD1 */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
pins2 {
pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH1_MDIO */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins3 {
pinmux = <STM32_PINMUX('A', 7, AF11)>, /* ETH1_CRS_DV */
<STM32_PINMUX('C', 4, AF11)>, /* ETH1_RXD0 */
<STM32_PINMUX('C', 5, AF11)>, /* ETH1_RXD1 */
<STM32_PINMUX('G', 12, AF11)>; /* ETH1_PHY_INTN */
bias-disable;
};
pins4 {
pinmux = <STM32_PINMUX('B', 11, AF11)>; /* ETH1_TX_EN */
};
};pll4:st,pll@3 {
cfg = < 3 99 11 7 7 PQR(1,0,0) >;
u-boot,dm-pre-reloc;
};I would appreciate any insight as to why the reset pin doesn't work and why the 50 MHz ETH_CLK isn't output.
Thanks!
