[v2,1/8] dt/bindings: firmware: Add Qualcomm SCM binding
diff mbox

Message ID 1461625725-32425-2-git-send-email-andy.gross@linaro.org
State New, archived
Headers show

Commit Message

Andy Gross April 25, 2016, 11:08 p.m. UTC
This patch adds the device tree support for the Qualcomm SCM firmware.

Signed-off-by: Andy Gross <andy.gross@linaro.org>
---
 .../devicetree/bindings/firmware/qcom,scm.txt      | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt

Comments

Stephen Boyd April 26, 2016, 1:49 a.m. UTC | #1
On 04/25, Andy Gross wrote:
> This patch adds the device tree support for the Qualcomm SCM firmware.
> 
> Signed-off-by: Andy Gross <andy.gross@linaro.org>
> ---
>  .../devicetree/bindings/firmware/qcom,scm.txt      | 28 ++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
> 
> diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
> new file mode 100644
> index 0000000..a679a87
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
> @@ -0,0 +1,28 @@
> +QCOM Secure Channel Manager (SCM)
> +
> +Qualcomm processors include an interface to communicate to the secure firmware.
> +This interface allows for clients to request different types of actions.  These
> +can include CPU power up/down, HDCP requests, loading of firmware, and other
> +assorted actions.
> +
> +Required properties:
> +- compatible: must contain one of the following:
> + * "qcom,scm-apq8064" for APQ8064
> + * "qcom,scm-apq8084" for APQ8084
> + * "qcom,scm-msm8916" for MSM8916
> + * "qcom,scm-msm8974" for MSM8974

Do we need to keep adding these into the driver for every SoC
that we support? My understanding is apq8064 can be the one that
requires one clk, and msm8974 can be the one that requires three.
The driver can just have those two compatibles for now, and we
can keep adding compatibles here for the different SoCs, but
really we don't care, that's just to save ourselves if something
pops up and needs a workaround.

It will certainly look weird if it's firmware that's compatible
with qcom,scm-msm8974 but on an apq8084, so perhaps something
more generic like, qcom-scm-v1 and qcom,scm-v2 can be used as the
generic compatible in the driver:

	compatible = "qcom,scm-apq8064", "qcom,scm-v1";

	vs.

	compatible = "qcom,scm-apq8084", "qcom,scm-v2";

?

I just want to avoid the constant SoC churn update here if we can.
Andy Gross April 26, 2016, 2:14 a.m. UTC | #2
On 25 April 2016 at 20:49, Stephen Boyd <sboyd@codeaurora.org> wrote:
> On 04/25, Andy Gross wrote:
>> This patch adds the device tree support for the Qualcomm SCM firmware.
>>
>> Signed-off-by: Andy Gross <andy.gross@linaro.org>
>> ---
>>  .../devicetree/bindings/firmware/qcom,scm.txt      | 28 ++++++++++++++++++++++
>>  1 file changed, 28 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
>>
>> diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
>> new file mode 100644
>> index 0000000..a679a87
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
>> @@ -0,0 +1,28 @@
>> +QCOM Secure Channel Manager (SCM)
>> +
>> +Qualcomm processors include an interface to communicate to the secure firmware.
>> +This interface allows for clients to request different types of actions.  These
>> +can include CPU power up/down, HDCP requests, loading of firmware, and other
>> +assorted actions.
>> +
>> +Required properties:
>> +- compatible: must contain one of the following:
>> + * "qcom,scm-apq8064" for APQ8064
>> + * "qcom,scm-apq8084" for APQ8084
>> + * "qcom,scm-msm8916" for MSM8916
>> + * "qcom,scm-msm8974" for MSM8974
>
> Do we need to keep adding these into the driver for every SoC
> that we support? My understanding is apq8064 can be the one that
> requires one clk, and msm8974 can be the one that requires three.
> The driver can just have those two compatibles for now, and we
> can keep adding compatibles here for the different SoCs, but
> really we don't care, that's just to save ourselves if something
> pops up and needs a workaround.
>
> It will certainly look weird if it's firmware that's compatible
> with qcom,scm-msm8974 but on an apq8084, so perhaps something
> more generic like, qcom-scm-v1 and qcom,scm-v2 can be used as the
> generic compatible in the driver:
>
>         compatible = "qcom,scm-apq8064", "qcom,scm-v1";
>
>         vs.
>
>         compatible = "qcom,scm-apq8084", "qcom,scm-v2";
>
> ?
>
> I just want to avoid the constant SoC churn update here if we can.

Right.  We can certainly do it that way.  Its just that the v1/v2
aren't the real versions.  What if we did qcom,scm vs
qcom,scm-apq8064?
Rob Herring April 28, 2016, 8:47 p.m. UTC | #3
On Mon, Apr 25, 2016 at 09:14:59PM -0500, Andy Gross wrote:
> On 25 April 2016 at 20:49, Stephen Boyd <sboyd@codeaurora.org> wrote:
> > On 04/25, Andy Gross wrote:
> >> This patch adds the device tree support for the Qualcomm SCM firmware.
> >>
> >> Signed-off-by: Andy Gross <andy.gross@linaro.org>
> >> ---
> >>  .../devicetree/bindings/firmware/qcom,scm.txt      | 28 ++++++++++++++++++++++
> >>  1 file changed, 28 insertions(+)
> >>  create mode 100644 Documentation/devicetree/bindings/firmware/qcom,scm.txt
> >>
> >> diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
> >> new file mode 100644
> >> index 0000000..a679a87
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
> >> @@ -0,0 +1,28 @@
> >> +QCOM Secure Channel Manager (SCM)
> >> +
> >> +Qualcomm processors include an interface to communicate to the secure firmware.
> >> +This interface allows for clients to request different types of actions.  These
> >> +can include CPU power up/down, HDCP requests, loading of firmware, and other
> >> +assorted actions.
> >> +
> >> +Required properties:
> >> +- compatible: must contain one of the following:
> >> + * "qcom,scm-apq8064" for APQ8064
> >> + * "qcom,scm-apq8084" for APQ8084
> >> + * "qcom,scm-msm8916" for MSM8916
> >> + * "qcom,scm-msm8974" for MSM8974
> >
> > Do we need to keep adding these into the driver for every SoC
> > that we support? My understanding is apq8064 can be the one that
> > requires one clk, and msm8974 can be the one that requires three.
> > The driver can just have those two compatibles for now, and we
> > can keep adding compatibles here for the different SoCs, but
> > really we don't care, that's just to save ourselves if something
> > pops up and needs a workaround.
> >
> > It will certainly look weird if it's firmware that's compatible
> > with qcom,scm-msm8974 but on an apq8084, so perhaps something

Not if the first string has apq8084.

> > more generic like, qcom-scm-v1 and qcom,scm-v2 can be used as the
> > generic compatible in the driver:
> >
> >         compatible = "qcom,scm-apq8064", "qcom,scm-v1";
> >
> >         vs.
> >
> >         compatible = "qcom,scm-apq8084", "qcom,scm-v2";
> >
> > ?
> >
> > I just want to avoid the constant SoC churn update here if we can.
> 
> Right.  We can certainly do it that way.  Its just that the v1/v2
> aren't the real versions.  What if we did qcom,scm vs
> qcom,scm-apq8064?

I'd prefer this over fake version numbers.

Is there any sane versioning of the firmware itself that could be used?

Rob

Patch
diff mbox

diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
new file mode 100644
index 0000000..a679a87
--- /dev/null
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
@@ -0,0 +1,28 @@ 
+QCOM Secure Channel Manager (SCM)
+
+Qualcomm processors include an interface to communicate to the secure firmware.
+This interface allows for clients to request different types of actions.  These
+can include CPU power up/down, HDCP requests, loading of firmware, and other
+assorted actions.
+
+Required properties:
+- compatible: must contain one of the following:
+ * "qcom,scm-apq8064" for APQ8064
+ * "qcom,scm-apq8084" for APQ8084
+ * "qcom,scm-msm8916" for MSM8916
+ * "qcom,scm-msm8974" for MSM8974
+- clocks: One to three clocks may be required based on compatible.
+ * Only core clock required for "qcom,scm-apq8064"
+ * Core, iface, and bus clocks required for all other compatibles.
+- clock-names: Must contain "core" for the core clock, "iface" for the interface
+  clock and "bus" for the bus clock per the requirements of the compatible.
+
+Example for MSM8916:
+
+	firmware {
+		scm {
+			compatible = "qcom,scm-msm8916";
+			clocks = <&gcc GCC_CRYPTO_CLK> , <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
+			clock-names = "core", "bus", "iface";
+		};
+	};