Re: [PATCH v2 1/2] dt-bindings: spi: Qualcomm Quad SPI(QSPI) documentation
From: Doug Anderson <dianders@chromium.org>
Date: 2018-09-21 18:48:41
Also in:
linux-arm-msm, linux-spi, lkml
Stephen On Fri, Sep 21, 2018 at 11:40 AM Stephen Boyd [off-list ref] wrote:
Quoting Doug Anderson (2018-09-21 10:40:14)quoted
Hi, On Fri, Sep 21, 2018 at 10:31 AM Stephen Boyd [off-list ref] wrote:quoted
Quoting Ryan Case (2018-09-20 15:40:54)quoted
diff --git a/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.txt b/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.txt new file mode 100644 index 000000000000..ecfb1e2bd520 --- /dev/null +++ b/Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.txt@@ -0,0 +1,36 @@ +Qualcomm Quad Serial Peripheral Interface (QSPI) + +The QSPI controller allows SPI protocol communication in single, dual, or quad +wire transmission modes for read/write access to slaves such as NOR flash. + +Required properties: +- compatible: Should contain: + "qcom,sdm845-qspi"Does someone have a more generic compatible string that can be added here to indicate the type of quad SPI controller this is? I really doubt this is a one-off hardware block for the specific SDM845 SoC.The compatible string used to be "qcom,qspi-v1". ...but Rob Herring requested [1] "an SoC specific compatible string". While we could do a compatible string like: "qcom,sdm845-qspi", "qcom,qspi-v1". I'm curious if that buys us anything. From all my previous experience with device tree it is fine to name a compatible string for a component based on the first SoC that used it. If we later find that this is also used in an "msm1234" we could always later do the compatible string for that device as: "qcom, msm1234-qspi", "qcom,sdm845-qspi" ...and we don't need to try to come up with a generic name. Obviously, though, I'll cede to whatever Rob says here though.It seems that everybody has misunderstood my email. Let me try to clarify. I'm not saying to replace the sdm845 qspi compatible with a generic one. I'm recommending that a generic one is added in addition to the SoC specific one. That way, we get to put the generic compatible string in the driver and not need to update the driver compatible string array each time a new SoC comes out with a new compatible string. If it turns out later that we need to handle some bug in that specific SoC compatible string then we're good to go and we can handle it by matching the more specific SoC version compatible.
I don't think I misunderstood. I was suggesting that I believe that the device tree way is to use the first SoC as the generic one. In other words to support sdm845 and msm1234, we do: A) on sdm845: "qcom,sdm845-qspi" on msm1234 (later): "qcom, msm1234-qspi", "qcom,sdm845-qspi" What you are suggesting (I think) is: B) on sdm845: "qcom,sdm845-qspi", "qcom,qspi-v1" on msm1234 (later): "qcom, msm1234-qspi", "qcom,qspi-v1" If Rob likes B) better then it's fine with me, it was just my understanding that A) was the suggested way to do things (even if it is decidedly non-symmetric). NOTE: Even with A) there's no need to update the driver for msm1234 since it has the fallback to sdm845. -Doug