Yunzhi, On Thu, Dec 11, 2014 at 1:55 AM, Yunzhi Li <lyz@xxxxxxxxxxxxxx> wrote: > + rk_phy->clk = of_clk_get(child, 0); > + if (IS_ERR(rk_phy->clk)) { > + dev_warn(dev, "failed to get clock\n"); > + rk_phy->clk = NULL; > + } The device tree bindings don't specify a clock and the "dtsi" added to rk3288 don't reference a clock. Take that code out and avoid a warning in the logs at bootup. ...or should there be a clock? > + rk_phy->phy = devm_phy_create(dev, NULL, &ops); This has the wrong number of arguments. Even before the change that added the 4th argument, this is still wrong because "ops" is supposed to be the 2nd argument, not the 3rd. ...so I'm confused how this compiled for you. I think this ought to be: rk_phy->phy = devm_phy_create(dev, child, &ops, NULL); ...but please correct me if I'm mistaken! -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html