Re: [PATCH v2 12/25] dt-bindings: qcom_nandc: QPIC NAND documentation

From: Abhishek Sahu
Date: Fri Aug 04 2017 - 09:11:29 EST


On 2017-08-04 18:15, Boris Brezillon wrote:
On Mon, 31 Jul 2017 21:35:57 +0530
Abhishek Sahu <absahu@xxxxxxxxxxxxxx> wrote:

On 2017-07-26 00:13, Abhishek Sahu wrote:
> On 2017-07-25 00:47, Rob Herring wrote:
>> On Wed, Jul 19, 2017 at 05:18:00PM +0530, Abhishek Sahu wrote:
>>> 1. QPIC NAND will use compatible string "qcom,qpic-nandc-v1.4.0"
>>> 2. QPIC NAND will 3 BAM channels: command, data tx and data rx
>>> while EBI2 NAND uses only single ADM channel.
>>> 3. CRCI is only required for ADM DMA and its not required for
>>> QPIC NAND.
>>>
>>> Signed-off-by: Abhishek Sahu <absahu@xxxxxxxxxxxxxx>
>>> ---
>>> .../devicetree/bindings/mtd/qcom_nandc.txt | 54
>>> ++++++++++++++++++++--
>>> 1 file changed, 51 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/mtd/qcom_nandc.txt
>>> b/Documentation/devicetree/bindings/mtd/qcom_nandc.txt
>>> index b24adfe..8efaeb0 100644
>>> --- a/Documentation/devicetree/bindings/mtd/qcom_nandc.txt
>>> +++ b/Documentation/devicetree/bindings/mtd/qcom_nandc.txt
>>> @@ -1,13 +1,15 @@
>>> * Qualcomm NAND controller
>>>
>>> Required properties:
>>> -- compatible: should be "qcom,ebi2-nandc" - EBI2 NAND which uses
>>> ADM
>>> - DMA like IPQ8064.
>>> -
>>> +- compatible: must be one of the following:
>>> + * "qcom,ebi2-nandc" - EBI2 NAND which uses ADM DMA like IPQ8064.
>>> + * "qcom,qpic-nandc-v1.4.0" - QPIC NAND v1.4.0 which uses BAM DMA
>>> like IPQ4019.
>>
>> Looks like you have 2 SoCs and 2 versions of h/w. Use SoC specific
>> compatible strings.
>
> We have 3 versions of NAND HW currently.
> EBI2,
> QPIC version 1.4.0
> QPIC version 1.5.0
>
> and multiple Qualcomm SoCs which use any one of these.
>
> The original plan was to have compatible string for NAND version since
> same NAND hardware is being in different SoC and SoC dtsi will simply
> use its NAND version compatible string like other Qualcomm hardwares
>
>
> http://elixir.free-electrons.com/linux/latest/source/Documentation/devicetree/bindings/dma/qcom_bam_dma.txt
>
> http://elixir.free-electrons.com/linux/latest/source/Documentation/devicetree/bindings/spi/qcom,spi-qup.txt
>

Following are the partial list for NAND controller and supported
SoC

EBI2: IPQ8064, APQ8064, MSM7xx, MDM9x15
QPIC v1.4.0 MDM9x25, MDM9x35, MDM9x45, IPQ4019
QPIC v1.5.0 MDM9x55, IPQ8074

so could we use NAND controller specific compatible strings instead of
SoC
since it will easy to maintain?

Nope, though you can re-use the compatible of an old SoC for new SoCs
if the IP did not change.

For example:

- EBI2: compatible = "qcom,ipq8064"
- QPIC 1.4: compatible = "qcom,mdm9x25"
- QPIC 1.5: compatible = "qcom,mdm9x55"

Note that we usually pick the oldest SoC that started embedding an IP
when choosing the compatible. So my suggestion assumes IPQ8064 is older
than APQ8064, MSM7xx and MDM9x15.

Thanks Boris for detailed clarification.
Then I will change the patch to use SoC specific compatible string.

Its better to use qcom,ipq4019 for 1.4.0 and qcom,ipq8074 for 1.5.0
since we don't have other SoC in upstream and I have tested the
NAND driver on these IPQ SoC's.