From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3EA5B377016; Thu, 12 Mar 2026 16:21:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773332481; cv=none; b=MJ6CFT8zsaV+qdhPhCaZTF/lhw+OOOyMzd1G6mPx4XcDvi3dHeS+shnKwrYRyNvl58r2uq9rtFbGVzA5BT88QAg+HLWwBDdnmeuTo4rgpAO4TwGfGui45F9Jy19jIX+c/HXYBzUmfSKtPTXtgANtenTH6AQnbgZmRNC+B8jLvkU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773332481; c=relaxed/simple; bh=E0tzcZpn2M5zDMTbuEGhMbwdcnWTA9+Yo32dgdGl5hE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=oi+rPezFHiHWO6ZuN7RNiOTLJ6imAXO+EC91lUoyntaWIm1KEretNjgl88WvDDkZf3+U1GlscTb1LTyUtv/LEsv6WGvORIof83GhnOkvaYUKVfEnEkc4QuL7pdfT33FAxUT13C95U4FwzRRL8Vj3oNmC5GAexsrfKXc9VI9Nihg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=dEOXKyyY; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="dEOXKyyY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B51DC4CEF7; Thu, 12 Mar 2026 16:21:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773332481; bh=E0tzcZpn2M5zDMTbuEGhMbwdcnWTA9+Yo32dgdGl5hE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=dEOXKyyYqmInnVErJ/xccwlmYQjLB4P6TpcaYbZS1/+qgLk95IbuzxQbZ2muAoDCV Iv/L/JpyOHSFvq0ctI08ZfesgPDRXUx/iw1XIM6enA1H5ftT/sYaTEsBs/viIH+YOG 8PWvOue01HC8vFL1Y5JWtX+76qCTVSj75IwkZHFLunsGuJwNa7SCC2SdNVJ8ImTi15 hxLNWaNn2nNfnh5HF63s5Pxmvcf9JJDeXi1qZw3X6d3KiaA9Se00Ow5iQC1q6xp+iq 07ev+o7HGmCcFmU4CcT2U4j1uP38ETAuLvwAYmJHc2yhPDYLuL0uGa2C1SfpUtWRkh /kFvXOXjEZjcA== From: Mattijs Korpershoek To: Praveen Talari , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mukesh Kumar Savaliya , Viken Dadhaniya , Bjorn Andersson , Konrad Dybcio , Praveen Talari , linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bjorn.andersson@oss.qualcomm.com, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com Cc: prasad.sodagudi@oss.qualcomm.com, aniket.randive@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, jyothi.seerapu@oss.qualcomm.com, chiluka.harish@oss.qualcomm.com Subject: Re: [PATCH v6 00/13] Enable I2C on SA8255p Qualcomm platforms In-Reply-To: <20260227061544.1785978-1-praveen.talari@oss.qualcomm.com> References: <20260227061544.1785978-1-praveen.talari@oss.qualcomm.com> Date: Thu, 12 Mar 2026 17:21:18 +0100 Message-ID: <873425m329.fsf@kernel.org> Precedence: bulk X-Mailing-List: linux-i2c@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain Hi Praveen, Thank you for the series. On Fri, Feb 27, 2026 at 11:45, Praveen Talari wrote: > The Qualcomm automotive SA8255p SoC relies on firmware to configure > platform resources, including clocks, interconnects and TLMM. > The driver requests resources operations over SCMI using power > and performance protocols. > > The SCMI power protocol enables or disables resources like clocks, > interconnect paths, and TLMM (GPIOs) using runtime PM framework APIs, > such as resume/suspend, to control power states(on/off). > > The SCMI performance protocol manages I2C frequency, with each > frequency rate represented by a performance level. The driver uses > geni_se_set_perf_opp() API to request the desired frequency rate.. > > As part of geni_se_set_perf_opp(), the OPP for the requested frequency > is obtained using dev_pm_opp_find_freq_floor() and the performance > level is set using dev_pm_opp_set_opp(). > > Praveen Talari (13): > soc: qcom: geni-se: Refactor geni_icc_get() and make qup-memory ICC > path optional > soc: qcom: geni-se: Add geni_icc_set_bw_ab() function > soc: qcom: geni-se: Introduce helper API for resource initialization > soc: qcom: geni-se: Handle core clk in geni_se_clks_off() and > geni_se_clks_on() > soc: qcom: geni-se: Add resources activation/deactivation helpers > soc: qcom: geni-se: Introduce helper API for attaching power domains > soc: qcom: geni-se: Introduce helper APIs for performance control > dt-bindings: i2c: Describe SA8255p > i2c: qcom-geni: Isolate serial engine setup > i2c: qcom-geni: Move resource initialization to separate function > i2c: qcom-geni: Use resources helper APIs in runtime PM functions > i2c: qcom-geni: Store of_device_id data in driver private struct > i2c: qcom-geni: Enable I2C on SA8255p Qualcomm platforms I did some basic testing on the Ride SX (SA8775P) board with this series using base: commit 80234b5ab240 ("Merge tag 'rproc-v7.0-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux") / # i2cdetect -l i2c-11 i2c Geni-I2C I2C adapter i2c-18 i2c Geni-I2C I2C adapter / # i2cdetect -F 11 Functionalities implemented by bus #11 I2C yes SMBus quick command no SMBus send byte yes SMBus receive byte yes SMBus write byte yes SMBus read byte yes SMBus write word yes SMBus read word yes SMBus process call yes SMBus block write yes SMBus block read no SMBus block process call no SMBus PEC yes I2C block write yes I2C block read yes / # i2cdetect -F 18 Functionalities implemented by bus #18 I2C yes SMBus quick command no SMBus send byte yes SMBus receive byte yes SMBus write byte yes SMBus read byte yes SMBus write word yes SMBus read word yes SMBus process call yes SMBus block write yes SMBus block read no SMBus block process call no SMBus PEC yes I2C block write yes I2C block read yes Note that I used a downstream device tree which has both i2c11 (i2c@a90000) and i2c18(i2c@890000) enabled. The sources for that dts can be found here: https://gitlab.com/mkorpershoek-rh/downstream-dtbs/-/tree/8775-upstream-i2c/qcom?ref_type=heads If this is considered useful testing, feel free to add: Tested-by: Mattijs Korpershoek > --- > v3->v4 > - Added a new patch(4/13) to handle core clk as part of > geni_se_clks_off/on(). > > .../bindings/i2c/qcom,sa8255p-geni-i2c.yaml | 64 ++++ > drivers/i2c/busses/i2c-qcom-geni.c | 324 +++++++++--------- > drivers/soc/qcom/qcom-geni-se.c | 270 ++++++++++++++- > include/linux/soc/qcom/geni-se.h | 19 + > 4 files changed, 491 insertions(+), 186 deletions(-) > create mode 100644 Documentation/devicetree/bindings/i2c/qcom,sa8255p-geni-i2c.yaml > > > base-commit: 7d6661873f6b54c75195780a40d66bad3d482d8f > -- > 2.34.1