Re: [U-Boot] [PATCH v2 3/9] kmp204x: I2C deblocking for I2C-bus1 added
On 01/30/2014 08:32 AM, Valentin Longchamp wrote: On 01/30/2014 03:30 AM, York Sun wrote: On 01/27/2014 02:49 AM, Valentin Longchamp wrote: From: Rainer Boschung rainer.bosch...@keymile.com -uses common deblocking algorithm from ../common/common.c I don't see any algorithm in the common.c file. The file is board/keymile/common/common.c, where the i2c_make_abort() and the i2c_write_start_seq() functions are defined. I guess that's what Rainer means with algorithm. That is what I meant. I will add a more precise comment. I agree that the relative path for the file is not very fortunate and that's why you have not found the functions. -supports deblocking of of I2C-bus1 by means of QRIO GPIO - SCL1 = GPIO_A16 - SDA1 = GPIO_A17 QRIO GPIOs act in an open-drain-like manner, for 0 GPIO drives low and for 1 the GPIO is an input and must be pulled up externaly! Signed-off-by: Rainer Boschung rainer.bosch...@keymile.com Signed-off-by: Valentin Longchamp valentin.longch...@keymile.com --- Changes in v2: None board/keymile/kmp204x/kmp204x.c | 53 ++--- include/configs/km/kmp204x-common.h | 10 +++ 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c index bbb2453..8d6eecb 100644 --- a/board/keymile/kmp204x/kmp204x.c +++ b/board/keymile/kmp204x/kmp204x.c @@ -33,12 +33,51 @@ int checkboard(void) return 0; } -/* TODO: implement the I2C deblocking function */ -int i2c_make_abort(void) +/* I2C deblocking uses the algorithm defined in ../common/common.c, +which + * makes use of 2 QRIO GPIOs to act on the SCL and SDA signals of an I2C bus. + * According to the standard I2C IOs must not drive HI-Levels, so +the + * QRIO GPIOs are used in open-drain fashion: + * - 0 GPIO configured as output that drives low + * - 1 GPIO configured as input pull-up ties high */ + I failed to understand these comments as well. Are these comments copy-n-paste? I will let Rainer answer this as he has written this comment. But I don't think it's copy-n-paste. It's maybe not very clear for people who don't know the hardware. No the comment isn't copy-n-paste. The GPIO just drives low states, for a high states the pin is not driven (= GPIO configured as input), it is pull-up by a resistor. I will try to clarify this comment. Valentin Rainer ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2 3/9] kmp204x: I2C deblocking for I2C-bus1 added
On 01/30/2014 01:17 AM, Boschung, Rainer wrote: On 01/30/2014 08:32 AM, Valentin Longchamp wrote: On 01/30/2014 03:30 AM, York Sun wrote: On 01/27/2014 02:49 AM, Valentin Longchamp wrote: From: Rainer Boschung rainer.bosch...@keymile.com -uses common deblocking algorithm from ../common/common.c I don't see any algorithm in the common.c file. The file is board/keymile/common/common.c, where the i2c_make_abort() and the i2c_write_start_seq() functions are defined. I guess that's what Rainer means with algorithm. That is what I meant. I will add a more precise comment. Please send v3 for this patch only, or an incremental patch. I will swap/squash the patch. York ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2 3/9] kmp204x: I2C deblocking for I2C-bus1 added
On 01/27/2014 02:49 AM, Valentin Longchamp wrote: From: Rainer Boschung rainer.bosch...@keymile.com -uses common deblocking algorithm from ../common/common.c I don't see any algorithm in the common.c file. -supports deblocking of of I2C-bus1 by means of QRIO GPIO - SCL1 = GPIO_A16 - SDA1 = GPIO_A17 QRIO GPIOs act in an open-drain-like manner, for 0 GPIO drives low and for 1 the GPIO is an input and must be pulled up externaly! Signed-off-by: Rainer Boschung rainer.bosch...@keymile.com Signed-off-by: Valentin Longchamp valentin.longch...@keymile.com --- Changes in v2: None board/keymile/kmp204x/kmp204x.c | 53 ++--- include/configs/km/kmp204x-common.h | 10 +++ 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c index bbb2453..8d6eecb 100644 --- a/board/keymile/kmp204x/kmp204x.c +++ b/board/keymile/kmp204x/kmp204x.c @@ -33,12 +33,51 @@ int checkboard(void) return 0; } -/* TODO: implement the I2C deblocking function */ -int i2c_make_abort(void) +/* I2C deblocking uses the algorithm defined in ../common/common.c, which + * makes use of 2 QRIO GPIOs to act on the SCL and SDA signals of an I2C bus. + * According to the standard I2C IOs must not drive HI-Levels, so the + * QRIO GPIOs are used in open-drain fashion: + * - 0 GPIO configured as output that drives low + * - 1 GPIO configured as input pull-up ties high + */ + I failed to understand these comments as well. Are these comments copy-n-paste? York ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH v2 3/9] kmp204x: I2C deblocking for I2C-bus1 added
On 01/30/2014 03:30 AM, York Sun wrote: On 01/27/2014 02:49 AM, Valentin Longchamp wrote: From: Rainer Boschung rainer.bosch...@keymile.com -uses common deblocking algorithm from ../common/common.c I don't see any algorithm in the common.c file. The file is board/keymile/common/common.c, where the i2c_make_abort() and the i2c_write_start_seq() functions are defined. I guess that's what Rainer means with algorithm. I agree that the relative path for the file is not very fortunate and that's why you have not found the functions. -supports deblocking of of I2C-bus1 by means of QRIO GPIO - SCL1 = GPIO_A16 - SDA1 = GPIO_A17 QRIO GPIOs act in an open-drain-like manner, for 0 GPIO drives low and for 1 the GPIO is an input and must be pulled up externaly! Signed-off-by: Rainer Boschung rainer.bosch...@keymile.com Signed-off-by: Valentin Longchamp valentin.longch...@keymile.com --- Changes in v2: None board/keymile/kmp204x/kmp204x.c | 53 ++--- include/configs/km/kmp204x-common.h | 10 +++ 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c index bbb2453..8d6eecb 100644 --- a/board/keymile/kmp204x/kmp204x.c +++ b/board/keymile/kmp204x/kmp204x.c @@ -33,12 +33,51 @@ int checkboard(void) return 0; } -/* TODO: implement the I2C deblocking function */ -int i2c_make_abort(void) +/* I2C deblocking uses the algorithm defined in ../common/common.c, which + * makes use of 2 QRIO GPIOs to act on the SCL and SDA signals of an I2C bus. + * According to the standard I2C IOs must not drive HI-Levels, so the + * QRIO GPIOs are used in open-drain fashion: + * - 0 GPIO configured as output that drives low + * - 1 GPIO configured as input pull-up ties high + */ + I failed to understand these comments as well. Are these comments copy-n-paste? I will let Rainer answer this as he has written this comment. But I don't think it's copy-n-paste. It's maybe not very clear for people who don't know the hardware. Valentin ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot