powerpc/83xx: move km 83xx specific i2c code to km83xx_i2c
PATCH 1/1 powerpc/83xx: move km 83xx specific i2c code to km83xx_i2c
The common code should be valid for more than one architecture. Therefore this code was reorganized and moved to the new file km83xx_i2c.c
--- board/keymile/common/common.c | 71 +++--------------------------- board/keymile/common/common.h | 3 + board/keymile/km83xx/Makefile | 2 +- board/keymile/km83xx/km83xx_i2c.c | 88 +++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+), 66 deletions(-) create mode 100644 board/keymile/km83xx/km83xx_i2c.c
board/keymile/common/common.c +6 -65
@@ -43,7 +43,10 @@#include <i2c.h> #endif +#if !defined(CONFIG_MPC83xx)static void i2c_write_start_seq (void ); +#endif +DECLARE_GLOBAL_DATA_PTR ;/*
@@ -81,9 +84,7 @@ int set_km_env(void)return 0 ; } -#define DELAY_ABORT_SEQ 62/* @200kHz 9 clocks = 44us, 62us is ok */ -#define DELAY_HALF_PERIOD (500 / (CONFIG_SYS_I2C_SPEED / 1000)) - +#if defined(CONFIG_SYS_I2C_INIT_BOARD) #if !defined(CONFIG_MPC83xx) static void i2c_write_start_seq(void) {
@@ -163,68 +164,6 @@ int i2c_make_abort(void)#endif return ret; } -#endif /* !MPC83xx */ - -#if defined(CONFIG_MPC83xx) -static void i2c_write_start_seq (void ) -{ -struct fsl_i2c *dev; - dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR +CONFIG_SYS_I2C_OFFSET ); -udelay (DELAY_ABORT_SEQ ); -out_8 (&dev->cr, (I2C_CR_MEN |I2C_CR_MSTA )); -udelay (DELAY_ABORT_SEQ ); -out_8 (&dev->cr, (I2C_CR_MEN )); -} - -int i2c_make_abort (void ) -{ -struct fsl_i2c *dev; - dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR +CONFIG_SYS_I2C_OFFSET ); -uchar dummy; -uchar last; -int nbr_read =0 ; -int i =0 ; -int ret =0 ; - -/* wait after each operation to finsh with a delay */ -out_8 (&dev->cr, (I2C_CR_MSTA )); -udelay (DELAY_ABORT_SEQ ); -out_8 (&dev->cr, (I2C_CR_MEN |I2C_CR_MSTA )); -udelay (DELAY_ABORT_SEQ ); - dummy =in_8 (&dev->dr); -udelay (DELAY_ABORT_SEQ ); - last =in_8 (&dev->dr); - nbr_read++; - -/* -* do read until the last bit is 1, but stop if the full eeprom is -* read. -*/ -while (((last &0x01 ) !=0x01 ) && - (nbr_read <CONFIG_SYS_IVM_EEPROM_MAX_LEN )) { -udelay (DELAY_ABORT_SEQ ); - last =in_8 (&dev->dr); - nbr_read++; - } -if ((last &0x01 ) !=0x01 ) - ret =-2 ; -if ((last !=0xff ) || (nbr_read >1 )) -printf ("[INFO] i2c abort after %d bytes (0x%02x)\n" , - nbr_read, last); -udelay (DELAY_ABORT_SEQ ); -out_8 (&dev->cr, (I2C_CR_MEN )); -udelay (DELAY_ABORT_SEQ ); -/* clear status reg */ -out_8 (&dev->sr,0 ); - -for (i =0 ; i <5 ; i++) -i2c_write_start_seq (); -if (ret !=0 ) -printf ("[ERROR] i2c abort failed after %d bytes (0x%02x)\n" , - nbr_read, last); - -return ret; -}#endif /**
@@ -236,6 +175,8 @@ void i2c_init_board(void)/* Now run the AbortSequence() */ i2c_make_abort(); } +#endif +#if !defined(MACH_TYPE_KM_KIRKWOOD )int ethernet_present (void )
board/keymile/common/common.h +3 -0
@@ -136,6 +136,9 @@ int fdt_get_node_and_value(void *blob,char *propname, void **var); +#define DELAY_ABORT_SEQ 62/* @200kHz 9 clocks = 44us, 62us is ok */ +#define DELAY_HALF_PERIOD (500 / (CONFIG_SYS_I2C_SPEED / 1000)) +int i2c_soft_read_pin (void );int i2c_make_abort (void );#endif /* __KEYMILE_COMMON_H */
board/keymile/km83xx/Makefile +1 -1
@@ -28,7 +28,7 @@ endif LIB = $(obj)lib$(BOARD).o -COBJS += $(BOARD).o ../common/common.o ../common/ivm.o +COBJS += $(BOARD).o ../common/common.o ../common/ivm.o $(BOARD)_i2c.o SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(COBJS))
board/keymile/km83xx/km83xx_i2c.c new file +88 -0
88 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 1/1 powerpc/83xx: move km 83xx specific i2c code to km83xx_i2c
Quoted 6 lines · Holger Brunck
The common code should be valid for more than one architecture. Therefore this code was reorganized and moved to the new file
km83xx_i2c.cSigned-off-by Holger Brunck <[email protected]>cc Kim Phillips <[email protected]>
Quoted 8 lines
--- board/keymile/common/common.c | 71 +++--------------------------- board/keymile/common/common.h | 3 + board/keymile/km83xx/Makefile | 2 +- board/keymile/km83xx/km83xx_i2c.c | 88 +++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+), 66 deletions(-) create mode 100644 board/keymile/km83xx/km83xx_i2c.c
...ping...
Or should it not go through your branch Kim? If so then please let me know.
Best regards
Holger
Kim Phillips
AppliedPATCH 1/1 powerpc/83xx: move km 83xx specific i2c code to km83xx_i2c
In reply to Holger BrunckQuoted 7 lines · On Wed, 14 Sep 2011 10:54:12 +0200 Holger Brunck <[email protected]>…
The common code should be valid for more than one architecture. Therefore this code was reorganized and moved to the new file
km83xx_i2c.cSigned-off-by Holger Brunck <[email protected]>cc Kim Phillips <[email protected]>---
applied, thanks.
Kim