timestamp.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Dipen Patel <dipenp@nvidia.com>
To: Rob Herring <robh@kernel.org>
Cc: thierry.reding@gmail.com, jonathanh@nvidia.com,
	linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-gpio@vger.kernel.org, linus.walleij@linaro.org,
	devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
	timestamp@lists.linux.dev, krzysztof.kozlowski+dt@linaro.org,
	brgl@bgdev.pl, corbet@lwn.net, gregkh@linuxfoundation.org
Subject: Re: [PATCH V4 04/10] dt-bindings: timestamp: Add nvidia,gpio-controller
Date: Fri, 24 Mar 2023 11:51:40 -0700	[thread overview]
Message-ID: <7f2dc5cf-78b5-81c6-0012-26b1adce1c86@nvidia.com> (raw)
In-Reply-To: <20230324171329.GA2062332-robh@kernel.org>

On 3/24/23 10:13 AM, Rob Herring wrote:
> On Wed, Mar 22, 2023 at 06:29:23PM -0700, 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;
> 
> Or you just put the name in match data.

Not sure I have understood this comment, but "name" the first argument is
already there to supply to callback to match data. Also, this if else is
needed to know which "name" to provide.
> 
>>
>> 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
> 
> typo

ACK...
> 
>> property/binding does not break existing Tegra194 provider driver.
> 
> Making a new property required is an ABI break.
The driver code for the Tegra194 binds by old binding and does not need
this new property, the relevant code is part of this patch series.
> 
>> 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.
> 
> Explain what the GPIO controller is needed for rather than how this 
> changes the driver.
Doesn't "This is required..." statement addresses why GPIO controller is needed
for part? Or do you want detail explanation which is already part of the commit?
> 
>> +
>>    '#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>;
>> +              interrupts = <0 13 0x4>;
>> +              nvidia,int-threshold = <1>;
>> +              #timestamp-cells = <1>;
>> +    };
>> +
>> +  - |
>> +    tegra234_hte_aon: timestamp@c1e0000 {
>> +              compatible = "nvidia,tegra234-gte-aon";
>> +              reg = <0x0 0xc1e0000 0x0 0x10000>;
>>                interrupts = <0 13 0x4>;
>>                nvidia,int-threshold = <1>;
>> +              nvidia,gpio-controller = <&gpio_aon>;
>>                #timestamp-cells = <1>;
>>      };
>>  
>>    - |
>>      tegra_hte_lic: timestamp@3aa0000 {
>>                compatible = "nvidia,tegra194-gte-lic";
>> -              reg = <0x3aa0000 0x10000>;
>> +              reg = <0x0 0x3aa0000 0x0 0x10000>;
>>                interrupts = <0 11 0x4>;
>>                nvidia,int-threshold = <1>;
>>                #timestamp-cells = <1>;
>> -- 
>> 2.17.1
>>


  reply	other threads:[~2023-03-24 18:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23  1:29 [PATCH V4 00/10] Add Tegra234 HTE support Dipen Patel
2023-03-23  1:29 ` [PATCH V4 01/10] MAINTAINERS: Add HTE/timestamp subsystem details Dipen Patel
2023-03-23  1:29 ` [PATCH V4 02/10] dt-bindings: timestamp: Add Tegra234 support Dipen Patel
2023-03-25 11:04   ` Krzysztof Kozlowski
2023-03-25 11:06   ` Krzysztof Kozlowski
2023-03-23  1:29 ` [PATCH V4 03/10] dt-bindings: timestamp: Deprecate nvidia,slices property Dipen Patel
2023-03-23  8:34   ` Linus Walleij
2023-03-25 11:05   ` Krzysztof Kozlowski
2023-04-03 18:49     ` Dipen Patel
2023-03-23  1:29 ` [PATCH V4 04/10] dt-bindings: timestamp: Add nvidia,gpio-controller Dipen Patel
2023-03-23  8:36   ` Linus Walleij
2023-03-23 13:58   ` Rob Herring
2023-03-24 17:13   ` Rob Herring
2023-03-24 18:51     ` Dipen Patel [this message]
2023-03-25 11:09       ` Krzysztof Kozlowski
2023-04-04  4:24         ` Dipen Patel
2023-04-04  5:33           ` Krzysztof Kozlowski
2023-04-04 17:31             ` Dipen Patel
2023-04-04 10:28           ` Thierry Reding
2023-04-04 17:30             ` Dipen Patel
2023-03-25 11:07   ` Krzysztof Kozlowski
2023-03-27 16:58     ` Dipen Patel
2023-04-04 10:30       ` Thierry Reding
2023-04-04 17:20         ` Dipen Patel
2023-03-23  1:29 ` [PATCH V4 05/10] arm64: tegra: Add Tegra234 GTE nodes Dipen Patel
2023-03-23  1:29 ` [PATCH V4 06/10] hte: Re-phrase tegra API document Dipen Patel
2023-04-05  2:24   ` Bagas Sanjaya
2023-04-06  0:03     ` Dipen Patel
2023-03-23  1:29 ` [PATCH V4 07/10] hte: Add Tegra234 provider Dipen Patel
2023-03-23  1:29 ` [PATCH V4 08/10] hte: Deprecate nvidia,slices property Dipen Patel
2023-03-23  1:29 ` [PATCH V4 09/10] hte: handle nvidia,gpio-controller property Dipen Patel
2023-03-23  8:37   ` Linus Walleij
2023-03-23  1:29 ` [PATCH V4 10/10] gpio: tegra186: Add Tegra234 hte support Dipen Patel
2023-03-23  8:38   ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7f2dc5cf-78b5-81c6-0012-26b1adce1c86@nvidia.com \
    --to=dipenp@nvidia.com \
    --cc=brgl@bgdev.pl \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jonathanh@nvidia.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=timestamp@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).