Updated: CPM2 I2C (SDMA and BitBang)
Subsystems (2)
PATCH 1/1 Updated: CPM2 I2C (SDMA and BitBang)
Updated (thanks to a quick eye by ebs) patch to add CPM2 SDMA and BitBang I2C support to the MPC85xx
This patch gets rid of some really stupid cut & paste errors during initialization.
Signature · 2 lines
Jason McMullan <[email protected]> TimeSys Corporation
#### Auto-generated patch ####
Date: Tue, 22 Mar 2005 15:59:01 -0500 Maintainer: Jason McMullan <[email protected]> Summary: CPM/CPM2 I2C driver for Freescale SoC devices Description: CPM/CPM2 I2C driver for Freescale SoC devices
Depends:
###############################
Index of changes:
drivers/i2c/algos/Kconfig | 4 drivers/i2c/algos/Makefile | 1 drivers/i2c/busses/Kconfig | 25 + drivers/i2c/busses/Makefile | 1 include/linux/i2c-id.h | 4 linux/drivers/i2c/algos/i2c-algo-cpm.c | 477 +++++++++++++++++++++++++++++++++ linux/drivers/i2c/busses/i2c-cpm.c | 219 +++++++++++++++ linux/include/linux/i2c-algo-cpm.h | 64 ++++ 8 files changed, 791 insertions(+), 4 deletions(-)
drivers/i2c/algos/Kconfig +4 -0
@@ -16,6 +16,10 @@ This support is also available as a module. If so, the module will be called i2c-algo-bit. +config I2C_ALGO_CPM + tristate "MPC (8xx and 8xxx) CPM I2C interface" + depends on (8xx || 85xx ) && I2C + config I2C_ALGOPCF tristate "I2C PCF 8584 interfaces" depends on I2C
drivers/i2c/algos/Makefile +1 -0
@@ -3,6 +3,7 @@ # obj-$(CONFIG_I2C_ALGOBIT) += i2c-algo-bit.o +obj-$(CONFIG_I2C_ALGO_CPM) += i2c-algo-cpm.o obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o obj-$(CONFIG_I2C_ALGOPCA) += i2c-algo-pca.o obj-$(CONFIG_I2C_ALGOITE) += i2c-algo-ite.o
drivers/i2c/algos/i2c-algo-cpm.c new file +477 -0
477 lines not on this page · raw message
drivers/i2c/busses/Kconfig +21 -4
@@ -229,6 +229,21 @@ This driver can also be built as a module. If so, the module will be called i2c-mpc. +config I2C_CPM + tristate "Motorola MPC8xx and MPC85xx CPM I2C" + depends on (8xx || 85xx) && I2C + help + This supports the use of the I2C interface in the Motorola + MPC8xx and MPC85xx series embedded processors on the CPM + I2C macrocell. + +config I2C_CPM_BIT + bool "Bit-Bang only?" + depends on I2C_CPM + help + Only use the CPM parallel port bit-banging interface, not the + SDMA CPM device. + config I2C_NFORCE2 tristate "Nvidia Nforce2" depends on I2C && PCI && EXPERIMENTAL
@@ -317,10 +332,12 @@ This support is also available as a module. If so, the module will be called i2c-prosavage. -config I2C_RPXLITE - tristate "Embedded Planet RPX Lite/Classic support" - depends on (RPXLITE || RPXCLASSIC) && I2C - select I2C_ALGO8XX +# This appears to be broken... +# +#config I2C_RPXLITE +# tristate "Embedded Planet RPX Lite/Classic support" +# depends on (RPXLITE || RPXCLASSIC) && I2C +# select I2C_ALGO8XX config I2C_S3C2410 tristate "S3C2410 I2C Driver"
drivers/i2c/busses/Makefile +1 -0
@@ -8,6 +8,7 @@ obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o +obj-$(CONFIG_I2C_CPM) += i2c-cpm.o obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o obj-$(CONFIG_I2C_ELEKTOR) += i2c-elektor.o obj-$(CONFIG_I2C_HYDRA) += i2c-hydra.o
drivers/i2c/busses/i2c-cpm.c new file +219 -0
219 lines not on this page · raw message
include/linux/i2c-algo-cpm.h new file +64 -0
64 lines not on this page · raw message
include/linux/i2c-id.h +4 -0
@@ -201,6 +201,7 @@#define I2C_ALGO_SIBYTE 0x150000/* Broadcom SiByte SOCs */ #define I2C_ALGO_SGI 0x160000/* SGI algorithm */ #define I2C_ALGO_AU1550 0x170000/* Au1550 PSC algorithm */ +#define I2C_ALGO_CPM2 0x180000/* MPC8xxx and MPC8xx CPM I2C */ #define I2C_ALGO_EXP 0x800000/* experimental */
@@ -253,6 +254,9 @@/* --- ACPI Embedded controller algorithms */ #define I2C_HW_ACPI_EC 0x00 +/* --- Motorola MPC CPM2 I2C adapters -- */ +#define I2C_HW_CPM2 0x00 +/* --- MPC824x PowerPC adapters */ #define I2C_HW_MPC824X 0x00/* Motorola 8240 / 8245 */
Quoted 11 lines · Jason McMullan
#### Auto-generated patch ####
Date: Tue, 22 Mar 2005 15:59:01 -0500 Maintainer: Jason McMullan <[email protected]> Summary: CPM/CPM2 I2C driver for Freescale SoC devices Description: CPM/CPM2 I2C driver for Freescale SoC devicesDepends:
###############################
Index of changes:
Quoted 8 lines
drivers/i2c/algos/Kconfig | 4 drivers/i2c/algos/Makefile | 1 drivers/i2c/busses/Kconfig | 25 + drivers/i2c/busses/Makefile | 1 include/linux/i2c-id.h | 4 linux/drivers/i2c/algos/i2c-algo-cpm.c | 477 +++++++++++++++++++++++++++++++++ linux/drivers/i2c/busses/i2c-cpm.c | 219 +++++++++++++++ linux/include/linux/i2c-algo-cpm.h | 64 ++++
[snip]
Jason, another thought. Do we really need all this mess with separate algo and bus drivers?
Could you make just a bus driver like we have for 4xx, Keywest and 85xx/52xx/MPC107? It's much cleaner and less confusing IMHO.
--
Eugene
Quoted 5 lines · Eugene Surovegin
Jason, another thought. Do we really need all this mess with separate algo and bus drivers?
Could you make just a bus driver like we have for 4xx, Keywest and 85xx/52xx/MPC107? It's much cleaner and less confusing IMHO.
I made it separate algo/bus in case you had a PCI-card 85xx design where:
a) You booted the card with firmware
b) The firmware made the card a PCI device with the CPM exposed before you booted the kernel.
c) The PCI host had to program an EEPROM on the CPM I2C bus for configuration to tell it where to get the kernel.
Admittedly, a little far out, but then you could make a CPM-exposed-by-PCI I2C bus driver.
Signature · 2 lines
Jason McMullan <[email protected]> TimeSys Corporation