summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-12-13 22:19:21 +0000
committerian <ian@FreeBSD.org>2013-12-13 22:19:21 +0000
commit52408050e1b85698749984f9c40d16375b2e7566 (patch)
treedb4405d8d5b4c84d8fa0e1a6532c42b9a9471ed9 /sys/boot
parenta551aaa6fa0f0d21a74a54cd3022f56756af5809 (diff)
downloadFreeBSD-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.dts6
-rw-r--r--sys/boot/fdt/dts/efikamx.dts6
-rw-r--r--sys/boot/fdt/dts/imx51x.dtsi52
-rw-r--r--sys/boot/fdt/dts/imx53-qsb.dts7
-rw-r--r--sys/boot/fdt/dts/imx53x.dtsi66
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";
OpenPOWER on IntegriCloud