Re: [TEGRA194_CPUFREQ PATCH v5 1/4] dt-bindings: arm: Add t194 ccplex compatible and bpmp property

From: Rob Herring
Date: Tue Jul 14 2020 - 09:46:35 EST


On Tue, Jul 14, 2020 at 5:44 AM Sumit Gupta <sumitg@xxxxxxxxxx> wrote:
>
>
>
> > On Mon, Jul 13, 2020 at 07:36:46PM +0530, Sumit Gupta wrote:
> >> To do frequency scaling on all CPUs within T194 CPU Complex, we need
> >> to query BPMP for data on valid operating points. Document a compatible
> >> string under 'cpus' node to represent the CPU Complex for binding drivers
> >> like cpufreq which don't have their node or CPU Complex node to bind to.
> >> Also, document a property to point to the BPMP device that can be queried
> >> for all CPUs.
> >
> > The cpus.yaml binding documents what's in 'cpu' nodes, not 'cpus'
> > node. AIUI, the latter is what you want. You should do your own schema
> > file here.
> >
> Do you mean to change existing file name from 'cpus.yaml' to 'cpu.yaml'
> and create new 'cpus.yaml' file?
> I think it's better to incorporate the change in existing 'cpus.yaml'
> file to keep both cpu@X and cpus node details together. Please suggest.

No, I'm suggesting you create nvidia,tegra194-ccplex.yaml.


> >> Signed-off-by: Sumit Gupta <sumitg@xxxxxxxxxx>
> >> ---
> >> Documentation/devicetree/bindings/arm/cpus.yaml | 11 +++++++++++
> >> 1 file changed, 11 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml
> >> index a018147..9b328e3 100644
> >> --- a/Documentation/devicetree/bindings/arm/cpus.yaml
> >> +++ b/Documentation/devicetree/bindings/arm/cpus.yaml
> >> @@ -162,6 +162,7 @@ properties:
> >> - nvidia,tegra132-denver
> >> - nvidia,tegra186-denver
> >> - nvidia,tegra194-carmel
> >> + - nvidia,tegra194-ccplex
> >
> > Tegra194 has 2 different CPUs?
> >
> No, T194 SOC has homogeneous architecture with four clusters where each
> cluster has two symmetric cores. 'nvidia,tegra194-carmel' compatible
> string represents each cpu. 'nvidia,tegra194-ccplex' string represents
> the CPU Complex to bind cpufreq driver. The change was done as per
> discussion [1]

You are adding the compatible string to the cpu@N node compatible.

>
> >> - qcom,krait
> >> - qcom,kryo
> >> - qcom,kryo260
> >> @@ -255,6 +256,15 @@ properties:
> >>
> >> where voltage is in V, frequency is in MHz.
> >>
> >> + nvidia,bpmp:
> >> + $ref: '/schemas/types.yaml#/definitions/phandle'
> >> + description: |
> >> + Specifies the bpmp node that needs to be queried to get
> >> + operating point data for all CPUs.
> >> +
> >> + Optional for systems that have a "compatible"
> >> + property value of "nvidia,tegra194-ccplex".
> >> +
> >> power-domains:
> >> $ref: '/schemas/types.yaml#/definitions/phandle-array'
> >> description:
> >> @@ -340,6 +350,7 @@ required:
> >>
> >> dependencies:
> >> rockchip,pmu: [enable-method]
> >> + nvidia,bpmp: [compatible]
> >>
> >> examples:
> >> - |
> >> --
> >> 2.7.4
> >>
>
> [1] https://marc.info/?l=linux-arm-kernel&m=158999171528418&w=2