On 08/08/2024 05:52, Shawn Lin wrote: > RK3576 contains a UFS controller, add init support fot it. > > Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> > > + reset_control_assert(host->rst); > + udelay(1); > + reset_control_deassert(host->rst); > + > + host->ref_out_clk = devm_clk_get(dev, "ref_out"); > + if (IS_ERR(host->ref_out_clk)) > + return dev_err_probe(dev, PTR_ERR(host->ref_out_clk), "ciu-drive not available\n"); > + > + err = clk_prepare_enable(host->ref_out_clk); > + if (err) > + return dev_err_probe(dev, err, "failed to enable ref out clock\n"); > + > + host->rst_gpio = devm_gpiod_get(&pdev->dev, "reset", GPIOD_OUT_LOW); > + if (IS_ERR(host->rst_gpio)) { > + dev_err_probe(&pdev->dev, PTR_ERR(host->rst_gpio), > + "invalid reset-gpios property in node\n"); > + err = PTR_ERR(host->rst_gpio); > + goto out; > + } > + udelay(20); > + gpiod_set_value_cansleep(host->rst_gpio, 1); Also, why do you leave the device in the reset state? Logical one means - reset is asserted. This applies to ufs_rockchip_device_reset() as well - that's just wrong code. Best regards, Krzysztof