usb: gadget: s3c-hsotg: Allow driver instantiation using device tree
This patch adds OF match table to the driver to allow instantiating it using device tree. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
Родитель
22a5aa170c
Коммит
c50f056c36
|
@ -0,0 +1,40 @@
|
|||
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>;
|
||||
};
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
#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>
|
||||
|
@ -3648,10 +3649,19 @@ static int s3c_hsotg_remove(struct platform_device *pdev)
|
|||
#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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче