On 11/19/24 10:56 AM, Rob Herring wrote:
> On Fri, Nov 15, 2024 at 02:18:46PM -0600, David Lechner wrote:
>> The AXI SPI Engine has support for hardware offloading capabilities.
>> This includes a connection to a DMA controller for streaming RX data
>> and a trigger input for starting execution of the SPI message programmed
>> in the offload.
>>
>> Each SPI Engine may have up to 1 offload. The spec actually says that
>> it could support up to 32, so we are using an index number in the
>> dma-names (e.g. offload0-rx) to allow for this possibility in the
>> future.
>>
>> Signed-off-by: David Lechner <dlechner@baylibre.com>
>> ---
>>
>> v5 changes:
>> * Also document offload0-tx DMA names since the hardware can support
>> that now.
>> * Limit the number of offloads to 1 for now since it would require
>> significant hardware changes to actually support more than that.
>>
>> v4 changes:
>> * Dropped #spi-offload-cells property.
>> * Changed subject line.
>>
>> v3 changes:
>> * Added #spi-offload-cells property.
>> * Added properties for triggers and RX data stream connected to DMA.
>>
>> v2 changes:
>> * This is basically a new patch. It partially replaces "dt-bindings:
>> iio: offload: add binding for PWM/DMA triggered buffer".
>> * The controller no longer has an offloads object node and the
>> spi-offloads property is now a standard SPI peripheral property.
>> ---
>> .../bindings/spi/adi,axi-spi-engine.yaml | 24 ++++++++++++++++++++++
>> 1 file changed, 24 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml b/Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml
>> index d48faa42d025..d703b47eb498 100644
>> --- a/Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml
>> +++ b/Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml
>> @@ -41,6 +41,26 @@ properties:
>> - const: s_axi_aclk
>> - const: spi_clk
>>
>> + trigger-sources:
>> + description:
>> + An array of trigger source phandles for offload instances. The index in
>> + the array corresponds to the offload instance number.
>
> How can you have an index when you only allow 1 entry (other than 0 of
> course)?
Same reason as below, but we can drop that part of the description for now.
>
>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>
> With my other comments implemented, this should be dropped.
>
>> + maxItems: 1
>> +
>> + dmas:
>> + description:
>> + DMA channels connected to the input or output stream interface of an
>> + offload instance.
>> + minItems: 1
>> + maxItems: 2
>> +
>> + dma-names:
>> + items:
>> + pattern: "^offload0-[tr]x$"
>
> Do you expect an offload1 or something?
Yes, I tried to make this clear in the commit message. The hardware
is designed to have up to 32 offload instances, but in practice
there can only be 1 for now. So I included the 0 here to make it
future-proof in case that changes in the future.
>
>> + minItems: 1
>> + maxItems: 2
>> +
>> required:
>> - compatible
>> - reg
>> @@ -59,6 +79,10 @@ examples:
>> clocks = <&clkc 15>, <&clkc 15>;
>> clock-names = "s_axi_aclk", "spi_clk";
>>
>> + trigger-sources = <&trigger_clock>;
>> + dmas = <&dma 0>;
>> + dma-names = "offload0-rx";
>> +
>> #address-cells = <1>;
>> #size-cells = <0>;
>>
>>
>> --
>> 2.43.0
>>