* [PATCH v2] powerpc: i2c-mpc: preserve I2C clocking
@ 2009-03-31 20:01 Wolfgang Grandegger
[not found] ` <49D2767E.4080607-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Wolfgang Grandegger @ 2009-03-31 20:01 UTC (permalink / raw)
To: linuxppc-dev; +Cc: devicetree-discuss
The i2c node property "fsl,preserve-clocking" allows to overtake the
clock settings from the boot loader avoiding the hard-coded settings.
Signed-off-by: Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
---
Documentation/powerpc/dts-bindings/fsl/i2c.txt | 2 ++
drivers/i2c/busses/i2c-mpc.c | 20 +++++++++++---------
2 files changed, 13 insertions(+), 9 deletions(-)
Index: linux-2.6/drivers/i2c/busses/i2c-mpc.c
===================================================================
--- linux-2.6.orig/drivers/i2c/busses/i2c-mpc.c 2009-03-31 13:25:08.000000000 +0200
+++ linux-2.6/drivers/i2c/busses/i2c-mpc.c 2009-03-31 21:29:21.615721143 +0200
@@ -323,13 +323,6 @@
if (!i2c)
return -ENOMEM;
- if (of_get_property(op->node, "dfsrr", NULL))
- i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR;
-
- if (of_device_is_compatible(op->node, "fsl,mpc5200-i2c") ||
- of_device_is_compatible(op->node, "mpc5200-i2c"))
- i2c->flags |= FSL_I2C_DEV_CLOCK_5200;
-
init_waitqueue_head(&i2c->queue);
i2c->base = of_iomap(op->node, 0);
@@ -348,8 +341,17 @@
goto fail_request;
}
}
-
- mpc_i2c_setclock(i2c);
+
+ if (!of_get_property(op->node, "fsl,preserve-clocking", NULL)) {
+ if (of_get_property(op->node, "dfsrr", NULL))
+ i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR;
+
+ if (of_device_is_compatible(op->node, "fsl,mpc5200-i2c") ||
+ of_device_is_compatible(op->node, "mpc5200-i2c"))
+ i2c->flags |= FSL_I2C_DEV_CLOCK_5200;
+
+ mpc_i2c_setclock(i2c);
+ }
dev_set_drvdata(&op->dev, i2c);
Index: linux-2.6/Documentation/powerpc/dts-bindings/fsl/i2c.txt
===================================================================
--- linux-2.6.orig/Documentation/powerpc/dts-bindings/fsl/i2c.txt 2009-03-17 10:28:07.000000000 +0100
+++ linux-2.6/Documentation/powerpc/dts-bindings/fsl/i2c.txt 2009-03-31 21:35:51.527901532 +0200
@@ -20,6 +20,8 @@
a digital filter sampling rate register
- fsl5200-clocking : boolean; if defined, indicated that this device
uses the FSL 5200 clocking mechanism.
+ - fsl,preserve-clocking : boolean; if defined, the clock settings
+ from the bootloader are preserved (not touched).
Example :
i2c@3000 {
^ permalink raw reply [flat|nested] 2+ messages in thread[parent not found: <49D2767E.4080607-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>]
* Re: [PATCH v2] powerpc: i2c-mpc: preserve I2C clocking [not found] ` <49D2767E.4080607-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org> @ 2009-03-31 20:24 ` Grant Likely 0 siblings, 0 replies; 2+ messages in thread From: Grant Likely @ 2009-03-31 20:24 UTC (permalink / raw) To: Wolfgang Grandegger; +Cc: linuxppc-dev, devicetree-discuss On Tue, Mar 31, 2009 at 2:01 PM, Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org> wrote: > The i2c node property "fsl,preserve-clocking" allows to overtake the > clock settings from the boot loader avoiding the hard-coded settings. > > Signed-off-by: Wolfgang Grandegger <wg-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org> Acked-by: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org> > --- > Documentation/powerpc/dts-bindings/fsl/i2c.txt | 2 ++ > drivers/i2c/busses/i2c-mpc.c | 20 +++++++++++--------- > 2 files changed, 13 insertions(+), 9 deletions(-) > > Index: linux-2.6/drivers/i2c/busses/i2c-mpc.c > =================================================================== > --- linux-2.6.orig/drivers/i2c/busses/i2c-mpc.c 2009-03-31 13:25:08.000000000 +0200 > +++ linux-2.6/drivers/i2c/busses/i2c-mpc.c 2009-03-31 21:29:21.615721143 +0200 > @@ -323,13 +323,6 @@ > if (!i2c) > return -ENOMEM; > > - if (of_get_property(op->node, "dfsrr", NULL)) > - i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR; > - > - if (of_device_is_compatible(op->node, "fsl,mpc5200-i2c") || > - of_device_is_compatible(op->node, "mpc5200-i2c")) > - i2c->flags |= FSL_I2C_DEV_CLOCK_5200; > - > init_waitqueue_head(&i2c->queue); > > i2c->base = of_iomap(op->node, 0); > @@ -348,8 +341,17 @@ > goto fail_request; > } > } > - > - mpc_i2c_setclock(i2c); > + > + if (!of_get_property(op->node, "fsl,preserve-clocking", NULL)) { > + if (of_get_property(op->node, "dfsrr", NULL)) > + i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR; > + > + if (of_device_is_compatible(op->node, "fsl,mpc5200-i2c") || > + of_device_is_compatible(op->node, "mpc5200-i2c")) > + i2c->flags |= FSL_I2C_DEV_CLOCK_5200; > + > + mpc_i2c_setclock(i2c); > + } > > dev_set_drvdata(&op->dev, i2c); > > Index: linux-2.6/Documentation/powerpc/dts-bindings/fsl/i2c.txt > =================================================================== > --- linux-2.6.orig/Documentation/powerpc/dts-bindings/fsl/i2c.txt 2009-03-17 10:28:07.000000000 +0100 > +++ linux-2.6/Documentation/powerpc/dts-bindings/fsl/i2c.txt 2009-03-31 21:35:51.527901532 +0200 > @@ -20,6 +20,8 @@ > a digital filter sampling rate register > - fsl5200-clocking : boolean; if defined, indicated that this device > uses the FSL 5200 clocking mechanism. > + - fsl,preserve-clocking : boolean; if defined, the clock settings > + from the bootloader are preserved (not touched). > > Example : > i2c@3000 { > -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-03-31 20:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-31 20:01 [PATCH v2] powerpc: i2c-mpc: preserve I2C clocking Wolfgang Grandegger
[not found] ` <49D2767E.4080607-5Yr1BZd7O62+XT7JhA+gdA@public.gmane.org>
2009-03-31 20:24 ` Grant Likely
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox