From a3d53c8e96353c0d31e8984e67ff53d05378780a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Jan 2024 17:44:02 +0000 Subject: [PATCH 0873/1002] ARM: dts: rp1: Add a safe I2C SDA hold time Failing to set a reasonable SDA hold time can cause SDA to change too close to the falling edge of SCL. 300ns is the recommended minimum interval between the two at 100kHz and 400kHz, and also seems to work at 1MHz, so use that. See: https://github.com/raspberrypi/linux/issues/5914 Signed-off-by: Phil Elwell --- arch/arm/boot/dts/broadcom/rp1.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm/boot/dts/broadcom/rp1.dtsi b/arch/arm/boot/dts/broadcom/rp1.dtsi index 00e5c4cbd53f..05e4f7a4e111 100644 --- a/arch/arm/boot/dts/broadcom/rp1.dtsi +++ b/arch/arm/boot/dts/broadcom/rp1.dtsi @@ -307,6 +307,7 @@ rp1_i2c0: i2c@70000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; @@ -317,6 +318,7 @@ rp1_i2c1: i2c@74000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; @@ -327,6 +329,7 @@ rp1_i2c2: i2c@78000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; @@ -337,6 +340,7 @@ rp1_i2c3: i2c@7c000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; @@ -347,6 +351,7 @@ rp1_i2c4: i2c@80000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; @@ -357,6 +362,7 @@ rp1_i2c5: i2c@84000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; @@ -367,6 +373,7 @@ rp1_i2c6: i2c@88000 { clocks = <&rp1_clocks RP1_CLK_SYS>; i2c-scl-rising-time-ns = <65>; i2c-scl-falling-time-ns = <100>; + i2c-sda-hold-time-ns = <300>; status = "disabled"; }; -- 2.44.0