[PATCH 1/6] ARM: mxs: tx28: reset fec phy for device tree boot
Arnd Bergmann
arnd at arndb.de
Tue Aug 7 15:15:25 EDT 2012
On Monday 06 August 2012, Shawn Guo wrote:
> +static void __init tx28_post_init(void)
> +{
> + struct device_node *np;
> + struct platform_device *pdev;
> + struct pinctrl *pctl;
> + int ret;
> +
> + enable_clk_enet_out();
> +
> + np = of_find_compatible_node(NULL, NULL, "fsl,imx28-fec");
> + pdev = of_find_device_by_node(np);
> + if (!pdev) {
> + pr_err("%s: failed to find fec device\n", __func__);
> + return;
> + }
> +
> + pctl = pinctrl_get_select(&pdev->dev, "gpio_mode");
> + if (IS_ERR(pctl)) {
> + pr_err("%s: failed to get pinctrl state\n", __func__);
> + return;
> + }
> +
> + ret = gpio_request_array(tx28_gpios, ARRAY_SIZE(tx28_gpios));
> + if (ret) {
> + pr_err("%s: failed to request gpios: %d\n", __func__, ret);
> + return;
> + }
> +
> + /* Power up fec phy */
> + gpio_set_value(TX28_FEC_PHY_POWER, 1);
> + mdelay(26); /* 25ms according to data sheet */
26 ms is a long time for a delay. I think you should use msleep here.
Arnd
More information about the linux-arm-kernel
mailing list