[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1567418773-2427-4-git-send-email-eugen.hristev@microchip.com>
Date: Mon, 2 Sep 2019 10:12:03 +0000
From: <Eugen.Hristev@...rochip.com>
To: <wsa@...-dreams.de>, <peda@...ntia.se>, <mark.rutland@....com>,
<Ludovic.Desroches@...rochip.com>, <linux-i2c@...r.kernel.org>,
<devicetree@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-kernel@...r.kernel.org>, <pierre-yves.mordret@...com>,
<alexandre.belloni@...tlin.com>, <robh+dt@...nel.org>
CC: <Nicolas.Ferre@...rochip.com>, <Eugen.Hristev@...rochip.com>
Subject: [PATCH v4 3/9] i2c: add support for filter-width-ns optional property
From: Eugen Hristev <eugen.hristev@...rochip.com>
This optional timing property specifies the width of the spikes on the i2c
lines (in ns) that can be filtered out by built-in analog or digital filters
which are embedded in some i2c controllers.
Include it in the timings structure and read it as integer property.
Signed-off-by: Eugen Hristev <eugen.hristev@...rochip.com>
---
drivers/i2c/i2c-core-base.c | 2 ++
include/linux/i2c.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index f26ed49..804197e 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1658,6 +1658,8 @@ void i2c_parse_fw_timings(struct device *dev, struct i2c_timings *t, bool use_de
t->sda_fall_ns = t->scl_fall_ns;
device_property_read_u32(dev, "i2c-sda-hold-time-ns", &t->sda_hold_ns);
+
+ device_property_read_u32(dev, "i2c-filter-width-ns", &t->filter_width_ns);
}
EXPORT_SYMBOL_GPL(i2c_parse_fw_timings);
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index fa5552c..b1e9c39 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -575,6 +575,7 @@ struct i2c_lock_operations {
* @scl_int_delay_ns: time IP core additionally needs to setup SCL in ns
* @sda_fall_ns: time SDA signal takes to fall in ns; t(f) in the I2C specification
* @sda_hold_ns: time IP core additionally needs to hold SDA in ns
+ * @filter_width_ns: width in ns of spikes on i2c lines that the IP core can filter out
*/
struct i2c_timings {
u32 bus_freq_hz;
@@ -583,6 +584,7 @@ struct i2c_timings {
u32 scl_int_delay_ns;
u32 sda_fall_ns;
u32 sda_hold_ns;
+ u32 filter_width_ns;
};
/**
--
2.7.4
Powered by blists - more mailing lists