* [PATCH V3 0/5] W1: Support onewire master on i.MX53
@ 2013-01-29 15:46 Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 1/5] W1: Add device tree support to MXC onewire master Martin Fuzzey
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Martin Fuzzey @ 2013-01-29 15:46 UTC (permalink / raw)
To: linux-arm-kernel
W1: Support onewire master on i.MX53
* Add device tree and pinctrl support to the MXC master driver
* Convert to use devm_
* Add i.MX53 clocks
* Add i.MX53 device tree entries
Changes since V2
* Add documentation on device tree binding
* Add Acked-bys from Sascha and Evgeniy
Changes since V1
* Applied comments from Sascha Hauer:
* Move patch converting driver to devm_ before the one adding devm_ based pinctrl
* Fix existing unbalanced clk_prepare_enable/clk_disable_unprepare
in probe error path
* Place DT patch last since it includes pinctrls for driver.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH V3 1/5] W1: Add device tree support to MXC onewire master.
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
@ 2013-01-29 15:46 ` Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 2/5] ARM: i.MX53: Add clocks for i.mx53 " Martin Fuzzey
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Martin Fuzzey @ 2013-01-29 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
---
.../devicetree/bindings/w1/fsl-imx-owire.txt | 20 ++++++++++++++++++++
drivers/w1/masters/mxc_w1.c | 9 ++++++++-
2 files changed, 28 insertions(+), 1 deletions(-)
create mode 100644 Documentation/devicetree/bindings/w1/fsl-imx-owire.txt
diff --git a/Documentation/devicetree/bindings/w1/fsl-imx-owire.txt b/Documentation/devicetree/bindings/w1/fsl-imx-owire.txt
new file mode 100644
index 0000000..b6d53b0
--- /dev/null
+++ b/Documentation/devicetree/bindings/w1/fsl-imx-owire.txt
@@ -0,0 +1,20 @@
+* Freescale i.MX One wire bus master controller
+
+Required properties:
+- compatible : should be "fsl,imx21-owire"
+- reg : Address and length of the register set for the device
+
+Optional properties:
+- clocks : phandle of clock that supplies the module (required if platform
+ clock bindings use device tree)
+
+Example:
+
+- From imx53.dtsi:
+owire: owire at 63fa4000 {
+ compatible = "fsl,imx53-owire", "fsl,imx21-owire";
+ reg = <0x63fa4000 0x4000>;
+ clocks = <&clks 159>;
+ status = "disabled";
+};
+
diff --git a/drivers/w1/masters/mxc_w1.c b/drivers/w1/masters/mxc_w1.c
index 708a25f..949e566 100644
--- a/drivers/w1/masters/mxc_w1.c
+++ b/drivers/w1/masters/mxc_w1.c
@@ -186,9 +186,16 @@ static int mxc_w1_remove(struct platform_device *pdev)
return 0;
}
+static struct of_device_id mxc_w1_dt_ids[] = {
+ { .compatible = "fsl,imx21-owire" },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, mxc_w1_dt_ids);
+
static struct platform_driver mxc_w1_driver = {
.driver = {
- .name = "mxc_w1",
+ .name = "mxc_w1",
+ .of_match_table = mxc_w1_dt_ids,
},
.probe = mxc_w1_probe,
.remove = mxc_w1_remove,
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V3 2/5] ARM: i.MX53: Add clocks for i.mx53 onewire master.
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 1/5] W1: Add device tree support to MXC onewire master Martin Fuzzey
@ 2013-01-29 15:46 ` Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 3/5] W1: Convert MXC onewire master to devm_ functions Martin Fuzzey
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Martin Fuzzey @ 2013-01-29 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
---
.../devicetree/bindings/clock/imx5-clock.txt | 1 +
arch/arm/mach-imx/clk-imx51-imx53.c | 4 +++-
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/Documentation/devicetree/bindings/clock/imx5-clock.txt b/Documentation/devicetree/bindings/clock/imx5-clock.txt
index 04ad478..2a0c904 100644
--- a/Documentation/devicetree/bindings/clock/imx5-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx5-clock.txt
@@ -171,6 +171,7 @@ clocks and IDs.
can_sel 156
can1_serial_gate 157
can1_ipg_gate 158
+ owire_gate 159
Examples (for mx53):
diff --git a/arch/arm/mach-imx/clk-imx51-imx53.c b/arch/arm/mach-imx/clk-imx51-imx53.c
index 579023f..7ff293b 100644
--- a/arch/arm/mach-imx/clk-imx51-imx53.c
+++ b/arch/arm/mach-imx/clk-imx51-imx53.c
@@ -83,6 +83,7 @@ enum imx5_clks {
ssi2_root_gate, ssi3_root_gate, ssi_ext1_gate, ssi_ext2_gate,
epit1_ipg_gate, epit1_hf_gate, epit2_ipg_gate, epit2_hf_gate,
can_sel, can1_serial_gate, can1_ipg_gate,
+ owire_gate,
clk_max
};
@@ -233,12 +234,13 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil,
clk[epit1_hf_gate] = imx_clk_gate2("epit1_hf_gate", "per_root", MXC_CCM_CCGR2, 4);
clk[epit2_ipg_gate] = imx_clk_gate2("epit2_ipg_gate", "ipg", MXC_CCM_CCGR2, 6);
clk[epit2_hf_gate] = imx_clk_gate2("epit2_hf_gate", "per_root", MXC_CCM_CCGR2, 8);
+ clk[owire_gate] = imx_clk_gate2("owire_gate", "per_root", MXC_CCM_CCGR2, 22);
for (i = 0; i < ARRAY_SIZE(clk); i++)
if (IS_ERR(clk[i]))
pr_err("i.MX5 clk %d: register failed with %ld\n",
i, PTR_ERR(clk[i]));
-
+
clk_register_clkdev(clk[gpt_hf_gate], "per", "imx-gpt.0");
clk_register_clkdev(clk[gpt_ipg_gate], "ipg", "imx-gpt.0");
clk_register_clkdev(clk[uart1_per_gate], "per", "imx21-uart.0");
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V3 3/5] W1: Convert MXC onewire master to devm_ functions.
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 1/5] W1: Add device tree support to MXC onewire master Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 2/5] ARM: i.MX53: Add clocks for i.mx53 " Martin Fuzzey
@ 2013-01-29 15:46 ` Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 4/5] W1: Add pinctrl support to MXC onewire master Martin Fuzzey
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Martin Fuzzey @ 2013-01-29 15:46 UTC (permalink / raw)
To: linux-arm-kernel
While doing this fix missing clk_disable_unprepare in error path.
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
---
drivers/w1/masters/mxc_w1.c | 26 ++++++--------------------
1 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/drivers/w1/masters/mxc_w1.c b/drivers/w1/masters/mxc_w1.c
index 949e566..317b2bc 100644
--- a/drivers/w1/masters/mxc_w1.c
+++ b/drivers/w1/masters/mxc_w1.c
@@ -117,7 +117,7 @@ static int mxc_w1_probe(struct platform_device *pdev)
if (!mdev)
return -ENOMEM;
- mdev->clk = clk_get(&pdev->dev, NULL);
+ mdev->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(mdev->clk)) {
err = PTR_ERR(mdev->clk);
goto failed_clk;
@@ -125,17 +125,11 @@ static int mxc_w1_probe(struct platform_device *pdev)
mdev->clkdiv = (clk_get_rate(mdev->clk) / 1000000) - 1;
- res = request_mem_region(res->start, resource_size(res),
- "mxc_w1");
- if (!res) {
- err = -EBUSY;
- goto failed_req;
- }
-
- mdev->regs = ioremap(res->start, resource_size(res));
+ mdev->regs = devm_request_and_ioremap(&pdev->dev, res);
if (!mdev->regs) {
dev_err(&pdev->dev, "Cannot map mxc_w1 registers\n");
- goto failed_ioremap;
+ err = -ENXIO;
+ goto failed_req;
}
clk_prepare_enable(mdev->clk);
@@ -154,11 +148,9 @@ static int mxc_w1_probe(struct platform_device *pdev)
return 0;
failed_add:
- iounmap(mdev->regs);
-failed_ioremap:
- release_mem_region(res->start, resource_size(res));
+ clk_disable_unprepare(mdev->clk);
+
failed_req:
- clk_put(mdev->clk);
failed_clk:
kfree(mdev);
return err;
@@ -170,16 +162,10 @@ failed_clk:
static int mxc_w1_remove(struct platform_device *pdev)
{
struct mxc_w1_device *mdev = platform_get_drvdata(pdev);
- struct resource *res;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
w1_remove_master_device(&mdev->bus_master);
- iounmap(mdev->regs);
- release_mem_region(res->start, resource_size(res));
clk_disable_unprepare(mdev->clk);
- clk_put(mdev->clk);
platform_set_drvdata(pdev, NULL);
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V3 4/5] W1: Add pinctrl support to MXC onewire master.
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
` (2 preceding siblings ...)
2013-01-29 15:46 ` [PATCH V3 3/5] W1: Convert MXC onewire master to devm_ functions Martin Fuzzey
@ 2013-01-29 15:46 ` Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 5/5] DTS: Add device tree entry for onewire master on i.MX53 Martin Fuzzey
2013-01-30 13:02 ` [PATCH V3 0/5] W1: Support " Shawn Guo
5 siblings, 0 replies; 8+ messages in thread
From: Martin Fuzzey @ 2013-01-29 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
---
drivers/w1/masters/mxc_w1.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/w1/masters/mxc_w1.c b/drivers/w1/masters/mxc_w1.c
index 317b2bc..48afc2c 100644
--- a/drivers/w1/masters/mxc_w1.c
+++ b/drivers/w1/masters/mxc_w1.c
@@ -24,6 +24,7 @@
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/io.h>
+#include <linux/pinctrl/consumer.h>
#include "../w1.h"
#include "../w1_int.h"
@@ -107,6 +108,7 @@ static int mxc_w1_probe(struct platform_device *pdev)
{
struct mxc_w1_device *mdev;
struct resource *res;
+ struct pinctrl *pinctrl;
int err = 0;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -117,6 +119,13 @@ static int mxc_w1_probe(struct platform_device *pdev)
if (!mdev)
return -ENOMEM;
+ pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
+ if (IS_ERR(pinctrl)) {
+ err = PTR_ERR(pinctrl);
+ dev_err(&pdev->dev, "failed to get default pinctrl: %d\n", err);
+ goto failed_pin;
+ }
+
mdev->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(mdev->clk)) {
err = PTR_ERR(mdev->clk);
@@ -152,6 +161,7 @@ failed_add:
failed_req:
failed_clk:
+failed_pin:
kfree(mdev);
return err;
}
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V3 5/5] DTS: Add device tree entry for onewire master on i.MX53
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
` (3 preceding siblings ...)
2013-01-29 15:46 ` [PATCH V3 4/5] W1: Add pinctrl support to MXC onewire master Martin Fuzzey
@ 2013-01-29 15:46 ` Martin Fuzzey
2013-01-30 13:02 ` [PATCH V3 0/5] W1: Support " Shawn Guo
5 siblings, 0 replies; 8+ messages in thread
From: Martin Fuzzey @ 2013-01-29 15:46 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
---
arch/arm/boot/dts/imx53.dtsi | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
index edc3f1e..00c957c 100644
--- a/arch/arm/boot/dts/imx53.dtsi
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -387,6 +387,14 @@
};
};
+ owire {
+ pinctrl_owire_1: owiregrp-1 {
+ fsl,pins = <
+ 1166 0x80000000 /* MX53_PAD_GPIO_18__OWIRE_LINE */
+ >;
+ };
+ };
+
uart1 {
pinctrl_uart1_1: uart1grp-1 {
fsl,pins = <
@@ -570,6 +578,13 @@
status = "disabled";
};
+ owire: owire@63fa4000 {
+ compatible = "fsl,imx53-owire", "fsl,imx21-owire";
+ reg = <0x63fa4000 0x4000>;
+ clocks = <&clks 159>;
+ status = "disabled";
+ };
+
ecspi2: ecspi at 63fac000 {
#address-cells = <1>;
#size-cells = <0>;
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V3 0/5] W1: Support onewire master on i.MX53
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
` (4 preceding siblings ...)
2013-01-29 15:46 ` [PATCH V3 5/5] DTS: Add device tree entry for onewire master on i.MX53 Martin Fuzzey
@ 2013-01-30 13:02 ` Shawn Guo
2013-02-05 7:43 ` Shawn Guo
5 siblings, 1 reply; 8+ messages in thread
From: Shawn Guo @ 2013-01-30 13:02 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Jan 29, 2013 at 04:46:08PM +0100, Martin Fuzzey wrote:
> W1: Support onewire master on i.MX53
> * Add device tree and pinctrl support to the MXC master driver
> * Convert to use devm_
> * Add i.MX53 clocks
> * Add i.MX53 device tree entries
Applied, thanks.
I changed the patch order a little bit, moving dts change to the last,
and also fix the patch subject prefix.
W1: Add device tree support to MXC onewire master.
W1: Convert MXC onewire master to devm_ functions.
W1: Add pinctrl support to MXC onewire master.
ARM: i.MX53: Add clocks for i.mx53 onewire master.
ARM: dts: Add device tree entry for onewire master on i.MX53
One 'new blank line at EOF' warning on patch #1 gets fixed.
And please remember to add some commit log for patches you submit in
the future. Empty commit log is not good.
Shawn
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH V3 0/5] W1: Support onewire master on i.MX53
2013-01-30 13:02 ` [PATCH V3 0/5] W1: Support " Shawn Guo
@ 2013-02-05 7:43 ` Shawn Guo
0 siblings, 0 replies; 8+ messages in thread
From: Shawn Guo @ 2013-02-05 7:43 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Jan 30, 2013 at 09:02:00PM +0800, Shawn Guo wrote:
> On Tue, Jan 29, 2013 at 04:46:08PM +0100, Martin Fuzzey wrote:
> > W1: Support onewire master on i.MX53
> > * Add device tree and pinctrl support to the MXC master driver
> > * Convert to use devm_
> > * Add i.MX53 clocks
> > * Add i.MX53 device tree entries
>
> Applied, thanks.
>
> I changed the patch order a little bit, moving dts change to the last,
> and also fix the patch subject prefix.
>
> W1: Add device tree support to MXC onewire master.
> W1: Convert MXC onewire master to devm_ functions.
I have to drop this one, as I see patch e5279ff
(drivers/w1/masters/mxc_w1.c: use devm_ functions) on linux-next,
which does the same thing.
> W1: Add pinctrl support to MXC onewire master.
And I would drop this one too, because patch ab78029 (drivers/pinctrl:
grab default handles from device core) will have it handled globally
at driver core level.
Shawn
> ARM: i.MX53: Add clocks for i.mx53 onewire master.
> ARM: dts: Add device tree entry for onewire master on i.MX53
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-02-05 7:43 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-29 15:46 [PATCH V3 0/5] W1: Support onewire master on i.MX53 Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 1/5] W1: Add device tree support to MXC onewire master Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 2/5] ARM: i.MX53: Add clocks for i.mx53 " Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 3/5] W1: Convert MXC onewire master to devm_ functions Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 4/5] W1: Add pinctrl support to MXC onewire master Martin Fuzzey
2013-01-29 15:46 ` [PATCH V3 5/5] DTS: Add device tree entry for onewire master on i.MX53 Martin Fuzzey
2013-01-30 13:02 ` [PATCH V3 0/5] W1: Support " Shawn Guo
2013-02-05 7:43 ` Shawn Guo
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).