From nobody Fri Feb 13 19:27:39 2026 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 612941F03EF for ; Fri, 13 Feb 2026 11:07:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770980879; cv=none; b=b71T6BqRD1ABKXu+yPb5Snr3R84my1W9pkY9U8EFyCzKMuur5ZHubw2ivunoi3oei1U8OCvzwPb+WJGecw/fQiA8j6iOqJCKXTDeEO3aWUqCfx2MWuYiit1WRPoaTdWS5w2CwS0XVFIsTQAP69G5guxkdaHJNr7WozAtIF2j3HI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770980879; c=relaxed/simple; bh=eRPT6fwWSu39UFp184/6KNALMdSEu1tiZOm0jan9AEk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dhv0gHNQdgh8pimByFGmuYzMvdcJcc2QH38vYdfhfGItF/Jj7ad9pj1iIpJ8LyK0+nQw2JguUlXHuUPMIwtdPWkdTJdGOT25p+dppgPp2MMi9Fy/dyH2CHLy7xgjznuvMm6kwFeayOVnsMIaiSPqYJj4DInTP+yRrt+iu8GJtKE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Q8EfUbj7; arc=none smtp.client-ip=209.85.208.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Q8EfUbj7" Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-38709888abeso6234901fa.1 for ; Fri, 13 Feb 2026 03:07:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770980876; x=1771585676; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=7LgqAxD6UfwmKx5Fd0jcW4Pat4uqGsb1EaPQx1jaWDA=; b=Q8EfUbj7axc7DpLQYGMwU+r0FWAefSn9l0prjb3bL0olZYVR+cRUvzw3EedpgkSHBZ GV4ferdk8qc+WidZjAGpeCVH24dxvN8ePxhzb6mN1AwLcPlVf3EpswBYcJFu9JapYe7t jl6WQ4tS/ZCEEGs158nbpJWs5gJnjwvGFF3M9YZ9QA+wDRm3ECIWqTtqYZ/sknC5D4NA XK4EcXAJf/kB3xNBRbIdkKVbGxZ+W5LLLYZEM+NQYxmx/Uo6A7B9kzSb4UFHvniNUEIZ LNoOU3+KkVnTvQBCw53GAr4vVeBYFAhrIs8VnLufPP3eiL90gdX4Zn/BggB3X8RvsgE4 XHJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770980876; x=1771585676; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=7LgqAxD6UfwmKx5Fd0jcW4Pat4uqGsb1EaPQx1jaWDA=; b=QT0g34GFTW+zX00malJ5BaEU8MvPjryigQUFRr1HJ60pS+Qy+IBIl1Tn+bWrNdfgt1 2y7x2iOEFBSno7j7NxYd7mVQ0NrRBVDz421N/V3WrrtfmyvnAxxFQtHJgr2+UVBuCDrL iwI26MaJMKCUQA08gf1PNwrJpgZHwQn7DrAYdQJK6Bho7wtI+pAQqaNWGBrwTAgRwfPw QlysHbcwosZbTKAcmPAyeV3yhIfbUmMkMWvDuEj7I+OFwMCQGPnlsUZyykEGIuSH2nEs vQf7y0CpwRZIR3nXuxdG93p076klPyIqUScZgMm0KaidaaDdrUCuirznenNB8J/CIgNK HWJw== X-Forwarded-Encrypted: i=1; AJvYcCV/3jUaABk5PA6nZ2kAESvYTkMf5PZj1wJc/kmDBDj6pfL6O8EwaLR71HNIxH0gAMF8jtHUj2BR1gkkro4=@vger.kernel.org X-Gm-Message-State: AOJu0YzY0OCt58x0vygkkB9w1SXa73Upl9sq5ecnHgXrxni8XfFP/y5F 7BJUYcHRuam0n4863wNBYH1fc+LD408oBecRDszETAOwllCIx0qHAW/P X-Gm-Gg: AZuq6aL6QaNESMJPp/mA7NzDq8V9xtZqdmrWoy1fvWqZlPUHe8WRFCCsa7cftKQIC6L fEBhdyrM0d536y9E7tZDMmgWxnAwhFNiFza+LEFnyCOUKaWJbAEiwKsAW3v+bnSwulyme4b0PbP T9V73YaQiy6yg+Umg+DQYfug+rwjmUZEfGKrj3qDJ0lojkyos6cggYhNpfFDV12BhUeMHUMSNZt txfETsXhOX1lWO1ulPvKo4l1d3vqEOiX9R/IcHuQfBkzcCK+DvIxI9Yjtdqmk2COVf328ikdSOR xKh1uyMDvc7+blHKCRh8ps7/HrbudWUrzy2W/rHKGXas66PkOv/rJIwzhlBzT35d7SFJPqcyoPe td9PxBICbEnKmOP3tKkMMRvQFJQSeYg84wXJJ74uDxDMio4rog1bdbfuAxUrHkhZy6rVn83s5bJ 47dpmcSm03LgjkaZCh9YIWsBUQIMUmcL3V9GfnkEXbD6/KWvIfTBKWUfUFRwaHJk18bp48 X-Received: by 2002:a05:651c:515:b0:385:b735:4fa0 with SMTP id 38308e7fff4ca-388104ed3dcmr5707731fa.7.1770980875385; Fri, 13 Feb 2026 03:07:55 -0800 (PST) Received: from [192.168.1.135] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-387068924c3sm13635831fa.1.2026.02.13.03.07.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Feb 2026 03:07:54 -0800 (PST) From: Marcus Folkesson Date: Fri, 13 Feb 2026 12:06:50 +0100 Subject: [PATCH v5 1/5] i2c: core: add callback to change bus frequency Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260213-i2c-mux-v5-1-fb2cbf9979b3@gmail.com> References: <20260213-i2c-mux-v5-0-fb2cbf9979b3@gmail.com> In-Reply-To: <20260213-i2c-mux-v5-0-fb2cbf9979b3@gmail.com> To: Wolfram Sang , Peter Rosin , Michael Hennerich , Bartosz Golaszewski , Andi Shyti , Bartosz Golaszewski Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Marcus Folkesson X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1616; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=eRPT6fwWSu39UFp184/6KNALMdSEu1tiZOm0jan9AEk=; b=owEBbQKS/ZANAwAKAYiATm9ZXVIyAcsmYgBpjwYAOcTbfDdGyuIUMkxx9uPWkK7ETY2/cJ3ME 4K7m74QleuJAjMEAAEKAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaY8GAAAKCRCIgE5vWV1S MqLYD/9U0GGb/59bRkWRe3Vd9n15zS9gSWS6D5pjlLovgKJzfMpAwTJCt6jhJlISgg0/ZSZCOiJ kT6IvfdKCas38bNpTPq06XdOIlGuWYXocy4SMUmmurTDe2RDP3wY14o2cgbe+e8alLWml701cHE sea+iijidaNNBFldYucq0Oo4ItfjqyEKZ64cmtt1jbu6WNDa5VYT0DDiD4YwYP3yimIeo57gASN W6VZvh5T84OxXFDCKXvArAgqu9/Nmz4JGrpeXXhABd3dNzdinkIRv2wbxK1BEg+Dmki/FiggZUq wShfC0Hy+YGNfKAXKDpOSJPnoV/suh7EPUy3nefT9XClLty4JwETs+/8uCqe5j3mXXfFLBeWKkZ xAkNHu2V2JbjbNxPPZLlg9XZTvLdWekZRhVbXYi5ZTiiiUx1ohpSh8Qlp65clxA+hQVCutN9yQn dTio5Yf24T+8S/oj0VpQNZxT3wa9JYLhR400yXtW7MrRTFaV2SVMYCbAVtC/CwyG0EYaFI+wb42 2Y29s/Ls0SdmOvtadHSir0Wh4lZIQ197eNnrIJv6+jH7ulfberV6hREs5nStMGI7QUwxzVMtDee EnOUHuH37xGpsrdERAtAUT2JmTvLJnznqG4FwSVzKziv71l73MPvvcwg5PE8R7bYNH/Z2PscB4R Wq1P1dKs4WudEEQ== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 All devices on the same I2C bus share the same clock line and the bus frequency has therefor be chosen so that all attached devices are able to tolarate that clock rate. IOW, the bus speed must be set for the slowest attached device. With I2C multiplexers/switches on the other hand, it would be possible to have different "domains" that runs with different speeds. Prepare for such a feature by provide an optional callback function to change bus frequency. Signed-off-by: Marcus Folkesson --- include/linux/i2c.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 20fd41b51d5c..d147e388dbab 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -742,6 +742,8 @@ struct i2c_adapter { struct rt_mutex mux_lock; =20 int timeout; /* in jiffies */ + int clock_hz; + int (*set_clk_freq)(struct i2c_adapter *adap, u32 clock_hz); /* Optional = */ int retries; struct device dev; /* the adapter device */ unsigned long locked_flags; /* owned by the I2C core */ @@ -835,6 +837,17 @@ i2c_unlock_bus(struct i2c_adapter *adapter, unsigned i= nt flags) adapter->lock_ops->unlock_bus(adapter, flags); } =20 +static inline int +i2c_adapter_set_clk_freq(struct i2c_adapter *adapter, u32 clock_hz) +{ + int ret =3D -EOPNOTSUPP; + + if (adapter->set_clk_freq) + ret =3D adapter->set_clk_freq(adapter, clock_hz); + + return ret; +} + /** * i2c_mark_adapter_suspended - Report suspended state of the adapter to t= he core * @adap: Adapter to mark as suspended --=20 2.52.0