* [PATCH_V3 1/3] dt: usb: jz4740: Add DT binding document for OHCI
2015-01-28 13:26 [PATCH_V3 0/3] usb: ohci: jz4740: Add DT support and a fix Zubair Lutfullah Kakakhel
@ 2015-01-28 13:26 ` Zubair Lutfullah Kakakhel
2015-01-29 12:24 ` Arnd Bergmann
2015-01-28 13:26 ` [PATCH_V3 2/3] usb: ohci: jz4740: add DT support Zubair Lutfullah Kakakhel
2015-01-28 13:26 ` [PATCH_V3 3/3] usb: ohci: jz4740: prepare the clock before enabling it Zubair Lutfullah Kakakhel
2 siblings, 1 reply; 5+ messages in thread
From: Zubair Lutfullah Kakakhel @ 2015-01-28 13:26 UTC (permalink / raw)
To: stern; +Cc: gregkh, lars, devicetree, linux-kernel, linux-usb,
Zubair.Kakakhel
From: Paul Burton <paul.burton@imgtec.com>
Add the binding documentation for the JZ4740 OHCI controller.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
---
The jz4740 is platform only at the moment.
But DT support is being added
See http://patchwork.linux-mips.org/bundle/paulburton/ci20-v3.20/
V3 Changes: named binding jz4740 instead of confusing it with jz47xx.
The driver name is jz4740. And will not be renamed
V2 Changes: Removed interrupt parent binding as that can be inherited.
Forgot a binding for clock-names
---
.../bindings/usb/ingenic,jz4740-ohci.txt | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/ingenic,jz4740-ohci.txt
diff --git a/Documentation/devicetree/bindings/usb/ingenic,jz4740-ohci.txt b/Documentation/devicetree/bindings/usb/ingenic,jz4740-ohci.txt
new file mode 100644
index 0000000..9f05cca
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/ingenic,jz4740-ohci.txt
@@ -0,0 +1,26 @@
+Ingenic JZ4740 SoC OHCI controller binding
+
+The Ingenic JZ4740 SoC includes an OHCI compliant USB host controller
+interface for use with USB 1.1 devices.
+
+Required properties:
+ - compatible: Should be "ingenic,jz4740-ohci"
+ - reg: Should contain the address & size of the OHCI controller registers.
+ - interrupts: Should specify the interrupt line number
+ - clocks: Should contain a single clock specifier for the SoC UHC clock.
+ - clock-names: Must be "uhc"
+
+Example for jz4740:
+
+/ {
+ ohci: jz4780-ohci@0x134a0000 {
+ compatible = "ingenic,jz4740-ohci";
+ reg = <0x134a0000 0x10000>;
+
+ interrupts = <5>;
+
+ clocks = <&cgu JZ4740_CLK_UHC>;
+ clock-names = "uhc";
+ };
+};
+
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH_V3 2/3] usb: ohci: jz4740: add DT support
2015-01-28 13:26 [PATCH_V3 0/3] usb: ohci: jz4740: Add DT support and a fix Zubair Lutfullah Kakakhel
2015-01-28 13:26 ` [PATCH_V3 1/3] dt: usb: jz4740: Add DT binding document for OHCI Zubair Lutfullah Kakakhel
@ 2015-01-28 13:26 ` Zubair Lutfullah Kakakhel
2015-01-28 13:26 ` [PATCH_V3 3/3] usb: ohci: jz4740: prepare the clock before enabling it Zubair Lutfullah Kakakhel
2 siblings, 0 replies; 5+ messages in thread
From: Zubair Lutfullah Kakakhel @ 2015-01-28 13:26 UTC (permalink / raw)
To: stern; +Cc: gregkh, lars, devicetree, linux-kernel, linux-usb,
Zubair.Kakakhel
From: Paul Burton <paul.burton@imgtec.com>
This is a simple matter of providing a match table, the probe code needs
no modification.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
---
drivers/usb/host/ohci-jz4740.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/usb/host/ohci-jz4740.c b/drivers/usb/host/ohci-jz4740.c
index 8ddd8f5..bb69733 100644
--- a/drivers/usb/host/ohci-jz4740.c
+++ b/drivers/usb/host/ohci-jz4740.c
@@ -234,11 +234,20 @@ static int jz4740_ohci_remove(struct platform_device *pdev)
return 0;
}
+#ifdef CONFIG_OF
+static struct of_device_id jz4740_ohci_of_match[] = {
+ { .compatible = "ingenic,jz4740-ohci", },
+ { },
+};
+MODULE_DEVICE_TABLE(of, jz4740_ohci_of_match);
+#endif
+
static struct platform_driver ohci_hcd_jz4740_driver = {
.probe = jz4740_ohci_probe,
.remove = jz4740_ohci_remove,
.driver = {
.name = "jz4740-ohci",
+ .of_match_table = of_match_ptr(jz4740_ohci_of_match),
.owner = THIS_MODULE,
},
};
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH_V3 3/3] usb: ohci: jz4740: prepare the clock before enabling it
2015-01-28 13:26 [PATCH_V3 0/3] usb: ohci: jz4740: Add DT support and a fix Zubair Lutfullah Kakakhel
2015-01-28 13:26 ` [PATCH_V3 1/3] dt: usb: jz4740: Add DT binding document for OHCI Zubair Lutfullah Kakakhel
2015-01-28 13:26 ` [PATCH_V3 2/3] usb: ohci: jz4740: add DT support Zubair Lutfullah Kakakhel
@ 2015-01-28 13:26 ` Zubair Lutfullah Kakakhel
2 siblings, 0 replies; 5+ messages in thread
From: Zubair Lutfullah Kakakhel @ 2015-01-28 13:26 UTC (permalink / raw)
To: stern; +Cc: gregkh, lars, devicetree, linux-kernel, linux-usb,
Zubair.Kakakhel
From: Paul Burton <paul.burton@imgtec.com>
The clock must have been prepared before enabling it.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
--
V2 changes. Add disable_unprepare as well
---
drivers/usb/host/ohci-jz4740.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/host/ohci-jz4740.c b/drivers/usb/host/ohci-jz4740.c
index bb69733..129f6b9 100644
--- a/drivers/usb/host/ohci-jz4740.c
+++ b/drivers/usb/host/ohci-jz4740.c
@@ -189,7 +189,7 @@ static int jz4740_ohci_probe(struct platform_device *pdev)
clk_set_rate(jz4740_ohci->clk, 48000000);
- clk_enable(jz4740_ohci->clk);
+ clk_prepare_enable(jz4740_ohci->clk);
if (jz4740_ohci->vbus)
ohci_jz4740_set_vbus_power(jz4740_ohci, true);
@@ -209,7 +209,7 @@ static int jz4740_ohci_probe(struct platform_device *pdev)
err_disable:
if (jz4740_ohci->vbus)
regulator_disable(jz4740_ohci->vbus);
- clk_disable(jz4740_ohci->clk);
+ clk_disable_unprepare(jz4740_ohci->clk);
err_free:
usb_put_hcd(hcd);
@@ -227,7 +227,7 @@ static int jz4740_ohci_remove(struct platform_device *pdev)
if (jz4740_ohci->vbus)
regulator_disable(jz4740_ohci->vbus);
- clk_disable(jz4740_ohci->clk);
+ clk_disable_unprepare(jz4740_ohci->clk);
usb_put_hcd(hcd);
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread