From 9513eb8891d76f83ed064f6d5233337a3f02db2a Mon Sep 17 00:00:00 2001 From: Li Jun Date: Tue, 20 Jan 2015 16:03:36 +0800 Subject: MLK-10086-2 ARM: imx6: add dts entries for hsic controller - Add usbphy_nop, hsic uses nop phy driver - Add anatop phandle, hsic needs to access anatop register to change osc clock for different boards - Add phy_type, hsic needs to config PHY parameters at portsc - For imx6q-arm2 board, hsic has pin conflict with ethernet, we create a dedicated dts(imx6q-arm2-hsic.dts) for it with ethernet disabled, besides please make sure keep the line of data and strobe unchanged between board boots up and enable hsic controller. Signed-off-by: Peter Chen (cherry picked from commit 2f8a266d271874cd398d14556752ab4ab0be27ba) --- arch/arm/boot/dts/imx6q-arm2-hsic.dts | 32 ++++++++++++++++++++++++++++++++ arch/arm/boot/dts/imx6q-arm2.dts | 26 ++++++++++++++++++++++++++ arch/arm/boot/dts/imx6qdl.dtsi | 18 ++++++++++++++++++ arch/arm/boot/dts/imx6sl.dtsi | 9 +++++++++ arch/arm/boot/dts/imx6sx.dtsi | 7 +++++++ 5 files changed, 92 insertions(+) create mode 100644 arch/arm/boot/dts/imx6q-arm2-hsic.dts (limited to 'arch/arm/boot/dts') diff --git a/arch/arm/boot/dts/imx6q-arm2-hsic.dts b/arch/arm/boot/dts/imx6q-arm2-hsic.dts new file mode 100644 index 000000000000..d2cca3eac3a9 --- /dev/null +++ b/arch/arm/boot/dts/imx6q-arm2-hsic.dts @@ -0,0 +1,32 @@ +/* + * Copyright 2015 Freescale Semiconductor, Inc. + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +#include "imx6q-arm2.dts" + +&fec { + status = "disabled"; +}; + +&usbh2 { + pinctrl-names = "idle", "active"; + pinctrl-0 = <&pinctrl_usbh2_1>; + pinctrl-1 = <&pinctrl_usbh2_2>; + osc-clkgate-delay = <0x3>; + status = "okay"; +}; + +&usbh3 { + pinctrl-names = "idle", "active"; + pinctrl-0 = <&pinctrl_usbh3_1>; + pinctrl-1 = <&pinctrl_usbh3_2>; + osc-clkgate-delay = <0x3>; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts index d6515f7a56c4..da8bcd8b1aec 100644 --- a/arch/arm/boot/dts/imx6q-arm2.dts +++ b/arch/arm/boot/dts/imx6q-arm2.dts @@ -140,6 +140,32 @@ >; }; + pinctrl_usbh2_1: usbh2grp-1 { + fsl,pins = < + MX6QDL_PAD_RGMII_TXC__USB_H2_DATA 0x40013030 + MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40013030 + >; + }; + + pinctrl_usbh2_2: usbh2grp-2 { + fsl,pins = < + MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40017030 + >; + }; + + pinctrl_usbh3_1: usbh3grp-1 { + fsl,pins = < + MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x40013030 + MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40013030 + >; + }; + + pinctrl_usbh3_2: usbh3grp-2 { + fsl,pins = < + MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40017030 + >; + }; + pinctrl_usdhc3: usdhc3grp { fsl,pins = < MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 45686fadaa36..df74b25f9639 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -670,6 +670,18 @@ fsl,anatop = <&anatop>; }; + usbphy_nop1: usbphy_nop1 { + compatible = "usb-nop-xceiv"; + clocks = <&clks IMX6QDL_CLK_USBPHY1>; + clock-names = "main_clk"; + }; + + usbphy_nop2: usbphy_nop2 { + compatible = "usb-nop-xceiv"; + clocks = <&clks IMX6QDL_CLK_USBPHY1>; + clock-names = "main_clk"; + }; + snvs: snvs@020cc000 { compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; reg = <0x020cc000 0x4000>; @@ -896,6 +908,9 @@ ahb-burst-config = <0x0>; tx-burst-size-dword = <0x10>; rx-burst-size-dword = <0x10>; + phy_type = "hsic"; + fsl,usbphy = <&usbphy_nop1>; + fsl,anatop = <&anatop>; status = "disabled"; }; @@ -909,6 +924,9 @@ ahb-burst-config = <0x0>; tx-burst-size-dword = <0x10>; rx-burst-size-dword = <0x10>; + phy_type = "hsic"; + fsl,usbphy = <&usbphy_nop2>; + fsl,anatop = <&anatop>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index 8b14c21af20b..81f39d9906d2 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi @@ -575,6 +575,12 @@ fsl,anatop = <&anatop>; }; + usbphy_nop1: usbphy_nop1 { + compatible = "usb-nop-xceiv"; + clocks = <&clks IMX6SL_CLK_USBPHY1>; + clock-names = "main_clk"; + }; + snvs: snvs@020cc000 { compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; reg = <0x020cc000 0x4000>; @@ -731,6 +737,9 @@ ahb-burst-config = <0x0>; tx-burst-size-dword = <0x10>; rx-burst-size-dword = <0x10>; + phy_type = "hsic"; + fsl,usbphy = <&usbphy_nop1>; + fsl,anatop = <&anatop>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi index 87f37b147210..5efdb234e21a 100644 --- a/arch/arm/boot/dts/imx6sx.dtsi +++ b/arch/arm/boot/dts/imx6sx.dtsi @@ -680,6 +680,12 @@ fsl,anatop = <&anatop>; }; + usbphy_nop1: usbphy_nop1 { + compatible = "usb-nop-xceiv"; + clocks = <&clks IMX6SX_CLK_USBPHY1>; + clock-names = "main_clk"; + }; + snvs: snvs@020cc000 { compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd"; reg = <0x020cc000 0x4000>; @@ -800,6 +806,7 @@ clocks = <&clks IMX6SX_CLK_USBOH3>; fsl,usbmisc = <&usbmisc 2>; phy_type = "hsic"; + fsl,usbphy = <&usbphy_nop1>; fsl,anatop = <&anatop>; dr_mode = "host"; ahb-burst-config = <0x0>; -- cgit v1.2.3