Re: [PATCH v3 2/5] dt-bindings: cpufreq: apple,soc-cpufreq: Add binding for Apple SoC cpufreq

From: Krzysztof Kozlowski
Date: Tue Oct 25 2022 - 14:56:59 EST


On 25/10/2022 13:22, Hector Martin wrote:
> On 26/10/2022 01.01, Krzysztof Kozlowski wrote:
>> On 24/10/2022 00:39, Hector Martin wrote:
>>> This binding represents the cpufreq/DVFS hardware present in Apple SoCs.
>>> The hardware has an independent controller per CPU cluster, and we
>>> represent them as unique nodes in order to accurately describe the
>>> hardware. The driver is responsible for binding them as a single cpufreq
>>> device (in the Linux cpufreq model).
>>>
>>> Signed-off-by: Hector Martin <marcan@xxxxxxxxx>
>>> ---
>>> .../cpufreq/apple,cluster-cpufreq.yaml | 119 ++++++++++++++++++
>>> 1 file changed, 119 insertions(+)
>>> create mode 100644 Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
>>> new file mode 100644
>>> index 000000000000..b11452f91468
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
>>> @@ -0,0 +1,119 @@
>>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/cpufreq/apple,cluster-cpufreq.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Apple SoC cluster cpufreq device
>>
>> Few nits, in general looks fine to me.
>>
>>> +
>>> +maintainers:
>>> + - Hector Martin <marcan@xxxxxxxxx>
>>> +
>>> +description: |
>>> + Apple SoCs (e.g. M1) have a per-cpu-cluster DVFS controller that is part of
>>> + the cluster management register block. This binding uses the standard
>>> + operating-points-v2 table to define the CPU performance states, with the
>>> + opp-level property specifying the hardware p-state index for that level.
>>> +
>>> +properties:
>>> + compatible:
>>> + oneOf:
>>> + - items:
>>> + - const: apple,t8103-cluster-cpufreq
>>> + - const: apple,cluster-cpufreq
>>> + - items:
>>> + - const: apple,t6000-cluster-cpufreq
>>> + - const: apple,t8103-cluster-cpufreq
>>> + - const: apple,cluster-cpufreq
>>> + - items:
>>> + - const: apple,t8112-cluster-cpufreq
>>
>> With the first one (t8103) - it's an enum.
>
> This is deliberate. t6000 is compatible with t8103, but t8112 is not
> (though all are compatible with what the generic apple,cluster-cpufreq
> compatible implies).

I was not talking about t6000. I was talking about two entries - first
and last - which should be just an enum. There is no compatibility, so
what is here deliberate? To not make enum things which are an enum?

Best regards,
Krzysztof