Re: [PATCH V4 04/10] dt-bindings: timestamp: Add nvidia,gpio-controller
From: Dipen Patel <dipenp@nvidia.com>
Date: 2023-03-27 16:58:34
Also in:
linux-doc, linux-gpio, linux-tegra, lkml
On 3/25/23 4:07 AM, Krzysztof Kozlowski wrote:
On 23/03/2023 02:29, Dipen Patel wrote:quoted
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@nvidia.com> --- .../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