[PATCH] powerpc: Add i2c pins to dts and board setup

2008-07-02 Thread Jochen Friedrich
Initialize I2C pins on boards with CPM1/CPM2 controllers
and document the i2c bus in booting-without-of.

The boards don't have any I2C chips connected to the I2C
bus, so unless some external chips are connected to the
boards, this code is just an example of setting everything
else up.

Signed-off-by: Jochen Friedrich [EMAIL PROTECTED]
---
 Documentation/powerpc/booting-without-of.txt |   42 ++
 arch/powerpc/boot/dts/mpc8272ads.dts |   11 +++
 arch/powerpc/boot/dts/mpc866ads.dts  |   11 +++
 arch/powerpc/boot/dts/mpc885ads.dts  |   11 +++
 arch/powerpc/platforms/82xx/mpc8272_ads.c|4 ++
 arch/powerpc/platforms/8xx/mpc86xads_setup.c |4 ++
 arch/powerpc/platforms/8xx/mpc885ads_setup.c |3 ++
 7 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/Documentation/powerpc/booting-without-of.txt 
b/Documentation/powerpc/booting-without-of.txt
index d9dc996..26d323f 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -2132,6 +2132,48 @@ platforms are moved over to use the 
flattened-device-tree model.
};
};

+   x) I2C
+
+   The I2C controller is expressed as a bus under the CPM node.
+
+   Properties:
+   - compatible : fsl,cpm1-i2c, fsl,cpm2-i2c
+   - reg : On CPM2 devices, the second resource doesn't specify the I2C
+ Parameter RAM itself, but the I2C_BASE field of the CPM2 Parameter RAM
+ (typically 0x8afc 0x2).
+   - #address-cells : Should be one. The cell is the i2c device address with
+ the r/w bit set to zero.
+   - #size-cells : Should be zero.
+   - clock-frequency : Can be used to set the i2c clock frequency. If
+ unspecified, a default frequency of 60kHz is being used.
+   The following two properties are deprecated. They are only used by legacy
+   i2c drivers to find the bus to probe:
+   - linux,i2c-index : Can be used to hard code an i2c bus number. By default,
+ the bus number is dynamically assigned by the i2c core.
+   - linux,i2c-class : Can be used to override the i2c class. The class is used
+ by legacy i2c device drivers to find a bus in a specific context like
+ system management, video or sound. By default, I2C_CLASS_HWMON (1) is
+ being used. The definition of the classes can be found in
+ include/i2c/i2c.h
+
+   Example, based on mpc823:
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc823-i2c,
+fsl,cpm1-i2c;
+   reg = 0x860 0x20 0x3c80 0x30;
+   interrupts = 16;
+   interrupt-parent = CPM_PIC;
+   fsl,cpm-command = 0x10;
+   #address-cells = 1;
+   #size-cells = 0;
+
+   [EMAIL PROTECTED] {
+   compatible = dallas,ds1307;
+   reg = 0x68;
+   };
+   };
+
m) Chipselect/Local Bus

Properties:
diff --git a/arch/powerpc/boot/dts/mpc8272ads.dts 
b/arch/powerpc/boot/dts/mpc8272ads.dts
index 46e2da3..d27f8a7 100644
--- a/arch/powerpc/boot/dts/mpc8272ads.dts
+++ b/arch/powerpc/boot/dts/mpc8272ads.dts
@@ -217,6 +217,17 @@
linux,network-index = 1;
fsl,cpm-command = 0x16200300;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc8272-i2c,
+fsl,cpm2-i2c;
+   reg = 0x11860 0x20 0x8afc 0x2;
+   interrupts = 1 8;
+   interrupt-parent = PIC;
+   fsl,cpm-command = 0x2960;
+   #address-cells = 1;
+   #size-cells = 0;
+   };
};

PIC: [EMAIL PROTECTED] {
diff --git a/arch/powerpc/boot/dts/mpc866ads.dts 
b/arch/powerpc/boot/dts/mpc866ads.dts
index 765e43c..bd70065 100644
--- a/arch/powerpc/boot/dts/mpc866ads.dts
+++ b/arch/powerpc/boot/dts/mpc866ads.dts
@@ -171,6 +171,17 @@
fsl,cpm-command = ;
linux,network-index = 1;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc866-i2c,
+fsl,cpm1-i2c;
+   reg = 0x860 0x20 0x3c80 0x30;
+   interrupts = 16;
+   interrupt-parent = CPM_PIC;
+   fsl,cpm-command = 0x10;
+   #address-cells = 1;
+   #size-cells = 0;
+   };
};
};

diff --git a/arch/powerpc/boot/dts/mpc885ads.dts 
b/arch/powerpc/boot/dts/mpc885ads.dts
index 9895043..b123e9f 100644
--- a/arch/powerpc/boot/dts/mpc885ads.dts
+++ 

Re: [PATCH] powerpc: Add i2c pins to dts and board setup

2008-07-02 Thread Kumar Gala


On Jul 2, 2008, at 11:06 AM, Jochen Friedrich wrote:


Initialize I2C pins on boards with CPM1/CPM2 controllers
and document the i2c bus in booting-without-of.

The boards don't have any I2C chips connected to the I2C
bus, so unless some external chips are connected to the
boards, this code is just an example of setting everything
else up.

Signed-off-by: Jochen Friedrich [EMAIL PROTECTED]
---
Documentation/powerpc/booting-without-of.txt |   42 + 
+

arch/powerpc/boot/dts/mpc8272ads.dts |   11 +++
arch/powerpc/boot/dts/mpc866ads.dts  |   11 +++
arch/powerpc/boot/dts/mpc885ads.dts  |   11 +++
arch/powerpc/platforms/82xx/mpc8272_ads.c|4 ++
arch/powerpc/platforms/8xx/mpc86xads_setup.c |4 ++
arch/powerpc/platforms/8xx/mpc885ads_setup.c |3 ++
7 files changed, 86 insertions(+), 0 deletions(-)


applied.

- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[PATCH] [POWERPC] Add i2c pins to dts and board setup

2008-05-21 Thread Jochen Friedrich
Initialize I2C pins on boards with CPM1/CPM2 controllers.

Signed-off-by: Jochen Friedrich [EMAIL PROTECTED]
---
 Documentation/powerpc/booting-without-of.txt |   39 ++
 arch/powerpc/boot/dts/mpc8272ads.dts |   11 +++
 arch/powerpc/boot/dts/mpc866ads.dts  |   11 +++
 arch/powerpc/boot/dts/mpc885ads.dts  |   11 +++
 arch/powerpc/platforms/82xx/mpc8272_ads.c|4 ++
 arch/powerpc/platforms/8xx/mpc86xads_setup.c |4 ++
 arch/powerpc/platforms/8xx/mpc885ads_setup.c |3 ++
 7 files changed, 83 insertions(+), 0 deletions(-)

diff --git a/Documentation/powerpc/booting-without-of.txt 
b/Documentation/powerpc/booting-without-of.txt
index 1d2a772..3fc4eb2 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -2132,6 +2132,45 @@ platforms are moved over to use the 
flattened-device-tree model.
};
};

+   ix) I2C
+
+   The I2C controller is expressed as a bus under the CPM node.
+
+   Properties:
+   - compatible : fsl,cpm1-i2c, fsl,cpm2-i2c
+   - reg : On CPM2 devices, the second resource doesn't specify the I2C
+ Parameter RAM itself, but the I2C_BASE field of the CPM2 Parameter RAM
+ (typically 0x8afc 0x2).
+   - #address-cells : Should be one. The cell is the i2c device address with
+ the r/w bit set to zero.
+   - #size-cells : Should be zero.
+   - linux,i2c-index : Can be used to hard code an i2c bus nummer.
+   - linux,i2c-class : Can be used to override the i2c class. The class is used
+ by old style i2c device drivers to find a bus in a specific context like
+ system management, video or sound. By default, I2C_CLASS_HWMON (1) is
+ being used. The definition of the classes can be found in
+ include/i2c/i2c.h
+   - bus-frequency : Can be used to set the i2c bus frequency. If unspecified,
+ a default frequency of 60kHz is being used.
+
+   Example, based on mpc823:
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc823-i2c,
+fsl,cpm1-i2c;
+   reg = 0x860 0x20 0x3c80 0x30;
+   interrupts = 16;
+   interrupt-parent = CPM_PIC;
+   fsl,cpm-command = 0x10;
+   #address-cells = 1;
+   #size-cells = 0;
+
+   [EMAIL PROTECTED] {
+   compatible = dallas,ds1307;
+   reg = 0x68;
+   };
+   };
+
m) Chipselect/Local Bus

Properties:
diff --git a/arch/powerpc/boot/dts/mpc8272ads.dts 
b/arch/powerpc/boot/dts/mpc8272ads.dts
index 46e2da3..d27f8a7 100644
--- a/arch/powerpc/boot/dts/mpc8272ads.dts
+++ b/arch/powerpc/boot/dts/mpc8272ads.dts
@@ -217,6 +217,17 @@
linux,network-index = 1;
fsl,cpm-command = 0x16200300;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc8272-i2c,
+fsl,cpm2-i2c;
+   reg = 0x11860 0x20 0x8afc 0x2;
+   interrupts = 1 8;
+   interrupt-parent = PIC;
+   fsl,cpm-command = 0x2960;
+   #address-cells = 1;
+   #size-cells = 0;
+   };
};

PIC: [EMAIL PROTECTED] {
diff --git a/arch/powerpc/boot/dts/mpc866ads.dts 
b/arch/powerpc/boot/dts/mpc866ads.dts
index 765e43c..bd70065 100644
--- a/arch/powerpc/boot/dts/mpc866ads.dts
+++ b/arch/powerpc/boot/dts/mpc866ads.dts
@@ -171,6 +171,17 @@
fsl,cpm-command = ;
linux,network-index = 1;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc866-i2c,
+fsl,cpm1-i2c;
+   reg = 0x860 0x20 0x3c80 0x30;
+   interrupts = 16;
+   interrupt-parent = CPM_PIC;
+   fsl,cpm-command = 0x10;
+   #address-cells = 1;
+   #size-cells = 0;
+   };
};
};

diff --git a/arch/powerpc/boot/dts/mpc885ads.dts 
b/arch/powerpc/boot/dts/mpc885ads.dts
index 9895043..b123e9f 100644
--- a/arch/powerpc/boot/dts/mpc885ads.dts
+++ b/arch/powerpc/boot/dts/mpc885ads.dts
@@ -215,6 +215,17 @@
fsl,cpm-command = 0x80;
linux,network-index = 2;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc885-i2c,
+fsl,cpm1-i2c;
+   reg = 0x860 0x20 0x3c80 0x30;
+   

Re: [PATCH] [POWERPC] Add i2c pins to dts and board setup

2008-05-21 Thread Scott Wood
On Wed, May 21, 2008 at 12:31:40PM +0200, Jochen Friedrich wrote:
 +   - linux,i2c-index : Can be used to hard code an i2c bus nummer.

s/nummer/number/

Why do we need this?

 +   - linux,i2c-class : Can be used to override the i2c class. The class is 
 used
 + by old style i2c device drivers to find a bus in a specific context like
 + system management, video or sound. By default, I2C_CLASS_HWMON (1) is
 + being used. The definition of the classes can be found in
 + include/i2c/i2c.h

It'd be better to just convert any needed old-style drivers than add this
to the device tree.

 +   - bus-frequency : Can be used to set the i2c bus frequency. If 
 unspecified,
 + a default frequency of 60kHz is being used.

clock-frequency is the standard name for such things.

-Scott
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] [POWERPC] Add i2c pins to dts and board setup

2008-05-21 Thread Jochen Friedrich
Hi Scott,

 +   - linux,i2c-index : Can be used to hard code an i2c bus number.
 +   - linux,i2c-class : Can be used to override the i2c class.

 Why do we need this?

There are still a bunch of i2c drivers using the old API (mainly v4l and dvb 
stuff)
which are slowly being converted by their subsystem maintainers, though.

 It'd be better to just convert any needed old-style drivers than add this
 to the device tree.

Sure. That's why the parameters are only optional. Once all i2c drivers are
converted, these parameters won't be used anymore. Maybe they should be marked
as deprecated.

 +   - bus-frequency : Can be used to set the i2c bus frequency. If 
 unspecified,
 + a default frequency of 60kHz is being used.
 
 clock-frequency is the standard name for such things.

I was just confused by the fact that unlike a serial port, i2c is a bus itself.

Thanks,
Jochen
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] [POWERPC] Add i2c pins to dts and board setup

2008-05-13 Thread Scott Wood

Jochen Friedrich wrote:

Initialize I2C pins on boards with CPM1/CPM2 controllers.

Signed-off-by: Jochen Friedrich [EMAIL PROTECTED]
---
 arch/powerpc/boot/dts/mpc8272ads.dts |   10 ++
 arch/powerpc/boot/dts/mpc866ads.dts  |   10 ++
 arch/powerpc/boot/dts/mpc885ads.dts  |   10 ++
 arch/powerpc/platforms/82xx/mpc8272_ads.c|4 
 arch/powerpc/platforms/8xx/mpc86xads_setup.c |4 
 arch/powerpc/platforms/8xx/mpc885ads_setup.c |3 +++
 6 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/boot/dts/mpc8272ads.dts 
b/arch/powerpc/boot/dts/mpc8272ads.dts
index 46e2da3..57abcc1 100644
--- a/arch/powerpc/boot/dts/mpc8272ads.dts
+++ b/arch/powerpc/boot/dts/mpc8272ads.dts
@@ -217,6 +217,16 @@
linux,network-index = 1;
fsl,cpm-command = 0x16200300;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc8272-i2c,
+fsl,cpm2-i2c,
+fsl,cpm-i2c;
+   reg = 11860 20 8afc 2;
+   interrupts = 1 8;
+   interrupt-parent = PIC;
+   fsl,cpm-command = 2960;
+   };
};
 
 		PIC: [EMAIL PROTECTED] {

diff --git a/arch/powerpc/boot/dts/mpc866ads.dts 
b/arch/powerpc/boot/dts/mpc866ads.dts
index 765e43c..84c190e 100644
--- a/arch/powerpc/boot/dts/mpc866ads.dts
+++ b/arch/powerpc/boot/dts/mpc866ads.dts
@@ -171,6 +171,16 @@
fsl,cpm-command = ;
linux,network-index = 1;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc866-i2c,
+fsl,cpm1-i2c,
+fsl,cpm-i2c;
+   reg = 860 20 3c80 30;
+   interrupts = 10;
+   interrupt-parent = CPM_PIC;
+   fsl,cpm-command = 0010;
+   };
};
};
 
diff --git a/arch/powerpc/boot/dts/mpc885ads.dts b/arch/powerpc/boot/dts/mpc885ads.dts

index 9895043..67d0e8d 100644
--- a/arch/powerpc/boot/dts/mpc885ads.dts
+++ b/arch/powerpc/boot/dts/mpc885ads.dts
@@ -215,6 +215,16 @@
fsl,cpm-command = 0x80;
linux,network-index = 2;
};
+
+   [EMAIL PROTECTED] {
+   compatible = fsl,mpc885-i2c,
+fsl,cpm1-i2c,
+fsl,cpm-i2c;
+   reg = 860 20 3c80 30;
+   interrupts = 10;
+   interrupt-parent = CPM_PIC;
+   fsl,cpm-command = 0010;
+   };
};
};
 


These are v1 dts files -- you need an 0x  prefix on the hex numbers.

-Scott
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev