summaryrefslogtreecommitdiff
path: root/arch/arm64/boot/dts/freescale/imx8mp.dtsi
diff options
context:
space:
mode:
authorLi Jun <jun.li@nxp.com>2020-03-27 13:14:16 +0800
committerLi Jun <jun.li@nxp.com>2020-03-31 17:09:57 +0800
commit403f0af55d908c3c54426d373dc3f84288c8ad89 (patch)
tree5f1e37e48bf09c00f9ab7b5b00f39d13c526c109 /arch/arm64/boot/dts/freescale/imx8mp.dtsi
parent739af17e2a44e3bce08a8606a87b13bbc42d4690 (diff)
MLK-23412-8 arm64: dtsi: imx8mp: add hsio root clock for usb
Currently hsio root clock is always on, which should be handled by hsiomix power domain driver but there is problem on doing that, see commit 5aaceda10ac0 ("MLK-23671-02 arm64: dts: imx8mp: Add the rpm-always-on flag for hsiomix domain"): "The hsiomix power domain need to be runtime always-on to maintain USB's wakeup ability. As this domain need to be boot on by default, no one will call the power on callback during system boot up, the clock enable/disable will mismatch, so remove the clocks from this domain. the necessary clocks will be handled in TF-A." There is one clock(AXI_DIV) shared between hsiomix and USB, with rpm-always-on property added, like above commit description, power domain driver will not do enable/disable and think it's always on, but it can be disabled by USB driver, afterwards if power domain driver does hsiomix register access, system will hang because the required clock was disabled. Now with above commit and change in TF-A, those clocks are not controlled by Linux for power domain operations, but user driver(i.e. USB and PCIE) has to handle it. Reviewed-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Li Jun <jun.li@nxp.com>
Diffstat (limited to 'arch/arm64/boot/dts/freescale/imx8mp.dtsi')
-rw-r--r--arch/arm64/boot/dts/freescale/imx8mp.dtsi10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 79d121b77d47..d098c49a94cb 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1949,9 +1949,10 @@
usb3_0: usb@32f10100 {
compatible = "fsl,imx8mp-dwc3";
reg = <0 0x32f10100 0 0x8>;
- clocks = <&clk IMX8MP_CLK_HSIO_AXI_DIV>,
+ clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
+ <&clk IMX8MP_CLK_HSIO_AXI_DIV>,
<&clk IMX8MP_CLK_USB_ROOT>;
- clock-names = "bus", "sleep";
+ clock-names = "hsio", "bus", "suspend";
assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI_SRC>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
assigned-clock-rates = <500000000>;
@@ -1992,9 +1993,10 @@
usb3_1: usb@32f10108 {
compatible = "fsl,imx8mp-dwc3";
reg = <0 0x32f10108 0 0x8>;
- clocks = <&clk IMX8MP_CLK_HSIO_AXI_DIV>,
+ clocks = <&clk IMX8MP_CLK_HSIO_ROOT>,
+ <&clk IMX8MP_CLK_HSIO_AXI_DIV>,
<&clk IMX8MP_CLK_USB_ROOT>;
- clock-names = "bus", "sleep";
+ clock-names = "hsio", "bus", "suspend";
assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI_SRC>;
assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
assigned-clock-rates = <500000000>;