Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 101791
b: refs/heads/master
c: a5d28c8
h: refs/heads/master
i:
  101789: a7da6a8
  101787: bd3cbb1
  101783: 67308c0
  101775: efbbbe7
  101759: 6e09871
v: v3
  • Loading branch information
Jochen Friedrich authored and Kumar Gala committed Jul 14, 2008
1 parent 9609a7c commit 66aa8a7
Show file tree
Hide file tree
Showing 8 changed files with 87 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: dc320815305c5f019672d144f4c4c2710ef7732e
refs/heads/master: a5d28c8e64ff0bc77d38d9c19c6d8163e4c0ffaa
42 changes: 42 additions & 0 deletions trunk/Documentation/powerpc/booting-without-of.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2160,6 +2160,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:

i2c@860 {
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>;

rtc@68 {
compatible = "dallas,ds1307";
reg = <0x68>;
};
};

m) Chipselect/Local Bus

Properties:
Expand Down
11 changes: 11 additions & 0 deletions trunk/arch/powerpc/boot/dts/mpc8272ads.dts
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,17 @@
linux,network-index = <1>;
fsl,cpm-command = <0x16200300>;
};

i2c@11860 {
compatible = "fsl,mpc8272-i2c",
"fsl,cpm2-i2c";
reg = <0x11860 0x20 0x8afc 0x2>;
interrupts = <1 8>;
interrupt-parent = <&PIC>;
fsl,cpm-command = <0x29600000>;
#address-cells = <1>;
#size-cells = <0>;
};
};

PIC: interrupt-controller@10c00 {
Expand Down
11 changes: 11 additions & 0 deletions trunk/arch/powerpc/boot/dts/mpc866ads.dts
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,17 @@
fsl,cpm-command = <0000>;
linux,network-index = <1>;
};

i2c@860 {
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>;
};
};
};

Expand Down
11 changes: 11 additions & 0 deletions trunk/arch/powerpc/boot/dts/mpc885ads.dts
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,17 @@
fsl,cpm-command = <0x80>;
linux,network-index = <2>;
};

i2c@860 {
compatible = "fsl,mpc885-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>;
};
};
};

Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/powerpc/platforms/82xx/mpc8272_ads.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ static struct cpm_pin mpc8272_ads_pins[] = {
{1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
{2, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
{2, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY},

/* I2C */
{3, 14, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_OPENDRAIN},
{3, 15, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_OPENDRAIN},
};

static void __init init_ioports(void)
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/powerpc/platforms/8xx/mpc86xads_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ static struct cpm_pin mpc866ads_pins[] = {
{CPM_PORTD, 13, CPM_PIN_OUTPUT},
{CPM_PORTD, 14, CPM_PIN_OUTPUT},
{CPM_PORTD, 15, CPM_PIN_OUTPUT},

/* I2C */
{CPM_PORTB, 26, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
{CPM_PORTB, 27, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
};

static void __init init_ioports(void)
Expand Down
3 changes: 3 additions & 0 deletions trunk/arch/powerpc/platforms/8xx/mpc885ads_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,9 @@ static struct cpm_pin mpc885ads_pins[] = {
{CPM_PORTE, 28, CPM_PIN_OUTPUT},
{CPM_PORTE, 29, CPM_PIN_OUTPUT},
#endif
/* I2C */
{CPM_PORTB, 26, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
{CPM_PORTB, 27, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
};

static void __init init_ioports(void)
Expand Down

0 comments on commit 66aa8a7

Please sign in to comment.