RE: [PATCH v7 1/2] dt-bindings: dma: Add bindings for intel LGM SOC
From: Thomas Langer
Date: Tue Nov 10 2020 - 12:39:28 EST
> -----Original Message-----
> From: Reddy, MallikarjunaX <mallikarjunax.reddy@xxxxxxxxxxxxxxx>
> Sent: Montag, 2. November 2020 15:42
> To: Thomas Langer <tlanger@xxxxxxxxxxxxx>; dmaengine@xxxxxxxxxxxxxxx;
> vkoul@xxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; robh+dt@xxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx; Shevchenko, Andriy
> <andriy.shevchenko@xxxxxxxxx>; chuanhua.lei@xxxxxxxxxxxxxxx; Kim,
> Cheol Yong <Cheol.Yong.Kim@xxxxxxxxx>; Wu, Qiming <qi-
> ming.wu@xxxxxxxxx>; malliamireddy009@xxxxxxxxx; peter.ujfalusi@xxxxxx;
> Langer, Thomas <thomas.langer@xxxxxxxxx>
> Subject: Re: [PATCH v7 1/2] dt-bindings: dma: Add bindings for intel
> LGM SOC
>
> This email was sent from outside of MaxLinear.
>
>
> Hi Thomas,
> Thanks for the review, my comments inline.
>
> On 10/28/2020 3:24 AM, Thomas Langer wrote:
> > Hello Reddy,
> >
> > I think "Intel" should always be written with a capital "I" (like in
> the Subject, but except in the binding below)
> OK.
> >
> >> + compatible:
> >> + oneOf:
> >> + - const: intel,lgm-cdma
> >> + - const: intel,lgm-dma2tx
> >> + - const: intel,lgm-dma1rx
> >> + - const: intel,lgm-dma1tx
> >> + - const: intel,lgm-dma0tx
> >> + - const: intel,lgm-dma3
> >> + - const: intel,lgm-toe-dma30
> >> + - const: intel,lgm-toe-dma31
> > Bindings are normally not per instance.
> > What if next generation chip gets more DMA modules but has no other
> changes in the HW block?
> > What is wrong with
> > - const: intel,lgm-cdma
> > - const: intel,lgm-hdma
> > and extra attributes to define the rx/tx restriction (or what do it
> mean?)?
> > From the driver code I saw that "toe" is also just of type "hdma"
> and no further differences in code are done.
> We had a discussion on the same in the previous patches and Rob
> Herring
> said Okay using Different compatibles.
> below the snippet.
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> +
> >>> + compatible:
> >>> + anyOf:
> >>> + - const: intel,lgm-cdma
> >>> + - const: intel,lgm-dma2tx
> >>> + - const: intel,lgm-dma1rx
> >>> + - const: intel,lgm-dma1tx
> >>> + - const: intel,lgm-dma0tx
> >>> + - const: intel,lgm-dma3
> >>> + - const: intel,lgm-toe-dma30
> >>> + - const: intel,lgm-toe-dma31
> >> Please explain why you need so many different compatible strings.
> > This hw dma has 7 DMA instances.
> > Some for datapath, some for memcpy and some for TOE.
> > Some for TX only, some for RX only, and some for TX/RX(memcpy and
> ToE).
> >
> > dma TX/RX type we considered as driver specific data of each
> instance and
> > used different compatible strings for each instance.
> > And also idea is in future if any driver specific data of any
> particular
> > instance we can handle.
> >
> > Here if dma name and type(tx or rx) will be accepted as devicetree
> > attributes then we can move .name = "toe_dma31", & .type =
> DMA_TYPE_MCPY
> > to devicetree. So that the compatible strings can be limited to
> two.
> > intel,lgm-cdma & intel,lgm-hdma .
>
> [Rob]
> Different compatibles are okay if the instances are different and we
> don't have properties to describe the differences.
Okay, but then explain what the differences are, that cannot be described
by other properties/attributes. In the driver code I cannot see anything,
except the "name". But for printouts in driver, "drv_dbg" or similar will
just use the node path for the instance.
>
> For some of what you have in this binding, I think it should be part
> of
> the consumer cells.
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++
> >
> > Best regards,
> > Thomas
> >