On 3/25/23 4:07 AM, Krzysztof Kozlowski wrote: > On 23/03/2023 02:29, Dipen Patel wrote: >> Introducing nvidia,gpio-controller property from Tegra234 SoCs onwards. >> This is done to help below case. >> >> Without this property code would look like: >> if (of_device_is_compatible(dev->of_node, "nvidia,tegra194-gte-aon")) >> hte_dev->c = gpiochip_find("tegra194-gpio-aon", >> tegra_get_gpiochip_from_name); >> else if (of_device_is_compatible(dev->of_node, "nvidia,tegra234-gte-aon")) >> hte_dev->c = gpiochip_find("tegra234-gpio-aon", >> tegra_get_gpiochip_from_name); >> else >> return -ENODEV; >> >> This means for every future addition of the compatible string, if else >> condition statements have to be expanded. >> >> With the property: >> gpio_ctrl = of_parse_phandle(dev->of_node, "nvidia,gpio-controller", 0); >> .... >> hte_dev->c = gpiochip_find(gpio_ctrl, tegra_get_gpiochip_from_of_node); >> >> This simplifies the code significantly. The introdunction of this >> property/binding does not break existing Tegra194 provider driver. >> >> Signed-off-by: Dipen Patel <dipenp@xxxxxxxxxx> >> --- >> .../timestamp/nvidia,tegra194-hte.yaml | 31 +++++++++++++++++-- >> 1 file changed, 29 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml >> index eafc33e9ae2e..841273a3d8ae 100644 >> --- a/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml >> +++ b/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml >> @@ -51,6 +51,12 @@ properties: >> LIC instance has 11 slices and Tegra234 LIC has 17 slices. >> enum: [3, 11, 17] >> >> + nvidia,gpio-controller: >> + $ref: /schemas/types.yaml#/definitions/phandle >> + description: >> + The phandle to AON gpio controller instance. This is required to handle >> + namespace conversion between GPIO and GTE. >> + >> '#timestamp-cells': >> description: >> This represents number of line id arguments as specified by the >> @@ -65,22 +71,43 @@ required: >> - interrupts >> - "#timestamp-cells" >> >> +allOf: >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - nvidia,tegra234-gte-aon >> + then: >> + required: >> + - nvidia,gpio-controller >> + >> additionalProperties: false >> >> examples: >> - | >> tegra_hte_aon: timestamp@c1e0000 { >> compatible = "nvidia,tegra194-gte-aon"; >> - reg = <0xc1e0000 0x10000>; >> + reg = <0x0 0xc1e0000 0x0 0x10000>; > > This is not really explained in commit msg... are you sure you tested it? I have to revert this part back in next patch as when I upgraded dtsschema it gave me errors. > > > Best regards, > Krzysztof >