summaryrefslogtreecommitdiff
path: root/include/trace
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-08-19 09:23:13 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2026-08-19 09:23:13 -0700
commitabea5c349368a683e40fdc2e745099aaaacc89d7 (patch)
treedd2f7c3b8283159ae75b859e6b1a4c71e41947ac /include/trace
parent7711f4417f1870e4bfbee1a7d501f789255bc7aa (diff)
parent18ca2ce160ffff977f28456039f2475a3b500bc0 (diff)
downloadlwn-abea5c349368a683e40fdc2e745099aaaacc89d7.tar.gz
lwn-abea5c349368a683e40fdc2e745099aaaacc89d7.zip
Merge tag 'i2c-7.3-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux
Pull i2c updates from Andi Shyti: "The main changes are support for shared SCL lines in i2c-gpio, a larger qcom-geni update covering tracing and transfer recovery and support for R-Car Gen5. The rest is mostly smaller driver, core and DT binding updates. Core and helpers: - support bus recovery with single-ended GPIOs - acpi: clean up resource handling - acpi: force ELAN1300 to 100 kHz - algo-bit: allow consumers to skip the optional bus test Drivers: - use generic bus frequency definitions in nomadik, octeon-core, microchip-corei2c, k1, davinci and pnx - i2c-gpio: support multiple buses sharing the same SCL line - qup: propagate clock enable failures - spacemit: configure SCL timing and clean up clock handling - amd-asf: guard against oversized firmware length qcom-geni: - add tracepoints for bus setup, interrupts and errors - use dedicated completion events for abort and reset - distinguish address and data NACK handling - cancel transfers before falling back to abort - simplify runtime PM and resource management - refactor resource and serial engine initialization DT bindings: - convert Altera bindings to DT schema - convert Axxia bindings to DT schema New support: - R-Car Gen5 and R-Car X5H - Axiado AX3005 - Qualcomm Nord SA8797P - Qualcomm SA8255p" * tag 'i2c-7.3-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux: (33 commits) i2c: core: support recovery for single-ended GPIOs i2c: rcar: add R-Car Gen5 support dt-bindings: i2c: rcar-i2c: Document R-Car X5H support i2c: i2c-gpio: Enhance driver for buses with shared SCL i2c: algo: bit: Allow to skip bit test i2c: qcom-geni: Add trace events for Qualcomm GENI I2C driver i2c: qcom-geni: trace: Add trace events for Qualcomm GENI I2C i2c: qup: Propagate clock enable failures i2c: qcom-geni: distinguish address-phase and data-phase NACK i2c: qcom-geni: use dedicated completions for abort and reset events i2c: qcom-geni: use cancel command before abort on transfer timeout dt-bindings: i2c: cdns: add Axiado AX3005 I2C variant i2c: qcom-geni: Use devm_pm_runtime_enable() for PM management dt-bindings: i2c: qcom,sa8255p-geni-i2c: Add compatible for Nord SA8797P i2c: nomadik: Use generic definitions for bus frequencies i2c: octeon-core: Use generic definitions for bus frequencies i2c: microchip-corei2c: Use generic definitions for bus frequencies i2c: k1: Use generic definitions for bus frequencies i2c: davinci: Use generic definitions for bus frequencies i2c: pnx: Use generic definitions for bus frequencies ...
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/qcom_geni_i2c.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/include/trace/events/qcom_geni_i2c.h b/include/trace/events/qcom_geni_i2c.h
new file mode 100644
index 000000000000..c7e7984f3620
--- /dev/null
+++ b/include/trace/events/qcom_geni_i2c.h
@@ -0,0 +1,82 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM qcom_geni_i2c
+
+#if !defined(_TRACE_QCOM_GENI_I2C_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_QCOM_GENI_I2C_H
+
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(geni_i2c_bus_setup,
+ TP_PROTO(struct device *dev, u32 clk_freq, u8 clk_div,
+ u8 t_high_cnt, u8 t_low_cnt, u8 t_cycle_cnt),
+ TP_ARGS(dev, clk_freq, clk_div, t_high_cnt, t_low_cnt, t_cycle_cnt),
+
+ TP_STRUCT__entry(__string(name, dev_name(dev))
+ __field(u32, clk_freq)
+ __field(u8, clk_div)
+ __field(u8, t_high_cnt)
+ __field(u8, t_low_cnt)
+ __field(u8, t_cycle_cnt)
+ ),
+
+ TP_fast_assign(__assign_str(name);
+ __entry->clk_freq = clk_freq;
+ __entry->clk_div = clk_div;
+ __entry->t_high_cnt = t_high_cnt;
+ __entry->t_low_cnt = t_low_cnt;
+ __entry->t_cycle_cnt = t_cycle_cnt;
+ ),
+
+ TP_printk("%s: clk_freq=%u clk_div=%u t_high=%u t_low=%u t_cycle=%u",
+ __get_str(name), __entry->clk_freq, __entry->clk_div,
+ __entry->t_high_cnt, __entry->t_low_cnt,
+ __entry->t_cycle_cnt)
+);
+
+TRACE_EVENT(geni_i2c_irq,
+ TP_PROTO(struct device *dev, u32 m_stat, u32 rx_st,
+ u32 dm_tx_st, u32 dm_rx_st),
+ TP_ARGS(dev, m_stat, rx_st, dm_tx_st, dm_rx_st),
+
+ TP_STRUCT__entry(__string(name, dev_name(dev))
+ __field(u32, m_stat)
+ __field(u32, rx_st)
+ __field(u32, dm_tx_st)
+ __field(u32, dm_rx_st)
+ ),
+
+ TP_fast_assign(__assign_str(name);
+ __entry->m_stat = m_stat;
+ __entry->rx_st = rx_st;
+ __entry->dm_tx_st = dm_tx_st;
+ __entry->dm_rx_st = dm_rx_st;
+ ),
+
+ TP_printk("%s: m_stat=0x%08x rx_st=0x%08x dm_tx=0x%08x dm_rx=0x%08x",
+ __get_str(name), __entry->m_stat, __entry->rx_st,
+ __entry->dm_tx_st, __entry->dm_rx_st)
+);
+
+TRACE_EVENT(geni_i2c_err,
+ TP_PROTO(struct device *dev, int err, const char *msg),
+ TP_ARGS(dev, err, msg),
+
+ TP_STRUCT__entry(__string(name, dev_name(dev))
+ __field(int, err)
+ __string(msg, msg)
+ ),
+
+ TP_fast_assign(__assign_str(name);
+ __entry->err = err;
+ __assign_str(msg);
+ ),
+
+ TP_printk("%s: err=%d msg=%s",
+ __get_str(name), __entry->err, __get_str(msg))
+);
+
+#endif /* _TRACE_QCOM_GENI_I2C_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>