--- /dev/null
+Samsung High Speed USB OTG controller
+-----------------------------
+
+The Samsung HSOTG IP can be found on Samsung SoCs, from S3C6400 onwards.
+It gives functionality of OTG-compliant USB 2.0 host and device with
+support for USB 2.0 high-speed (480Mbps) and full-speed (12 Mbps)
+operation.
+
+Currently only device mode is supported.
+
+Binding details
+-----
+
+Required properties:
+- compatible: "samsung,s3c6400-hsotg" should be used for all currently
+    supported SoC,
+- interrupt-parent: phandle for the interrupt controller to which the
+    interrupt signal of the HSOTG block is routed,
+- interrupts: specifier of interrupt signal of interrupt controller,
+    according to bindings of interrupt controller,
+- clocks: contains an array of clock specifiers:
+    - first entry: OTG clock
+- clock-names: contains array of clock names:
+    - first entry: must be "otg"
+- vusb_d-supply: phandle to voltage regulator of digital section,
+- vusb_a-supply: phandle to voltage regulator of analog section.
+
+Example
+-----
+
+       hsotg@12480000 {
+               compatible = "samsung,s3c6400-hsotg";
+               reg = <0x12480000 0x20000>;
+               interrupts = <0 71 0>;
+               clocks = <&clock 305>;
+               clock-names = "otg";
+               vusb_d-supply = <&vusb_reg>;
+               vusb_a-supply = <&vusbdac_reg>;
+       };
+
 
 #include <linux/slab.h>
 #include <linux/clk.h>
 #include <linux/regulator/consumer.h>
+#include <linux/of_platform.h>
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #define s3c_hsotg_resume NULL
 #endif
 
+#ifdef CONFIG_OF
+static const struct of_device_id s3c_hsotg_of_ids[] = {
+       { .compatible = "samsung,s3c6400-hsotg", },
+       { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, s3c_hsotg_of_ids);
+#endif
+
 static struct platform_driver s3c_hsotg_driver = {
        .driver         = {
                .name   = "s3c-hsotg",
                .owner  = THIS_MODULE,
+               .of_match_table = of_match_ptr(s3c_hsotg_of_ids),
        },
        .probe          = s3c_hsotg_probe,
        .remove         = s3c_hsotg_remove,