Re: [PATCH v2 01/12] dt-bindings: clock: qcom: Add bindings for PDM GP_MN clock divider

From: Taniya Das

Date: Thu Oct 29 2026 - 06:57:39 EST




On 10/28/2026 12:17 AM, Krzysztof Kozlowski wrote:
> On Mon, Oct 26, 2026 at 04:59:27PM +0530, Taniya Das wrote:
>> Add device tree bindings for the Qualcomm Peripheral Web's PDM GP_MN
>> clock divider. The hardware generates a fractional output frequency
>> from a fixed input clock (typically TCXO4) using the relation
>> Fout = Fin * (M / N), with duty cycle controlled by a separate D
>> register. The clock output is routed over a gpio controlled pin.
>>
>> Signed-off-by: Taniya Das <taniya.das@xxxxxxxxxxxxxxxx>
>> ---
>> .../devicetree/bindings/clock/qcom,clk-gp-mnd.yaml | 98 ++++++++++++++++++++++
>> 1 file changed, 98 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/clock/qcom,clk-gp-mnd.yaml b/Documentation/devicetree/bindings/clock/qcom,clk-gp-mnd.yaml
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..8141f392c5d70acfc42cf1ff4b1722e1eff23afa
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/qcom,clk-gp-mnd.yaml
>
> Use fallback as filename, so qcom,sc7280-gp-mnd.yaml

Sorry my bad, should have renamed it.

>
>> @@ -0,0 +1,98 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/clock/qcom,clk-gp-mnd.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm Peripheral Web's PDM GP_MN Clock Divider
>> +
>> +maintainers:
>> + - Taniya Das <taniya.das@xxxxxxxxxxxxxxxx>
>> +
>> +description: |
>> + The Peripheral Web's PDM GP_MN clock divider receives an input clock
>> + (TCXO4) with frequency Fin and generates an output clock with
>> + frequency Fout = Fin * (M / N) and a duty cycle controlled by D
>> + and routed over a gpio pin.
>> +
>> + The divider is configured using three registers:
>> +
>> + - GP_MN_CLK_MDIV: holds the M value.
>> + - GP_MN_CLK_NDIV: holds the ones complement of (N - M).
>> + - GP_MN_CLK_DUTY: holds the D value.
>> +
>> + For every N input clock cycles the GP_MN produces M output clock
>> + cycles. D is the number of native clock cycles in which the GP_MN
>> + output is low, counted over 2^13 native clock cycles.
>> +
>> + Hardware constraints:
>> +
>> + M <= 511
>> + N <= 8191
>> + N > 2 * M
>> + M < D < (N - M)
>> + M and N must be coprime (no common divisor)
>> +
>> +properties:
>> + compatible:
>> + oneOf:
>> + - const: qcom,sc7280-gp-mnd
>> + - items:
>> + - enum:
>> + - qcom,sa8775p-gp-mnd
>> + - qcom,qcs8300-gp-mnd
>> + - qcom,qcs615-gp-mnd
>> + - const: qcom,sc7280-gp-mnd
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + clocks:
>> + items:
>> + - description: PDM XO4 source clock
>> + - description: PDM AHB bus clock for register access
>> +
>> + clock-names:
>> + items:
>> + - const: pdm_clk
>
> pdm
>
>> + - const: ahb_clk
>
> ahb
>

will drop _clk suffix.

>> +
>> + '#clock-cells':
>> + const: 0
>> +
>> + assigned-clocks:
>> + maxItems: 1
>> + description: Parent clock phandle used to set the input frequency.
>> +
>> + assigned-clock-rates:
>> + maxItems: 1
>> + description: |
>> + Rate for the parent clock in Hz.
>> + Supported rates: 19200000, 9600000, 6400000, 4800000.
>
> Neither assigned-clocks nor assigned-clock-rates should be needed.
> Parent clock is outside of scope of this binding.
>

Sure I will remove, but the parent clock input is a requirement of the
Hardware and the output of this module entirely depends on the above
ranges of frequencies mentioned and that is the reason to keep the rates
specifically. I will capture it in the description and hope that should
be fine.

>
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - clock-names
>> + - '#clock-cells'
>> + - assigned-clocks
>> + - assigned-clock-rates
>
> And these two should not be required, either.

Will remove.


--
Thanks,
Taniya Das