aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAjay Kumar <ajaykumar.rs@samsung.com>2012-07-21 10:32:04 +0000
committerTushar Behera <tushar.behera@linaro.org>2013-05-24 08:36:21 +0530
commit10b9af9581b689b6815a9890929eb0da6f2e48a2 (patch)
tree3683f0966004c74d25228976b4a1e8eda112ab75
parent6305d9cbe876cf4e285c993c1e60034cee9b5d9a (diff)
ARM: EXYNOS5: Add OHCI device from device tree
This patch adds OHCI device from device tree for exynos5 and adds platform data. Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
-rw-r--r--Documentation/devicetree/bindings/usb/exynos-usb.txt19
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi8
-rw-r--r--arch/arm/mach-exynos/mach-exynos5-dt.c15
3 files changed, 38 insertions, 4 deletions
diff --git a/Documentation/devicetree/bindings/usb/exynos-usb.txt b/Documentation/devicetree/bindings/usb/exynos-usb.txt
new file mode 100644
index 000000000000..63b80b92c4fe
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/exynos-usb.txt
@@ -0,0 +1,19 @@
+Samsung Exynos SoC USB controller
+
+The device node for USB controller for Samsung SOC have
+following properties
+
+OHCI
+Required properties:
+ - compatible: should be "samsung,exynos-ohci" for USB 2.0
+ OHCI companion controller in host mode.
+ - reg: physical base address of the controller and length
+ of memory mapped.
+ - interrupts: interrupt number to the cpu.
+
+ohci {
+ compatible = "samsung,exynos-ohci";
+ reg = <0x12120000 0x100>;
+ interrupts = <0 71 0>;
+};
+
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 6b63be7fd084..a081a8c3ceba 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -91,7 +91,13 @@
reg = <0x12000000 0x10000>;
interrupts = <0 72 0>;
};
-
+
+ ohci {
+ compatible = "samsung,exynos-ohci";
+ reg = <0x12120000 0x100>;
+ interrupts = <0 71 0>;
+ };
+
rtc {
compatible = "samsung,s3c6410-rtc";
reg = <0x101E0000 0x100>;
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c
index 752b16860c96..fcb0d87db727 100644
--- a/arch/arm/mach-exynos/mach-exynos5-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
@@ -24,20 +24,27 @@
#include <plat/cpu.h>
#include <plat/regs-serial.h>
#include <plat/mfc.h>
-
-#include "common.h"
+#include <linux/platform_data/samsung-usbphy.h>
+#include <linux/platform_data/usb-exynos.h>
#include <plat/regs-srom.h>
#include <plat/devs.h>
#include <plat/usb-phy.h>
-#include <linux/platform_data/samsung-usbphy.h>
+#include "common.h"
+
+
static struct samsung_usbphy_data exynos5_usbphy_pdata = {
.pmu_isolation = s5p_usb_phy_pmu_isolation,
.phy_cfg_sel = s5p_usb_phy_cfg_sel,
};
+static struct exynos4_ohci_platdata smdk5250_ohci_pdata = {
+ .phy_init = s5p_usb_phy_init,
+ .phy_exit = s5p_usb_phy_exit,
+};
+
/*
* The following lookup table is used to override device names when devices
* are registered from device tree. This is temporarily added to enable
@@ -120,6 +127,8 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = {
"s3c-usbphy", &exynos5_usbphy_pdata),
OF_DEV_AUXDATA("samsung,exynos-dwc3", EXYNOS5_PA_DRD,
"exynos-dwc3", NULL),
+ OF_DEV_AUXDATA("samsung,exynos-ohci", 0x12120000,
+ "exynos-ohci", &smdk5250_ohci_pdata),
{},
};