diff options
author | ian <ian@FreeBSD.org> | 2013-12-13 22:19:21 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2013-12-13 22:19:21 +0000 |
commit | 52408050e1b85698749984f9c40d16375b2e7566 (patch) | |
tree | db4405d8d5b4c84d8fa0e1a6532c42b9a9471ed9 /sys/boot | |
parent | a551aaa6fa0f0d21a74a54cd3022f56756af5809 (diff) | |
download | FreeBSD-src-52408050e1b85698749984f9c40d16375b2e7566.zip FreeBSD-src-52408050e1b85698749984f9c40d16375b2e7566.tar.gz |
MFC r257393:
Rework the imx ehci driver so that it's four separate ehci units rather
than one unit with four busses attached to it. This allows us to use
existing fdt data which describes separate devices with separate resources.
It also allows any combination of the units to be en/disabled in the
board dts files.
Adjust our dts code to match what's used by linux and u-boot now that
we're structured to do so.
Diffstat (limited to 'sys/boot')
-rw-r--r-- | sys/boot/fdt/dts/digi-ccwmx53.dts | 6 | ||||
-rw-r--r-- | sys/boot/fdt/dts/efikamx.dts | 6 | ||||
-rw-r--r-- | sys/boot/fdt/dts/imx51x.dtsi | 52 | ||||
-rw-r--r-- | sys/boot/fdt/dts/imx53-qsb.dts | 7 | ||||
-rw-r--r-- | sys/boot/fdt/dts/imx53x.dtsi | 66 |
5 files changed, 105 insertions, 32 deletions
diff --git a/sys/boot/fdt/dts/digi-ccwmx53.dts b/sys/boot/fdt/dts/digi-ccwmx53.dts index 84fa047..f89c0d0 100644 --- a/sys/boot/fdt/dts/digi-ccwmx53.dts +++ b/sys/boot/fdt/dts/digi-ccwmx53.dts @@ -90,6 +90,12 @@ gpio@53f90000 { status = "okay"; }; + usb@53f80000 /* OTG */ { + status = "okay"; + }; + usb@53f80200 /* Host 1 */ { + status = "okay"; + }; wdog@53f98000 { status = "okay"; }; diff --git a/sys/boot/fdt/dts/efikamx.dts b/sys/boot/fdt/dts/efikamx.dts index 120d1f4..22b455b 100644 --- a/sys/boot/fdt/dts/efikamx.dts +++ b/sys/boot/fdt/dts/efikamx.dts @@ -89,6 +89,12 @@ gpio@73f90000 { status = "okay"; }; + usb@73f80000 /* OTG */ { + status = "okay"; + }; + usb@73f80200 /* Host 1 */ { + status = "okay"; + }; wdog@73f98000 { status = "okay"; }; diff --git a/sys/boot/fdt/dts/imx51x.dtsi b/sys/boot/fdt/dts/imx51x.dtsi index 19f281e..cc06f0f 100644 --- a/sys/boot/fdt/dts/imx51x.dtsi +++ b/sys/boot/fdt/dts/imx51x.dtsi @@ -246,16 +246,48 @@ /* 7003C000 0x4000 SPBA */ }; - /* 73F80000 0x4000 USBOH3 */ - /* irq14 USBOH3 USB Host 1 */ - /* irq16 USBOH3 USB Host 2 */ - /* irq17 USBOH3 USB Host 3 */ - /* irq18 USBOH3 USB OTG */ - usb1: usb@73F80000 { - compatible = "fsl,usb-4core"; - reg = <0x73f80000 0x4000>; - interrupt-parent = <&tzic>; - interrupts = <18 14 16 17>; + usbphy0: usbphy@0 { + compatible = "usb-nop-xceiv"; + status = "okay"; + }; + + usbotg: usb@73f80000 { + compatible = "fsl,imx51-usb", "fsl,imx27-usb"; + reg = <0x73f80000 0x0200>; + interrupts = <18>; + fsl,usbmisc = <&usbmisc 0>; + fsl,usbphy = <&usbphy0>; + status = "disabled"; + }; + + usbh1: usb@73f80200 { + compatible = "fsl,imx51-usb", "fsl,imx27-usb"; + reg = <0x73f80200 0x0200>; + interrupts = <14>; + fsl,usbmisc = <&usbmisc 1>; + status = "disabled"; + }; + + usbh2: usb@73f80400 { + compatible = "fsl,imx51-usb", "fsl,imx27-usb"; + reg = <0x73f80400 0x0200>; + interrupts = <16>; + fsl,usbmisc = <&usbmisc 2>; + status = "disabled"; + }; + + usbh3: usb@73f80600 { + compatible = "fsl,imx51-usb", "fsl,imx27-usb"; + reg = <0x73f80600 0x0200>; + interrupts = <17>; + fsl,usbmisc = <&usbmisc 3>; + status = "disabled"; + }; + + usbmisc: usbmisc@73f80800 { + #index-cells = <1>; + compatible = "fsl,imx51-usbmisc"; + reg = <0x73f80800 0x200>; }; /* 73F98000 0x4000 WDOG1 */ diff --git a/sys/boot/fdt/dts/imx53-qsb.dts b/sys/boot/fdt/dts/imx53-qsb.dts index e748266..1184cb3 100644 --- a/sys/boot/fdt/dts/imx53-qsb.dts +++ b/sys/boot/fdt/dts/imx53-qsb.dts @@ -28,6 +28,7 @@ * SUCH DAMAGE. * * Freescale i.MX53 Quick Start Board + * In u-boot, this board is known as "MX53LOCO" for some reason. * * $FreeBSD$ */ @@ -90,6 +91,12 @@ gpio@53f90000 { status = "okay"; }; + usb@53f80000 /* OTG */ { + status = "okay"; + }; + usb@53f80200 /* Host 1 */ { + status = "okay"; + }; wdog@53f98000 { status = "okay"; }; diff --git a/sys/boot/fdt/dts/imx53x.dtsi b/sys/boot/fdt/dts/imx53x.dtsi index f8675ee..eafabcb 100644 --- a/sys/boot/fdt/dts/imx53x.dtsi +++ b/sys/boot/fdt/dts/imx53x.dtsi @@ -290,16 +290,50 @@ /* 5003C000 0x4000 SPBA */ }; - /* 73F80000 0x4000 USBOH3 */ - /* irq14 USBOH3 USB Host 1 */ - /* irq16 USBOH3 USB Host 2 */ - /* irq17 USBOH3 USB Host 3 */ - /* irq18 USBOH3 USB OTG */ - usb1: usb@53F80000 { - compatible = "fsl,usb-4core"; - reg = <0x53f80000 0x4000>; - interrupt-parent = <&tzic>; - interrupts = <18 14 16 17>; + usbphy0: usbphy@0 { + compatible = "usb-nop-xceiv"; + status = "okay"; + }; + + usbphy1: usbphy@1 { + compatible = "usb-nop-xceiv"; + status = "okay"; + }; + + usbotg: usb@53f80000 { + compatible = "fsl,imx53-usb", "fsl,imx27-usb"; + reg = <0x53f80000 0x0200>; + interrupts = <18>; + fsl,usbphy = <&usbphy0>; + status = "disabled"; + }; + + usbh1: usb@53f80200 { + compatible = "fsl,imx53-usb", "fsl,imx27-usb"; + reg = <0x53f80200 0x0200>; + interrupts = <14>; + fsl,usbphy = <&usbphy1>; + status = "disabled"; + }; + + usbh2: usb@53f80400 { + compatible = "fsl,imx53-usb", "fsl,imx27-usb"; + reg = <0x53f80400 0x0200>; + interrupts = <16>; + status = "disabled"; + }; + + usbh3: usb@53f80600 { + compatible = "fsl,imx53-usb", "fsl,imx27-usb"; + reg = <0x53f80600 0x0200>; + interrupts = <17>; + status = "disabled"; + }; + + usbmisc: usbmisc@53f80800 { + #index-cells = <1>; + compatible = "fsl,imx53-usbmisc"; + reg = <0x53f80800 0x200>; }; /* 53F98000 0x4000 WDOG1 */ @@ -419,18 +453,6 @@ status = "disabled"; }; - - - /* 53FC4000 0x4000 USBOH3 */ - /* NOTYET - usb@53fc4000 { - compatible = "fsl,imx53-otg"; - reg = <0x53fc4000 0x4000>; - interrupt-parent = <&tzic>; - interrupts = <>; - status = "disabled"; - }; - */ /* 53FD0000 0x4000 SRC */ reset@53fd0000 { compatible = "fsl,imx53-src"; |