Message ID | 1511942771-7961-3-git-send-email-patrice.chotard@st.com |
---|---|
State | Accepted |
Commit | 463aef3 |
Delegated to: | Joe Hershberger |
Headers | show |
Series | Add clock support for designware net driver | expand |
On 29 November 2017 at 01:06, <patrice.chotard@st.com> wrote: > From: Patrice Chotard <patrice.chotard@st.com> > > This implementation manages several clocks, disable and > free all of them in case of error during probe and in remove > callback. > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > --- > drivers/net/designware.c | 43 +++++++++++++++++++++++++++++++++++++++++++ > drivers/net/designware.h | 4 ++++ > 2 files changed, 47 insertions(+) Reviewed-by: Simon Glass <sjg@chromium.org>
On Wed, Nov 29, 2017 at 2:06 AM, <patrice.chotard@st.com> wrote: > From: Patrice Chotard <patrice.chotard@st.com> > > This implementation manages several clocks, disable and > free all of them in case of error during probe and in remove > callback. > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Hi Patrice, https://patchwork.ozlabs.org/patch/842491/ was applied to http://git.denx.de/?p=u-boot/u-boot-net.git Thanks! -Joe
On Wed, Nov 29, 2017 at 09:06:11AM +0100, patrice.chotard@st.com wrote: > From: Patrice Chotard <patrice.chotard@st.com> > > This implementation manages several clocks, disable and > free all of them in case of error during probe and in remove > callback. > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > --- > drivers/net/designware.c | 43 +++++++++++++++++++++++++++++++++++++++++++ > drivers/net/designware.h | 4 ++++ > 2 files changed, 47 insertions(+) RK3288 Ethernet on the ASUS Tinker Board fails to probe with master (32fe36574ea5e6ea55313e16547b98a984af7767) but worked with 2018.01. ba1f966725223c605ed504b09446c52a3f201c2b is the first bad commit commit ba1f966725223c605ed504b09446c52a3f201c2b Author: Patrice Chotard <patrice.chotard@st.com> Date: Wed Nov 29 09:06:11 2017 +0100 net: designware: add clock support This implementation manages several clocks, disable and free all of them in case of error during probe and in remove callback. Signed-off-by: Patrice Chotard <patrice.chotard@st.com> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com> :040000 040000 6f1002af4c0f3ed7ab6f2418d4f2de00bbe454a7 e18d2a6c24cbfd055c89fa250946bf85199fff90 M drivers U-Boot 2018.03-rc2-00047-gc1531533c5 (Feb 16 2018 - 15:38:39 +1100) Model: Tinker-RK3288 DRAM: 2 GiB MMC: dwmmc@ff0c0000: 1 Loading Environment from MMC... *** Warning - bad CRC, using default environment Failed (-5) In: serial Out: serial Err: serial Model: Tinker-RK3288 Net: failed to enable clock 0 No ethernet found. Hit any key to stop autoboot: 0 => dm tree Class Probed Driver Name ---------------------------------------- root [ + ] root_drive root_driver clk [ ] fixed_rate |-- oscillator mmc [ + ] rockchip_r |-- dwmmc@ff0c0000 blk [ + ] mmc_blk | `-- dwmmc@ff0c0000.blk adc [ + ] rockchip_s |-- saradc@ff100000 i2c [ ] i2c_rockch |-- i2c@ff170000 serial [ ] ns16550_se |-- serial@ff180000 serial [ ] ns16550_se |-- serial@ff190000 serial [ + ] ns16550_se |-- serial@ff690000 serial [ ] ns16550_se |-- serial@ff1b0000 serial [ ] ns16550_se |-- serial@ff1c0000 eth [ ] gmac_rockc |-- ethernet@ff290000 usb [ ] dwc2_usb |-- usb@ff540000 usb [ ] dwc2_usb |-- usb@ff580000 ram [ ] rockchip_r |-- dmc@ff610000 i2c [ + ] i2c_rockch |-- i2c@ff650000 pmic [ + ] rk8xx pmic | `-- pmic@1b regulator [ ] rk8xx_buck | |-- DCDC_REG1 regulator [ ] rk8xx_buck | |-- DCDC_REG2 regulator [ ] rk8xx_buck | |-- DCDC_REG3 regulator [ ] rk8xx_buck | |-- DCDC_REG4 regulator [ ] rk8xx_ldo | |-- LDO_REG1 regulator [ ] rk8xx_ldo | |-- LDO_REG2 regulator [ ] rk8xx_ldo | |-- LDO_REG3 regulator [ ] rk8xx_ldo | |-- LDO_REG4 regulator [ + ] rk8xx_ldo | |-- LDO_REG5 regulator [ ] rk8xx_ldo | |-- LDO_REG6 regulator [ ] rk8xx_ldo | |-- LDO_REG7 regulator [ ] rk8xx_ldo | |-- LDO_REG8 regulator [ ] rk8xx_swit | |-- SWITCH_REG1 regulator [ ] rk8xx_swit | `-- SWITCH_REG2 i2c [ + ] i2c_rockch |-- i2c@ff660000 i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 pwm [ ] rk_pwm |-- pwm@ff680000 pwm [ ] rk_pwm |-- pwm@ff680010 syscon [ + ] rk3288_sys |-- power-management@ff730000 syscon [ ] rk3288_sys |-- syscon@ff740000 clk [ + ] rockchip_r |-- clock-controller@ff760000 sysreset [ ] rockchip_s | `-- sysreset syscon [ + ] rk3288_sys |-- syscon@ff770000 syscon [ ] rk3288_sys |-- syscon@ffac0000 pinctrl [ + ] rockchip_r |-- pinctrl gpio [ ] gpio_rockc | |-- gpio0@ff750000 gpio [ ] gpio_rockc | |-- gpio1@ff780000 gpio [ ] gpio_rockc | |-- gpio2@ff790000 gpio [ ] gpio_rockc | |-- gpio3@ff7a0000 gpio [ + ] gpio_rockc | |-- gpio4@ff7b0000 gpio [ ] gpio_rockc | |-- gpio5@ff7c0000 gpio [ ] gpio_rockc | |-- gpio6@ff7d0000 gpio [ + ] gpio_rockc | |-- gpio7@ff7e0000 gpio [ ] gpio_rockc | |-- gpio8@ff7f0000 pinconfig [ ] pinconfig | |-- pcfg-pull-up pinconfig [ ] pinconfig | |-- pcfg-pull-down pinconfig [ ] pinconfig | |-- pcfg-pull-none pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma pinconfig [ + ] pinconfig | |-- sleep pinconfig [ + ] pinconfig | | |-- global-pwroff pinconfig [ ] pinconfig | | |-- ddrio-pwroff pinconfig [ ] pinconfig | | |-- ddr0-retention pinconfig [ ] pinconfig | | `-- ddr1-retention pinconfig [ + ] pinconfig | |-- i2c0 pinconfig [ + ] pinconfig | | `-- i2c0-xfer pinconfig [ ] pinconfig | |-- i2c1 pinconfig [ ] pinconfig | | `-- i2c1-xfer pinconfig [ + ] pinconfig | |-- i2c2 pinconfig [ + ] pinconfig | | `-- i2c2-xfer pinconfig [ ] pinconfig | |-- i2c3 pinconfig [ ] pinconfig | | `-- i2c3-xfer pinconfig [ ] pinconfig | |-- i2c4 pinconfig [ ] pinconfig | | `-- i2c4-xfer pinconfig [ ] pinconfig | |-- i2c5 pinconfig [ ] pinconfig | | `-- i2c5-xfer pinconfig [ ] pinconfig | |-- i2s0 pinconfig [ ] pinconfig | | `-- i2s0-bus pinconfig [ ] pinconfig | |-- lcdc0 pinconfig [ ] pinconfig | | `-- lcdc0-ctl pinconfig [ + ] pinconfig | |-- sdmmc pinconfig [ + ] pinconfig | | |-- sdmmc-clk pinconfig [ + ] pinconfig | | |-- sdmmc-cmd pinconfig [ + ] pinconfig | | |-- sdmcc-cd pinconfig [ ] pinconfig | | |-- sdmmc-bus1 pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 pinconfig [ + ] pinconfig | | `-- sdmmc-pwr pinconfig [ ] pinconfig | |-- sdio0 pinconfig [ ] pinconfig | | |-- sdio0-bus1 pinconfig [ ] pinconfig | | |-- sdio0-bus4 pinconfig [ ] pinconfig | | |-- sdio0-cmd pinconfig [ ] pinconfig | | |-- sdio0-clk pinconfig [ ] pinconfig | | |-- sdio0-cd pinconfig [ ] pinconfig | | |-- sdio0-wp pinconfig [ ] pinconfig | | |-- sdio0-pwr pinconfig [ ] pinconfig | | |-- sdio0-bkpwr pinconfig [ ] pinconfig | | `-- sdio0-int pinconfig [ ] pinconfig | |-- sdio1 pinconfig [ ] pinconfig | | |-- sdio1-bus1 pinconfig [ ] pinconfig | | |-- sdio1-bus4 pinconfig [ ] pinconfig | | |-- sdio1-cd pinconfig [ ] pinconfig | | |-- sdio1-wp pinconfig [ ] pinconfig | | |-- sdio1-bkpwr pinconfig [ ] pinconfig | | |-- sdio1-int pinconfig [ ] pinconfig | | |-- sdio1-cmd pinconfig [ ] pinconfig | | |-- sdio1-clk pinconfig [ ] pinconfig | | `-- sdio1-pwr pinconfig [ ] pinconfig | |-- emmc pinconfig [ ] pinconfig | | |-- emmc-clk pinconfig [ ] pinconfig | | |-- emmc-cmd pinconfig [ ] pinconfig | | |-- emmc-pwr pinconfig [ ] pinconfig | | |-- emmc-bus1 pinconfig [ ] pinconfig | | |-- emmc-bus4 pinconfig [ ] pinconfig | | `-- emmc-bus8 pinconfig [ ] pinconfig | |-- spi0 pinconfig [ ] pinconfig | | |-- spi0-clk pinconfig [ ] pinconfig | | |-- spi0-cs0 pinconfig [ ] pinconfig | | |-- spi0-tx pinconfig [ ] pinconfig | | |-- spi0-rx pinconfig [ ] pinconfig | | `-- spi0-cs1 pinconfig [ ] pinconfig | |-- spi1 pinconfig [ ] pinconfig | | |-- spi1-clk pinconfig [ ] pinconfig | | |-- spi1-cs0 pinconfig [ ] pinconfig | | |-- spi1-rx pinconfig [ ] pinconfig | | `-- spi1-tx pinconfig [ ] pinconfig | |-- spi2 pinconfig [ ] pinconfig | | |-- spi2-cs1 pinconfig [ ] pinconfig | | |-- spi2-clk pinconfig [ ] pinconfig | | |-- spi2-cs0 pinconfig [ ] pinconfig | | |-- spi2-rx pinconfig [ ] pinconfig | | `-- spi2-tx pinconfig [ ] pinconfig | |-- uart0 pinconfig [ ] pinconfig | | |-- uart0-xfer pinconfig [ ] pinconfig | | |-- uart0-cts pinconfig [ ] pinconfig | | `-- uart0-rts pinconfig [ ] pinconfig | |-- uart1 pinconfig [ ] pinconfig | | |-- uart1-xfer pinconfig [ ] pinconfig | | |-- uart1-cts pinconfig [ ] pinconfig | | `-- uart1-rts pinconfig [ + ] pinconfig | |-- uart2 pinconfig [ + ] pinconfig | | `-- uart2-xfer pinconfig [ ] pinconfig | |-- uart3 pinconfig [ ] pinconfig | | |-- uart3-xfer pinconfig [ ] pinconfig | | |-- uart3-cts pinconfig [ ] pinconfig | | `-- uart3-rts pinconfig [ ] pinconfig | |-- uart4 pinconfig [ ] pinconfig | | |-- uart4-xfer pinconfig [ ] pinconfig | | |-- uart4-cts pinconfig [ ] pinconfig | | `-- uart4-rts pinconfig [ ] pinconfig | |-- tsadc pinconfig [ ] pinconfig | | `-- otp-out pinconfig [ ] pinconfig | |-- pwm0 pinconfig [ ] pinconfig | | `-- pwm0-pin pinconfig [ ] pinconfig | |-- pwm1 pinconfig [ ] pinconfig | | `-- pwm1-pin pinconfig [ ] pinconfig | |-- pwm2 pinconfig [ ] pinconfig | | `-- pwm2-pin pinconfig [ ] pinconfig | |-- pwm3 pinconfig [ ] pinconfig | | `-- pwm3-pin pinconfig [ + ] pinconfig | |-- gmac pinconfig [ + ] pinconfig | | |-- rgmii-pins pinconfig [ ] pinconfig | | `-- rmii-pins pinconfig [ ] pinconfig | |-- spdif pinconfig [ ] pinconfig | | `-- spdif-tx pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma pinconfig [ ] pinconfig | |-- backlight pinconfig [ ] pinconfig | | `-- bl-en pinconfig [ ] pinconfig | |-- buttons pinconfig [ ] pinconfig | | `-- pwrbtn pinconfig [ ] pinconfig | |-- eth_phy pinconfig [ ] pinconfig | | `-- eth-phy-pwr pinconfig [ + ] pinconfig | |-- pmic pinconfig [ + ] pinconfig | | `-- pmic-int pinconfig [ ] pinconfig | `-- usb pinconfig [ ] pinconfig | |-- host-vbus-drv pinconfig [ ] pinconfig | `-- pwr-3g clk [ + ] fixed_rate |-- external-gmac-clock regulator [ ] fixed regu |-- vsys-regulator regulator [ + ] fixed regu |-- sdmmc-regulator regulator [ ] fixed regu `-- usb-host-regulator => U-Boot 2018.01 (Feb 06 2018 - 23:24:11 -0700) Model: Tinker-RK3288 DRAM: 2 GiB MMC: dwmmc@ff0c0000: 1 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Model: Tinker-RK3288 Net: eth0: ethernet@ff290000 Hit any key to stop autoboot: 0 => dm tree Class Probed Driver Name ---------------------------------------- root [ + ] root_drive root_driver clk [ ] fixed_rate |-- oscillator mmc [ + ] rockchip_r |-- dwmmc@ff0c0000 blk [ + ] mmc_blk | `-- dwmmc@ff0c0000.blk adc [ + ] rockchip_s |-- saradc@ff100000 i2c [ ] i2c_rockch |-- i2c@ff170000 serial [ ] ns16550_se |-- serial@ff180000 serial [ ] ns16550_se |-- serial@ff190000 serial [ + ] ns16550_se |-- serial@ff690000 serial [ ] ns16550_se |-- serial@ff1b0000 serial [ ] ns16550_se |-- serial@ff1c0000 eth [ + ] gmac_rockc |-- ethernet@ff290000 usb [ ] dwc2_usb |-- usb@ff540000 usb [ ] dwc2_usb |-- usb@ff580000 ram [ ] rockchip_r |-- dmc@ff610000 i2c [ + ] i2c_rockch |-- i2c@ff650000 pmic [ + ] rk8xx pmic | `-- pmic@1b regulator [ ] rk8xx_buck | |-- DCDC_REG1 regulator [ ] rk8xx_buck | |-- DCDC_REG2 regulator [ ] rk8xx_buck | |-- DCDC_REG3 regulator [ ] rk8xx_buck | |-- DCDC_REG4 regulator [ ] rk8xx_ldo | |-- LDO_REG1 regulator [ ] rk8xx_ldo | |-- LDO_REG2 regulator [ ] rk8xx_ldo | |-- LDO_REG3 regulator [ ] rk8xx_ldo | |-- LDO_REG4 regulator [ ] rk8xx_ldo | |-- LDO_REG5 regulator [ ] rk8xx_ldo | |-- LDO_REG6 regulator [ ] rk8xx_ldo | |-- LDO_REG7 regulator [ ] rk8xx_ldo | |-- LDO_REG8 regulator [ ] rk8xx_swit | |-- SWITCH_REG1 regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 i2c [ + ] i2c_rockch |-- i2c@ff660000 i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 pwm [ ] rk_pwm |-- pwm@ff680000 pwm [ ] rk_pwm |-- pwm@ff680010 syscon [ + ] rk3288_sys |-- power-management@ff730000 syscon [ ] rk3288_sys |-- syscon@ff740000 clk [ + ] rockchip_r |-- clock-controller@ff760000 sysreset [ ] rockchip_s | `-- sysreset syscon [ + ] rk3288_sys |-- syscon@ff770000 syscon [ ] rk3288_sys |-- syscon@ffac0000 pinctrl [ + ] rockchip_r |-- pinctrl gpio [ ] gpio_rockc | |-- gpio0@ff750000 gpio [ ] gpio_rockc | |-- gpio1@ff780000 gpio [ ] gpio_rockc | |-- gpio2@ff790000 gpio [ ] gpio_rockc | |-- gpio3@ff7a0000 gpio [ + ] gpio_rockc | |-- gpio4@ff7b0000 gpio [ ] gpio_rockc | |-- gpio5@ff7c0000 gpio [ ] gpio_rockc | |-- gpio6@ff7d0000 gpio [ + ] gpio_rockc | |-- gpio7@ff7e0000 gpio [ ] gpio_rockc | |-- gpio8@ff7f0000 pinconfig [ ] pinconfig | |-- pcfg-pull-up pinconfig [ ] pinconfig | |-- pcfg-pull-down pinconfig [ ] pinconfig | |-- pcfg-pull-none pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma pinconfig [ + ] pinconfig | |-- sleep pinconfig [ + ] pinconfig | | |-- global-pwroff pinconfig [ ] pinconfig | | |-- ddrio-pwroff pinconfig [ ] pinconfig | | |-- ddr0-retention pinconfig [ ] pinconfig | | `-- ddr1-retention pinconfig [ + ] pinconfig | |-- i2c0 pinconfig [ + ] pinconfig | | `-- i2c0-xfer pinconfig [ ] pinconfig | |-- i2c1 pinconfig [ ] pinconfig | | `-- i2c1-xfer pinconfig [ + ] pinconfig | |-- i2c2 pinconfig [ + ] pinconfig | | `-- i2c2-xfer pinconfig [ ] pinconfig | |-- i2c3 pinconfig [ ] pinconfig | | `-- i2c3-xfer pinconfig [ ] pinconfig | |-- i2c4 pinconfig [ ] pinconfig | | `-- i2c4-xfer pinconfig [ ] pinconfig | |-- i2c5 pinconfig [ ] pinconfig | | `-- i2c5-xfer pinconfig [ ] pinconfig | |-- i2s0 pinconfig [ ] pinconfig | | `-- i2s0-bus pinconfig [ ] pinconfig | |-- lcdc0 pinconfig [ ] pinconfig | | `-- lcdc0-ctl pinconfig [ + ] pinconfig | |-- sdmmc pinconfig [ + ] pinconfig | | |-- sdmmc-clk pinconfig [ + ] pinconfig | | |-- sdmmc-cmd pinconfig [ + ] pinconfig | | |-- sdmcc-cd pinconfig [ ] pinconfig | | |-- sdmmc-bus1 pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 pinconfig [ + ] pinconfig | | `-- sdmmc-pwr pinconfig [ ] pinconfig | |-- sdio0 pinconfig [ ] pinconfig | | |-- sdio0-bus1 pinconfig [ ] pinconfig | | |-- sdio0-bus4 pinconfig [ ] pinconfig | | |-- sdio0-cmd pinconfig [ ] pinconfig | | |-- sdio0-clk pinconfig [ ] pinconfig | | |-- sdio0-cd pinconfig [ ] pinconfig | | |-- sdio0-wp pinconfig [ ] pinconfig | | |-- sdio0-pwr pinconfig [ ] pinconfig | | |-- sdio0-bkpwr pinconfig [ ] pinconfig | | `-- sdio0-int pinconfig [ ] pinconfig | |-- sdio1 pinconfig [ ] pinconfig | | |-- sdio1-bus1 pinconfig [ ] pinconfig | | |-- sdio1-bus4 pinconfig [ ] pinconfig | | |-- sdio1-cd pinconfig [ ] pinconfig | | |-- sdio1-wp pinconfig [ ] pinconfig | | |-- sdio1-bkpwr pinconfig [ ] pinconfig | | |-- sdio1-int pinconfig [ ] pinconfig | | |-- sdio1-cmd pinconfig [ ] pinconfig | | |-- sdio1-clk pinconfig [ ] pinconfig | | `-- sdio1-pwr pinconfig [ ] pinconfig | |-- emmc pinconfig [ ] pinconfig | | |-- emmc-clk pinconfig [ ] pinconfig | | |-- emmc-cmd pinconfig [ ] pinconfig | | |-- emmc-pwr pinconfig [ ] pinconfig | | |-- emmc-bus1 pinconfig [ ] pinconfig | | |-- emmc-bus4 pinconfig [ ] pinconfig | | `-- emmc-bus8 pinconfig [ ] pinconfig | |-- spi0 pinconfig [ ] pinconfig | | |-- spi0-clk pinconfig [ ] pinconfig | | |-- spi0-cs0 pinconfig [ ] pinconfig | | |-- spi0-tx pinconfig [ ] pinconfig | | |-- spi0-rx pinconfig [ ] pinconfig | | `-- spi0-cs1 pinconfig [ ] pinconfig | |-- spi1 pinconfig [ ] pinconfig | | |-- spi1-clk pinconfig [ ] pinconfig | | |-- spi1-cs0 pinconfig [ ] pinconfig | | |-- spi1-rx pinconfig [ ] pinconfig | | `-- spi1-tx pinconfig [ ] pinconfig | |-- spi2 pinconfig [ ] pinconfig | | |-- spi2-cs1 pinconfig [ ] pinconfig | | |-- spi2-clk pinconfig [ ] pinconfig | | |-- spi2-cs0 pinconfig [ ] pinconfig | | |-- spi2-rx pinconfig [ ] pinconfig | | `-- spi2-tx pinconfig [ ] pinconfig | |-- uart0 pinconfig [ ] pinconfig | | |-- uart0-xfer pinconfig [ ] pinconfig | | |-- uart0-cts pinconfig [ ] pinconfig | | `-- uart0-rts pinconfig [ ] pinconfig | |-- uart1 pinconfig [ ] pinconfig | | |-- uart1-xfer pinconfig [ ] pinconfig | | |-- uart1-cts pinconfig [ ] pinconfig | | `-- uart1-rts pinconfig [ + ] pinconfig | |-- uart2 pinconfig [ + ] pinconfig | | `-- uart2-xfer pinconfig [ ] pinconfig | |-- uart3 pinconfig [ ] pinconfig | | |-- uart3-xfer pinconfig [ ] pinconfig | | |-- uart3-cts pinconfig [ ] pinconfig | | `-- uart3-rts pinconfig [ ] pinconfig | |-- uart4 pinconfig [ ] pinconfig | | |-- uart4-xfer pinconfig [ ] pinconfig | | |-- uart4-cts pinconfig [ ] pinconfig | | `-- uart4-rts pinconfig [ ] pinconfig | |-- tsadc pinconfig [ ] pinconfig | | `-- otp-out pinconfig [ ] pinconfig | |-- pwm0 pinconfig [ ] pinconfig | | `-- pwm0-pin pinconfig [ ] pinconfig | |-- pwm1 pinconfig [ ] pinconfig | | `-- pwm1-pin pinconfig [ ] pinconfig | |-- pwm2 pinconfig [ ] pinconfig | | `-- pwm2-pin pinconfig [ ] pinconfig | |-- pwm3 pinconfig [ ] pinconfig | | `-- pwm3-pin pinconfig [ + ] pinconfig | |-- gmac pinconfig [ + ] pinconfig | | |-- rgmii-pins pinconfig [ ] pinconfig | | `-- rmii-pins pinconfig [ ] pinconfig | |-- spdif pinconfig [ ] pinconfig | | `-- spdif-tx pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma pinconfig [ ] pinconfig | |-- backlight pinconfig [ ] pinconfig | | `-- bl-en pinconfig [ ] pinconfig | |-- buttons pinconfig [ ] pinconfig | | `-- pwrbtn pinconfig [ ] pinconfig | |-- eth_phy pinconfig [ ] pinconfig | | `-- eth-phy-pwr pinconfig [ + ] pinconfig | |-- pmic pinconfig [ + ] pinconfig | | `-- pmic-int pinconfig [ ] pinconfig | `-- usb pinconfig [ ] pinconfig | |-- host-vbus-drv pinconfig [ ] pinconfig | `-- pwr-3g clk [ ] fixed_rate |-- external-gmac-clock regulator [ ] fixed regu |-- vsys-regulator regulator [ + ] fixed regu |-- sdmmc-regulator regulator [ ] fixed regu `-- usb-host-regulator => @@ -73,7 +27,7 @@ Hit any key to stop autoboot: 0 serial [ + ] ns16550_se |-- serial@ff690000 serial [ ] ns16550_se |-- serial@ff1b0000 serial [ ] ns16550_se |-- serial@ff1c0000 - eth [ + ] gmac_rockc |-- ethernet@ff290000 + eth [ ] gmac_rockc |-- ethernet@ff290000 usb [ ] dwc2_usb |-- usb@ff540000 usb [ ] dwc2_usb |-- usb@ff580000 ram [ ] rockchip_r |-- dmc@ff610000 @@ -87,12 +41,12 @@ Hit any key to stop autoboot: 0 regulator [ ] rk8xx_ldo | |-- LDO_REG2 regulator [ ] rk8xx_ldo | |-- LDO_REG3 regulator [ ] rk8xx_ldo | |-- LDO_REG4 - regulator [ ] rk8xx_ldo | |-- LDO_REG5 + regulator [ + ] rk8xx_ldo | |-- LDO_REG5 regulator [ ] rk8xx_ldo | |-- LDO_REG6 regulator [ ] rk8xx_ldo | |-- LDO_REG7 regulator [ ] rk8xx_ldo | |-- LDO_REG8 regulator [ ] rk8xx_swit | |-- SWITCH_REG1 - regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 + regulator [ ] rk8xx_swit | `-- SWITCH_REG2 i2c [ + ] i2c_rockch |-- i2c@ff660000 i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 pwm [ ] rk_pwm |-- pwm@ff680000 @@ -235,7 +189,7 @@ Hit any key to stop autoboot: 0 pinconfig [ ] pinconfig | `-- usb pinconfig [ ] pinconfig | |-- host-vbus-drv pinconfig [ ] pinconfig | `-- pwr-3g - clk [ ] fixed_rate |-- external-gmac-clock + clk [ + ] fixed_rate |-- external-gmac-clock regulator [ ] fixed regu |-- vsys-regulator regulator [ + ] fixed regu |-- sdmmc-regulator regulator [ ] fixed regu `-- usb-host-regulator
Hi Jonathan Have you tried to apply the fix available here ? http://u-boot.10912.n7.nabble.com/PATCH-NET-designware-fix-clock-enable-td320043.html Regards Patrice On 02/16/2018 08:17 AM, Jonathan Gray wrote: > On Wed, Nov 29, 2017 at 09:06:11AM +0100, patrice.chotard@st.com wrote: >> From: Patrice Chotard <patrice.chotard@st.com> >> >> This implementation manages several clocks, disable and >> free all of them in case of error during probe and in remove >> callback. >> >> Signed-off-by: Patrice Chotard <patrice.chotard@st.com> >> --- >> drivers/net/designware.c | 43 +++++++++++++++++++++++++++++++++++++++++++ >> drivers/net/designware.h | 4 ++++ >> 2 files changed, 47 insertions(+) > > RK3288 Ethernet on the ASUS Tinker Board fails to probe with master > (32fe36574ea5e6ea55313e16547b98a984af7767) but worked with 2018.01. > > ba1f966725223c605ed504b09446c52a3f201c2b is the first bad commit > commit ba1f966725223c605ed504b09446c52a3f201c2b > Author: Patrice Chotard <patrice.chotard@st.com> > Date: Wed Nov 29 09:06:11 2017 +0100 > > net: designware: add clock support > > This implementation manages several clocks, disable and > free all of them in case of error during probe and in remove > callback. > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > Reviewed-by: Simon Glass <sjg@chromium.org> > Acked-by: Joe Hershberger <joe.hershberger@ni.com> > > :040000 040000 6f1002af4c0f3ed7ab6f2418d4f2de00bbe454a7 e18d2a6c24cbfd055c89fa250946bf85199fff90 M drivers > > U-Boot 2018.03-rc2-00047-gc1531533c5 (Feb 16 2018 - 15:38:39 +1100) > > Model: Tinker-RK3288 > DRAM: 2 GiB > MMC: dwmmc@ff0c0000: 1 > Loading Environment from MMC... *** Warning - bad CRC, using default environment > > Failed (-5) > In: serial > Out: serial > Err: serial > Model: Tinker-RK3288 > Net: failed to enable clock 0 > No ethernet found. > Hit any key to stop autoboot: 0 > => dm tree > Class Probed Driver Name > ---------------------------------------- > root [ + ] root_drive root_driver > clk [ ] fixed_rate |-- oscillator > mmc [ + ] rockchip_r |-- dwmmc@ff0c0000 > blk [ + ] mmc_blk | `-- dwmmc@ff0c0000.blk > adc [ + ] rockchip_s |-- saradc@ff100000 > i2c [ ] i2c_rockch |-- i2c@ff170000 > serial [ ] ns16550_se |-- serial@ff180000 > serial [ ] ns16550_se |-- serial@ff190000 > serial [ + ] ns16550_se |-- serial@ff690000 > serial [ ] ns16550_se |-- serial@ff1b0000 > serial [ ] ns16550_se |-- serial@ff1c0000 > eth [ ] gmac_rockc |-- ethernet@ff290000 > usb [ ] dwc2_usb |-- usb@ff540000 > usb [ ] dwc2_usb |-- usb@ff580000 > ram [ ] rockchip_r |-- dmc@ff610000 > i2c [ + ] i2c_rockch |-- i2c@ff650000 > pmic [ + ] rk8xx pmic | `-- pmic@1b > regulator [ ] rk8xx_buck | |-- DCDC_REG1 > regulator [ ] rk8xx_buck | |-- DCDC_REG2 > regulator [ ] rk8xx_buck | |-- DCDC_REG3 > regulator [ ] rk8xx_buck | |-- DCDC_REG4 > regulator [ ] rk8xx_ldo | |-- LDO_REG1 > regulator [ ] rk8xx_ldo | |-- LDO_REG2 > regulator [ ] rk8xx_ldo | |-- LDO_REG3 > regulator [ ] rk8xx_ldo | |-- LDO_REG4 > regulator [ + ] rk8xx_ldo | |-- LDO_REG5 > regulator [ ] rk8xx_ldo | |-- LDO_REG6 > regulator [ ] rk8xx_ldo | |-- LDO_REG7 > regulator [ ] rk8xx_ldo | |-- LDO_REG8 > regulator [ ] rk8xx_swit | |-- SWITCH_REG1 > regulator [ ] rk8xx_swit | `-- SWITCH_REG2 > i2c [ + ] i2c_rockch |-- i2c@ff660000 > i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 > pwm [ ] rk_pwm |-- pwm@ff680000 > pwm [ ] rk_pwm |-- pwm@ff680010 > syscon [ + ] rk3288_sys |-- power-management@ff730000 > syscon [ ] rk3288_sys |-- syscon@ff740000 > clk [ + ] rockchip_r |-- clock-controller@ff760000 > sysreset [ ] rockchip_s | `-- sysreset > syscon [ + ] rk3288_sys |-- syscon@ff770000 > syscon [ ] rk3288_sys |-- syscon@ffac0000 > pinctrl [ + ] rockchip_r |-- pinctrl > gpio [ ] gpio_rockc | |-- gpio0@ff750000 > gpio [ ] gpio_rockc | |-- gpio1@ff780000 > gpio [ ] gpio_rockc | |-- gpio2@ff790000 > gpio [ ] gpio_rockc | |-- gpio3@ff7a0000 > gpio [ + ] gpio_rockc | |-- gpio4@ff7b0000 > gpio [ ] gpio_rockc | |-- gpio5@ff7c0000 > gpio [ ] gpio_rockc | |-- gpio6@ff7d0000 > gpio [ + ] gpio_rockc | |-- gpio7@ff7e0000 > gpio [ ] gpio_rockc | |-- gpio8@ff7f0000 > pinconfig [ ] pinconfig | |-- pcfg-pull-up > pinconfig [ ] pinconfig | |-- pcfg-pull-down > pinconfig [ ] pinconfig | |-- pcfg-pull-none > pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma > pinconfig [ + ] pinconfig | |-- sleep > pinconfig [ + ] pinconfig | | |-- global-pwroff > pinconfig [ ] pinconfig | | |-- ddrio-pwroff > pinconfig [ ] pinconfig | | |-- ddr0-retention > pinconfig [ ] pinconfig | | `-- ddr1-retention > pinconfig [ + ] pinconfig | |-- i2c0 > pinconfig [ + ] pinconfig | | `-- i2c0-xfer > pinconfig [ ] pinconfig | |-- i2c1 > pinconfig [ ] pinconfig | | `-- i2c1-xfer > pinconfig [ + ] pinconfig | |-- i2c2 > pinconfig [ + ] pinconfig | | `-- i2c2-xfer > pinconfig [ ] pinconfig | |-- i2c3 > pinconfig [ ] pinconfig | | `-- i2c3-xfer > pinconfig [ ] pinconfig | |-- i2c4 > pinconfig [ ] pinconfig | | `-- i2c4-xfer > pinconfig [ ] pinconfig | |-- i2c5 > pinconfig [ ] pinconfig | | `-- i2c5-xfer > pinconfig [ ] pinconfig | |-- i2s0 > pinconfig [ ] pinconfig | | `-- i2s0-bus > pinconfig [ ] pinconfig | |-- lcdc0 > pinconfig [ ] pinconfig | | `-- lcdc0-ctl > pinconfig [ + ] pinconfig | |-- sdmmc > pinconfig [ + ] pinconfig | | |-- sdmmc-clk > pinconfig [ + ] pinconfig | | |-- sdmmc-cmd > pinconfig [ + ] pinconfig | | |-- sdmcc-cd > pinconfig [ ] pinconfig | | |-- sdmmc-bus1 > pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 > pinconfig [ + ] pinconfig | | `-- sdmmc-pwr > pinconfig [ ] pinconfig | |-- sdio0 > pinconfig [ ] pinconfig | | |-- sdio0-bus1 > pinconfig [ ] pinconfig | | |-- sdio0-bus4 > pinconfig [ ] pinconfig | | |-- sdio0-cmd > pinconfig [ ] pinconfig | | |-- sdio0-clk > pinconfig [ ] pinconfig | | |-- sdio0-cd > pinconfig [ ] pinconfig | | |-- sdio0-wp > pinconfig [ ] pinconfig | | |-- sdio0-pwr > pinconfig [ ] pinconfig | | |-- sdio0-bkpwr > pinconfig [ ] pinconfig | | `-- sdio0-int > pinconfig [ ] pinconfig | |-- sdio1 > pinconfig [ ] pinconfig | | |-- sdio1-bus1 > pinconfig [ ] pinconfig | | |-- sdio1-bus4 > pinconfig [ ] pinconfig | | |-- sdio1-cd > pinconfig [ ] pinconfig | | |-- sdio1-wp > pinconfig [ ] pinconfig | | |-- sdio1-bkpwr > pinconfig [ ] pinconfig | | |-- sdio1-int > pinconfig [ ] pinconfig | | |-- sdio1-cmd > pinconfig [ ] pinconfig | | |-- sdio1-clk > pinconfig [ ] pinconfig | | `-- sdio1-pwr > pinconfig [ ] pinconfig | |-- emmc > pinconfig [ ] pinconfig | | |-- emmc-clk > pinconfig [ ] pinconfig | | |-- emmc-cmd > pinconfig [ ] pinconfig | | |-- emmc-pwr > pinconfig [ ] pinconfig | | |-- emmc-bus1 > pinconfig [ ] pinconfig | | |-- emmc-bus4 > pinconfig [ ] pinconfig | | `-- emmc-bus8 > pinconfig [ ] pinconfig | |-- spi0 > pinconfig [ ] pinconfig | | |-- spi0-clk > pinconfig [ ] pinconfig | | |-- spi0-cs0 > pinconfig [ ] pinconfig | | |-- spi0-tx > pinconfig [ ] pinconfig | | |-- spi0-rx > pinconfig [ ] pinconfig | | `-- spi0-cs1 > pinconfig [ ] pinconfig | |-- spi1 > pinconfig [ ] pinconfig | | |-- spi1-clk > pinconfig [ ] pinconfig | | |-- spi1-cs0 > pinconfig [ ] pinconfig | | |-- spi1-rx > pinconfig [ ] pinconfig | | `-- spi1-tx > pinconfig [ ] pinconfig | |-- spi2 > pinconfig [ ] pinconfig | | |-- spi2-cs1 > pinconfig [ ] pinconfig | | |-- spi2-clk > pinconfig [ ] pinconfig | | |-- spi2-cs0 > pinconfig [ ] pinconfig | | |-- spi2-rx > pinconfig [ ] pinconfig | | `-- spi2-tx > pinconfig [ ] pinconfig | |-- uart0 > pinconfig [ ] pinconfig | | |-- uart0-xfer > pinconfig [ ] pinconfig | | |-- uart0-cts > pinconfig [ ] pinconfig | | `-- uart0-rts > pinconfig [ ] pinconfig | |-- uart1 > pinconfig [ ] pinconfig | | |-- uart1-xfer > pinconfig [ ] pinconfig | | |-- uart1-cts > pinconfig [ ] pinconfig | | `-- uart1-rts > pinconfig [ + ] pinconfig | |-- uart2 > pinconfig [ + ] pinconfig | | `-- uart2-xfer > pinconfig [ ] pinconfig | |-- uart3 > pinconfig [ ] pinconfig | | |-- uart3-xfer > pinconfig [ ] pinconfig | | |-- uart3-cts > pinconfig [ ] pinconfig | | `-- uart3-rts > pinconfig [ ] pinconfig | |-- uart4 > pinconfig [ ] pinconfig | | |-- uart4-xfer > pinconfig [ ] pinconfig | | |-- uart4-cts > pinconfig [ ] pinconfig | | `-- uart4-rts > pinconfig [ ] pinconfig | |-- tsadc > pinconfig [ ] pinconfig | | `-- otp-out > pinconfig [ ] pinconfig | |-- pwm0 > pinconfig [ ] pinconfig | | `-- pwm0-pin > pinconfig [ ] pinconfig | |-- pwm1 > pinconfig [ ] pinconfig | | `-- pwm1-pin > pinconfig [ ] pinconfig | |-- pwm2 > pinconfig [ ] pinconfig | | `-- pwm2-pin > pinconfig [ ] pinconfig | |-- pwm3 > pinconfig [ ] pinconfig | | `-- pwm3-pin > pinconfig [ + ] pinconfig | |-- gmac > pinconfig [ + ] pinconfig | | |-- rgmii-pins > pinconfig [ ] pinconfig | | `-- rmii-pins > pinconfig [ ] pinconfig | |-- spdif > pinconfig [ ] pinconfig | | `-- spdif-tx > pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma > pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma > pinconfig [ ] pinconfig | |-- backlight > pinconfig [ ] pinconfig | | `-- bl-en > pinconfig [ ] pinconfig | |-- buttons > pinconfig [ ] pinconfig | | `-- pwrbtn > pinconfig [ ] pinconfig | |-- eth_phy > pinconfig [ ] pinconfig | | `-- eth-phy-pwr > pinconfig [ + ] pinconfig | |-- pmic > pinconfig [ + ] pinconfig | | `-- pmic-int > pinconfig [ ] pinconfig | `-- usb > pinconfig [ ] pinconfig | |-- host-vbus-drv > pinconfig [ ] pinconfig | `-- pwr-3g > clk [ + ] fixed_rate |-- external-gmac-clock > regulator [ ] fixed regu |-- vsys-regulator > regulator [ + ] fixed regu |-- sdmmc-regulator > regulator [ ] fixed regu `-- usb-host-regulator > => > > U-Boot 2018.01 (Feb 06 2018 - 23:24:11 -0700) > > Model: Tinker-RK3288 > DRAM: 2 GiB > MMC: dwmmc@ff0c0000: 1 > *** Warning - bad CRC, using default environment > > In: serial > Out: serial > Err: serial > Model: Tinker-RK3288 > Net: eth0: ethernet@ff290000 > Hit any key to stop autoboot: 0 > => dm tree > Class Probed Driver Name > ---------------------------------------- > root [ + ] root_drive root_driver > clk [ ] fixed_rate |-- oscillator > mmc [ + ] rockchip_r |-- dwmmc@ff0c0000 > blk [ + ] mmc_blk | `-- dwmmc@ff0c0000.blk > adc [ + ] rockchip_s |-- saradc@ff100000 > i2c [ ] i2c_rockch |-- i2c@ff170000 > serial [ ] ns16550_se |-- serial@ff180000 > serial [ ] ns16550_se |-- serial@ff190000 > serial [ + ] ns16550_se |-- serial@ff690000 > serial [ ] ns16550_se |-- serial@ff1b0000 > serial [ ] ns16550_se |-- serial@ff1c0000 > eth [ + ] gmac_rockc |-- ethernet@ff290000 > usb [ ] dwc2_usb |-- usb@ff540000 > usb [ ] dwc2_usb |-- usb@ff580000 > ram [ ] rockchip_r |-- dmc@ff610000 > i2c [ + ] i2c_rockch |-- i2c@ff650000 > pmic [ + ] rk8xx pmic | `-- pmic@1b > regulator [ ] rk8xx_buck | |-- DCDC_REG1 > regulator [ ] rk8xx_buck | |-- DCDC_REG2 > regulator [ ] rk8xx_buck | |-- DCDC_REG3 > regulator [ ] rk8xx_buck | |-- DCDC_REG4 > regulator [ ] rk8xx_ldo | |-- LDO_REG1 > regulator [ ] rk8xx_ldo | |-- LDO_REG2 > regulator [ ] rk8xx_ldo | |-- LDO_REG3 > regulator [ ] rk8xx_ldo | |-- LDO_REG4 > regulator [ ] rk8xx_ldo | |-- LDO_REG5 > regulator [ ] rk8xx_ldo | |-- LDO_REG6 > regulator [ ] rk8xx_ldo | |-- LDO_REG7 > regulator [ ] rk8xx_ldo | |-- LDO_REG8 > regulator [ ] rk8xx_swit | |-- SWITCH_REG1 > regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 > i2c [ + ] i2c_rockch |-- i2c@ff660000 > i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 > pwm [ ] rk_pwm |-- pwm@ff680000 > pwm [ ] rk_pwm |-- pwm@ff680010 > syscon [ + ] rk3288_sys |-- power-management@ff730000 > syscon [ ] rk3288_sys |-- syscon@ff740000 > clk [ + ] rockchip_r |-- clock-controller@ff760000 > sysreset [ ] rockchip_s | `-- sysreset > syscon [ + ] rk3288_sys |-- syscon@ff770000 > syscon [ ] rk3288_sys |-- syscon@ffac0000 > pinctrl [ + ] rockchip_r |-- pinctrl > gpio [ ] gpio_rockc | |-- gpio0@ff750000 > gpio [ ] gpio_rockc | |-- gpio1@ff780000 > gpio [ ] gpio_rockc | |-- gpio2@ff790000 > gpio [ ] gpio_rockc | |-- gpio3@ff7a0000 > gpio [ + ] gpio_rockc | |-- gpio4@ff7b0000 > gpio [ ] gpio_rockc | |-- gpio5@ff7c0000 > gpio [ ] gpio_rockc | |-- gpio6@ff7d0000 > gpio [ + ] gpio_rockc | |-- gpio7@ff7e0000 > gpio [ ] gpio_rockc | |-- gpio8@ff7f0000 > pinconfig [ ] pinconfig | |-- pcfg-pull-up > pinconfig [ ] pinconfig | |-- pcfg-pull-down > pinconfig [ ] pinconfig | |-- pcfg-pull-none > pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma > pinconfig [ + ] pinconfig | |-- sleep > pinconfig [ + ] pinconfig | | |-- global-pwroff > pinconfig [ ] pinconfig | | |-- ddrio-pwroff > pinconfig [ ] pinconfig | | |-- ddr0-retention > pinconfig [ ] pinconfig | | `-- ddr1-retention > pinconfig [ + ] pinconfig | |-- i2c0 > pinconfig [ + ] pinconfig | | `-- i2c0-xfer > pinconfig [ ] pinconfig | |-- i2c1 > pinconfig [ ] pinconfig | | `-- i2c1-xfer > pinconfig [ + ] pinconfig | |-- i2c2 > pinconfig [ + ] pinconfig | | `-- i2c2-xfer > pinconfig [ ] pinconfig | |-- i2c3 > pinconfig [ ] pinconfig | | `-- i2c3-xfer > pinconfig [ ] pinconfig | |-- i2c4 > pinconfig [ ] pinconfig | | `-- i2c4-xfer > pinconfig [ ] pinconfig | |-- i2c5 > pinconfig [ ] pinconfig | | `-- i2c5-xfer > pinconfig [ ] pinconfig | |-- i2s0 > pinconfig [ ] pinconfig | | `-- i2s0-bus > pinconfig [ ] pinconfig | |-- lcdc0 > pinconfig [ ] pinconfig | | `-- lcdc0-ctl > pinconfig [ + ] pinconfig | |-- sdmmc > pinconfig [ + ] pinconfig | | |-- sdmmc-clk > pinconfig [ + ] pinconfig | | |-- sdmmc-cmd > pinconfig [ + ] pinconfig | | |-- sdmcc-cd > pinconfig [ ] pinconfig | | |-- sdmmc-bus1 > pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 > pinconfig [ + ] pinconfig | | `-- sdmmc-pwr > pinconfig [ ] pinconfig | |-- sdio0 > pinconfig [ ] pinconfig | | |-- sdio0-bus1 > pinconfig [ ] pinconfig | | |-- sdio0-bus4 > pinconfig [ ] pinconfig | | |-- sdio0-cmd > pinconfig [ ] pinconfig | | |-- sdio0-clk > pinconfig [ ] pinconfig | | |-- sdio0-cd > pinconfig [ ] pinconfig | | |-- sdio0-wp > pinconfig [ ] pinconfig | | |-- sdio0-pwr > pinconfig [ ] pinconfig | | |-- sdio0-bkpwr > pinconfig [ ] pinconfig | | `-- sdio0-int > pinconfig [ ] pinconfig | |-- sdio1 > pinconfig [ ] pinconfig | | |-- sdio1-bus1 > pinconfig [ ] pinconfig | | |-- sdio1-bus4 > pinconfig [ ] pinconfig | | |-- sdio1-cd > pinconfig [ ] pinconfig | | |-- sdio1-wp > pinconfig [ ] pinconfig | | |-- sdio1-bkpwr > pinconfig [ ] pinconfig | | |-- sdio1-int > pinconfig [ ] pinconfig | | |-- sdio1-cmd > pinconfig [ ] pinconfig | | |-- sdio1-clk > pinconfig [ ] pinconfig | | `-- sdio1-pwr > pinconfig [ ] pinconfig | |-- emmc > pinconfig [ ] pinconfig | | |-- emmc-clk > pinconfig [ ] pinconfig | | |-- emmc-cmd > pinconfig [ ] pinconfig | | |-- emmc-pwr > pinconfig [ ] pinconfig | | |-- emmc-bus1 > pinconfig [ ] pinconfig | | |-- emmc-bus4 > pinconfig [ ] pinconfig | | `-- emmc-bus8 > pinconfig [ ] pinconfig | |-- spi0 > pinconfig [ ] pinconfig | | |-- spi0-clk > pinconfig [ ] pinconfig | | |-- spi0-cs0 > pinconfig [ ] pinconfig | | |-- spi0-tx > pinconfig [ ] pinconfig | | |-- spi0-rx > pinconfig [ ] pinconfig | | `-- spi0-cs1 > pinconfig [ ] pinconfig | |-- spi1 > pinconfig [ ] pinconfig | | |-- spi1-clk > pinconfig [ ] pinconfig | | |-- spi1-cs0 > pinconfig [ ] pinconfig | | |-- spi1-rx > pinconfig [ ] pinconfig | | `-- spi1-tx > pinconfig [ ] pinconfig | |-- spi2 > pinconfig [ ] pinconfig | | |-- spi2-cs1 > pinconfig [ ] pinconfig | | |-- spi2-clk > pinconfig [ ] pinconfig | | |-- spi2-cs0 > pinconfig [ ] pinconfig | | |-- spi2-rx > pinconfig [ ] pinconfig | | `-- spi2-tx > pinconfig [ ] pinconfig | |-- uart0 > pinconfig [ ] pinconfig | | |-- uart0-xfer > pinconfig [ ] pinconfig | | |-- uart0-cts > pinconfig [ ] pinconfig | | `-- uart0-rts > pinconfig [ ] pinconfig | |-- uart1 > pinconfig [ ] pinconfig | | |-- uart1-xfer > pinconfig [ ] pinconfig | | |-- uart1-cts > pinconfig [ ] pinconfig | | `-- uart1-rts > pinconfig [ + ] pinconfig | |-- uart2 > pinconfig [ + ] pinconfig | | `-- uart2-xfer > pinconfig [ ] pinconfig | |-- uart3 > pinconfig [ ] pinconfig | | |-- uart3-xfer > pinconfig [ ] pinconfig | | |-- uart3-cts > pinconfig [ ] pinconfig | | `-- uart3-rts > pinconfig [ ] pinconfig | |-- uart4 > pinconfig [ ] pinconfig | | |-- uart4-xfer > pinconfig [ ] pinconfig | | |-- uart4-cts > pinconfig [ ] pinconfig | | `-- uart4-rts > pinconfig [ ] pinconfig | |-- tsadc > pinconfig [ ] pinconfig | | `-- otp-out > pinconfig [ ] pinconfig | |-- pwm0 > pinconfig [ ] pinconfig | | `-- pwm0-pin > pinconfig [ ] pinconfig | |-- pwm1 > pinconfig [ ] pinconfig | | `-- pwm1-pin > pinconfig [ ] pinconfig | |-- pwm2 > pinconfig [ ] pinconfig | | `-- pwm2-pin > pinconfig [ ] pinconfig | |-- pwm3 > pinconfig [ ] pinconfig | | `-- pwm3-pin > pinconfig [ + ] pinconfig | |-- gmac > pinconfig [ + ] pinconfig | | |-- rgmii-pins > pinconfig [ ] pinconfig | | `-- rmii-pins > pinconfig [ ] pinconfig | |-- spdif > pinconfig [ ] pinconfig | | `-- spdif-tx > pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma > pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma > pinconfig [ ] pinconfig | |-- backlight > pinconfig [ ] pinconfig | | `-- bl-en > pinconfig [ ] pinconfig | |-- buttons > pinconfig [ ] pinconfig | | `-- pwrbtn > pinconfig [ ] pinconfig | |-- eth_phy > pinconfig [ ] pinconfig | | `-- eth-phy-pwr > pinconfig [ + ] pinconfig | |-- pmic > pinconfig [ + ] pinconfig | | `-- pmic-int > pinconfig [ ] pinconfig | `-- usb > pinconfig [ ] pinconfig | |-- host-vbus-drv > pinconfig [ ] pinconfig | `-- pwr-3g > clk [ ] fixed_rate |-- external-gmac-clock > regulator [ ] fixed regu |-- vsys-regulator > regulator [ + ] fixed regu |-- sdmmc-regulator > regulator [ ] fixed regu `-- usb-host-regulator > => > > @@ -73,7 +27,7 @@ Hit any key to stop autoboot: 0 > serial [ + ] ns16550_se |-- serial@ff690000 > serial [ ] ns16550_se |-- serial@ff1b0000 > serial [ ] ns16550_se |-- serial@ff1c0000 > - eth [ + ] gmac_rockc |-- ethernet@ff290000 > + eth [ ] gmac_rockc |-- ethernet@ff290000 > usb [ ] dwc2_usb |-- usb@ff540000 > usb [ ] dwc2_usb |-- usb@ff580000 > ram [ ] rockchip_r |-- dmc@ff610000 > @@ -87,12 +41,12 @@ Hit any key to stop autoboot: 0 > regulator [ ] rk8xx_ldo | |-- LDO_REG2 > regulator [ ] rk8xx_ldo | |-- LDO_REG3 > regulator [ ] rk8xx_ldo | |-- LDO_REG4 > - regulator [ ] rk8xx_ldo | |-- LDO_REG5 > + regulator [ + ] rk8xx_ldo | |-- LDO_REG5 > regulator [ ] rk8xx_ldo | |-- LDO_REG6 > regulator [ ] rk8xx_ldo | |-- LDO_REG7 > regulator [ ] rk8xx_ldo | |-- LDO_REG8 > regulator [ ] rk8xx_swit | |-- SWITCH_REG1 > - regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 > + regulator [ ] rk8xx_swit | `-- SWITCH_REG2 > i2c [ + ] i2c_rockch |-- i2c@ff660000 > i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 > pwm [ ] rk_pwm |-- pwm@ff680000 > @@ -235,7 +189,7 @@ Hit any key to stop autoboot: 0 > pinconfig [ ] pinconfig | `-- usb > pinconfig [ ] pinconfig | |-- host-vbus-drv > pinconfig [ ] pinconfig | `-- pwr-3g > - clk [ ] fixed_rate |-- external-gmac-clock > + clk [ + ] fixed_rate |-- external-gmac-clock > regulator [ ] fixed regu |-- vsys-regulator > regulator [ + ] fixed regu |-- sdmmc-regulator > regulator [ ] fixed regu `-- usb-host-regulator >
Thanks, that fixes it. Hopefully it makes 2018.03. On Fri, Feb 16, 2018 at 08:02:17AM +0000, Patrice CHOTARD wrote: > Hi Jonathan > > Have you tried to apply the fix available here ? > > http://u-boot.10912.n7.nabble.com/PATCH-NET-designware-fix-clock-enable-td320043.html > > Regards > > Patrice > > > On 02/16/2018 08:17 AM, Jonathan Gray wrote: > > On Wed, Nov 29, 2017 at 09:06:11AM +0100, patrice.chotard@st.com wrote: > >> From: Patrice Chotard <patrice.chotard@st.com> > >> > >> This implementation manages several clocks, disable and > >> free all of them in case of error during probe and in remove > >> callback. > >> > >> Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > >> --- > >> drivers/net/designware.c | 43 +++++++++++++++++++++++++++++++++++++++++++ > >> drivers/net/designware.h | 4 ++++ > >> 2 files changed, 47 insertions(+) > > > > RK3288 Ethernet on the ASUS Tinker Board fails to probe with master > > (32fe36574ea5e6ea55313e16547b98a984af7767) but worked with 2018.01. > > > > ba1f966725223c605ed504b09446c52a3f201c2b is the first bad commit > > commit ba1f966725223c605ed504b09446c52a3f201c2b > > Author: Patrice Chotard <patrice.chotard@st.com> > > Date: Wed Nov 29 09:06:11 2017 +0100 > > > > net: designware: add clock support > > > > This implementation manages several clocks, disable and > > free all of them in case of error during probe and in remove > > callback. > > > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > > Reviewed-by: Simon Glass <sjg@chromium.org> > > Acked-by: Joe Hershberger <joe.hershberger@ni.com> > > > > :040000 040000 6f1002af4c0f3ed7ab6f2418d4f2de00bbe454a7 e18d2a6c24cbfd055c89fa250946bf85199fff90 M drivers > > > > U-Boot 2018.03-rc2-00047-gc1531533c5 (Feb 16 2018 - 15:38:39 +1100) > > > > Model: Tinker-RK3288 > > DRAM: 2 GiB > > MMC: dwmmc@ff0c0000: 1 > > Loading Environment from MMC... *** Warning - bad CRC, using default environment > > > > Failed (-5) > > In: serial > > Out: serial > > Err: serial > > Model: Tinker-RK3288 > > Net: failed to enable clock 0 > > No ethernet found. > > Hit any key to stop autoboot: 0 > > => dm tree > > Class Probed Driver Name > > ---------------------------------------- > > root [ + ] root_drive root_driver > > clk [ ] fixed_rate |-- oscillator > > mmc [ + ] rockchip_r |-- dwmmc@ff0c0000 > > blk [ + ] mmc_blk | `-- dwmmc@ff0c0000.blk > > adc [ + ] rockchip_s |-- saradc@ff100000 > > i2c [ ] i2c_rockch |-- i2c@ff170000 > > serial [ ] ns16550_se |-- serial@ff180000 > > serial [ ] ns16550_se |-- serial@ff190000 > > serial [ + ] ns16550_se |-- serial@ff690000 > > serial [ ] ns16550_se |-- serial@ff1b0000 > > serial [ ] ns16550_se |-- serial@ff1c0000 > > eth [ ] gmac_rockc |-- ethernet@ff290000 > > usb [ ] dwc2_usb |-- usb@ff540000 > > usb [ ] dwc2_usb |-- usb@ff580000 > > ram [ ] rockchip_r |-- dmc@ff610000 > > i2c [ + ] i2c_rockch |-- i2c@ff650000 > > pmic [ + ] rk8xx pmic | `-- pmic@1b > > regulator [ ] rk8xx_buck | |-- DCDC_REG1 > > regulator [ ] rk8xx_buck | |-- DCDC_REG2 > > regulator [ ] rk8xx_buck | |-- DCDC_REG3 > > regulator [ ] rk8xx_buck | |-- DCDC_REG4 > > regulator [ ] rk8xx_ldo | |-- LDO_REG1 > > regulator [ ] rk8xx_ldo | |-- LDO_REG2 > > regulator [ ] rk8xx_ldo | |-- LDO_REG3 > > regulator [ ] rk8xx_ldo | |-- LDO_REG4 > > regulator [ + ] rk8xx_ldo | |-- LDO_REG5 > > regulator [ ] rk8xx_ldo | |-- LDO_REG6 > > regulator [ ] rk8xx_ldo | |-- LDO_REG7 > > regulator [ ] rk8xx_ldo | |-- LDO_REG8 > > regulator [ ] rk8xx_swit | |-- SWITCH_REG1 > > regulator [ ] rk8xx_swit | `-- SWITCH_REG2 > > i2c [ + ] i2c_rockch |-- i2c@ff660000 > > i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 > > pwm [ ] rk_pwm |-- pwm@ff680000 > > pwm [ ] rk_pwm |-- pwm@ff680010 > > syscon [ + ] rk3288_sys |-- power-management@ff730000 > > syscon [ ] rk3288_sys |-- syscon@ff740000 > > clk [ + ] rockchip_r |-- clock-controller@ff760000 > > sysreset [ ] rockchip_s | `-- sysreset > > syscon [ + ] rk3288_sys |-- syscon@ff770000 > > syscon [ ] rk3288_sys |-- syscon@ffac0000 > > pinctrl [ + ] rockchip_r |-- pinctrl > > gpio [ ] gpio_rockc | |-- gpio0@ff750000 > > gpio [ ] gpio_rockc | |-- gpio1@ff780000 > > gpio [ ] gpio_rockc | |-- gpio2@ff790000 > > gpio [ ] gpio_rockc | |-- gpio3@ff7a0000 > > gpio [ + ] gpio_rockc | |-- gpio4@ff7b0000 > > gpio [ ] gpio_rockc | |-- gpio5@ff7c0000 > > gpio [ ] gpio_rockc | |-- gpio6@ff7d0000 > > gpio [ + ] gpio_rockc | |-- gpio7@ff7e0000 > > gpio [ ] gpio_rockc | |-- gpio8@ff7f0000 > > pinconfig [ ] pinconfig | |-- pcfg-pull-up > > pinconfig [ ] pinconfig | |-- pcfg-pull-down > > pinconfig [ ] pinconfig | |-- pcfg-pull-none > > pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma > > pinconfig [ + ] pinconfig | |-- sleep > > pinconfig [ + ] pinconfig | | |-- global-pwroff > > pinconfig [ ] pinconfig | | |-- ddrio-pwroff > > pinconfig [ ] pinconfig | | |-- ddr0-retention > > pinconfig [ ] pinconfig | | `-- ddr1-retention > > pinconfig [ + ] pinconfig | |-- i2c0 > > pinconfig [ + ] pinconfig | | `-- i2c0-xfer > > pinconfig [ ] pinconfig | |-- i2c1 > > pinconfig [ ] pinconfig | | `-- i2c1-xfer > > pinconfig [ + ] pinconfig | |-- i2c2 > > pinconfig [ + ] pinconfig | | `-- i2c2-xfer > > pinconfig [ ] pinconfig | |-- i2c3 > > pinconfig [ ] pinconfig | | `-- i2c3-xfer > > pinconfig [ ] pinconfig | |-- i2c4 > > pinconfig [ ] pinconfig | | `-- i2c4-xfer > > pinconfig [ ] pinconfig | |-- i2c5 > > pinconfig [ ] pinconfig | | `-- i2c5-xfer > > pinconfig [ ] pinconfig | |-- i2s0 > > pinconfig [ ] pinconfig | | `-- i2s0-bus > > pinconfig [ ] pinconfig | |-- lcdc0 > > pinconfig [ ] pinconfig | | `-- lcdc0-ctl > > pinconfig [ + ] pinconfig | |-- sdmmc > > pinconfig [ + ] pinconfig | | |-- sdmmc-clk > > pinconfig [ + ] pinconfig | | |-- sdmmc-cmd > > pinconfig [ + ] pinconfig | | |-- sdmcc-cd > > pinconfig [ ] pinconfig | | |-- sdmmc-bus1 > > pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 > > pinconfig [ + ] pinconfig | | `-- sdmmc-pwr > > pinconfig [ ] pinconfig | |-- sdio0 > > pinconfig [ ] pinconfig | | |-- sdio0-bus1 > > pinconfig [ ] pinconfig | | |-- sdio0-bus4 > > pinconfig [ ] pinconfig | | |-- sdio0-cmd > > pinconfig [ ] pinconfig | | |-- sdio0-clk > > pinconfig [ ] pinconfig | | |-- sdio0-cd > > pinconfig [ ] pinconfig | | |-- sdio0-wp > > pinconfig [ ] pinconfig | | |-- sdio0-pwr > > pinconfig [ ] pinconfig | | |-- sdio0-bkpwr > > pinconfig [ ] pinconfig | | `-- sdio0-int > > pinconfig [ ] pinconfig | |-- sdio1 > > pinconfig [ ] pinconfig | | |-- sdio1-bus1 > > pinconfig [ ] pinconfig | | |-- sdio1-bus4 > > pinconfig [ ] pinconfig | | |-- sdio1-cd > > pinconfig [ ] pinconfig | | |-- sdio1-wp > > pinconfig [ ] pinconfig | | |-- sdio1-bkpwr > > pinconfig [ ] pinconfig | | |-- sdio1-int > > pinconfig [ ] pinconfig | | |-- sdio1-cmd > > pinconfig [ ] pinconfig | | |-- sdio1-clk > > pinconfig [ ] pinconfig | | `-- sdio1-pwr > > pinconfig [ ] pinconfig | |-- emmc > > pinconfig [ ] pinconfig | | |-- emmc-clk > > pinconfig [ ] pinconfig | | |-- emmc-cmd > > pinconfig [ ] pinconfig | | |-- emmc-pwr > > pinconfig [ ] pinconfig | | |-- emmc-bus1 > > pinconfig [ ] pinconfig | | |-- emmc-bus4 > > pinconfig [ ] pinconfig | | `-- emmc-bus8 > > pinconfig [ ] pinconfig | |-- spi0 > > pinconfig [ ] pinconfig | | |-- spi0-clk > > pinconfig [ ] pinconfig | | |-- spi0-cs0 > > pinconfig [ ] pinconfig | | |-- spi0-tx > > pinconfig [ ] pinconfig | | |-- spi0-rx > > pinconfig [ ] pinconfig | | `-- spi0-cs1 > > pinconfig [ ] pinconfig | |-- spi1 > > pinconfig [ ] pinconfig | | |-- spi1-clk > > pinconfig [ ] pinconfig | | |-- spi1-cs0 > > pinconfig [ ] pinconfig | | |-- spi1-rx > > pinconfig [ ] pinconfig | | `-- spi1-tx > > pinconfig [ ] pinconfig | |-- spi2 > > pinconfig [ ] pinconfig | | |-- spi2-cs1 > > pinconfig [ ] pinconfig | | |-- spi2-clk > > pinconfig [ ] pinconfig | | |-- spi2-cs0 > > pinconfig [ ] pinconfig | | |-- spi2-rx > > pinconfig [ ] pinconfig | | `-- spi2-tx > > pinconfig [ ] pinconfig | |-- uart0 > > pinconfig [ ] pinconfig | | |-- uart0-xfer > > pinconfig [ ] pinconfig | | |-- uart0-cts > > pinconfig [ ] pinconfig | | `-- uart0-rts > > pinconfig [ ] pinconfig | |-- uart1 > > pinconfig [ ] pinconfig | | |-- uart1-xfer > > pinconfig [ ] pinconfig | | |-- uart1-cts > > pinconfig [ ] pinconfig | | `-- uart1-rts > > pinconfig [ + ] pinconfig | |-- uart2 > > pinconfig [ + ] pinconfig | | `-- uart2-xfer > > pinconfig [ ] pinconfig | |-- uart3 > > pinconfig [ ] pinconfig | | |-- uart3-xfer > > pinconfig [ ] pinconfig | | |-- uart3-cts > > pinconfig [ ] pinconfig | | `-- uart3-rts > > pinconfig [ ] pinconfig | |-- uart4 > > pinconfig [ ] pinconfig | | |-- uart4-xfer > > pinconfig [ ] pinconfig | | |-- uart4-cts > > pinconfig [ ] pinconfig | | `-- uart4-rts > > pinconfig [ ] pinconfig | |-- tsadc > > pinconfig [ ] pinconfig | | `-- otp-out > > pinconfig [ ] pinconfig | |-- pwm0 > > pinconfig [ ] pinconfig | | `-- pwm0-pin > > pinconfig [ ] pinconfig | |-- pwm1 > > pinconfig [ ] pinconfig | | `-- pwm1-pin > > pinconfig [ ] pinconfig | |-- pwm2 > > pinconfig [ ] pinconfig | | `-- pwm2-pin > > pinconfig [ ] pinconfig | |-- pwm3 > > pinconfig [ ] pinconfig | | `-- pwm3-pin > > pinconfig [ + ] pinconfig | |-- gmac > > pinconfig [ + ] pinconfig | | |-- rgmii-pins > > pinconfig [ ] pinconfig | | `-- rmii-pins > > pinconfig [ ] pinconfig | |-- spdif > > pinconfig [ ] pinconfig | | `-- spdif-tx > > pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma > > pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma > > pinconfig [ ] pinconfig | |-- backlight > > pinconfig [ ] pinconfig | | `-- bl-en > > pinconfig [ ] pinconfig | |-- buttons > > pinconfig [ ] pinconfig | | `-- pwrbtn > > pinconfig [ ] pinconfig | |-- eth_phy > > pinconfig [ ] pinconfig | | `-- eth-phy-pwr > > pinconfig [ + ] pinconfig | |-- pmic > > pinconfig [ + ] pinconfig | | `-- pmic-int > > pinconfig [ ] pinconfig | `-- usb > > pinconfig [ ] pinconfig | |-- host-vbus-drv > > pinconfig [ ] pinconfig | `-- pwr-3g > > clk [ + ] fixed_rate |-- external-gmac-clock > > regulator [ ] fixed regu |-- vsys-regulator > > regulator [ + ] fixed regu |-- sdmmc-regulator > > regulator [ ] fixed regu `-- usb-host-regulator > > => > > > > U-Boot 2018.01 (Feb 06 2018 - 23:24:11 -0700) > > > > Model: Tinker-RK3288 > > DRAM: 2 GiB > > MMC: dwmmc@ff0c0000: 1 > > *** Warning - bad CRC, using default environment > > > > In: serial > > Out: serial > > Err: serial > > Model: Tinker-RK3288 > > Net: eth0: ethernet@ff290000 > > Hit any key to stop autoboot: 0 > > => dm tree > > Class Probed Driver Name > > ---------------------------------------- > > root [ + ] root_drive root_driver > > clk [ ] fixed_rate |-- oscillator > > mmc [ + ] rockchip_r |-- dwmmc@ff0c0000 > > blk [ + ] mmc_blk | `-- dwmmc@ff0c0000.blk > > adc [ + ] rockchip_s |-- saradc@ff100000 > > i2c [ ] i2c_rockch |-- i2c@ff170000 > > serial [ ] ns16550_se |-- serial@ff180000 > > serial [ ] ns16550_se |-- serial@ff190000 > > serial [ + ] ns16550_se |-- serial@ff690000 > > serial [ ] ns16550_se |-- serial@ff1b0000 > > serial [ ] ns16550_se |-- serial@ff1c0000 > > eth [ + ] gmac_rockc |-- ethernet@ff290000 > > usb [ ] dwc2_usb |-- usb@ff540000 > > usb [ ] dwc2_usb |-- usb@ff580000 > > ram [ ] rockchip_r |-- dmc@ff610000 > > i2c [ + ] i2c_rockch |-- i2c@ff650000 > > pmic [ + ] rk8xx pmic | `-- pmic@1b > > regulator [ ] rk8xx_buck | |-- DCDC_REG1 > > regulator [ ] rk8xx_buck | |-- DCDC_REG2 > > regulator [ ] rk8xx_buck | |-- DCDC_REG3 > > regulator [ ] rk8xx_buck | |-- DCDC_REG4 > > regulator [ ] rk8xx_ldo | |-- LDO_REG1 > > regulator [ ] rk8xx_ldo | |-- LDO_REG2 > > regulator [ ] rk8xx_ldo | |-- LDO_REG3 > > regulator [ ] rk8xx_ldo | |-- LDO_REG4 > > regulator [ ] rk8xx_ldo | |-- LDO_REG5 > > regulator [ ] rk8xx_ldo | |-- LDO_REG6 > > regulator [ ] rk8xx_ldo | |-- LDO_REG7 > > regulator [ ] rk8xx_ldo | |-- LDO_REG8 > > regulator [ ] rk8xx_swit | |-- SWITCH_REG1 > > regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 > > i2c [ + ] i2c_rockch |-- i2c@ff660000 > > i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 > > pwm [ ] rk_pwm |-- pwm@ff680000 > > pwm [ ] rk_pwm |-- pwm@ff680010 > > syscon [ + ] rk3288_sys |-- power-management@ff730000 > > syscon [ ] rk3288_sys |-- syscon@ff740000 > > clk [ + ] rockchip_r |-- clock-controller@ff760000 > > sysreset [ ] rockchip_s | `-- sysreset > > syscon [ + ] rk3288_sys |-- syscon@ff770000 > > syscon [ ] rk3288_sys |-- syscon@ffac0000 > > pinctrl [ + ] rockchip_r |-- pinctrl > > gpio [ ] gpio_rockc | |-- gpio0@ff750000 > > gpio [ ] gpio_rockc | |-- gpio1@ff780000 > > gpio [ ] gpio_rockc | |-- gpio2@ff790000 > > gpio [ ] gpio_rockc | |-- gpio3@ff7a0000 > > gpio [ + ] gpio_rockc | |-- gpio4@ff7b0000 > > gpio [ ] gpio_rockc | |-- gpio5@ff7c0000 > > gpio [ ] gpio_rockc | |-- gpio6@ff7d0000 > > gpio [ + ] gpio_rockc | |-- gpio7@ff7e0000 > > gpio [ ] gpio_rockc | |-- gpio8@ff7f0000 > > pinconfig [ ] pinconfig | |-- pcfg-pull-up > > pinconfig [ ] pinconfig | |-- pcfg-pull-down > > pinconfig [ ] pinconfig | |-- pcfg-pull-none > > pinconfig [ ] pinconfig | |-- pcfg-pull-none-12ma > > pinconfig [ + ] pinconfig | |-- sleep > > pinconfig [ + ] pinconfig | | |-- global-pwroff > > pinconfig [ ] pinconfig | | |-- ddrio-pwroff > > pinconfig [ ] pinconfig | | |-- ddr0-retention > > pinconfig [ ] pinconfig | | `-- ddr1-retention > > pinconfig [ + ] pinconfig | |-- i2c0 > > pinconfig [ + ] pinconfig | | `-- i2c0-xfer > > pinconfig [ ] pinconfig | |-- i2c1 > > pinconfig [ ] pinconfig | | `-- i2c1-xfer > > pinconfig [ + ] pinconfig | |-- i2c2 > > pinconfig [ + ] pinconfig | | `-- i2c2-xfer > > pinconfig [ ] pinconfig | |-- i2c3 > > pinconfig [ ] pinconfig | | `-- i2c3-xfer > > pinconfig [ ] pinconfig | |-- i2c4 > > pinconfig [ ] pinconfig | | `-- i2c4-xfer > > pinconfig [ ] pinconfig | |-- i2c5 > > pinconfig [ ] pinconfig | | `-- i2c5-xfer > > pinconfig [ ] pinconfig | |-- i2s0 > > pinconfig [ ] pinconfig | | `-- i2s0-bus > > pinconfig [ ] pinconfig | |-- lcdc0 > > pinconfig [ ] pinconfig | | `-- lcdc0-ctl > > pinconfig [ + ] pinconfig | |-- sdmmc > > pinconfig [ + ] pinconfig | | |-- sdmmc-clk > > pinconfig [ + ] pinconfig | | |-- sdmmc-cmd > > pinconfig [ + ] pinconfig | | |-- sdmcc-cd > > pinconfig [ ] pinconfig | | |-- sdmmc-bus1 > > pinconfig [ + ] pinconfig | | |-- sdmmc-bus4 > > pinconfig [ + ] pinconfig | | `-- sdmmc-pwr > > pinconfig [ ] pinconfig | |-- sdio0 > > pinconfig [ ] pinconfig | | |-- sdio0-bus1 > > pinconfig [ ] pinconfig | | |-- sdio0-bus4 > > pinconfig [ ] pinconfig | | |-- sdio0-cmd > > pinconfig [ ] pinconfig | | |-- sdio0-clk > > pinconfig [ ] pinconfig | | |-- sdio0-cd > > pinconfig [ ] pinconfig | | |-- sdio0-wp > > pinconfig [ ] pinconfig | | |-- sdio0-pwr > > pinconfig [ ] pinconfig | | |-- sdio0-bkpwr > > pinconfig [ ] pinconfig | | `-- sdio0-int > > pinconfig [ ] pinconfig | |-- sdio1 > > pinconfig [ ] pinconfig | | |-- sdio1-bus1 > > pinconfig [ ] pinconfig | | |-- sdio1-bus4 > > pinconfig [ ] pinconfig | | |-- sdio1-cd > > pinconfig [ ] pinconfig | | |-- sdio1-wp > > pinconfig [ ] pinconfig | | |-- sdio1-bkpwr > > pinconfig [ ] pinconfig | | |-- sdio1-int > > pinconfig [ ] pinconfig | | |-- sdio1-cmd > > pinconfig [ ] pinconfig | | |-- sdio1-clk > > pinconfig [ ] pinconfig | | `-- sdio1-pwr > > pinconfig [ ] pinconfig | |-- emmc > > pinconfig [ ] pinconfig | | |-- emmc-clk > > pinconfig [ ] pinconfig | | |-- emmc-cmd > > pinconfig [ ] pinconfig | | |-- emmc-pwr > > pinconfig [ ] pinconfig | | |-- emmc-bus1 > > pinconfig [ ] pinconfig | | |-- emmc-bus4 > > pinconfig [ ] pinconfig | | `-- emmc-bus8 > > pinconfig [ ] pinconfig | |-- spi0 > > pinconfig [ ] pinconfig | | |-- spi0-clk > > pinconfig [ ] pinconfig | | |-- spi0-cs0 > > pinconfig [ ] pinconfig | | |-- spi0-tx > > pinconfig [ ] pinconfig | | |-- spi0-rx > > pinconfig [ ] pinconfig | | `-- spi0-cs1 > > pinconfig [ ] pinconfig | |-- spi1 > > pinconfig [ ] pinconfig | | |-- spi1-clk > > pinconfig [ ] pinconfig | | |-- spi1-cs0 > > pinconfig [ ] pinconfig | | |-- spi1-rx > > pinconfig [ ] pinconfig | | `-- spi1-tx > > pinconfig [ ] pinconfig | |-- spi2 > > pinconfig [ ] pinconfig | | |-- spi2-cs1 > > pinconfig [ ] pinconfig | | |-- spi2-clk > > pinconfig [ ] pinconfig | | |-- spi2-cs0 > > pinconfig [ ] pinconfig | | |-- spi2-rx > > pinconfig [ ] pinconfig | | `-- spi2-tx > > pinconfig [ ] pinconfig | |-- uart0 > > pinconfig [ ] pinconfig | | |-- uart0-xfer > > pinconfig [ ] pinconfig | | |-- uart0-cts > > pinconfig [ ] pinconfig | | `-- uart0-rts > > pinconfig [ ] pinconfig | |-- uart1 > > pinconfig [ ] pinconfig | | |-- uart1-xfer > > pinconfig [ ] pinconfig | | |-- uart1-cts > > pinconfig [ ] pinconfig | | `-- uart1-rts > > pinconfig [ + ] pinconfig | |-- uart2 > > pinconfig [ + ] pinconfig | | `-- uart2-xfer > > pinconfig [ ] pinconfig | |-- uart3 > > pinconfig [ ] pinconfig | | |-- uart3-xfer > > pinconfig [ ] pinconfig | | |-- uart3-cts > > pinconfig [ ] pinconfig | | `-- uart3-rts > > pinconfig [ ] pinconfig | |-- uart4 > > pinconfig [ ] pinconfig | | |-- uart4-xfer > > pinconfig [ ] pinconfig | | |-- uart4-cts > > pinconfig [ ] pinconfig | | `-- uart4-rts > > pinconfig [ ] pinconfig | |-- tsadc > > pinconfig [ ] pinconfig | | `-- otp-out > > pinconfig [ ] pinconfig | |-- pwm0 > > pinconfig [ ] pinconfig | | `-- pwm0-pin > > pinconfig [ ] pinconfig | |-- pwm1 > > pinconfig [ ] pinconfig | | `-- pwm1-pin > > pinconfig [ ] pinconfig | |-- pwm2 > > pinconfig [ ] pinconfig | | `-- pwm2-pin > > pinconfig [ ] pinconfig | |-- pwm3 > > pinconfig [ ] pinconfig | | `-- pwm3-pin > > pinconfig [ + ] pinconfig | |-- gmac > > pinconfig [ + ] pinconfig | | |-- rgmii-pins > > pinconfig [ ] pinconfig | | `-- rmii-pins > > pinconfig [ ] pinconfig | |-- spdif > > pinconfig [ ] pinconfig | | `-- spdif-tx > > pinconfig [ ] pinconfig | |-- pcfg-pull-none-drv-8ma > > pinconfig [ ] pinconfig | |-- pcfg-pull-up-drv-8ma > > pinconfig [ ] pinconfig | |-- backlight > > pinconfig [ ] pinconfig | | `-- bl-en > > pinconfig [ ] pinconfig | |-- buttons > > pinconfig [ ] pinconfig | | `-- pwrbtn > > pinconfig [ ] pinconfig | |-- eth_phy > > pinconfig [ ] pinconfig | | `-- eth-phy-pwr > > pinconfig [ + ] pinconfig | |-- pmic > > pinconfig [ + ] pinconfig | | `-- pmic-int > > pinconfig [ ] pinconfig | `-- usb > > pinconfig [ ] pinconfig | |-- host-vbus-drv > > pinconfig [ ] pinconfig | `-- pwr-3g > > clk [ ] fixed_rate |-- external-gmac-clock > > regulator [ ] fixed regu |-- vsys-regulator > > regulator [ + ] fixed regu |-- sdmmc-regulator > > regulator [ ] fixed regu `-- usb-host-regulator > > => > > > > @@ -73,7 +27,7 @@ Hit any key to stop autoboot: 0 > > serial [ + ] ns16550_se |-- serial@ff690000 > > serial [ ] ns16550_se |-- serial@ff1b0000 > > serial [ ] ns16550_se |-- serial@ff1c0000 > > - eth [ + ] gmac_rockc |-- ethernet@ff290000 > > + eth [ ] gmac_rockc |-- ethernet@ff290000 > > usb [ ] dwc2_usb |-- usb@ff540000 > > usb [ ] dwc2_usb |-- usb@ff580000 > > ram [ ] rockchip_r |-- dmc@ff610000 > > @@ -87,12 +41,12 @@ Hit any key to stop autoboot: 0 > > regulator [ ] rk8xx_ldo | |-- LDO_REG2 > > regulator [ ] rk8xx_ldo | |-- LDO_REG3 > > regulator [ ] rk8xx_ldo | |-- LDO_REG4 > > - regulator [ ] rk8xx_ldo | |-- LDO_REG5 > > + regulator [ + ] rk8xx_ldo | |-- LDO_REG5 > > regulator [ ] rk8xx_ldo | |-- LDO_REG6 > > regulator [ ] rk8xx_ldo | |-- LDO_REG7 > > regulator [ ] rk8xx_ldo | |-- LDO_REG8 > > regulator [ ] rk8xx_swit | |-- SWITCH_REG1 > > - regulator [ + ] rk8xx_swit | `-- SWITCH_REG2 > > + regulator [ ] rk8xx_swit | `-- SWITCH_REG2 > > i2c [ + ] i2c_rockch |-- i2c@ff660000 > > i2c_eeprom [ + ] i2c_eeprom | `-- m24c08@50 > > pwm [ ] rk_pwm |-- pwm@ff680000 > > @@ -235,7 +189,7 @@ Hit any key to stop autoboot: 0 > > pinconfig [ ] pinconfig | `-- usb > > pinconfig [ ] pinconfig | |-- host-vbus-drv > > pinconfig [ ] pinconfig | `-- pwr-3g > > - clk [ ] fixed_rate |-- external-gmac-clock > > + clk [ + ] fixed_rate |-- external-gmac-clock > > regulator [ ] fixed regu |-- vsys-regulator > > regulator [ + ] fixed regu |-- sdmmc-regulator > > regulator [ ] fixed regu `-- usb-host-regulator > > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 036d231..9207324 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -10,6 +10,7 @@ */ #include <common.h> +#include <clk.h> #include <dm.h> #include <errno.h> #include <miiphy.h> @@ -661,6 +662,35 @@ int designware_eth_probe(struct udevice *dev) u32 iobase = pdata->iobase; ulong ioaddr; int ret; +#ifdef CONFIG_CLK + int i, err, clock_nb; + + priv->clock_count = 0; + clock_nb = dev_count_phandle_with_args(dev, "clocks", "#clock-cells"); + if (clock_nb > 0) { + priv->clocks = devm_kcalloc(dev, clock_nb, sizeof(struct clk), + GFP_KERNEL); + if (!priv->clocks) + return -ENOMEM; + + for (i = 0; i < clock_nb; i++) { + err = clk_get_by_index(dev, i, &priv->clocks[i]); + if (err < 0) + break; + + err = clk_enable(&priv->clocks[i]); + if (err) { + pr_err("failed to enable clock %d\n", i); + clk_free(&priv->clocks[i]); + goto clk_err; + } + priv->clock_count++; + } + } else if (clock_nb != -ENOENT) { + pr_err("failed to get clock phandle(%d)\n", clock_nb); + return clock_nb; + } +#endif #if defined(CONFIG_DM_REGULATOR) struct udevice *phy_supply; @@ -707,6 +737,15 @@ int designware_eth_probe(struct udevice *dev) debug("%s, ret=%d\n", __func__, ret); return ret; + +#ifdef CONFIG_CLK +clk_err: + ret = clk_release_all(priv->clocks, priv->clock_count); + if (ret) + pr_err("failed to disable all clocks\n"); + + return err; +#endif } static int designware_eth_remove(struct udevice *dev) @@ -717,7 +756,11 @@ static int designware_eth_remove(struct udevice *dev) mdio_unregister(priv->bus); mdio_free(priv->bus); +#ifdef CONFIG_CLK + return clk_release_all(priv->clocks, priv->clock_count); +#else return 0; +#endif } const struct eth_ops designware_eth_ops = { diff --git a/drivers/net/designware.h b/drivers/net/designware.h index 7992d0e..252cd24 100644 --- a/drivers/net/designware.h +++ b/drivers/net/designware.h @@ -239,6 +239,10 @@ struct dw_eth_dev { #ifdef CONFIG_DM_GPIO struct gpio_desc reset_gpio; #endif +#ifdef CONFIG_CLK + struct clk *clocks; /* clock list */ + int clock_count; /* number of clock in clock list */ +#endif struct phy_device *phydev; struct mii_dev *bus;