Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions Documentation/devicetree/bindings/i2c/qcom,i2c-target.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/qcom,i2c-target.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm I2C Target Controller

maintainers:
- Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>
- Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>

description:
Dedicated hardware IP found on Qualcomm SoCs that operates exclusively
as an I2C target (slave) device on the bus. Supports FIFO (PIO) mode
for data transfer.

properties:
compatible:
enum:
- qcom,qdu1000-i2c-target

reg:
maxItems: 1

interrupts:
maxItems: 1

clocks:
items:
- description: XO reference clock
- description: AHB bus clock

clock-names:
items:
- const: xo
- const: ahb

interconnects:
maxItems: 1

interconnect-names:
const: i2c

pinctrl-0: true
pinctrl-1: true

pinctrl-names:
items:
- const: default
- const: sleep

required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- interconnects
- interconnect-names

allOf:
- $ref: /schemas/i2c/i2c-controller.yaml#

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,qdu1000-gcc.h>
#include <dt-bindings/interconnect/qcom,qdu1000-rpmh.h>

i2c@88ca000 {
compatible = "qcom,qdu1000-i2c-target";
reg = <0x88ca000 0x64>;
clocks = <&gcc GCC_SM_BUS_XO_CLK>, <&gcc GCC_SM_BUS_AHB_CLK>;
clock-names = "xo", "ahb";
interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
interconnect-names = "i2c";
interconnects = <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SMBUS_CFG 0>;
};
...
9 changes: 9 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -21228,6 +21228,15 @@ S: Maintained
F: Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml
F: drivers/i2c/busses/i2c-qcom-geni.c

QUALCOMM I2C TARGET CONTROLLER DRIVER
M: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>
M: Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>
L: linux-i2c@vger.kernel.org
L: linux-arm-msm@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/i2c/qcom,i2c-target.yaml
F: drivers/i2c/busses/i2c-qcom-target.c

QUALCOMM I2C CCI DRIVER
M: Loic Poulain <loic.poulain@oss.qualcomm.com>
M: Robert Foss <rfoss@kernel.org>
Expand Down
15 changes: 15 additions & 0 deletions drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1063,6 +1063,21 @@ config I2C_QCOM_GENI
This driver can also be built as a module. If so, the module
will be called i2c-qcom-geni.

config I2C_QCOM_TARGET
tristate "Qualcomm I2C target controller"
depends on ARCH_QCOM || COMPILE_TEST
depends on COMMON_CLK
depends on INTERCONNECT
select I2C_SLAVE
help
This driver supports I2C target mode on Qualcomm Technologies
SoCs. If you say yes to this option, support will be included
for the built-in I2C target controller on QDU1000 and other
compatible Qualcomm SoCs.

This driver can also be built as a module. If so, the module
will be called i2c-qcom-target.

config I2C_QUP
tristate "Qualcomm QUP based I2C controller"
depends on ARCH_QCOM || COMPILE_TEST
Expand Down
1 change: 1 addition & 0 deletions drivers/i2c/busses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ obj-$(CONFIG_I2C_PXA) += i2c-pxa.o
obj-$(CONFIG_I2C_PXA_PCI) += i2c-pxa-pci.o
obj-$(CONFIG_I2C_QCOM_CCI) += i2c-qcom-cci.o
obj-$(CONFIG_I2C_QCOM_GENI) += i2c-qcom-geni.o
obj-$(CONFIG_I2C_QCOM_TARGET) += i2c-qcom-target.o
obj-$(CONFIG_I2C_QUP) += i2c-qup.o
obj-$(CONFIG_I2C_RIIC) += i2c-riic.o
obj-$(CONFIG_I2C_RK3X) += i2c-rk3x.o
Expand Down
Loading
Loading