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 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



[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