Add DT bindings for the QUP GENI I2C controller on sa8255p platforms.
SA8255p platform abstracts resources such as clocks, interconnect and
GPIO pins configuration in Firmware. SCMI power and perf protocol
are utilized to request resource configurations.
Co-developed-by: Nikunj Kela <quic_nkela@quicinc.com>
Signed-off-by: Nikunj Kela <quic_nkela@quicinc.com>
Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com>
---
.../bindings/i2c/qcom,sa8255p-geni-i2c.yaml | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/qcom,sa8255p-geni-i2c.yaml
diff --git a/Documentation/devicetree/bindings/i2c/qcom,sa8255p-geni-i2c.yaml b/Documentation/devicetree/bindings/i2c/qcom,sa8255p-geni-i2c.yaml
new file mode 100644
index 000000000000..3ce0e0ba365b
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/qcom,sa8255p-geni-i2c.yaml
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/qcom,sa8255p-geni-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SA8255p QUP GENI I2C Controller
+
+maintainers:
+ - Praveen Talari <praveen.talari@oss.qualcomm.com>
+
+properties:
+ compatible:
+ const: qcom,sa8255p-geni-i2c
+
+ reg:
+ maxItems: 1
+
+ dmas:
+ maxItems: 2
+
+ dma-names:
+ items:
+ - const: tx
+ - const: rx
+
+ interrupts:
+ maxItems: 1
+
+ power-domains:
+ minItems: 2
+ maxItems: 2
+
+ power-domain-names:
+ items:
+ - const: power
+ - const: perf
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - power-domains
+
+allOf:
+ - $ref: /schemas/i2c/i2c-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ i2c@a90000 {
+ compatible = "qcom,sa8255p-geni-i2c";
+ reg = <0xa90000 0x4000>;
+ interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+ power-domains = <&scmi0_pd 0>, <&scmi0_dvfs 0>;
+ power-domain-names = "power", "perf";
+ };
+...
--
2.34.1
On Sat, Nov 22, 2025 at 10:30:13AM +0530, Praveen Talari wrote:
> + dmas:
> + maxItems: 2
> +
> + dma-names:
> + items:
> + - const: tx
> + - const: rx
> +
> + interrupts:
> + maxItems: 1
> +
> + power-domains:
> + minItems: 2
Drop
> + maxItems: 2
> +
> + power-domain-names:
> + items:
> + - const: power
> + - const: perf
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - power-domains
> +
> +allOf:
So common SE properties are not applicable? If so explain why in the
commit msg.
> + - $ref: /schemas/i2c/i2c-controller.yaml#
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + i2c@a90000 {
> + compatible = "qcom,sa8255p-geni-i2c";
> + reg = <0xa90000 0x4000>;
> + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
> + power-domains = <&scmi0_pd 0>, <&scmi0_dvfs 0>;
> + power-domain-names = "power", "perf";
dmas and dma-names
Best regards,
Krzysztof
Hi Krzysztof,
On 11/22/2025 5:10 PM, Krzysztof Kozlowski wrote:
> On Sat, Nov 22, 2025 at 10:30:13AM +0530, Praveen Talari wrote:
>> + dmas:
>> + maxItems: 2
>> +
>> + dma-names:
>> + items:
>> + - const: tx
>> + - const: rx
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + power-domains:
>> + minItems: 2
>
> Drop
>
>> + maxItems: 2
>> +
>> + power-domain-names:
>> + items:
>> + - const: power
>> + - const: perf
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> + - power-domains
>> +
>> +allOf:
>
> So common SE properties are not applicable? If so explain why in the
> commit msg.
>
>> + - $ref: /schemas/i2c/i2c-controller.yaml#
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> + i2c@a90000 {
>> + compatible = "qcom,sa8255p-geni-i2c";
>> + reg = <0xa90000 0x4000>;
>> + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
>> + power-domains = <&scmi0_pd 0>, <&scmi0_dvfs 0>;
>> + power-domain-names = "power", "perf";
>
> dmas and dma-names
For this platform (all Auto targets), we primarily use FIFO/CPU_DMA mode
rather than GSI mode, and these are not defined in the Device Tree file
as well now. Should we still include the dmas and dma-names properties
in the example node?
Thanks,
Praveen
>
> Best regards,
> Krzysztof
>
Hi Krzysztof,
On 11/26/2025 10:32 AM, Praveen Talari wrote:
> Hi Krzysztof,
>
> On 11/22/2025 5:10 PM, Krzysztof Kozlowski wrote:
>> On Sat, Nov 22, 2025 at 10:30:13AM +0530, Praveen Talari wrote:
>>> + dmas:
>>> + maxItems: 2
>>> +
>>> + dma-names:
>>> + items:
>>> + - const: tx
>>> + - const: rx
>>> +
>>> + interrupts:
>>> + maxItems: 1
>>> +
>>> + power-domains:
>>> + minItems: 2
>>
>> Drop
>>
>>> + maxItems: 2
>>> +
>>> + power-domain-names:
>>> + items:
>>> + - const: power
>>> + - const: perf
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> + - interrupts
>>> + - power-domains
>>> +
>>> +allOf:
>>
>> So common SE properties are not applicable? If so explain why in the
>> commit msg.
>>
>>> + - $ref: /schemas/i2c/i2c-controller.yaml#
>>> +
>>> +unevaluatedProperties: false
>>> +
>>> +examples:
>>> + - |
>>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>>> +
>>> + i2c@a90000 {
>>> + compatible = "qcom,sa8255p-geni-i2c";
>>> + reg = <0xa90000 0x4000>;
>>> + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
>>> + power-domains = <&scmi0_pd 0>, <&scmi0_dvfs 0>;
>>> + power-domain-names = "power", "perf";
>>
>> dmas and dma-names
>
> For this platform (all Auto targets), we primarily use FIFO/CPU_DMA mode
> rather than GSI mode, and these are not defined in the Device Tree file
> as well now. Should we still include the dmas and dma-names properties
> in the example node?
Would you mind confirming this?
Thanks,
Praveen
>
> Thanks,
> Praveen
>
>>
>> Best regards,
>> Krzysztof
>>
Hi Krzysztof,
Thank you for review.
On 11/22/2025 5:10 PM, Krzysztof Kozlowski wrote:
> On Sat, Nov 22, 2025 at 10:30:13AM +0530, Praveen Talari wrote:
>> + dmas:
>> + maxItems: 2
>> +
>> + dma-names:
>> + items:
>> + - const: tx
>> + - const: rx
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + power-domains:
>> + minItems: 2
>
> Drop
sure, will do it in next version.
>
>> + maxItems: 2
>> +
>> + power-domain-names:
>> + items:
>> + - const: power
>> + - const: perf
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> + - power-domains
>> +
>> +allOf:
>
> So common SE properties are not applicable? If so explain why in the
> commit msg.
Are you referring to clocks, ICC paths, and pin control?
Please let me know if I’m mistaken.
>
>> + - $ref: /schemas/i2c/i2c-controller.yaml#
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> +
>> + i2c@a90000 {
>> + compatible = "qcom,sa8255p-geni-i2c";
>> + reg = <0xa90000 0x4000>;
>> + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
>> + power-domains = <&scmi0_pd 0>, <&scmi0_dvfs 0>;
>> + power-domain-names = "power", "perf";
>
> dmas and dma-names
sure.
Thanks,
Praveen
>
> Best regards,
> Krzysztof
>
On 25/11/2025 05:03, Praveen Talari wrote: > Hi Krzysztof, > > Thank you for review. > > On 11/22/2025 5:10 PM, Krzysztof Kozlowski wrote: >> On Sat, Nov 22, 2025 at 10:30:13AM +0530, Praveen Talari wrote: >>> + dmas: >>> + maxItems: 2 >>> + >>> + dma-names: >>> + items: >>> + - const: tx >>> + - const: rx >>> + >>> + interrupts: >>> + maxItems: 1 >>> + >>> + power-domains: >>> + minItems: 2 >> >> Drop > > sure, will do it in next version. > >> >>> + maxItems: 2 >>> + >>> + power-domain-names: >>> + items: >>> + - const: power >>> + - const: perf >>> + >>> +required: >>> + - compatible >>> + - reg >>> + - interrupts >>> + - power-domains >>> + >>> +allOf: >> >> So common SE properties are not applicable? If so explain why in the >> commit msg. > > Are you referring to clocks, ICC paths, and pin control? > Please let me know if I’m mistaken. No, I refer to common SE properties. See common qcom geni SE schema. See every other geni SE schema... Best regards, Krzysztof
© 2016 - 2026 Red Hat, Inc.