[PATCH linux dev-4.7 v2] drivers/fsi: Add delay before sampling input on SDA

Andrew Geissler geissonator at gmail.com
Mon Mar 20 12:40:43 AEDT 2017


On Fri, Mar 17, 2017 at 4:18 PM, Christopher Bostic
<cbostic at linux.vnet.ibm.com> wrote:
> During high cpu loads the SDA in line can shift relative to the
> clock signal which can corrupt the received input data.  Slow
> down the time to sample input to account for this.
>
> Signed-off-by: Christopher Bostic <cbostic at linux.vnet.ibm.com>
> ---
> v2 - Increase delay for SDA in sampling only.
>    - Decrease the original delay for SDA sampling from 1us to 200ns
> ---
>  drivers/fsi/fsi-master-gpio.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c
> index a8976d5..8e832e0 100644
> --- a/drivers/fsi/fsi-master-gpio.c
> +++ b/drivers/fsi/fsi-master-gpio.c
> @@ -14,6 +14,7 @@
>  #include "fsi-master.h"
>
>  #define        FSI_GPIO_STD_DLY        1       /* Standard pin delay in nS */
> +#define        FSI_GPIO_SDA_IN_DLY     200     /* Wait to sample SDA line, in nS */
>  #define        FSI_ECHO_DELAY_CLOCKS   16      /* Number clocks for echo delay */
>  #define        FSI_PRE_BREAK_CLOCKS    50      /* Number clocks to prep for break */
>  #define        FSI_BREAK_CLOCKS        256     /* Number of clocks to issue break */
> @@ -97,7 +98,7 @@ static int sda_in(struct fsi_master_gpio *master)
>  {
>         int in;
>
> -       ndelay(FSI_GPIO_STD_DLY);
> +       ndelay(FSI_GPIO_SDA_IN_DLY);
>         in = gpiod_get_value(master->gpio_data);
>         return in ? 1 : 0;
>  }
> --
> 1.8.2.2
>

Acked-by: Andrew Geissler <geissonator at gmail.com>


More information about the openbmc mailing list