Hi Massimiliano,
thank you once more for your response... But I'd like to add some information.
In your post i.MX6q PCIe with external clock and SATA, you are using SATA, and i.MX6Q (or D), but with DualLite and without SATA, things differ a little. So I'd like to share my findings with the community:
1. In clk-imx6q.c, imx6dl is missing:
if ((cpu_is_imx6q() || cpu_is_imx6dl()) && imx_get_soc_revision() == IMX_CHIP_REVISION_2_0
&& (val == 1))
imx_clk_set_parent(clk[IMX6QDL_PLL6_BYPASS_SRC], clk[IMX6QDL_CLK_LVDS1_IN]);
2. In the device tree, I replaced the REFCLK. At least in i.MX6 DL, PCIe requires the 100MHz SATA refclock (although there is no SATA) :
clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
<&clks IMX6QDL_CLK_LVDS1_IN>,
<&clks IMX6QDL_CLK_SATA_REF_100M>,
<&clks IMX6QDL_PLL6_BYPASS>,
<&clks IMX6QDL_PLL6_BYPASS_SRC>;
Best regards
Martin