[PATCH] dt-bindings: dma: fsl-mxs-dma: Convert MXS DMA to DT schema

Marek Vasut marex at denx.de
Mon Dec 19 00:46:46 PST 2022


On 12/19/22 09:36, Krzysztof Kozlowski wrote:
> On 18/12/2022 20:06, Marek Vasut wrote:
>> On 12/18/22 19:46, Krzysztof Kozlowski wrote:
>>> On 18/12/2022 00:12, Marek Vasut wrote:
>>>> On 12/17/22 12:05, Krzysztof Kozlowski wrote:
>>>>
>>>> [...]
>>>>
>>>>>> +allOf:
>>>>>> +  - $ref: dma-controller.yaml#
>>>>>> +  - if:
>>>>>> +      properties:
>>>>>> +        compatible:
>>>>>> +          not:
>>>>>
>>>>> I think "not:" goes just after "if:". Please double check that it's correct.
>>>>>
>>>>> Anyway it is easier to have this without negation and you already
>>>>> enumerate all variants (here and below).
>>>>
>>>> About this part, I don't think that works. See this:
>>>>
>>>> $ git grep -A 15 'imx2[38]-dma-apb[hx]' arch/ | grep
>>>> '\(imx2[38]-dma-apb[hx]\|dma-channels\)'
>>>> arch/arm/boot/dts/imx23.dtsi: compatible = "fsl,imx23-dma-apbh";
>>>> arch/arm/boot/dts/imx23.dtsi- dma-channels = <8>;
>>>> arch/arm/boot/dts/imx23.dtsi: compatible = "fsl,imx23-dma-apbx";
>>>> arch/arm/boot/dts/imx23.dtsi- dma-channels = <16>;
>>>> arch/arm/boot/dts/imx28.dtsi: compatible = "fsl,imx28-dma-apbh";
>>>> arch/arm/boot/dts/imx28.dtsi- dma-channels = <16>;
>>>> arch/arm/boot/dts/imx28.dtsi: compatible = "fsl,imx28-dma-apbx";
>>>> arch/arm/boot/dts/imx28.dtsi- dma-channels = <16>;
>>>> arch/arm/boot/dts/imx6qdl.dtsi: compatible = "fsl,imx6q-dma-apbh",
>>>> "fsl,imx28-dma-apbh";
>>>> arch/arm/boot/dts/imx6qdl.dtsi- dma-channels = <4>;
>>>> arch/arm/boot/dts/imx6sx.dtsi: compatible = "fsl,imx6sx-dma-apbh",
>>>> "fsl,imx28-dma-apbh";
>>>> arch/arm/boot/dts/imx6sx.dtsi- dma-channels = <4>;
>>>> arch/arm/boot/dts/imx6ul.dtsi: compatible = "fsl,imx6q-dma-apbh",
>>>> "fsl,imx28-dma-apbh";
>>>> arch/arm/boot/dts/imx6ul.dtsi- dma-channels = <4>;
>>>> arch/arm/boot/dts/imx7s.dtsi: compatible = "fsl,imx7d-dma-apbh",
>>>> "fsl,imx28-dma-apbh";
>>>> arch/arm/boot/dts/imx7s.dtsi- dma-channels = <4>;
>>>> arch/arm64/boot/dts/freescale/imx8mm.dtsi: compatible =
>>>> "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
>>>> arch/arm64/boot/dts/freescale/imx8mm.dtsi- dma-channels = <4>;
>>>> arch/arm64/boot/dts/freescale/imx8mn.dtsi: compatible =
>>>> "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
>>>> arch/arm64/boot/dts/freescale/imx8mn.dtsi- dma-channels = <4>;
>>>>
>>>> So I think what we have to do to validate that, is, say
>>>>
>>>> default: 4
>>>>
>>>> if does not match on 6q/6sx/7d/23-apbx/28-abbh/28-apbx then 8
>>>>
>>>> if does not match on 6q/6sx/7d/23-apbh then 16
>>>>
>>>> But if there is a better way to validate the above, please do tell.
>>>
>>> Then your existing if:then: is also not correct because you require for
>>> fsl,imx28-dma-apbh (as it is not in second if:then:) const:16. Just
>>> don't require it.
>>
>> So, shall I just drop the entire allOf: section ?
> 
> No, what about the interrupts?

The interrupts and dma-channels are matched 1:1 for this controller, 1 
DMA channel, 1 interrupt. 16 dma channels means 16 interrupts .



More information about the linux-arm-kernel mailing list