linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH_V3 0/3] usb: ohci: jz4740: Add DT support and a fix
@ 2015-01-28 13:26 Zubair Lutfullah Kakakhel
  2015-01-28 13:26 ` [PATCH_V3 1/3] dt: usb: jz4740: Add DT binding document for OHCI Zubair Lutfullah Kakakhel
                   ` (2 more replies)
  0 siblings, 3 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

Hi,

Here are a few simple patches for the jz4740.

First adds a simple DT binding.
Seconds adds DT support.
Third is a minor fix in clock enabling.

Patches are based on 3.19-rc6. Quite disjoint and stay within jz4740 
so should apply easily on other trees.

If you would like to have them rebased to a different tree, please tell.

Thank-you

V3 changes
DT corrections. Added ACKS for 2 and 3.

V2 changes
Removed an interrupt parent binding. Forgot a binding
Unprepared clock when disabling

ZubairLK

Paul Burton (3):
  dt: usb: jz4740: Add DT binding document for OHCI
  usb: ohci: jz4740: add DT support
  usb: ohci: jz4740: prepare the clock before enabling it

 .../bindings/usb/ingenic,jz4740-ohci.txt           | 26 ++++++++++++++++++++++
 drivers/usb/host/ohci-jz4740.c                     | 15 ++++++++++---
 2 files changed, 38 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/usb/ingenic,jz4740-ohci.txt

-- 
1.9.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [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

* Re: [PATCH_V3 1/3] dt: usb: jz4740: Add DT binding document for OHCI
  2015-01-28 13:26 ` [PATCH_V3 1/3] dt: usb: jz4740: Add DT binding document for OHCI Zubair Lutfullah Kakakhel
@ 2015-01-29 12:24   ` Arnd Bergmann
  0 siblings, 0 replies; 5+ messages in thread
From: Arnd Bergmann @ 2015-01-29 12:24 UTC (permalink / raw)
  To: Zubair Lutfullah Kakakhel
  Cc: stern, gregkh, lars, devicetree, linux-kernel, linux-usb

On Wednesday 28 January 2015 13:26:03 Zubair Lutfullah Kakakhel wrote:
> + - clocks: Should contain a single clock specifier for the SoC UHC clock.
> + - clock-names: Must be "uhc"
> 

Same comment as for the watchdog binding, this should probably be
removed. See what the other ohci drivers use and pick the most
common clock name if you must have one.

	Arnd

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-01-29 12:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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-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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).