|
|
Log in / Subscribe / Register

Enable I2C on SA8255p Qualcomm platforms

From:  Praveen Talari <praveen.talari-AT-oss.qualcomm.com>
To:  Andi Shyti <andi.shyti-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>, Mukesh Kumar Savaliya <mukesh.savaliya-AT-oss.qualcomm.com>, Viken Dadhaniya <viken.dadhaniya-AT-oss.qualcomm.com>, Bjorn Andersson <andersson-AT-kernel.org>, Konrad Dybcio <konradybcio-AT-kernel.org>, Praveen Talari <praveen.talari-AT-oss.qualcomm.com>, linux-arm-msm-AT-vger.kernel.org, linux-i2c-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, bryan.odonoghue-AT-linaro.org, dmitry.baryshkov-AT-oss.qualcomm.com, bjorn.andersson-AT-oss.qualcomm.com
Subject:  [PATCH v3 00/12] Enable I2C on SA8255p Qualcomm platforms
Date:  Mon, 12 Jan 2026 16:17:10 +0530
Message-ID:  <20260112104722.591521-1-praveen.talari@oss.qualcomm.com>
Cc:  prasad.sodagudi-AT-oss.qualcomm.com, quic_vtanuku-AT-quicinc.com, aniket.randive-AT-oss.qualcomm.com, chandana.chiluveru-AT-oss.qualcomm.com
Archive-link:  Article

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 (12):
  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: 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

 .../bindings/i2c/qcom,sa8255p-geni-i2c.yaml   |  64 ++++
 drivers/i2c/busses/i2c-qcom-geni.c            | 300 +++++++++---------
 drivers/soc/qcom/qcom-geni-se.c               | 263 ++++++++++++++-
 include/linux/soc/qcom/geni-se.h              |  19 ++
 4 files changed, 475 insertions(+), 171 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/i2c/qcom,sa8255p-geni-i2c.yaml


base-commit: f417b7ffcbef7d76b0d8860518f50dae0e7e5eda
-- 
2.34.1




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds