arm64: dts: imx8mq: assign PCIe clocks
authorLucas Stach <l.stach@pengutronix.de>
Fri, 7 May 2021 22:12:13 +0000 (00:12 +0200)
committerShawn Guo <shawnguo@kernel.org>
Sat, 12 Jun 2021 08:17:02 +0000 (16:17 +0800)
This fixes multiple issues with the current non-existent PCIe clock setup:

The controller can run at up to 250MHz, so use a parent that provides this
clock.

The PHY needs an exact 100MHz reference clock to function if the PCIe
refclock is not fed in via the refclock pads. While this mode is not
supported (yet) in the driver it doesn't hurt to make sure we are
providing a clock with the right rate.

The AUX clock is specified to have a maximum clock rate of 10MHz. So
the current setup, which drives it straight from the 25MHz oscillator is
actually overclocking the AUX input.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mq.dtsi

index 17c449e..91df9c5 100644 (file)
                                 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_EN>,
                                 <&src IMX8MQ_RESET_PCIE_CTRL_APPS_TURNOFF>;
                        reset-names = "pciephy", "apps", "turnoff";
+                       assigned-clocks = <&clk IMX8MQ_CLK_PCIE1_CTRL>,
+                                         <&clk IMX8MQ_CLK_PCIE1_PHY>,
+                                         <&clk IMX8MQ_CLK_PCIE1_AUX>;
+                       assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
+                                                <&clk IMX8MQ_SYS2_PLL_100M>,
+                                                <&clk IMX8MQ_SYS1_PLL_80M>;
+                       assigned-clock-rates = <250000000>, <100000000>,
+                                              <10000000>;
                        status = "disabled";
                };
 
                                 <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_EN>,
                                 <&src IMX8MQ_RESET_PCIE2_CTRL_APPS_TURNOFF>;
                        reset-names = "pciephy", "apps", "turnoff";
+                       assigned-clocks = <&clk IMX8MQ_CLK_PCIE2_CTRL>,
+                                         <&clk IMX8MQ_CLK_PCIE2_PHY>,
+                                         <&clk IMX8MQ_CLK_PCIE2_AUX>;
+                       assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_250M>,
+                                                <&clk IMX8MQ_SYS2_PLL_100M>,
+                                                <&clk IMX8MQ_SYS1_PLL_80M>;
+                       assigned-clock-rates = <250000000>, <100000000>,
+                                              <10000000>;
                        status = "disabled";
                };