HI Patrick

On 3/31/20 6:04 PM, Patrick Delaunay wrote:
> Software workaround for I2C issue on EV1 board,
> configure the IRQ line for touchscreen before LCD reset
> to fix the used I2C address.
>
> Signed-off-by: Patrick Delaunay <patrick.delau...@st.com>
> ---
>
>  board/st/stm32mp1/stm32mp1.c | 41 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
> diff --git a/board/st/stm32mp1/stm32mp1.c b/board/st/stm32mp1/stm32mp1.c
> index 6ca47509b3..52881adef7 100644
> --- a/board/st/stm32mp1/stm32mp1.c
> +++ b/board/st/stm32mp1/stm32mp1.c
> @@ -626,6 +626,44 @@ static bool board_is_dk2(void)
>  }
>  #endif
>  
> +static bool board_is_ev1(void)
> +{
> +     if (CONFIG_IS_ENABLED(TARGET_ST_STM32MP15x) &&
> +         (of_machine_is_compatible("st,stm32mp157a-ev1") ||
> +          of_machine_is_compatible("st,stm32mp157c-ev1") ||
> +          of_machine_is_compatible("st,stm32mp157d-ev1") ||
> +          of_machine_is_compatible("st,stm32mp157f-ev1")))
> +             return true;
> +
> +     return false;
> +}
> +
> +/* touchscreen driver: only used for pincontrol configuration */
> +static const struct udevice_id goodix_ids[] = {
> +     { .compatible = "goodix,gt9147", },
> +     { }
> +};
> +
> +U_BOOT_DRIVER(goodix) = {
> +     .name           = "goodix",
> +     .id             = UCLASS_NOP,
> +     .of_match       = goodix_ids,
> +};
> +
> +static int board_ev1_init(void)
> +{
> +     struct udevice *dev;
> +     int ret;
> +
> +     /* configure IRQ line on EV1 for touchscreen before LCD reset */
> +     ret = uclass_get_device_by_driver(UCLASS_NOP, DM_GET_DRIVER(goodix),
> +                                       &dev);
> +     if (ret)
> +             debug("goodix init failed: %d\n", ret);
> +
> +     return ret;
> +}
> +
>  /* board dependent setup after realloc */
>  int board_init(void)
>  {
> @@ -643,6 +681,9 @@ int board_init(void)
>  
>       board_key_check();
>  
> +     if (board_is_ev1())
> +             board_ev1_init();
> +
>  #ifdef CONFIG_DM_REGULATOR
>       if (board_is_dk2())
>               dk2_i2c1_fix();

Reviewed-by: Patrice Chotard <patrice.chot...@st.com>

Thanks

Reply via email to