diff options
| -rw-r--r-- | Documentation/powerpc/booting-without-of.txt | 42 | ||||
| -rw-r--r-- | arch/powerpc/boot/dts/mpc8272ads.dts | 11 | ||||
| -rw-r--r-- | arch/powerpc/boot/dts/mpc866ads.dts | 11 | ||||
| -rw-r--r-- | arch/powerpc/boot/dts/mpc885ads.dts | 11 | ||||
| -rw-r--r-- | arch/powerpc/platforms/82xx/mpc8272_ads.c | 4 | ||||
| -rw-r--r-- | arch/powerpc/platforms/8xx/mpc86xads_setup.c | 4 | ||||
| -rw-r--r-- | 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 b68684d39f96..f6394b509430 100644 --- a/Documentation/powerpc/booting-without-of.txt +++ b/Documentation/powerpc/booting-without-of.txt | |||
| @@ -2160,6 +2160,48 @@ platforms are moved over to use the flattened-device-tree model. | |||
| 2160 | }; | 2160 | }; |
| 2161 | }; | 2161 | }; |
| 2162 | 2162 | ||
| 2163 | x) I2C | ||
| 2164 | |||
| 2165 | The I2C controller is expressed as a bus under the CPM node. | ||
| 2166 | |||
| 2167 | Properties: | ||
| 2168 | - compatible : "fsl,cpm1-i2c", "fsl,cpm2-i2c" | ||
| 2169 | - reg : On CPM2 devices, the second resource doesn't specify the I2C | ||
| 2170 | Parameter RAM itself, but the I2C_BASE field of the CPM2 Parameter RAM | ||
| 2171 | (typically 0x8afc 0x2). | ||
| 2172 | - #address-cells : Should be one. The cell is the i2c device address with | ||
| 2173 | the r/w bit set to zero. | ||
| 2174 | - #size-cells : Should be zero. | ||
| 2175 | - clock-frequency : Can be used to set the i2c clock frequency. If | ||
| 2176 | unspecified, a default frequency of 60kHz is being used. | ||
| 2177 | The following two properties are deprecated. They are only used by legacy | ||
| 2178 | i2c drivers to find the bus to probe: | ||
| 2179 | - linux,i2c-index : Can be used to hard code an i2c bus number. By default, | ||
| 2180 | the bus number is dynamically assigned by the i2c core. | ||
| 2181 | - linux,i2c-class : Can be used to override the i2c class. The class is used | ||
| 2182 | by legacy i2c device drivers to find a bus in a specific context like | ||
| 2183 | system management, video or sound. By default, I2C_CLASS_HWMON (1) is | ||
| 2184 | being used. The definition of the classes can be found in | ||
| 2185 | include/i2c/i2c.h | ||
| 2186 | |||
| 2187 | Example, based on mpc823: | ||
| 2188 | |||
| 2189 | i2c@860 { | ||
| 2190 | compatible = "fsl,mpc823-i2c", | ||
| 2191 | "fsl,cpm1-i2c"; | ||
| 2192 | reg = <0x860 0x20 0x3c80 0x30>; | ||
| 2193 | interrupts = <16>; | ||
| 2194 | interrupt-parent = <&CPM_PIC>; | ||
| 2195 | fsl,cpm-command = <0x10>; | ||
| 2196 | #address-cells = <1>; | ||
| 2197 | #size-cells = <0>; | ||
| 2198 | |||
| 2199 | rtc@68 { | ||
| 2200 | compatible = "dallas,ds1307"; | ||
| 2201 | reg = <0x68>; | ||
| 2202 | }; | ||
| 2203 | }; | ||
| 2204 | |||
| 2163 | m) Chipselect/Local Bus | 2205 | m) Chipselect/Local Bus |
| 2164 | 2206 | ||
| 2165 | Properties: | 2207 | Properties: |
diff --git a/arch/powerpc/boot/dts/mpc8272ads.dts b/arch/powerpc/boot/dts/mpc8272ads.dts index 46e2da30c3dd..d27f8a73c24a 100644 --- a/arch/powerpc/boot/dts/mpc8272ads.dts +++ b/arch/powerpc/boot/dts/mpc8272ads.dts | |||
| @@ -217,6 +217,17 @@ | |||
| 217 | linux,network-index = <1>; | 217 | linux,network-index = <1>; |
| 218 | fsl,cpm-command = <0x16200300>; | 218 | fsl,cpm-command = <0x16200300>; |
| 219 | }; | 219 | }; |
| 220 | |||
| 221 | i2c@11860 { | ||
| 222 | compatible = "fsl,mpc8272-i2c", | ||
| 223 | "fsl,cpm2-i2c"; | ||
| 224 | reg = <0x11860 0x20 0x8afc 0x2>; | ||
| 225 | interrupts = <1 8>; | ||
| 226 | interrupt-parent = <&PIC>; | ||
| 227 | fsl,cpm-command = <0x29600000>; | ||
| 228 | #address-cells = <1>; | ||
| 229 | #size-cells = <0>; | ||
| 230 | }; | ||
| 220 | }; | 231 | }; |
| 221 | 232 | ||
| 222 | PIC: interrupt-controller@10c00 { | 233 | PIC: interrupt-controller@10c00 { |
diff --git a/arch/powerpc/boot/dts/mpc866ads.dts b/arch/powerpc/boot/dts/mpc866ads.dts index 765e43c997da..bd700651f360 100644 --- a/arch/powerpc/boot/dts/mpc866ads.dts +++ b/arch/powerpc/boot/dts/mpc866ads.dts | |||
| @@ -171,6 +171,17 @@ | |||
| 171 | fsl,cpm-command = <0000>; | 171 | fsl,cpm-command = <0000>; |
| 172 | linux,network-index = <1>; | 172 | linux,network-index = <1>; |
| 173 | }; | 173 | }; |
| 174 | |||
| 175 | i2c@860 { | ||
| 176 | compatible = "fsl,mpc866-i2c", | ||
| 177 | "fsl,cpm1-i2c"; | ||
| 178 | reg = <0x860 0x20 0x3c80 0x30>; | ||
| 179 | interrupts = <16>; | ||
| 180 | interrupt-parent = <&CPM_PIC>; | ||
| 181 | fsl,cpm-command = <0x10>; | ||
| 182 | #address-cells = <1>; | ||
| 183 | #size-cells = <0>; | ||
| 184 | }; | ||
| 174 | }; | 185 | }; |
| 175 | }; | 186 | }; |
| 176 | 187 | ||
diff --git a/arch/powerpc/boot/dts/mpc885ads.dts b/arch/powerpc/boot/dts/mpc885ads.dts index 9895043722b9..b123e9f7a5a8 100644 --- a/arch/powerpc/boot/dts/mpc885ads.dts +++ b/arch/powerpc/boot/dts/mpc885ads.dts | |||
| @@ -215,6 +215,17 @@ | |||
| 215 | fsl,cpm-command = <0x80>; | 215 | fsl,cpm-command = <0x80>; |
| 216 | linux,network-index = <2>; | 216 | linux,network-index = <2>; |
| 217 | }; | 217 | }; |
| 218 | |||
| 219 | i2c@860 { | ||
| 220 | compatible = "fsl,mpc885-i2c", | ||
| 221 | "fsl,cpm1-i2c"; | ||
| 222 | reg = <0x860 0x20 0x3c80 0x30>; | ||
| 223 | interrupts = <16>; | ||
| 224 | interrupt-parent = <&CPM_PIC>; | ||
| 225 | fsl,cpm-command = <0x10>; | ||
| 226 | #address-cells = <1>; | ||
| 227 | #size-cells = <0>; | ||
| 228 | }; | ||
| 218 | }; | 229 | }; |
| 219 | }; | 230 | }; |
| 220 | 231 | ||
diff --git a/arch/powerpc/platforms/82xx/mpc8272_ads.c b/arch/powerpc/platforms/82xx/mpc8272_ads.c index 7d3018751988..8054c685d323 100644 --- a/arch/powerpc/platforms/82xx/mpc8272_ads.c +++ b/arch/powerpc/platforms/82xx/mpc8272_ads.c | |||
| @@ -96,6 +96,10 @@ static struct cpm_pin mpc8272_ads_pins[] = { | |||
| 96 | {1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, | 96 | {1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, |
| 97 | {2, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 97 | {2, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
| 98 | {2, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, | 98 | {2, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, |
| 99 | |||
| 100 | /* I2C */ | ||
| 101 | {3, 14, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_OPENDRAIN}, | ||
| 102 | {3, 15, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_OPENDRAIN}, | ||
| 99 | }; | 103 | }; |
| 100 | 104 | ||
| 101 | static void __init init_ioports(void) | 105 | static void __init init_ioports(void) |
diff --git a/arch/powerpc/platforms/8xx/mpc86xads_setup.c b/arch/powerpc/platforms/8xx/mpc86xads_setup.c index c028a5b71bbb..caaec29796b7 100644 --- a/arch/powerpc/platforms/8xx/mpc86xads_setup.c +++ b/arch/powerpc/platforms/8xx/mpc86xads_setup.c | |||
| @@ -65,6 +65,10 @@ static struct cpm_pin mpc866ads_pins[] = { | |||
| 65 | {CPM_PORTD, 13, CPM_PIN_OUTPUT}, | 65 | {CPM_PORTD, 13, CPM_PIN_OUTPUT}, |
| 66 | {CPM_PORTD, 14, CPM_PIN_OUTPUT}, | 66 | {CPM_PORTD, 14, CPM_PIN_OUTPUT}, |
| 67 | {CPM_PORTD, 15, CPM_PIN_OUTPUT}, | 67 | {CPM_PORTD, 15, CPM_PIN_OUTPUT}, |
| 68 | |||
| 69 | /* I2C */ | ||
| 70 | {CPM_PORTB, 26, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN}, | ||
| 71 | {CPM_PORTB, 27, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN}, | ||
| 68 | }; | 72 | }; |
| 69 | 73 | ||
| 70 | static void __init init_ioports(void) | 74 | static void __init init_ioports(void) |
diff --git a/arch/powerpc/platforms/8xx/mpc885ads_setup.c b/arch/powerpc/platforms/8xx/mpc885ads_setup.c index 6e7ded0233f6..45ed6cdc1310 100644 --- a/arch/powerpc/platforms/8xx/mpc885ads_setup.c +++ b/arch/powerpc/platforms/8xx/mpc885ads_setup.c | |||
| @@ -158,6 +158,9 @@ static struct cpm_pin mpc885ads_pins[] = { | |||
| 158 | {CPM_PORTE, 28, CPM_PIN_OUTPUT}, | 158 | {CPM_PORTE, 28, CPM_PIN_OUTPUT}, |
| 159 | {CPM_PORTE, 29, CPM_PIN_OUTPUT}, | 159 | {CPM_PORTE, 29, CPM_PIN_OUTPUT}, |
| 160 | #endif | 160 | #endif |
| 161 | /* I2C */ | ||
| 162 | {CPM_PORTB, 26, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN}, | ||
| 163 | {CPM_PORTB, 27, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN}, | ||
| 161 | }; | 164 | }; |
| 162 | 165 | ||
| 163 | static void __init init_ioports(void) | 166 | static void __init init_ioports(void) |
