Re: [PATCH 2/3] i2c: bcm2835: Avoid clk stretch quirk for BCM2711

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 27/08/2019 19:04, Stefan Wahren wrote:
> The I2C block on the BCM2711 isn't affected by the clk stretching bug.
> So there is no need to apply the corresponding quirk.
> 
> Signed-off-by: Stefan Wahren <wahrenst@xxxxxxx>
> Reviewed-by: Eric Anholt <eric@xxxxxxxxxx>
> ---
>  drivers/i2c/busses/i2c-bcm2835.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-bcm2835.c b/drivers/i2c/busses/i2c-bcm2835.c
> index 67752f7..ab5502f 100644
> --- a/drivers/i2c/busses/i2c-bcm2835.c
> +++ b/drivers/i2c/busses/i2c-bcm2835.c
> @@ -12,6 +12,7 @@
>  #include <linux/interrupt.h>
>  #include <linux/io.h>
>  #include <linux/module.h>
> +#include <linux/of_device.h>
>  #include <linux/platform_device.h>
>  #include <linux/slab.h>
> 
> @@ -389,7 +390,7 @@ static const struct i2c_algorithm bcm2835_i2c_algo = {
>  };
> 
>  /*
> - * This HW was reported to have problems with clock stretching:
> + * The BCM2835 was reported to have problems with clock stretching:
>   * http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html
>   * https://www.raspberrypi.org/forums/viewtopic.php?p=146272
>   */
> @@ -475,7 +476,7 @@ static int bcm2835_i2c_probe(struct platform_device *pdev)
>  	adap->algo = &bcm2835_i2c_algo;
>  	adap->dev.parent = &pdev->dev;
>  	adap->dev.of_node = pdev->dev.of_node;
> -	adap->quirks = &bcm2835_i2c_quirks;
> +	adap->quirks = of_device_get_match_data(&pdev->dev);
> 
>  	bcm2835_i2c_writel(i2c_dev, BCM2835_I2C_C, 0);
> 
> @@ -501,7 +502,8 @@ static int bcm2835_i2c_remove(struct platform_device *pdev)
>  }
> 
>  static const struct of_device_id bcm2835_i2c_of_match[] = {
> -	{ .compatible = "brcm,bcm2835-i2c" },
> +	{ .compatible = "brcm,bcm2711-i2c" },
> +	{ .compatible = "brcm,bcm2835-i2c", .data = &bcm2835_i2c_quirks },

RPi4 FW seems to still use bcm2835-i2c as compatible in it's DTB blob. Does this
break the driver or is this something we can improve by changing the FW blob in
the future without breaking the driver now?

Regards,
Matthias

>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, bcm2835_i2c_of_match);
> --
> 2.7.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux