[PATCH v4 2/3] dt-bindings: pinctrl: qcom: Add SDM660 LPI pinctrl

Nickolay Goppen via B4 Relay posted 3 patches 1 month ago
There is a newer version of this series
[PATCH v4 2/3] dt-bindings: pinctrl: qcom: Add SDM660 LPI pinctrl
Posted by Nickolay Goppen via B4 Relay 1 month ago
From: Nickolay Goppen <setotau@yandex.ru>

Add bindings for pin controller in SDM660 Low Power Audio SubSystem
LPASS).

Co-developed-by: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Nickolay Goppen <setotau@yandex.ru>
---
 .../pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml     | 74 ++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f71dbea9f75b398c9c5dd585635c469e1f426b6f
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDM660 SoC LPASS LPI TLMM
+
+maintainers:
+  - Nickolay Goppen <setotau@yandex.ru>
+
+description:
+  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
+  (LPASS) Low Power Island (LPI) of Qualcomm SDM660 SoC.
+
+properties:
+  compatible:
+    const: qcom,sdm660-lpass-lpi-pinctrl
+
+  reg:
+    items:
+      - description: LPASS LPI TLMM Control and Status registers
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sdm660-lpass-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sdm660-lpass-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sdm660-lpass-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          pattern: "^gpio([0-9]|[1-2][0-9]|3[0-1])$"
+
+      function:
+        enum: [ gpio, comp_rx, dmic12, dmic34, mclk0, pdm_2_gpios,
+                pdm_clk, pdm_rx, pdm_sync ]
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+
+allOf:
+  - $ref: qcom,lpass-lpi-common.yaml#
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    lpi_tlmm: pinctrl@15070000 {
+        compatible = "qcom,sdm660-lpass-lpi-pinctrl";
+        reg = <0x15070000 0x20000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&lpi_tlmm 0 0 32>;
+    };

-- 
2.51.0
Re: [PATCH v4 2/3] dt-bindings: pinctrl: qcom: Add SDM660 LPI pinctrl
Posted by Krzysztof Kozlowski 1 month ago
On 28/08/2025 21:23, Nickolay Goppen via B4 Relay wrote:
> From: Nickolay Goppen <setotau@yandex.ru>
> 
> Add bindings for pin controller in SDM660 Low Power Audio SubSystem
> LPASS).
> 
> Co-developed-by: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> Signed-off-by: Nickolay Goppen <setotau@yandex.ru>

Completely reversed/messed chain.

...

> +
> +properties:
> +  compatible:
> +    const: qcom,sdm660-lpass-lpi-pinctrl
> +
> +  reg:
> +    items:
> +      - description: LPASS LPI TLMM Control and Status registers


Clocks missing, maybe some other properties as well.


> +
> +patternProperties:
> +  "-state$":
> +    oneOf:
> +      - $ref: "#/$defs/qcom-sdm660-lpass-state"
> +      - patternProperties:
> +          "-pins$":
> +            $ref: "#/$defs/qcom-sdm660-lpass-state"
> +        additionalProperties: false
> +
> +$defs:
> +  qcom-sdm660-lpass-state:
> +    type: object
> +    description:
> +      Pinctrl node's client devices use subnodes for desired pin configuration.
> +      Client device subnodes use below standard properties.
> +    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
> +    unevaluatedProperties: false
> +
> +    properties:
> +      pins:
> +        description:
> +          List of gpio pins affected by the properties specified in this
> +          subnode.
> +        items:
> +          pattern: "^gpio([0-9]|[1-2][0-9]|3[0-1])$"
> +
> +      function:
> +        enum: [ gpio, comp_rx, dmic12, dmic34, mclk0, pdm_2_gpios,
> +                pdm_clk, pdm_rx, pdm_sync ]
> +        description:
> +          Specify the alternative function to be configured for the specified
> +          pins.
> +
> +allOf:
> +  - $ref: qcom,lpass-lpi-common.yaml#
> +
> +required:
> +  - compatible
> +  - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    lpi_tlmm: pinctrl@15070000 {
> +        compatible = "qcom,sdm660-lpass-lpi-pinctrl";
> +        reg = <0x15070000 0x20000>;
> +        gpio-controller;
> +        #gpio-cells = <2>;
> +        gpio-ranges = <&lpi_tlmm 0 0 32>;

That's quite incomplete example. Missing at least one pinmux node. See
other files.

> +    };
> 


Best regards,
Krzysztof
Re: [PATCH v4 2/3] dt-bindings: pinctrl: qcom: Add SDM660 LPI pinctrl
Posted by Nickolay Goppen 1 month ago
29.08.2025 09:06, Krzysztof Kozlowski пишет:
> On 28/08/2025 21:23, Nickolay Goppen via B4 Relay wrote:
>> From: Nickolay Goppen <setotau@yandex.ru>
>>
>> Add bindings for pin controller in SDM660 Low Power Audio SubSystem
>> LPASS).
>>
>> Co-developed-by: Richard Acayan <mailingradian@gmail.com>
>> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
>> Signed-off-by: Nickolay Goppen <setotau@yandex.ru>
> Completely reversed/messed chain.
>
> ...
>
>> +
>> +properties:
>> +  compatible:
>> +    const: qcom,sdm660-lpass-lpi-pinctrl
>> +
>> +  reg:
>> +    items:
>> +      - description: LPASS LPI TLMM Control and Status registers
>
> Clocks missing, maybe some other properties as well.

I've read a downstream LPI-related dts and didn't find any clock-related 
properties.

Also sc7280-lpass-lpi dt-binding doesn't have any clock-related properties.

>
>> +
>> +patternProperties:
>> +  "-state$":
>> +    oneOf:
>> +      - $ref: "#/$defs/qcom-sdm660-lpass-state"
>> +      - patternProperties:
>> +          "-pins$":
>> +            $ref: "#/$defs/qcom-sdm660-lpass-state"
>> +        additionalProperties: false
>> +
>> +$defs:
>> +  qcom-sdm660-lpass-state:
>> +    type: object
>> +    description:
>> +      Pinctrl node's client devices use subnodes for desired pin configuration.
>> +      Client device subnodes use below standard properties.
>> +    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
>> +    unevaluatedProperties: false
>> +
>> +    properties:
>> +      pins:
>> +        description:
>> +          List of gpio pins affected by the properties specified in this
>> +          subnode.
>> +        items:
>> +          pattern: "^gpio([0-9]|[1-2][0-9]|3[0-1])$"
>> +
>> +      function:
>> +        enum: [ gpio, comp_rx, dmic12, dmic34, mclk0, pdm_2_gpios,
>> +                pdm_clk, pdm_rx, pdm_sync ]
>> +        description:
>> +          Specify the alternative function to be configured for the specified
>> +          pins.
>> +
>> +allOf:
>> +  - $ref: qcom,lpass-lpi-common.yaml#
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> +  - |
>> +    lpi_tlmm: pinctrl@15070000 {
>> +        compatible = "qcom,sdm660-lpass-lpi-pinctrl";
>> +        reg = <0x15070000 0x20000>;
>> +        gpio-controller;
>> +        #gpio-cells = <2>;
>> +        gpio-ranges = <&lpi_tlmm 0 0 32>;
> That's quite incomplete example. Missing at least one pinmux node. See
> other files.
>
Ok, I've got it. It will be added in the next iteration.
>> +    };
>>
>
> Best regards,
> Krzysztof
Re: [PATCH v4 2/3] dt-bindings: pinctrl: qcom: Add SDM660 LPI pinctrl
Posted by Krzysztof Kozlowski 1 month ago
On 29/08/2025 08:06, Krzysztof Kozlowski wrote:
> On 28/08/2025 21:23, Nickolay Goppen via B4 Relay wrote:
>> From: Nickolay Goppen <setotau@yandex.ru>
>>
>> Add bindings for pin controller in SDM660 Low Power Audio SubSystem
>> LPASS).
>>
>> Co-developed-by: Richard Acayan <mailingradian@gmail.com>
>> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
>> Signed-off-by: Nickolay Goppen <setotau@yandex.ru>
> 
> Completely reversed/messed chain.

Ah no, sorry, it's ok. I missed who is the sender here.

Best regards,
Krzysztof