diff mbox series

dt-bindings: spi: xilinx: Add clocks & clock-names properties

Message ID 20240923123242.2101562-1-amit.kumar-mahapatra@amd.com (mailing list archive)
State New
Headers show
Series dt-bindings: spi: xilinx: Add clocks & clock-names properties | expand

Commit Message

Mahapatra, Amit Kumar Sept. 23, 2024, 12:32 p.m. UTC
Include the 'clocks' and 'clock-names' properties in the AXI Quad-SPI
bindings. When the AXI4-Lite interface is enabled, the core operates in
legacy mode, maintaining backward compatibility with version 1.00, and
uses 's_axi_aclk' and 'ext_spi_clk'. For the AXI interface, it uses
's_axi4_aclk' and 'ext_spi_clk'.

Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
---
BRANCH: for-next
---
 .../devicetree/bindings/spi/spi-xilinx.yaml   | 29 +++++++++++++++++++
 1 file changed, 29 insertions(+)

Comments

Conor Dooley Sept. 24, 2024, 4:36 p.m. UTC | #1
On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> Include the 'clocks' and 'clock-names' properties in the AXI Quad-SPI
> bindings. When the AXI4-Lite interface is enabled, the core operates in
> legacy mode, maintaining backward compatibility with version 1.00, and
> uses 's_axi_aclk' and 'ext_spi_clk'. For the AXI interface, it uses
> 's_axi4_aclk' and 'ext_spi_clk'.
> 
> Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> ---
> BRANCH: for-next
> ---
>  .../devicetree/bindings/spi/spi-xilinx.yaml   | 29 +++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> index 4beb3af0416d..9dfec195ecd4 100644
> --- a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> +++ b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> @@ -12,6 +12,25 @@ maintainers:
>  allOf:
>    - $ref: spi-controller.yaml#

Please move the allOf block down to the end of the binding, after the
property definitions.

> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: xlnx,axi-quad-spi-1.00.a
> +    then:
> +      properties:
> +        clock-names:
> +          items:
> +            - const: s_axi_aclk
> +            - const: ext_spi_clk

These are all clocks, there should be no need to have "clk" in the
names.

> +
> +    else:
> +      properties:
> +        clock-names:
> +          items:
> +            - const: s_axi4_aclk
> +            - const: ext_spi_clk
> +
>  properties:
>    compatible:
>      enum:
> @@ -25,6 +44,12 @@ properties:
>    interrupts:
>      maxItems: 1
>  
> +  clocks:
> +    maxItems: 2
> +
> +  clock-names:
> +    maxItems: 2
> +
>    xlnx,num-ss-bits:
>      description: Number of chip selects used.
>      minimum: 1
> @@ -39,6 +64,8 @@ required:
>    - compatible
>    - reg
>    - interrupts
> +  - clocks
> +  - clock-names

New required properties are an ABI break, where is the driver patch
that makes use of these clocks?

Cheers,
Conor.

>  
>  unevaluatedProperties: false
>  
> @@ -49,6 +76,8 @@ examples:
>        interrupt-parent = <&intc>;
>        interrupts = <0 31 1>;
>        reg = <0x41e00000 0x10000>;
> +      clocks = <&clkc 72>, <&clkc 73>;
> +      clock-names = "s_axi4_aclk", "ext_spi_clk";
>        xlnx,num-ss-bits = <0x1>;
>        xlnx,num-transfer-bits = <32>;
>      };
> -- 
> 2.34.1
>
Mahapatra, Amit Kumar Sept. 25, 2024, 11:35 a.m. UTC | #2
Hello Conor,


> -----Original Message-----
> From: Conor Dooley <conor@kernel.org>
> Sent: Tuesday, September 24, 2024 10:07 PM
> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>
> Cc: broonie@kernel.org; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; Simek, Michal <michal.simek@amd.com>; linux-
> spi@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; linux-kernel@vger.kernel.org; git (AMD-Xilinx)
> <git@amd.com>; amitrkcian2002@gmail.com
> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties
> 
> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> > Include the 'clocks' and 'clock-names' properties in the AXI Quad-SPI
> > bindings. When the AXI4-Lite interface is enabled, the core operates
> > in legacy mode, maintaining backward compatibility with version 1.00,
> > and uses 's_axi_aclk' and 'ext_spi_clk'. For the AXI interface, it
> > uses 's_axi4_aclk' and 'ext_spi_clk'.
> >
> > Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> > ---
> > BRANCH: for-next
> > ---
> >  .../devicetree/bindings/spi/spi-xilinx.yaml   | 29 +++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > index 4beb3af0416d..9dfec195ecd4 100644
> > --- a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > +++ b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > @@ -12,6 +12,25 @@ maintainers:
> >  allOf:
> >    - $ref: spi-controller.yaml#
> 
> Please move the allOf block down to the end of the binding, after the property
> definitions.
 
Sure, I'll take care of it in the next series
> 
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: xlnx,axi-quad-spi-1.00.a
> > +    then:
> > +      properties:
> > +        clock-names:
> > +          items:
> > +            - const: s_axi_aclk
> > +            - const: ext_spi_clk
> 
> These are all clocks, there should be no need to have "clk" in the names.

These are the names exported by the IP and used by the DTG.

> 
> > +
> > +    else:
> > +      properties:
> > +        clock-names:
> > +          items:
> > +            - const: s_axi4_aclk
> > +            - const: ext_spi_clk
> > +
> >  properties:
> >    compatible:
> >      enum:
> > @@ -25,6 +44,12 @@ properties:
> >    interrupts:
> >      maxItems: 1
> >
> > +  clocks:
> > +    maxItems: 2
> > +
> > +  clock-names:
> > +    maxItems: 2
> > +
> >    xlnx,num-ss-bits:
> >      description: Number of chip selects used.
> >      minimum: 1
> > @@ -39,6 +64,8 @@ required:
> >    - compatible
> >    - reg
> >    - interrupts
> > +  - clocks
> > +  - clock-names
> 
> New required properties are an ABI break, where is the driver patch that makes use
> of these clocks?

Alright, I will remove these from the required properties to avoid 
breaking the ABI. We're working on the driver patch and will send it once 
it's ready.

Regards,
Amit
> 
> Cheers,
> Conor.
> 
> >
> >  unevaluatedProperties: false
> >
> > @@ -49,6 +76,8 @@ examples:
> >        interrupt-parent = <&intc>;
> >        interrupts = <0 31 1>;
> >        reg = <0x41e00000 0x10000>;
> > +      clocks = <&clkc 72>, <&clkc 73>;
> > +      clock-names = "s_axi4_aclk", "ext_spi_clk";
> >        xlnx,num-ss-bits = <0x1>;
> >        xlnx,num-transfer-bits = <32>;
> >      };
> > --
> > 2.34.1
> >
Conor Dooley Sept. 25, 2024, 12:46 p.m. UTC | #3
On Wed, Sep 25, 2024 at 11:35:56AM +0000, Mahapatra, Amit Kumar wrote:
> Hello Conor,
> 
> 
> > -----Original Message-----
> > From: Conor Dooley <conor@kernel.org>
> > Sent: Tuesday, September 24, 2024 10:07 PM
> > To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>
> > Cc: broonie@kernel.org; robh@kernel.org; krzk+dt@kernel.org;
> > conor+dt@kernel.org; Simek, Michal <michal.simek@amd.com>; linux-
> > spi@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> > kernel@lists.infradead.org; linux-kernel@vger.kernel.org; git (AMD-Xilinx)
> > <git@amd.com>; amitrkcian2002@gmail.com
> > Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties
> > 
> > On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> > > Include the 'clocks' and 'clock-names' properties in the AXI Quad-SPI
> > > bindings. When the AXI4-Lite interface is enabled, the core operates
> > > in legacy mode, maintaining backward compatibility with version 1.00,
> > > and uses 's_axi_aclk' and 'ext_spi_clk'. For the AXI interface, it
> > > uses 's_axi4_aclk' and 'ext_spi_clk'.
> > >
> > > Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> > > ---
> > > BRANCH: for-next
> > > ---
> > >  .../devicetree/bindings/spi/spi-xilinx.yaml   | 29 +++++++++++++++++++
> > >  1 file changed, 29 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > index 4beb3af0416d..9dfec195ecd4 100644
> > > --- a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > +++ b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > @@ -12,6 +12,25 @@ maintainers:
> > >  allOf:
> > >    - $ref: spi-controller.yaml#
> > 
> > Please move the allOf block down to the end of the binding, after the property
> > definitions.
>  
> Sure, I'll take care of it in the next series
> > 
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: xlnx,axi-quad-spi-1.00.a
> > > +    then:
> > > +      properties:
> > > +        clock-names:
> > > +          items:
> > > +            - const: s_axi_aclk
> > > +            - const: ext_spi_clk
> > 
> > These are all clocks, there should be no need to have "clk" in the names.
> 
> These are the names exported by the IP and used by the DTG.

So? This is a binding, not a verilog file.

> > > +
> > > +    else:
> > > +      properties:
> > > +        clock-names:
> > > +          items:
> > > +            - const: s_axi4_aclk
> > > +            - const: ext_spi_clk
> > > +
> > >  properties:
> > >    compatible:
> > >      enum:
> > > @@ -25,6 +44,12 @@ properties:
> > >    interrupts:
> > >      maxItems: 1
> > >
> > > +  clocks:
> > > +    maxItems: 2
> > > +
> > > +  clock-names:
> > > +    maxItems: 2
> > > +
> > >    xlnx,num-ss-bits:
> > >      description: Number of chip selects used.
> > >      minimum: 1
> > > @@ -39,6 +64,8 @@ required:
> > >    - compatible
> > >    - reg
> > >    - interrupts
> > > +  - clocks
> > > +  - clock-names
> > 
> > New required properties are an ABI break, where is the driver patch that makes use
> > of these clocks?
> 
> Alright, I will remove these from the required properties to avoid 
> breaking the ABI. We're working on the driver patch and will send it once 
> it's ready.

What changed to make the clocks needed now? It's possible that making
them required is the correct thing to do, so breaking the ABI would be
justified (provided the driver can still handle there being no clocks).
Mahapatra, Amit Kumar Sept. 27, 2024, 9:30 a.m. UTC | #4
Hello Conor,


> > > Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> > > clock-names properties
> > >
> > > On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> > > > Include the 'clocks' and 'clock-names' properties in the AXI
> > > > Quad-SPI bindings. When the AXI4-Lite interface is enabled, the
> > > > core operates in legacy mode, maintaining backward compatibility
> > > > with version 1.00, and uses 's_axi_aclk' and 'ext_spi_clk'. For
> > > > the AXI interface, it uses 's_axi4_aclk' and 'ext_spi_clk'.
> > > >
> > > > Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
> > > > ---
> > > > BRANCH: for-next
> > > > ---
> > > >  .../devicetree/bindings/spi/spi-xilinx.yaml   | 29 +++++++++++++++++++
> > > >  1 file changed, 29 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > > b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > > index 4beb3af0416d..9dfec195ecd4 100644
> > > > --- a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > > +++ b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
> > > > @@ -12,6 +12,25 @@ maintainers:
> > > >  allOf:
> > > >    - $ref: spi-controller.yaml#
> > >
> > > Please move the allOf block down to the end of the binding, after
> > > the property definitions.
> >
> > Sure, I'll take care of it in the next series
> > >
> > > > +  - if:
> > > > +      properties:
> > > > +        compatible:
> > > > +          contains:
> > > > +            const: xlnx,axi-quad-spi-1.00.a
> > > > +    then:
> > > > +      properties:
> > > > +        clock-names:
> > > > +          items:
> > > > +            - const: s_axi_aclk
> > > > +            - const: ext_spi_clk
> > >
> > > These are all clocks, there should be no need to have "clk" in the names.
> >
> > These are the names exported by the IP and used by the DTG.
> 
> So? This is a binding, not a verilog file.

Axi Quad SPI is an FPGA-based IP, and the clock names are derived from the 
IP signal names as specified in the IP documentation [1]. 
We chose these names to ensure alignment with the I/O signal names listed 
in Table 2-2 on page 19 of [1].

[1] chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.com/content/dam/xilinx/support/documents/ip_documentation/axi_quad_spi/v3_2/pg153-axi-quad-spi.pdf

> 
> > > > +
> > > > +    else:
> > > > +      properties:
> > > > +        clock-names:
> > > > +          items:
> > > > +            - const: s_axi4_aclk
> > > > +            - const: ext_spi_clk
> > > > +
> > > >  properties:
> > > >    compatible:
> > > >      enum:
> > > > @@ -25,6 +44,12 @@ properties:
> > > >    interrupts:
> > > >      maxItems: 1
> > > >
> > > > +  clocks:
> > > > +    maxItems: 2
> > > > +
> > > > +  clock-names:
> > > > +    maxItems: 2
> > > > +
> > > >    xlnx,num-ss-bits:
> > > >      description: Number of chip selects used.
> > > >      minimum: 1
> > > > @@ -39,6 +64,8 @@ required:
> > > >    - compatible
> > > >    - reg
> > > >    - interrupts
> > > > +  - clocks
> > > > +  - clock-names
> > >
> > > New required properties are an ABI break, where is the driver patch
> > > that makes use of these clocks?
> >
> > Alright, I will remove these from the required properties to avoid
> > breaking the ABI. We're working on the driver patch and will send it
> > once it's ready.
> 
> What changed to make the clocks needed now? It's possible that making them
> required is the correct thing to do, so breaking the ABI would be justified (provided
> the driver can still handle there being no clocks).

Axi Quad SPI is an FPGA-based IP that was previously tested on MicroBlaze 
soft-core systems, where the driver didn't need to enable the clock, as it 
would already be enabled before the PL is loaded. However, when used 
with ARM hard-core SoCs, the driver must explicitly enable the clocks, 
making it necessary to provide the clock information.

Regards,
Amit
Krzysztof Kozlowski Sept. 28, 2024, 8:19 a.m. UTC | #5
On 27/09/2024 11:30, Mahapatra, Amit Kumar wrote:
> Hello Conor,
> 
> 
>>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
>>>> clock-names properties
>>>>
>>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
>>>>> Include the 'clocks' and 'clock-names' properties in the AXI
>>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled, the
>>>>> core operates in legacy mode, maintaining backward compatibility
>>>>> with version 1.00, and uses 's_axi_aclk' and 'ext_spi_clk'. For
>>>>> the AXI interface, it uses 's_axi4_aclk' and 'ext_spi_clk'.
>>>>>
>>>>> Signed-off-by: Amit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
>>>>> ---
>>>>> BRANCH: for-next
>>>>> ---
>>>>>  .../devicetree/bindings/spi/spi-xilinx.yaml   | 29 +++++++++++++++++++
>>>>>  1 file changed, 29 insertions(+)
>>>>>
>>>>> diff --git a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
>>>>> b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
>>>>> index 4beb3af0416d..9dfec195ecd4 100644
>>>>> --- a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
>>>>> +++ b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
>>>>> @@ -12,6 +12,25 @@ maintainers:
>>>>>  allOf:
>>>>>    - $ref: spi-controller.yaml#
>>>>
>>>> Please move the allOf block down to the end of the binding, after
>>>> the property definitions.
>>>
>>> Sure, I'll take care of it in the next series
>>>>
>>>>> +  - if:
>>>>> +      properties:
>>>>> +        compatible:
>>>>> +          contains:
>>>>> +            const: xlnx,axi-quad-spi-1.00.a
>>>>> +    then:
>>>>> +      properties:
>>>>> +        clock-names:
>>>>> +          items:
>>>>> +            - const: s_axi_aclk
>>>>> +            - const: ext_spi_clk
>>>>
>>>> These are all clocks, there should be no need to have "clk" in the names.
>>>
>>> These are the names exported by the IP and used by the DTG.
>>
>> So? This is a binding, not a verilog file.
> 
> Axi Quad SPI is an FPGA-based IP, and the clock names are derived from the 
> IP signal names as specified in the IP documentation [1]. 
> We chose these names to ensure alignment with the I/O signal names listed 
> in Table 2-2 on page 19 of [1].
> 
> [1] chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.com/content/dam/xilinx/support/documents/ip_documentation/axi_quad_spi/v3_2/pg153-axi-quad-spi.pdf

So if hardware engineers call them "pink_pony_clk_aclk_really_clk" we
should follow...

 - bus or axi
 - ext_spi or spi

You have descriptions of each item to reference real signals. Conor's
comment is valid - do no make it verilog file.

> 
>>
>>>>> +
>>>>> +    else:
>>>>> +      properties:
>>>>> +        clock-names:
>>>>> +          items:
>>>>> +            - const: s_axi4_aclk
>>>>> +            - const: ext_spi_clk

Nah, these are the same.

>>>>> +
>>>>>  properties:
>>>>>    compatible:
>>>>>      enum:
>>>>> @@ -25,6 +44,12 @@ properties:
>>>>>    interrupts:
>>>>>      maxItems: 1
>>>>>
>>>>> +  clocks:
>>>>> +    maxItems: 2
>>>>> +
>>>>> +  clock-names:
>>>>> +    maxItems: 2
>>>>> +
>>>>>    xlnx,num-ss-bits:
>>>>>      description: Number of chip selects used.
>>>>>      minimum: 1
>>>>> @@ -39,6 +64,8 @@ required:
>>>>>    - compatible
>>>>>    - reg
>>>>>    - interrupts
>>>>> +  - clocks
>>>>> +  - clock-names
>>>>
>>>> New required properties are an ABI break, where is the driver patch
>>>> that makes use of these clocks?
>>>
>>> Alright, I will remove these from the required properties to avoid
>>> breaking the ABI. We're working on the driver patch and will send it
>>> once it's ready.
>>
>> What changed to make the clocks needed now? It's possible that making them
>> required is the correct thing to do, so breaking the ABI would be justified (provided
>> the driver can still handle there being no clocks).
> 
> Axi Quad SPI is an FPGA-based IP that was previously tested on MicroBlaze 
> soft-core systems, where the driver didn't need to enable the clock, as it 
> would already be enabled before the PL is loaded. However, when used 
> with ARM hard-core SoCs, the driver must explicitly enable the clocks, 


Commit msg should explain this. Including ABI break impact.

Best regards,
Krzysztof
Conor Dooley Sept. 28, 2024, 8:12 p.m. UTC | #6
On Sat, Sep 28, 2024 at 10:19:01AM +0200, Krzysztof Kozlowski wrote:
> On 27/09/2024 11:30, Mahapatra, Amit Kumar wrote:
> > Hello Conor,
> > 
> > 
> >>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> >>>> clock-names properties
> >>>>
> >>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> >>>>> Include the 'clocks' and 'clock-names' properties in the AXI
> >>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled, the
> >>>>> core operates in legacy mode, maintaining backward compatibility
> >>>>> with version 1.00, and uses 's_axi_aclk' and 'ext_spi_clk'. For
> >>>>> the AXI interface, it uses 's_axi4_aclk' and 'ext_spi_clk'.

> >>>>> +      properties:
> >>>>> +        clock-names:
> >>>>> +          items:
> >>>>> +            - const: s_axi_aclk
> >>>>> +            - const: ext_spi_clk
> >>>>
> >>>> These are all clocks, there should be no need to have "clk" in the names.
> >>>
> >>> These are the names exported by the IP and used by the DTG.
> >>
> >> So? This is a binding, not a verilog file.
> > 
> > Axi Quad SPI is an FPGA-based IP, and the clock names are derived from the 
> > IP signal names as specified in the IP documentation [1]. 
> > We chose these names to ensure alignment with the I/O signal names listed 
> > in Table 2-2 on page 19 of [1].
> > 
> > [1] chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.com/content/dam/xilinx/support/documents/ip_documentation/axi_quad_spi/v3_2/pg153-axi-quad-spi.pdf
> 
> So if hardware engineers call them "pink_pony_clk_aclk_really_clk" we
> should follow...
> 
>  - bus or axi
>  - ext_spi or spi
> 
> You have descriptions of each item to reference real signals. Conor's
> comment is valid - do no make it verilog file.
> 
> > 
> >>
> >>>>> +
> >>>>> +    else:
> >>>>> +      properties:
> >>>>> +        clock-names:
> >>>>> +          items:
> >>>>> +            - const: s_axi4_aclk
> >>>>> +            - const: ext_spi_clk
> 
> Nah, these are the same.

They may be different, depending on whether or not the driver has to
handle "axi4-lite" versus "axi" differently. That said, I find the
commit message kinda odd in that it states that axi4-lite goes with
the s_axi_aclk clock and axi goes with s_axi4_aclk. Seems backwards..
Mahapatra, Amit Kumar Sept. 30, 2024, 3:44 p.m. UTC | #7
Hello Conor,

> > >>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> > >>>> clock-names properties
> > >>>>
> > >>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> > >>>>> Include the 'clocks' and 'clock-names' properties in the AXI
> > >>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled, the
> > >>>>> core operates in legacy mode, maintaining backward compatibility
> > >>>>> with version 1.00, and uses 's_axi_aclk' and 'ext_spi_clk'. For
> > >>>>> the AXI interface, it uses 's_axi4_aclk' and 'ext_spi_clk'.
> 
> > >>>>> +      properties:
> > >>>>> +        clock-names:
> > >>>>> +          items:
> > >>>>> +            - const: s_axi_aclk
> > >>>>> +            - const: ext_spi_clk
> > >>>>
> > >>>> These are all clocks, there should be no need to have "clk" in the names.
> > >>>
> > >>> These are the names exported by the IP and used by the DTG.
> > >>
> > >> So? This is a binding, not a verilog file.
> > >
> > > Axi Quad SPI is an FPGA-based IP, and the clock names are derived
> > > from the IP signal names as specified in the IP documentation [1].
> > > We chose these names to ensure alignment with the I/O signal names
> > > listed in Table 2-2 on page 19 of [1].
> > >
> > > [1]
> > > chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.
> > > com/content/dam/xilinx/support/documents/ip_documentation/axi_quad_s
> > > pi/v3_2/pg153-axi-quad-spi.pdf
> >
> > So if hardware engineers call them "pink_pony_clk_aclk_really_clk" we
> > should follow...
> >
> >  - bus or axi
> >  - ext_spi or spi
> >
> > You have descriptions of each item to reference real signals. Conor's
> > comment is valid - do no make it verilog file.
> >
> > >
> > >>
> > >>>>> +
> > >>>>> +    else:
> > >>>>> +      properties:
> > >>>>> +        clock-names:
> > >>>>> +          items:
> > >>>>> +            - const: s_axi4_aclk
> > >>>>> +            - const: ext_spi_clk
> >
> > Nah, these are the same.
> 
> They may be different, depending on whether or not the driver has to handle "axi4-
> lite" versus "axi" differently. That said, I find the commit message kinda odd in that it
> states that axi4-lite goes with the s_axi_aclk clock and axi goes with s_axi4_aclk.

Apologies for the typo. When the AXI4 interface is enabled, it uses s_axi4_aclk, and 
when the AXI4-Lite interface is enabled, it uses s_axi_aclk.

In my next series I will update my commit message & change the clock-names 
's_axi4_aclk', 's_axi_aclk' & 'ext_spi_clk' to 'axi4', 'axi' & 'ref' respectively

Regards,
Amit

> Seems backwards..
Conor Dooley Sept. 30, 2024, 4:40 p.m. UTC | #8
On Mon, Sep 30, 2024 at 03:44:47PM +0000, Mahapatra, Amit Kumar wrote:
> Hello Conor,
> 
> > > >>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> > > >>>> clock-names properties
> > > >>>>
> > > >>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra wrote:
> > > >>>>> Include the 'clocks' and 'clock-names' properties in the AXI
> > > >>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled, the
> > > >>>>> core operates in legacy mode, maintaining backward compatibility
> > > >>>>> with version 1.00, and uses 's_axi_aclk' and 'ext_spi_clk'. For
> > > >>>>> the AXI interface, it uses 's_axi4_aclk' and 'ext_spi_clk'.
> > 
> > > >>>>> +      properties:
> > > >>>>> +        clock-names:
> > > >>>>> +          items:
> > > >>>>> +            - const: s_axi_aclk
> > > >>>>> +            - const: ext_spi_clk
> > > >>>>
> > > >>>> These are all clocks, there should be no need to have "clk" in the names.
> > > >>>
> > > >>> These are the names exported by the IP and used by the DTG.
> > > >>
> > > >> So? This is a binding, not a verilog file.
> > > >
> > > > Axi Quad SPI is an FPGA-based IP, and the clock names are derived
> > > > from the IP signal names as specified in the IP documentation [1].
> > > > We chose these names to ensure alignment with the I/O signal names
> > > > listed in Table 2-2 on page 19 of [1].
> > > >
> > > > [1]
> > > > chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.
> > > > com/content/dam/xilinx/support/documents/ip_documentation/axi_quad_s
> > > > pi/v3_2/pg153-axi-quad-spi.pdf
> > >
> > > So if hardware engineers call them "pink_pony_clk_aclk_really_clk" we
> > > should follow...
> > >
> > >  - bus or axi
> > >  - ext_spi or spi
> > >
> > > You have descriptions of each item to reference real signals. Conor's
> > > comment is valid - do no make it verilog file.
> > >
> > > >
> > > >>
> > > >>>>> +
> > > >>>>> +    else:
> > > >>>>> +      properties:
> > > >>>>> +        clock-names:
> > > >>>>> +          items:
> > > >>>>> +            - const: s_axi4_aclk
> > > >>>>> +            - const: ext_spi_clk
> > >
> > > Nah, these are the same.
> > 
> > They may be different, depending on whether or not the driver has to handle "axi4-
> > lite" versus "axi" differently. That said, I find the commit message kinda odd in that it
> > states that axi4-lite goes with the s_axi_aclk clock and axi goes with s_axi4_aclk.
> 
> Apologies for the typo. When the AXI4 interface is enabled, it uses s_axi4_aclk, and 
> when the AXI4-Lite interface is enabled, it uses s_axi_aclk.
> 
> In my next series I will update my commit message & change the clock-names 
> 's_axi4_aclk', 's_axi_aclk' & 'ext_spi_clk' to 'axi4', 'axi' & 'ref' respectively

There's no driver here, so it is hard to know (why isn't there?) - are you
using the axi v axi4 to do some sort of differentiation in the driver?
Mahapatra, Amit Kumar Oct. 3, 2024, 6:23 a.m. UTC | #9
Hello Conor,

> -----Original Message-----
> From: Conor Dooley <conor@kernel.org>
> Sent: Monday, September 30, 2024 10:10 PM
> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>
> Cc: Krzysztof Kozlowski <krzk@kernel.org>; broonie@kernel.org; robh@kernel.org;
> krzk+dt@kernel.org; conor+dt@kernel.org; Simek, Michal
> <michal.simek@amd.com>; linux-spi@vger.kernel.org; devicetree@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; git (AMD-Xilinx)
> <git@amd.com>; amitrkcian2002@gmail.com
> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties
> 
> On Mon, Sep 30, 2024 at 03:44:47PM +0000, Mahapatra, Amit Kumar wrote:
> > Hello Conor,
> >
> > > > >>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> > > > >>>> clock-names properties
> > > > >>>>
> > > > >>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra
> wrote:
> > > > >>>>> Include the 'clocks' and 'clock-names' properties in the AXI
> > > > >>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled,
> > > > >>>>> the core operates in legacy mode, maintaining backward
> > > > >>>>> compatibility with version 1.00, and uses 's_axi_aclk' and
> > > > >>>>> 'ext_spi_clk'. For the AXI interface, it uses 's_axi4_aclk' and
> 'ext_spi_clk'.
> > >
> > > > >>>>> +      properties:
> > > > >>>>> +        clock-names:
> > > > >>>>> +          items:
> > > > >>>>> +            - const: s_axi_aclk
> > > > >>>>> +            - const: ext_spi_clk
> > > > >>>>
> > > > >>>> These are all clocks, there should be no need to have "clk" in the names.
> > > > >>>
> > > > >>> These are the names exported by the IP and used by the DTG.
> > > > >>
> > > > >> So? This is a binding, not a verilog file.
> > > > >
> > > > > Axi Quad SPI is an FPGA-based IP, and the clock names are
> > > > > derived from the IP signal names as specified in the IP documentation [1].
> > > > > We chose these names to ensure alignment with the I/O signal
> > > > > names listed in Table 2-2 on page 19 of [1].
> > > > >
> > > > > [1]
> > > > > chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.
> > > > > com/content/dam/xilinx/support/documents/ip_documentation/axi_qu
> > > > > ad_s
> > > > > pi/v3_2/pg153-axi-quad-spi.pdf
> > > >
> > > > So if hardware engineers call them "pink_pony_clk_aclk_really_clk"
> > > > we should follow...
> > > >
> > > >  - bus or axi
> > > >  - ext_spi or spi
> > > >
> > > > You have descriptions of each item to reference real signals.
> > > > Conor's comment is valid - do no make it verilog file.
> > > >
> > > > >
> > > > >>
> > > > >>>>> +
> > > > >>>>> +    else:
> > > > >>>>> +      properties:
> > > > >>>>> +        clock-names:
> > > > >>>>> +          items:
> > > > >>>>> +            - const: s_axi4_aclk
> > > > >>>>> +            - const: ext_spi_clk
> > > >
> > > > Nah, these are the same.
> > >
> > > They may be different, depending on whether or not the driver has to
> > > handle "axi4- lite" versus "axi" differently. That said, I find the
> > > commit message kinda odd in that it states that axi4-lite goes with the s_axi_aclk
> clock and axi goes with s_axi4_aclk.
> >
> > Apologies for the typo. When the AXI4 interface is enabled, it uses
> > s_axi4_aclk, and when the AXI4-Lite interface is enabled, it uses s_axi_aclk.
> >
> > In my next series I will update my commit message & change the
> > clock-names 's_axi4_aclk', 's_axi_aclk' & 'ext_spi_clk' to 'axi4',
> > 'axi' & 'ref' respectively
> 
> There's no driver here, so it is hard to know (why isn't there?) - are you using the axi

We are working on the driver. Once it is ready we will send it to upstream.

> v axi4 to do some sort of differentiation in the driver?
In the driver we don't do any different operations based on the clocks , 
we simply enable the available clocks in the driver.

Regards,
Amit
Krzysztof Kozlowski Oct. 3, 2024, 7:01 a.m. UTC | #10
On 03/10/2024 08:23, Mahapatra, Amit Kumar wrote:
> Hello Conor,
> 
>> -----Original Message-----
>> From: Conor Dooley <conor@kernel.org>
>> Sent: Monday, September 30, 2024 10:10 PM
>> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>
>> Cc: Krzysztof Kozlowski <krzk@kernel.org>; broonie@kernel.org; robh@kernel.org;
>> krzk+dt@kernel.org; conor+dt@kernel.org; Simek, Michal
>> <michal.simek@amd.com>; linux-spi@vger.kernel.org; devicetree@vger.kernel.org;
>> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; git (AMD-Xilinx)
>> <git@amd.com>; amitrkcian2002@gmail.com
>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties
>>
>> On Mon, Sep 30, 2024 at 03:44:47PM +0000, Mahapatra, Amit Kumar wrote:
>>> Hello Conor,
>>>
>>>>>>>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
>>>>>>>>> clock-names properties
>>>>>>>>>
>>>>>>>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra
>> wrote:
>>>>>>>>>> Include the 'clocks' and 'clock-names' properties in the AXI
>>>>>>>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled,
>>>>>>>>>> the core operates in legacy mode, maintaining backward
>>>>>>>>>> compatibility with version 1.00, and uses 's_axi_aclk' and
>>>>>>>>>> 'ext_spi_clk'. For the AXI interface, it uses 's_axi4_aclk' and
>> 'ext_spi_clk'.
>>>>
>>>>>>>>>> +      properties:
>>>>>>>>>> +        clock-names:
>>>>>>>>>> +          items:
>>>>>>>>>> +            - const: s_axi_aclk
>>>>>>>>>> +            - const: ext_spi_clk
>>>>>>>>>
>>>>>>>>> These are all clocks, there should be no need to have "clk" in the names.
>>>>>>>>
>>>>>>>> These are the names exported by the IP and used by the DTG.
>>>>>>>
>>>>>>> So? This is a binding, not a verilog file.
>>>>>>
>>>>>> Axi Quad SPI is an FPGA-based IP, and the clock names are
>>>>>> derived from the IP signal names as specified in the IP documentation [1].
>>>>>> We chose these names to ensure alignment with the I/O signal
>>>>>> names listed in Table 2-2 on page 19 of [1].
>>>>>>
>>>>>> [1]
>>>>>> chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.
>>>>>> com/content/dam/xilinx/support/documents/ip_documentation/axi_qu
>>>>>> ad_s
>>>>>> pi/v3_2/pg153-axi-quad-spi.pdf
>>>>>
>>>>> So if hardware engineers call them "pink_pony_clk_aclk_really_clk"
>>>>> we should follow...
>>>>>
>>>>>  - bus or axi
>>>>>  - ext_spi or spi
>>>>>
>>>>> You have descriptions of each item to reference real signals.
>>>>> Conor's comment is valid - do no make it verilog file.
>>>>>
>>>>>>
>>>>>>>
>>>>>>>>>> +
>>>>>>>>>> +    else:
>>>>>>>>>> +      properties:
>>>>>>>>>> +        clock-names:
>>>>>>>>>> +          items:
>>>>>>>>>> +            - const: s_axi4_aclk
>>>>>>>>>> +            - const: ext_spi_clk
>>>>>
>>>>> Nah, these are the same.
>>>>
>>>> They may be different, depending on whether or not the driver has to
>>>> handle "axi4- lite" versus "axi" differently. That said, I find the
>>>> commit message kinda odd in that it states that axi4-lite goes with the s_axi_aclk
>> clock and axi goes with s_axi4_aclk.
>>>
>>> Apologies for the typo. When the AXI4 interface is enabled, it uses
>>> s_axi4_aclk, and when the AXI4-Lite interface is enabled, it uses s_axi_aclk.
>>>
>>> In my next series I will update my commit message & change the
>>> clock-names 's_axi4_aclk', 's_axi_aclk' & 'ext_spi_clk' to 'axi4',
>>> 'axi' & 'ref' respectively
>>
>> There's no driver here, so it is hard to know (why isn't there?) - are you using the axi
> 
> We are working on the driver. Once it is ready we will send it to upstream.

Why would you send separate binding from driver? That's only making
everything more difficult...

> 
>> v axi4 to do some sort of differentiation in the driver?
> In the driver we don't do any different operations based on the clocks , 
> we simply enable the available clocks in the driver.

So it is the same clock?

Best regards,
Krzysztof
Mahapatra, Amit Kumar Oct. 3, 2024, 7:42 a.m. UTC | #11
Hello Krzysztof,

> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@kernel.org>
> Sent: Thursday, October 3, 2024 12:31 PM
> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>; Conor Dooley
> <conor@kernel.org>
> Cc: broonie@kernel.org; robh@kernel.org; krzk+dt@kernel.org;
> conor+dt@kernel.org; Simek, Michal <michal.simek@amd.com>; linux-
> spi@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
> kernel@lists.infradead.org; linux-kernel@vger.kernel.org; git (AMD-Xilinx)
> <git@amd.com>; amitrkcian2002@gmail.com
> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties
> 
> On 03/10/2024 08:23, Mahapatra, Amit Kumar wrote:
> > Hello Conor,
> >
> >> -----Original Message-----
> >> From: Conor Dooley <conor@kernel.org>
> >> Sent: Monday, September 30, 2024 10:10 PM
> >> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>
> >> Cc: Krzysztof Kozlowski <krzk@kernel.org>; broonie@kernel.org;
> >> robh@kernel.org;
> >> krzk+dt@kernel.org; conor+dt@kernel.org; Simek, Michal
> >> <michal.simek@amd.com>; linux-spi@vger.kernel.org;
> >> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> >> linux-kernel@vger.kernel.org; git (AMD-Xilinx) <git@amd.com>;
> >> amitrkcian2002@gmail.com
> >> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> >> clock-names properties
> >>
> >> On Mon, Sep 30, 2024 at 03:44:47PM +0000, Mahapatra, Amit Kumar wrote:
> >>> Hello Conor,
> >>>
> >>>>>>>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
> >>>>>>>>> clock-names properties
> >>>>>>>>>
> >>>>>>>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra
> >> wrote:
> >>>>>>>>>> Include the 'clocks' and 'clock-names' properties in the AXI
> >>>>>>>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled,
> >>>>>>>>>> the core operates in legacy mode, maintaining backward
> >>>>>>>>>> compatibility with version 1.00, and uses 's_axi_aclk' and
> >>>>>>>>>> 'ext_spi_clk'. For the AXI interface, it uses 's_axi4_aclk'
> >>>>>>>>>> and
> >> 'ext_spi_clk'.
> >>>>
> >>>>>>>>>> +      properties:
> >>>>>>>>>> +        clock-names:
> >>>>>>>>>> +          items:
> >>>>>>>>>> +            - const: s_axi_aclk
> >>>>>>>>>> +            - const: ext_spi_clk
> >>>>>>>>>
> >>>>>>>>> These are all clocks, there should be no need to have "clk" in the
> names.
> >>>>>>>>
> >>>>>>>> These are the names exported by the IP and used by the DTG.
> >>>>>>>
> >>>>>>> So? This is a binding, not a verilog file.
> >>>>>>
> >>>>>> Axi Quad SPI is an FPGA-based IP, and the clock names are derived
> >>>>>> from the IP signal names as specified in the IP documentation [1].
> >>>>>> We chose these names to ensure alignment with the I/O signal
> >>>>>> names listed in Table 2-2 on page 19 of [1].
> >>>>>>
> >>>>>> [1]
> >>>>>> chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.
> >>>>>> com/content/dam/xilinx/support/documents/ip_documentation/axi_qu
> >>>>>> ad_s
> >>>>>> pi/v3_2/pg153-axi-quad-spi.pdf
> >>>>>
> >>>>> So if hardware engineers call them "pink_pony_clk_aclk_really_clk"
> >>>>> we should follow...
> >>>>>
> >>>>>  - bus or axi
> >>>>>  - ext_spi or spi
> >>>>>
> >>>>> You have descriptions of each item to reference real signals.
> >>>>> Conor's comment is valid - do no make it verilog file.
> >>>>>
> >>>>>>
> >>>>>>>
> >>>>>>>>>> +
> >>>>>>>>>> +    else:
> >>>>>>>>>> +      properties:
> >>>>>>>>>> +        clock-names:
> >>>>>>>>>> +          items:
> >>>>>>>>>> +            - const: s_axi4_aclk
> >>>>>>>>>> +            - const: ext_spi_clk
> >>>>>
> >>>>> Nah, these are the same.
> >>>>
> >>>> They may be different, depending on whether or not the driver has
> >>>> to handle "axi4- lite" versus "axi" differently. That said, I find
> >>>> the commit message kinda odd in that it states that axi4-lite goes
> >>>> with the s_axi_aclk
> >> clock and axi goes with s_axi4_aclk.
> >>>
> >>> Apologies for the typo. When the AXI4 interface is enabled, it uses
> >>> s_axi4_aclk, and when the AXI4-Lite interface is enabled, it uses s_axi_aclk.
> >>>
> >>> In my next series I will update my commit message & change the
> >>> clock-names 's_axi4_aclk', 's_axi_aclk' & 'ext_spi_clk' to 'axi4',
> >>> 'axi' & 'ref' respectively
> >>
> >> There's no driver here, so it is hard to know (why isn't there?) -
> >> are you using the axi
> >
> > We are working on the driver. Once it is ready we will send it to upstream.
> 
> Why would you send separate binding from driver? That's only making everything
> more difficult...

Alright, I will send the next version along with the driver changes.

> 
> >
> >> v axi4 to do some sort of differentiation in the driver?
> > In the driver we don't do any different operations based on the clocks
> > , we simply enable the available clocks in the driver.
> 
> So it is the same clock?

These are two different clocks and depending on the mode—Legacy or 
Enhanced—either clock will be enabled, but the purpose of both the 
clocks are the same. We can have the name 'axi' for both the 
clocks (axi & axi4). Please let me know if you are fine with this.

Regards,
Amit
> 
> Best regards,
> Krzysztof
Krzysztof Kozlowski Oct. 3, 2024, 7:47 a.m. UTC | #12
On 03/10/2024 09:42, Mahapatra, Amit Kumar wrote:
> Hello Krzysztof,
> 
>> -----Original Message-----
>> From: Krzysztof Kozlowski <krzk@kernel.org>
>> Sent: Thursday, October 3, 2024 12:31 PM
>> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>; Conor Dooley
>> <conor@kernel.org>
>> Cc: broonie@kernel.org; robh@kernel.org; krzk+dt@kernel.org;
>> conor+dt@kernel.org; Simek, Michal <michal.simek@amd.com>; linux-
>> spi@vger.kernel.org; devicetree@vger.kernel.org; linux-arm-
>> kernel@lists.infradead.org; linux-kernel@vger.kernel.org; git (AMD-Xilinx)
>> <git@amd.com>; amitrkcian2002@gmail.com
>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties
>>
>> On 03/10/2024 08:23, Mahapatra, Amit Kumar wrote:
>>> Hello Conor,
>>>
>>>> -----Original Message-----
>>>> From: Conor Dooley <conor@kernel.org>
>>>> Sent: Monday, September 30, 2024 10:10 PM
>>>> To: Mahapatra, Amit Kumar <amit.kumar-mahapatra@amd.com>
>>>> Cc: Krzysztof Kozlowski <krzk@kernel.org>; broonie@kernel.org;
>>>> robh@kernel.org;
>>>> krzk+dt@kernel.org; conor+dt@kernel.org; Simek, Michal
>>>> <michal.simek@amd.com>; linux-spi@vger.kernel.org;
>>>> devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
>>>> linux-kernel@vger.kernel.org; git (AMD-Xilinx) <git@amd.com>;
>>>> amitrkcian2002@gmail.com
>>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
>>>> clock-names properties
>>>>
>>>> On Mon, Sep 30, 2024 at 03:44:47PM +0000, Mahapatra, Amit Kumar wrote:
>>>>> Hello Conor,
>>>>>
>>>>>>>>>>> Subject: Re: [PATCH] dt-bindings: spi: xilinx: Add clocks &
>>>>>>>>>>> clock-names properties
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Sep 23, 2024 at 06:02:42PM +0530, Amit Kumar Mahapatra
>>>> wrote:
>>>>>>>>>>>> Include the 'clocks' and 'clock-names' properties in the AXI
>>>>>>>>>>>> Quad-SPI bindings. When the AXI4-Lite interface is enabled,
>>>>>>>>>>>> the core operates in legacy mode, maintaining backward
>>>>>>>>>>>> compatibility with version 1.00, and uses 's_axi_aclk' and
>>>>>>>>>>>> 'ext_spi_clk'. For the AXI interface, it uses 's_axi4_aclk'
>>>>>>>>>>>> and
>>>> 'ext_spi_clk'.
>>>>>>
>>>>>>>>>>>> +      properties:
>>>>>>>>>>>> +        clock-names:
>>>>>>>>>>>> +          items:
>>>>>>>>>>>> +            - const: s_axi_aclk
>>>>>>>>>>>> +            - const: ext_spi_clk
>>>>>>>>>>>
>>>>>>>>>>> These are all clocks, there should be no need to have "clk" in the
>> names.
>>>>>>>>>>
>>>>>>>>>> These are the names exported by the IP and used by the DTG.
>>>>>>>>>
>>>>>>>>> So? This is a binding, not a verilog file.
>>>>>>>>
>>>>>>>> Axi Quad SPI is an FPGA-based IP, and the clock names are derived
>>>>>>>> from the IP signal names as specified in the IP documentation [1].
>>>>>>>> We chose these names to ensure alignment with the I/O signal
>>>>>>>> names listed in Table 2-2 on page 19 of [1].
>>>>>>>>
>>>>>>>> [1]
>>>>>>>> chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.amd.
>>>>>>>> com/content/dam/xilinx/support/documents/ip_documentation/axi_qu
>>>>>>>> ad_s
>>>>>>>> pi/v3_2/pg153-axi-quad-spi.pdf
>>>>>>>
>>>>>>> So if hardware engineers call them "pink_pony_clk_aclk_really_clk"
>>>>>>> we should follow...
>>>>>>>
>>>>>>>  - bus or axi
>>>>>>>  - ext_spi or spi
>>>>>>>
>>>>>>> You have descriptions of each item to reference real signals.
>>>>>>> Conor's comment is valid - do no make it verilog file.
>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>>> +
>>>>>>>>>>>> +    else:
>>>>>>>>>>>> +      properties:
>>>>>>>>>>>> +        clock-names:
>>>>>>>>>>>> +          items:
>>>>>>>>>>>> +            - const: s_axi4_aclk
>>>>>>>>>>>> +            - const: ext_spi_clk
>>>>>>>
>>>>>>> Nah, these are the same.
>>>>>>
>>>>>> They may be different, depending on whether or not the driver has
>>>>>> to handle "axi4- lite" versus "axi" differently. That said, I find
>>>>>> the commit message kinda odd in that it states that axi4-lite goes
>>>>>> with the s_axi_aclk
>>>> clock and axi goes with s_axi4_aclk.
>>>>>
>>>>> Apologies for the typo. When the AXI4 interface is enabled, it uses
>>>>> s_axi4_aclk, and when the AXI4-Lite interface is enabled, it uses s_axi_aclk.
>>>>>
>>>>> In my next series I will update my commit message & change the
>>>>> clock-names 's_axi4_aclk', 's_axi_aclk' & 'ext_spi_clk' to 'axi4',
>>>>> 'axi' & 'ref' respectively
>>>>
>>>> There's no driver here, so it is hard to know (why isn't there?) -
>>>> are you using the axi
>>>
>>> We are working on the driver. Once it is ready we will send it to upstream.
>>
>> Why would you send separate binding from driver? That's only making everything
>> more difficult...
> 
> Alright, I will send the next version along with the driver changes.
> 
>>
>>>
>>>> v axi4 to do some sort of differentiation in the driver?
>>> In the driver we don't do any different operations based on the clocks
>>> , we simply enable the available clocks in the driver.
>>
>> So it is the same clock?
> 
> These are two different clocks and depending on the mode—Legacy or 
> Enhanced—either clock will be enabled, but the purpose of both the 
> clocks are the same. We can have the name 'axi' for both the 
> clocks (axi & axi4). Please let me know if you are fine with this.

Please read my first comment in this thread. We are dragging this way
too much...

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
index 4beb3af0416d..9dfec195ecd4 100644
--- a/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
+++ b/Documentation/devicetree/bindings/spi/spi-xilinx.yaml
@@ -12,6 +12,25 @@  maintainers:
 allOf:
   - $ref: spi-controller.yaml#
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: xlnx,axi-quad-spi-1.00.a
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: s_axi_aclk
+            - const: ext_spi_clk
+
+    else:
+      properties:
+        clock-names:
+          items:
+            - const: s_axi4_aclk
+            - const: ext_spi_clk
+
 properties:
   compatible:
     enum:
@@ -25,6 +44,12 @@  properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    maxItems: 2
+
   xlnx,num-ss-bits:
     description: Number of chip selects used.
     minimum: 1
@@ -39,6 +64,8 @@  required:
   - compatible
   - reg
   - interrupts
+  - clocks
+  - clock-names
 
 unevaluatedProperties: false
 
@@ -49,6 +76,8 @@  examples:
       interrupt-parent = <&intc>;
       interrupts = <0 31 1>;
       reg = <0x41e00000 0x10000>;
+      clocks = <&clkc 72>, <&clkc 73>;
+      clock-names = "s_axi4_aclk", "ext_spi_clk";
       xlnx,num-ss-bits = <0x1>;
       xlnx,num-transfer-bits = <32>;
     };