Re: [PATCH v14 3/4] dt-bindings: msm: dsi: add yaml schemas for DSI PHY bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2021-03-31 01:12, Rob Herring wrote:
On Tue, Mar 30, 2021 at 02:52:29PM +0530, mkrishn@xxxxxxxxxxxxxx wrote:
On 2021-03-29 08:49, Stephen Boyd wrote:
> Quoting mkrishn@xxxxxxxxxxxxxx (2021-03-26 03:36:30)
> > On 2021-03-26 04:28, Stephen Boyd wrote:
> > > Quoting Krishna Manikandan (2021-03-25 05:01:00)
> > >> diff --git
> > >> a/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml
> > >> b/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml
> > >> new file mode 100644
> > >> index 0000000..4a26bef
> > >> --- /dev/null
> > >> +++ b/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml
> > >> @@ -0,0 +1,68 @@
> > >> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
> > >> +%YAML 1.2
> > >> +---
> > >> +$id: http://devicetree.org/schemas/display/msm/dsi-phy-10nm.yaml#
> > >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > >> +
> > >> +title: Qualcomm Display DSI 10nm PHY
> > >> +
> > >> +maintainers:
> > >> +  - Krishna Manikandan <mkrishn@xxxxxxxxxxxxxx>
> > >> +
> > >> +allOf:
> > >> +  - $ref: dsi-phy-common.yaml#
> > >> +
> > >> +properties:
> > >> +  compatible:
> > >> +    oneOf:
> [..]
> > >> and
> > >> +      connected to VDDA_MIPI_DSI_0_PLL_0P9 pin for sdm845 target
> > >> +
> > >> +required:
> > >> +  - compatible
> > >> +  - reg
> > >> +  - reg-names
> > >> +  - vdds-supply
> > >> +
> > >> +unevaluatedProperties: false
> > >
> > > additionalProperties: false instead? This comment applies to the other
> > > bindings in this patch.
> >
> > Hi Stephen,
> > We are referencing dsi-phy-common.yaml in this file. Since the
> > properties of dsi-phy-common.yaml are applicable to this file also, I
> > added unevaluatedProperties: false. If we add additionalProperties:
> > false instead, then the properties of dsi-phy-common.yaml will not be
> > applicable here and this will throw an error if we add the properties
> > from dsi-phy-common.yaml in the example.
> >
>
> Does that matter? I was wondering about that and so I peeked at the
> qcom pinctrl binding and it seems to follow a similar design but doesn't
> have unevaluatedProperties: false. Instead it has additionalProperies:
> false. See qcom,sc8180x-pinctrl.yaml for an example. So did you try it
> or does something say you can't do this?

Hi Stephen,
I had tried the same thing in one of my initial patches and I got a comment from Rob that we have to use unevaluatedProperties when we are referring another file(https://patchwork.kernel.org/project/linux-arm-msm/patch/1589868421-30062-1-git-send-email-mkrishn@xxxxxxxxxxxxxx/)

Maybe I had a wrong assumption that you needed the child nodes too?

In latest dt-schema tool, we will get error if we try to change it to
additionalProperties: false.
For example, in this patch "#clock-cells' and '#phy-cells' are mentioned in dsi-phy-common.yaml and I am referring this file in dsi-phy-10nm.yaml. If I
add
additionalProperties: false instead of unevaluatedProperties: false, I will
get the error mentioned below.

I checked qcom,sc8180x-pinctrl.yaml that you had mentioned in the comment
and this file is compiling without any issues even though it is using
additionalProperties: false. But I see that the properties mentioned in the reference file (in this case, qcom,tlmm-common.yaml) are again declared in the main file qcom,sc8180x-pinctrl.yaml even though these are mentioned as required properties in the common yaml file. If I remove these properties from qcom,sc8180x-pinctrl.yaml, I can see the same error that I am getting for my file also if additionalProperties are used. If I follow the same
approach , ie define the properties again in dsi-phy-10nm.yaml and add
additionalProperties: false, I dont see any errors during check (working
change mentioned below). Should I make this change for all the files?

Error logs:
mkrishn@mkrishn-linux:/local/mnt/workspace/linux-next-latest/linux-next$
make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml CHKDT Documentation/devicetree/bindings/processed-schema-examples.json SCHEMA Documentation/devicetree/bindings/processed-schema-examples.json
  DTEX
Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.example.dts
  DTC
Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.example.dt.yaml
  CHECK
Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.example.dt.yaml
/local/mnt/workspace/linux-next-latest/linux-next/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.example.dt.yaml:
dsi-phy@ae94400: '#clock-cells', '#phy-cells', 'clock-names', 'clocks' do
not match any of the regexes: 'pinctrl-[0-9]+'
From schema: /local/mnt/workspace/linux-next-latest/linux-next/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml

Working Change:
--- a/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dsi-phy-10nm.yaml
@@ -30,6 +30,11 @@ properties:
       - const: dsi_phy_lane
       - const: dsi_pll

+  '#clock-cells': true
+  '#phy-cells': true
+  clocks: true
+  clock-names: true
+
   vdds-supply:
     description: |
Connected to DSI0_MIPI_DSI_PLL_VDDA0P9 pin for sc7180 target and
@@ -41,7 +46,7 @@ required:
   - reg-names
   - vdds-supply

-unevaluatedProperties: false
+additionalProperties: false

This works if you want to use some, but not all properties in a
referenced schema. If all apply or listing them all here is too much
duplication (such as child nodes, but that's a judgement call), then use
'unevaluatedProperties'.

unevaluatedProperties is also currently a nop because the underlying
tools don't yet support it. So it won't catch any errors and those
errors will all have to be fixed when the tools add support.

Rob

Thanks Rob for the clarification. I will make the changes accordingly.

Thanks,
Krishna



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux