Message ID | 20230526062626.1180-1-bbhushan2@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2,v8] dt-bindings: watchdog: marvell GTI system watchdog driver | expand |
Yo Bharat, On Fri, May 26, 2023 at 11:56:25AM +0530, Bharat Bhushan wrote: > Add binding documentation for the Marvell GTI system > watchdog driver. > > Signed-off-by: Bharat Bhushan <bbhushan2@marvell.com> > --- > v8: > - Compatible name as per soc name I am sorry, but I do not understand this. > > .../watchdog/marvell,octeontx2-wdt.yaml | 73 +++++++++++++++++++ > 1 file changed, 73 insertions(+) > create mode 100644 Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml > > diff --git a/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml b/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml > new file mode 100644 > index 000000000000..3c642359d960 > --- /dev/null > +++ b/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml > @@ -0,0 +1,73 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/watchdog/marvell,octeontx2-wdt.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Marvell Global Timer (GTI) system watchdog > + > +allOf: > + - $ref: watchdog.yaml# From v7: Put allOf after maintainers:. > + > +maintainers: > + - Bharat Bhushan <bbhushan2@marvell.com> > + > +properties: > + compatible: > + enum: > + - marvell,cn9670-wdt > + - marvell,cn9880-wdt > + - marvell,cnf9535-wdt > + - marvell,cn10624-wdt > + - marvell,cn10308-wdt > + - marvell,cnf10518-wdt static const struct of_device_id gti_wdt_of_match[] = { { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, { .compatible = "marvell,cn9880-wdt", .data = &match_data_octeontx2}, { .compatible = "marvell,cnf9535-wdt", .data = &match_data_octeontx2}, { .compatible = "marvell,cn10624-wdt", .data = &match_data_cn10k}, { .compatible = "marvell,cn10308-wdt", .data = &match_data_cn10k}, { .compatible = "marvell,cnf10518-wdt", .data = &match_data_cn10k}, This is a fat hint that you should be using fallback compatibles here. You even had a fallback setup in your last revision, but you seem to have removed it alongside the removal of the wildcards. Why did you do that? > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + minItems: 1 From v7: maxItems instead. You see it is different than above properties? > + > + clock-names: > + minItems: 1 From v7: Need to define names. Cheers, Conor.
Hi Conor, Please see inline > -----Original Message----- > From: Conor Dooley <conor@kernel.org> > Sent: Saturday, May 27, 2023 1:07 AM > To: Bharat Bhushan <bbhushan2@marvell.com> > Cc: wim@linux-watchdog.org; linux@roeck-us.net; robh+dt@kernel.org; > krzysztof.kozlowski+dt@linaro.org; linux-watchdog@vger.kernel.org; > devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Sunil Kovvuri > Goutham <sgoutham@marvell.com> > Subject: [EXT] Re: [PATCH 1/2 v8] dt-bindings: watchdog: marvell GTI system > watchdog driver > > External Email > > ---------------------------------------------------------------------- > Yo Bharat, > > On Fri, May 26, 2023 at 11:56:25AM +0530, Bharat Bhushan wrote: > > Add binding documentation for the Marvell GTI system watchdog driver. > > > > Signed-off-by: Bharat Bhushan <bbhushan2@marvell.com> > > --- > > v8: > > - Compatible name as per soc name > > I am sorry, but I do not understand this. I mean to say replaced soc family name from compatible with actual soc names > > > > > .../watchdog/marvell,octeontx2-wdt.yaml | 73 +++++++++++++++++++ > > 1 file changed, 73 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yam > > l > > b/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yam > > l > > new file mode 100644 > > index 000000000000..3c642359d960 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt > > +++ .yaml > > @@ -0,0 +1,73 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 > > +--- > > +$id: > > +http://devicetree.org/schemas/watchdog/marvell,octeontx2-wdt.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Marvell Global Timer (GTI) system watchdog > > + > > +allOf: > > + - $ref: watchdog.yaml# > > From v7: > Put allOf after maintainers:. Thanks for pointing, I am sorry, missed almost all comments on v7. Will resolve this and below as well in next version > > > + > > +maintainers: > > + - Bharat Bhushan <bbhushan2@marvell.com> > > + > > +properties: > > + compatible: > > + enum: > > + - marvell,cn9670-wdt > > + - marvell,cn9880-wdt > > + - marvell,cnf9535-wdt > > + - marvell,cn10624-wdt > > + - marvell,cn10308-wdt > > + - marvell,cnf10518-wdt > > static const struct of_device_id gti_wdt_of_match[] = { > { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, > { .compatible = "marvell,cn9880-wdt", .data = &match_data_octeontx2}, > { .compatible = "marvell,cnf9535-wdt", .data = &match_data_octeontx2}, > { .compatible = "marvell,cn10624-wdt", .data = &match_data_cn10k}, > { .compatible = "marvell,cn10308-wdt", .data = &match_data_cn10k}, > { .compatible = "marvell,cnf10518-wdt", .data = &match_data_cn10k}, > > This is a fat hint that you should be using fallback compatibles here. > You even had a fallback setup in your last revision, but you seem to have > removed it alongside the removal of the wildcards. Why did you do that? Not sure I understand this comment, Compatible in last version was as below: + properties: + compatible: + oneOf: + - const: marvell,octeontx2-wdt + - items: + - enum: + - marvell,octeontx2-95xx-wdt + - marvell,octeontx2-96xx-wdt + - marvell,octeontx2-98xx-wdt + - const: marvell,octeontx2-wdt + - const: marvell,cn10k-wdt + - items: + - enum: + - marvell,cn10kx-wdt + - marvell,cnf10kx-wdt + - const: marvell,cn10k-wdt By fallback do you mean " const: marvell,cn10k-wdt" and " const: marvell,octeontx2-wdt" ? If yes I removed because "octeontx2" and "cn10k" are soc family name and no a specific soc. Thanks -Bharat > > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + minItems: 1 > > From v7: > maxItems instead. You see it is different than above properties? > > > + > > + clock-names: > > + minItems: 1 > > From v7: > Need to define names. > > Cheers, > Conor.
On Sat, May 27, 2023 at 02:53:25PM +0000, Bharat Bhushan wrote: > From: Conor Dooley <conor@kernel.org> > > On Fri, May 26, 2023 at 11:56:25AM +0530, Bharat Bhushan wrote: > > > +properties: > > > + compatible: > > > + enum: > > > + - marvell,cn9670-wdt > > > + - marvell,cn9880-wdt > > > + - marvell,cnf9535-wdt > > > + - marvell,cn10624-wdt > > > + - marvell,cn10308-wdt > > > + - marvell,cnf10518-wdt > > > > static const struct of_device_id gti_wdt_of_match[] = { > > { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, > > { .compatible = "marvell,cn9880-wdt", .data = &match_data_octeontx2}, > > { .compatible = "marvell,cnf9535-wdt", .data = &match_data_octeontx2}, > > { .compatible = "marvell,cn10624-wdt", .data = &match_data_cn10k}, > > { .compatible = "marvell,cn10308-wdt", .data = &match_data_cn10k}, > > { .compatible = "marvell,cnf10518-wdt", .data = &match_data_cn10k}, > > > > This is a fat hint that you should be using fallback compatibles here. > > You even had a fallback setup in your last revision, but you seem to have > > removed it alongside the removal of the wildcards. Why did you do that? > > Not sure I understand this comment, Compatible in last version was as below: > > + properties: > + compatible: > + oneOf: > + - const: marvell,octeontx2-wdt > + - items: > + - enum: > + - marvell,octeontx2-95xx-wdt > + - marvell,octeontx2-96xx-wdt > + - marvell,octeontx2-98xx-wdt > + - const: marvell,octeontx2-wdt > + - const: marvell,cn10k-wdt > + - items: > + - enum: > + - marvell,cn10kx-wdt > + - marvell,cnf10kx-wdt > + - const: marvell,cn10k-wdt > > By fallback do you mean " const: marvell,cn10k-wdt" and > "const: marvell,octeontx2-wdt" ? If yes I removed because "octeontx2" > and "cn10k" are soc family name and no a specific soc. No, I meant that you should permit compatible = "marvell,cn9880-wdt", "marvell,cn9670-wdt"; and compatible = "marvell,cnf9535-wdt", "marvell,cn9670-wdt"; and compatible = "marvell,cn9670-wdt"; so the driver only needs to contain { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, instead of { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, { .compatible = "marvell,cn9880-wdt", .data = &match_data_octeontx2}, { .compatible = "marvell,cnf9535-wdt", .data = &match_data_octeontx2}, Note that using fallback compatibles is separate from using wildcards, and I was not suggesting that you go back to wildcards ;) Cheers, Conor.
Please see inline > -----Original Message----- > From: Conor Dooley <conor@kernel.org> > Sent: Saturday, May 27, 2023 9:40 PM > To: Bharat Bhushan <bbhushan2@marvell.com> > Cc: wim@linux-watchdog.org; linux@roeck-us.net; robh+dt@kernel.org; > krzysztof.kozlowski+dt@linaro.org; linux-watchdog@vger.kernel.org; > devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Sunil Kovvuri > Goutham <sgoutham@marvell.com> > Subject: Re: [EXT] Re: [PATCH 1/2 v8] dt-bindings: watchdog: marvell GTI system > watchdog driver > > On Sat, May 27, 2023 at 02:53:25PM +0000, Bharat Bhushan wrote: > > From: Conor Dooley <conor@kernel.org> > > > On Fri, May 26, 2023 at 11:56:25AM +0530, Bharat Bhushan wrote: > > > > > +properties: > > > > + compatible: > > > > + enum: > > > > + - marvell,cn9670-wdt > > > > + - marvell,cn9880-wdt > > > > + - marvell,cnf9535-wdt > > > > + - marvell,cn10624-wdt > > > > + - marvell,cn10308-wdt > > > > + - marvell,cnf10518-wdt > > > > > > static const struct of_device_id gti_wdt_of_match[] = { > > > { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, > > > { .compatible = "marvell,cn9880-wdt", .data = &match_data_octeontx2}, > > > { .compatible = "marvell,cnf9535-wdt", .data = &match_data_octeontx2}, > > > { .compatible = "marvell,cn10624-wdt", .data = &match_data_cn10k}, > > > { .compatible = "marvell,cn10308-wdt", .data = &match_data_cn10k}, > > > { .compatible = "marvell,cnf10518-wdt", .data = > > > &match_data_cn10k}, > > > > > > This is a fat hint that you should be using fallback compatibles here. > > > You even had a fallback setup in your last revision, but you seem to > > > have removed it alongside the removal of the wildcards. Why did you do > that? > > > > Not sure I understand this comment, Compatible in last version was as below: > > > > + properties: > > + compatible: > > + oneOf: > > + - const: marvell,octeontx2-wdt > > + - items: > > + - enum: > > + - marvell,octeontx2-95xx-wdt > > + - marvell,octeontx2-96xx-wdt > > + - marvell,octeontx2-98xx-wdt > > + - const: marvell,octeontx2-wdt > > + - const: marvell,cn10k-wdt > > + - items: > > + - enum: > > + - marvell,cn10kx-wdt > > + - marvell,cnf10kx-wdt > > + - const: marvell,cn10k-wdt > > > > By fallback do you mean " const: marvell,cn10k-wdt" and > > "const: marvell,octeontx2-wdt" ? If yes I removed because "octeontx2" > > and "cn10k" are soc family name and no a specific soc. > > No, I meant that you should permit > compatible = "marvell,cn9880-wdt", "marvell,cn9670-wdt"; and > compatible = "marvell,cnf9535-wdt", "marvell,cn9670-wdt"; and > compatible = "marvell,cn9670-wdt"; > so the driver only needs to contain > { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, > instead of > { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, > { .compatible = "marvell,cn9880-wdt", .data = &match_data_octeontx2}, > { .compatible = "marvell,cnf9535-wdt", .data = &match_data_octeontx2}, > > Note that using fallback compatibles is separate from using wildcards, and I was > not suggesting that you go back to wildcards ;) Fallback you mentioned make code look simple. Is below representation correct for above mentioned fallback? properties: compatible: oneOf: - const: marvell,cn9670-wdt - items: - enum: - marvell,cn9880-wdt - marvell,cnf9535-wdt - const: marvell,cn9670-wdt - const: marvell,cn10624-wdt - items: - enum: - marvell,cn10308-wdt - marvell,cnf10518-wdt - const: marvell,cn10624-wdt And driver will have { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, { .compatible = "marvell,cn10624-wdt", .data = &match_data_cn10k}, Thanks -Bharat > > Cheers, > Conor.
Hey Bharat, On Mon, May 29, 2023 at 06:14:07AM +0000, Bharat Bhushan wrote: > Fallback you mentioned make code look simple. Is below representation correct for above mentioned fallback? > > properties: > compatible: > oneOf: > - const: marvell,cn9670-wdt > - items: > - enum: > - marvell,cn9880-wdt > - marvell,cnf9535-wdt > - const: marvell,cn9670-wdt > - const: marvell,cn10624-wdt > - items: > - enum: > - marvell,cn10308-wdt > - marvell,cnf10518-wdt > - const: marvell,cn10624-wdt Instead of having const: bits for each of the single-compatible ones, if you are not going to add descriptions, I'd probably do: properties: compatible: oneOf: - enum: - marvell,cn9670-wdt - marvell,cn10624-wdt - items: - enum: - marvell,cn9880-wdt - marvell,cnf9535-wdt - const: marvell,cn9670-wdt - items: - enum: - marvell,cn10308-wdt - marvell,cnf10518-wdt - const: marvell,cn10624-wdt > And driver will have > { .compatible = "marvell,cn9670-wdt", .data = &match_data_octeontx2}, > { .compatible = "marvell,cn10624-wdt", .data = &match_data_cn10k}, Otherwise, looks good to me. You should probably also rename the file to match one of the compatibles contained in it. Thanks, Conor.
diff --git a/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml b/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml new file mode 100644 index 000000000000..3c642359d960 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml @@ -0,0 +1,73 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/watchdog/marvell,octeontx2-wdt.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Marvell Global Timer (GTI) system watchdog + +allOf: + - $ref: watchdog.yaml# + +maintainers: + - Bharat Bhushan <bbhushan2@marvell.com> + +properties: + compatible: + enum: + - marvell,cn9670-wdt + - marvell,cn9880-wdt + - marvell,cnf9535-wdt + - marvell,cn10624-wdt + - marvell,cn10308-wdt + - marvell,cnf10518-wdt + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + minItems: 1 + + clock-names: + minItems: 1 + + marvell,wdt-timer-index: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 63 + description: + An SoC have many timers (up to 64), firmware can reserve one or more timer + for some other use case and configures one of the global timer as watchdog + timer. Firmware will update this field with the timer number configured + as watchdog timer. + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + soc { + #address-cells = <2>; + #size-cells = <2>; + + watchdog@802000040000 { + compatible = "marvell,cn9670-wdt"; + reg = <0x00008020 0x00040000 0x00000000 0x00020000>; + interrupts = <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>; + clocks = <&sclk>; + clock-names = "ref_clk"; + marvell,wdt-timer-index = <63>; + }; + }; + +...
Add binding documentation for the Marvell GTI system watchdog driver. Signed-off-by: Bharat Bhushan <bbhushan2@marvell.com> --- v8: - Compatible name as per soc name .../watchdog/marvell,octeontx2-wdt.yaml | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Documentation/devicetree/bindings/watchdog/marvell,octeontx2-wdt.yaml