From 15dedc2ad5a9073b8639881680672214f605a5c6 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Wed, 31 Jan 2024 17:44:02 +0000 Subject: [PATCH 1264/1295] 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/rp1.dtsi | 7 +++++++ 1 file changed, 7 insertions(+) --- a/arch/arm/boot/dts/rp1.dtsi +++ b/arch/arm/boot/dts/rp1.dtsi @@ -307,6 +307,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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"; };