Re: [PATCH] dt-bindings: spi: xilinx: Add clocks & clock-names properties

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxx>
>>>>> ---
>>>>> 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





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux