linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [v2 0/2] Add Q6SSTOP clock controller for QCS404
@ 2019-08-13 13:09 Govind Singh
  2019-08-13 13:09 ` [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings Govind Singh
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Govind Singh @ 2019-08-13 13:09 UTC (permalink / raw)
  To: sboyd
  Cc: bjorn.andersson, linux-arm-msm, linux-clk, devicetree, linux-soc,
	andy.gross, linux-remoteproc, Govind Singh

Add support for the Q6SSTOP clock control used on qcs404
based devices. This would allow wcss remoteproc driver to
control the required WCSS Q6SSTOP clock/reset controls to
bring the subsystem out of reset and shutdown the WCSS Q6DSP.

Govind Singh (2):
  dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings
  clk: qcom: Add Q6SSTOP clock controller for QCS404

 .../bindings/clock/qcom,q6sstopcc.yaml        |  45 ++++
 drivers/clk/qcom/Kconfig                      |   8 +
 drivers/clk/qcom/Makefile                     |   1 +
 drivers/clk/qcom/q6sstop-qcs404.c             | 223 ++++++++++++++++++
 .../dt-bindings/clock/qcom,q6sstopcc-qcs404.h |  18 ++
 5 files changed, 295 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
 create mode 100644 drivers/clk/qcom/q6sstop-qcs404.c
 create mode 100644 include/dt-bindings/clock/qcom,q6sstopcc-qcs404.h

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings
  2019-08-13 13:09 [v2 0/2] Add Q6SSTOP clock controller for QCS404 Govind Singh
@ 2019-08-13 13:09 ` Govind Singh
  2019-08-13 13:43   ` Rob Herring
  2019-08-13 13:09 ` [v2 2/2] clk: qcom: Add Q6SSTOP clock controller for QCS404 Govind Singh
  2019-08-13 18:32 ` [v2 0/2] " Stephen Boyd
  2 siblings, 1 reply; 8+ messages in thread
From: Govind Singh @ 2019-08-13 13:09 UTC (permalink / raw)
  To: sboyd
  Cc: bjorn.andersson, linux-arm-msm, linux-clk, devicetree, linux-soc,
	andy.gross, linux-remoteproc, Govind Singh

Add devicetree binding for the Q6SSTOP clock controller found in QCS404.

Signed-off-by: Govind Singh <govinds@codeaurora.org>
---
 .../bindings/clock/qcom,q6sstopcc.yaml        | 45 +++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml

diff --git a/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
new file mode 100644
index 000000000000..861e9ba97ca3
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,osm-l3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Q6SSTOP clock Controller
+
+maintainers:
+  - Govind Singh <govinds@codeaurora.org>
+
+description:
+   Q6SSTOP clock controller is used by WCSS remoteproc driver
+   to bring WDSP out of reset.
+
+properties:
+  compatible:
+    const: "qcom,qcs404-q6sstopcc"
+
+  reg:
+    maxItems: 2
+    description: Q6SSTOP clocks register region
+    description: Q6SSTOP_TCSR register region
+
+  clocks:
+    items:
+      - description: ahb clock for the q6sstopCC
+
+  '#clock-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - '#clock-cells'
+
+examples:
+  - |
+    q6sstopcc: clock-controller@7500000 {
+      compatible = "qcom,qcs404-q6sstopcc";
+      reg = <0x07500000 0x4e000>, <0x07550000 0x10000>;
+      clocks = <&gcc GCC_WCSS_Q6_AHB_CLK>;
+      #clock-cells = <1>;
+    };
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [v2 2/2] clk: qcom: Add Q6SSTOP clock controller for QCS404
  2019-08-13 13:09 [v2 0/2] Add Q6SSTOP clock controller for QCS404 Govind Singh
  2019-08-13 13:09 ` [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings Govind Singh
@ 2019-08-13 13:09 ` Govind Singh
  2019-08-13 18:32 ` [v2 0/2] " Stephen Boyd
  2 siblings, 0 replies; 8+ messages in thread
From: Govind Singh @ 2019-08-13 13:09 UTC (permalink / raw)
  To: sboyd
  Cc: bjorn.andersson, linux-arm-msm, linux-clk, devicetree, linux-soc,
	andy.gross, linux-remoteproc, Govind Singh

Add support for the Q6SSTOP clock control used on qcs404
based devices. This would allow wcss remoteproc driver to
control the required WCSS Q6SSTOP clock/reset controls to
bring the subsystem out of reset and shutdown the WCSS Q6DSP.

Signed-off-by: Govind Singh <govinds@codeaurora.org>
---
 drivers/clk/qcom/Kconfig                      |   8 +
 drivers/clk/qcom/Makefile                     |   1 +
 drivers/clk/qcom/q6sstop-qcs404.c             | 223 ++++++++++++++++++
 .../dt-bindings/clock/qcom,q6sstopcc-qcs404.h |  18 ++
 4 files changed, 250 insertions(+)
 create mode 100644 drivers/clk/qcom/q6sstop-qcs404.c
 create mode 100644 include/dt-bindings/clock/qcom,q6sstopcc-qcs404.h

diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index e1ff83cc361e..1b3c87a97521 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -250,6 +250,14 @@ config QCS_TURING_404
 	  Support for the Turing Clock Controller on QCS404, provides clocks
 	  and resets for the Turing subsystem.
 
+config QCS_Q6SSTOP_404
+	tristate "QCS404 Q6SSTOP Clock Controller"
+	select QCS_GCC_404
+	help
+	  Support for the Q6SSTOP clock controller on QCS404 devices.
+	  Say Y if you want to use the Q6SSTOP branch clocks of the WCSS clock
+	  controller to reset the Q6SSTOP subsystem.
+
 config SDM_GCC_845
 	tristate "SDM845 Global Clock Controller"
 	select QCOM_GDSC
diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile
index f0768fb1f037..086c053e0e03 100644
--- a/drivers/clk/qcom/Makefile
+++ b/drivers/clk/qcom/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_QCOM_CLK_RPMH) += clk-rpmh.o
 obj-$(CONFIG_QCOM_CLK_SMD_RPM) += clk-smd-rpm.o
 obj-$(CONFIG_QCS_GCC_404) += gcc-qcs404.o
 obj-$(CONFIG_QCS_TURING_404) += turingcc-qcs404.o
+obj-$(CONFIG_QCS_Q6SSTOP_404) += q6sstop-qcs404.o
 obj-$(CONFIG_SDM_CAMCC_845) += camcc-sdm845.o
 obj-$(CONFIG_SDM_DISPCC_845) += dispcc-sdm845.o
 obj-$(CONFIG_SDM_GCC_660) += gcc-sdm660.o
diff --git a/drivers/clk/qcom/q6sstop-qcs404.c b/drivers/clk/qcom/q6sstop-qcs404.c
new file mode 100644
index 000000000000..b0f54a4c9365
--- /dev/null
+++ b/drivers/clk/qcom/q6sstop-qcs404.c
@@ -0,0 +1,223 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ */
+
+#include <linux/bitops.h>
+#include <linux/err.h>
+#include <linux/platform_device.h>
+#include <linux/module.h>
+#include <linux/pm_clock.h>
+#include <linux/pm_runtime.h>
+#include <linux/regmap.h>
+
+#include <dt-bindings/clock/qcom,q6sstopcc-qcs404.h>
+
+#include "clk-regmap.h"
+#include "clk-branch.h"
+#include "common.h"
+#include "reset.h"
+
+static struct clk_branch lcc_ahbfabric_cbc_clk = {
+	.halt_reg = 0x1b004,
+	.halt_check = BRANCH_HALT,
+	.clkr = {
+		.enable_reg = 0x1b004,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "lcc_ahbfabric_cbc_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch lcc_q6ss_ahbs_cbc_clk = {
+	.halt_reg = 0x22000,
+	.halt_check = BRANCH_VOTED,
+	.clkr = {
+		.enable_reg = 0x22000,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "lcc_q6ss_ahbs_cbc_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch lcc_q6ss_tcm_slave_cbc_clk = {
+	.halt_reg = 0x1c000,
+	.halt_check = BRANCH_VOTED,
+	.clkr = {
+		.enable_reg = 0x1c000,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "lcc_q6ss_tcm_slave_cbc_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch lcc_q6ss_ahbm_cbc_clk = {
+	.halt_reg = 0x22004,
+	.halt_check = BRANCH_VOTED,
+	.clkr = {
+		.enable_reg = 0x22004,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "lcc_q6ss_ahbm_cbc_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch lcc_q6ss_axim_cbc_clk = {
+	.halt_reg = 0x1c004,
+	.halt_check = BRANCH_VOTED,
+	.clkr = {
+		.enable_reg = 0x1c004,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "lcc_q6ss_axim_cbc_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct clk_branch lcc_q6ss_bcr_sleep_clk = {
+	.halt_reg = 0x6004,
+	.halt_check = BRANCH_VOTED,
+	.clkr = {
+		.enable_reg = 0x6004,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "lcc_q6ss_bcr_sleep_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+/* TCSR clock */
+static struct clk_branch tcsr_lcc_csr_cbcr_clk = {
+	.halt_reg = 0x8008,
+	.halt_check = BRANCH_VOTED,
+	.clkr = {
+		.enable_reg = 0x8008,
+		.enable_mask = BIT(0),
+		.hw.init = &(struct clk_init_data){
+			.name = "tcsr_lcc_csr_cbcr_clk",
+			.ops = &clk_branch2_ops,
+		},
+	},
+};
+
+static struct regmap_config q6sstop_regmap_config = {
+	.reg_bits	= 32,
+	.reg_stride	= 4,
+	.val_bits	= 32,
+	.fast_io	= true,
+};
+
+static struct clk_regmap *q6sstop_qcs404_clocks[] = {
+	[LCC_AHBFABRIC_CBC_CLK] = &lcc_ahbfabric_cbc_clk.clkr,
+	[LCC_Q6SS_AHBS_CBC_CLK] = &lcc_q6ss_ahbs_cbc_clk.clkr,
+	[LCC_Q6SS_TCM_SLAVE_CBC_CLK] = &lcc_q6ss_tcm_slave_cbc_clk.clkr,
+	[LCC_Q6SS_AHBM_CBC_CLK] = &lcc_q6ss_ahbm_cbc_clk.clkr,
+	[LCC_Q6SS_AXIM_CBC_CLK] = &lcc_q6ss_axim_cbc_clk.clkr,
+	[LCC_Q6SS_BCR_SLEEP_CLK] = &lcc_q6ss_bcr_sleep_clk.clkr,
+};
+
+static const struct qcom_reset_map q6sstop_qcs404_resets[] = {
+	[Q6SSTOP_BCR_RESET] = { 0x6000 },
+};
+
+static const struct qcom_cc_desc q6sstop_qcs404_desc = {
+	.config = &q6sstop_regmap_config,
+	.clks = q6sstop_qcs404_clocks,
+	.num_clks = ARRAY_SIZE(q6sstop_qcs404_clocks),
+	.resets = q6sstop_qcs404_resets,
+	.num_resets = ARRAY_SIZE(q6sstop_qcs404_resets),
+};
+
+static struct clk_regmap *tcsr_qcs404_clocks[] = {
+	[TCSR_Q6SS_LCC_CBCR_CLK] = &tcsr_lcc_csr_cbcr_clk.clkr,
+};
+
+static const struct qcom_cc_desc tcsr_qcs404_desc = {
+	.config = &q6sstop_regmap_config,
+	.clks = tcsr_qcs404_clocks,
+	.num_clks = ARRAY_SIZE(tcsr_qcs404_clocks),
+};
+
+static const struct of_device_id q6sstopcc_qcs404_match_table[] = {
+	{ .compatible = "qcom,qcs404-q6sstopcc" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, q6sstopcc_qcs404_match_table);
+
+static int q6sstopcc_qcs404_probe(struct platform_device *pdev)
+{
+	const struct qcom_cc_desc *desc;
+	int ret;
+
+	pm_runtime_enable(&pdev->dev);
+	ret = pm_clk_create(&pdev->dev);
+	if (ret)
+		goto disable_pm_runtime;
+
+	ret = pm_clk_add(&pdev->dev, NULL);
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to acquire iface clock\n");
+		goto destroy_pm_clk;
+	}
+
+	q6sstop_regmap_config.name = "q6sstop_tcsr";
+	desc = &tcsr_qcs404_desc;
+
+	ret = qcom_cc_probe_by_index(pdev, 1, desc);
+	if (ret)
+		goto destroy_pm_clk;
+
+	q6sstop_regmap_config.name = "q6sstop_cc";
+	desc = &q6sstop_qcs404_desc;
+
+	ret = qcom_cc_probe_by_index(pdev, 0, desc);
+	if (ret)
+		goto destroy_pm_clk;
+
+	return 0;
+
+destroy_pm_clk:
+	pm_clk_destroy(&pdev->dev);
+
+disable_pm_runtime:
+	pm_runtime_disable(&pdev->dev);
+
+	return ret;
+}
+
+static int q6sstopcc_qcs404_remove(struct platform_device *pdev)
+{
+	pm_clk_destroy(&pdev->dev);
+	pm_runtime_disable(&pdev->dev);
+
+	return 0;
+}
+
+static const struct dev_pm_ops q6sstopcc_pm_ops = {
+	SET_RUNTIME_PM_OPS(pm_clk_suspend, pm_clk_resume, NULL)
+};
+
+static struct platform_driver q6sstopcc_qcs404_driver = {
+	.probe		= q6sstopcc_qcs404_probe,
+	.remove		= q6sstopcc_qcs404_remove,
+	.driver		= {
+		.name	= "qcs404-q6sstopcc",
+		.of_match_table = q6sstopcc_qcs404_match_table,
+		.pm = &q6sstopcc_pm_ops,
+	},
+};
+
+module_platform_driver(q6sstopcc_qcs404_driver);
+
+MODULE_DESCRIPTION("QTI QCS404 Q6SSTOP Clock Controller Driver");
+MODULE_LICENSE("GPL v2");
diff --git a/include/dt-bindings/clock/qcom,q6sstopcc-qcs404.h b/include/dt-bindings/clock/qcom,q6sstopcc-qcs404.h
new file mode 100644
index 000000000000..c6f5290f0914
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,q6sstopcc-qcs404.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_Q6SSTOP_QCS404_H
+#define _DT_BINDINGS_CLK_Q6SSTOP_QCS404_H
+
+#define LCC_AHBFABRIC_CBC_CLK			0
+#define LCC_Q6SS_AHBS_CBC_CLK			1
+#define LCC_Q6SS_TCM_SLAVE_CBC_CLK		2
+#define LCC_Q6SS_AHBM_CBC_CLK			3
+#define LCC_Q6SS_AXIM_CBC_CLK			4
+#define LCC_Q6SS_BCR_SLEEP_CLK			5
+#define TCSR_Q6SS_LCC_CBCR_CLK			6
+
+#define Q6SSTOP_BCR_RESET			1
+#endif
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings
  2019-08-13 13:09 ` [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings Govind Singh
@ 2019-08-13 13:43   ` Rob Herring
  2019-08-14  6:41     ` Bjorn Andersson
  2019-08-23 13:18     ` Govind Singh
  0 siblings, 2 replies; 8+ messages in thread
From: Rob Herring @ 2019-08-13 13:43 UTC (permalink / raw)
  To: Govind Singh
  Cc: Stephen Boyd, Bjorn Andersson, linux-arm-msm, linux-clk,
	devicetree, open list:ARM/QUALCOMM SUPPORT, Andy Gross,
	open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM

On Tue, Aug 13, 2019 at 7:10 AM Govind Singh <govinds@codeaurora.org> wrote:
>
> Add devicetree binding for the Q6SSTOP clock controller found in QCS404.

You need to test this with 'make dt_binding_check' and fix the errors.

>
> Signed-off-by: Govind Singh <govinds@codeaurora.org>
> ---
>  .../bindings/clock/qcom,q6sstopcc.yaml        | 45 +++++++++++++++++++
>  1 file changed, 45 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
>
> diff --git a/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> new file mode 100644
> index 000000000000..861e9ba97ca3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: BSD-2-Clause

GPL-2.0-only OR BSD-2-Clause

> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/interconnect/qcom,osm-l3.yaml#

needs updating

> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Q6SSTOP clock Controller
> +
> +maintainers:
> +  - Govind Singh <govinds@codeaurora.org>
> +
> +description:
> +   Q6SSTOP clock controller is used by WCSS remoteproc driver
> +   to bring WDSP out of reset.
> +
> +properties:
> +  compatible:
> +    const: "qcom,qcs404-q6sstopcc"
> +
> +  reg:
> +    maxItems: 2
> +    description: Q6SSTOP clocks register region
> +    description: Q6SSTOP_TCSR register region

Not valid json-schema

> +
> +  clocks:
> +    items:
> +      - description: ahb clock for the q6sstopCC

Single item just needs 'maxItems: 1'

> +
> +  '#clock-cells':
> +    const: 1
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - '#clock-cells'

Should have an 'additionalProperties: false' here.

> +
> +examples:
> +  - |
> +    q6sstopcc: clock-controller@7500000 {
> +      compatible = "qcom,qcs404-q6sstopcc";
> +      reg = <0x07500000 0x4e000>, <0x07550000 0x10000>;
> +      clocks = <&gcc GCC_WCSS_Q6_AHB_CLK>;
> +      #clock-cells = <1>;
> +    };
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [v2 0/2] Add Q6SSTOP clock controller for QCS404
  2019-08-13 13:09 [v2 0/2] Add Q6SSTOP clock controller for QCS404 Govind Singh
  2019-08-13 13:09 ` [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings Govind Singh
  2019-08-13 13:09 ` [v2 2/2] clk: qcom: Add Q6SSTOP clock controller for QCS404 Govind Singh
@ 2019-08-13 18:32 ` Stephen Boyd
  2 siblings, 0 replies; 8+ messages in thread
From: Stephen Boyd @ 2019-08-13 18:32 UTC (permalink / raw)
  To: Govind Singh
  Cc: bjorn.andersson, linux-arm-msm, linux-clk, devicetree, linux-soc,
	andy.gross, linux-remoteproc, Govind Singh

Quoting Govind Singh (2019-08-13 06:09:44)
> Add support for the Q6SSTOP clock control used on qcs404
> based devices. This would allow wcss remoteproc driver to
> control the required WCSS Q6SSTOP clock/reset controls to
> bring the subsystem out of reset and shutdown the WCSS Q6DSP.

What changed from v1? Please include a changelog so we know what
happened.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings
  2019-08-13 13:43   ` Rob Herring
@ 2019-08-14  6:41     ` Bjorn Andersson
  2019-08-14 23:17       ` Rob Herring
  2019-08-23 13:18     ` Govind Singh
  1 sibling, 1 reply; 8+ messages in thread
From: Bjorn Andersson @ 2019-08-14  6:41 UTC (permalink / raw)
  To: Rob Herring
  Cc: Govind Singh, Stephen Boyd, linux-arm-msm, linux-clk, devicetree,
	open list:ARM/QUALCOMM SUPPORT, Andy Gross,
	open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM

On Tue 13 Aug 06:43 PDT 2019, Rob Herring wrote:

> On Tue, Aug 13, 2019 at 7:10 AM Govind Singh <govinds@codeaurora.org> wrote:
> >
> > Add devicetree binding for the Q6SSTOP clock controller found in QCS404.
> 
> You need to test this with 'make dt_binding_check' and fix the errors.
> 
> >
> > Signed-off-by: Govind Singh <govinds@codeaurora.org>
> > ---
> >  .../bindings/clock/qcom,q6sstopcc.yaml        | 45 +++++++++++++++++++
> >  1 file changed, 45 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> > new file mode 100644
> > index 000000000000..861e9ba97ca3
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> > @@ -0,0 +1,45 @@
> > +# SPDX-License-Identifier: BSD-2-Clause
> 
> GPL-2.0-only OR BSD-2-Clause
> 

Is this a requirement of the devicetree project? Wouldn't the BSD
license alone be sufficient for the type of interoperability that we're
striving for?

Regards,
Bjorn

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings
  2019-08-14  6:41     ` Bjorn Andersson
@ 2019-08-14 23:17       ` Rob Herring
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2019-08-14 23:17 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Govind Singh, Stephen Boyd, linux-arm-msm, linux-clk, devicetree,
	open list:ARM/QUALCOMM SUPPORT, Andy Gross,
	open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM

On Wed, Aug 14, 2019 at 12:39 AM Bjorn Andersson
<bjorn.andersson@linaro.org> wrote:
>
> On Tue 13 Aug 06:43 PDT 2019, Rob Herring wrote:
>
> > On Tue, Aug 13, 2019 at 7:10 AM Govind Singh <govinds@codeaurora.org> wrote:
> > >
> > > Add devicetree binding for the Q6SSTOP clock controller found in QCS404.
> >
> > You need to test this with 'make dt_binding_check' and fix the errors.
> >
> > >
> > > Signed-off-by: Govind Singh <govinds@codeaurora.org>
> > > ---
> > >  .../bindings/clock/qcom,q6sstopcc.yaml        | 45 +++++++++++++++++++
> > >  1 file changed, 45 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> > > new file mode 100644
> > > index 000000000000..861e9ba97ca3
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
> > > @@ -0,0 +1,45 @@
> > > +# SPDX-License-Identifier: BSD-2-Clause
> >
> > GPL-2.0-only OR BSD-2-Clause
> >
>
> Is this a requirement of the devicetree project?

More like my preference.

> Wouldn't the BSD
> license alone be sufficient for the type of interoperability that we're
> striving for?

Yes. However, folks like to copy and paste and forget to pay attention
to the license. So we'll end up with GPL licensed code copied into BSD
licensed code. Dual license doesn't completely solve that, but helps
somewhat IMO.

Rob

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings
  2019-08-13 13:43   ` Rob Herring
  2019-08-14  6:41     ` Bjorn Andersson
@ 2019-08-23 13:18     ` Govind Singh
  1 sibling, 0 replies; 8+ messages in thread
From: Govind Singh @ 2019-08-23 13:18 UTC (permalink / raw)
  To: Rob Herring
  Cc: Stephen Boyd, Bjorn Andersson, linux-arm-msm, linux-clk,
	devicetree, open list:ARM/QUALCOMM SUPPORT, Andy Gross,
	open list:REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM

Hi Rob,

On 2019-08-13 19:13, Rob Herring wrote:
> On Tue, Aug 13, 2019 at 7:10 AM Govind Singh <govinds@codeaurora.org> 
> wrote:
>> 
>> Add devicetree binding for the Q6SSTOP clock controller found in 
>> QCS404.
> 
> You need to test this with 'make dt_binding_check' and fix the errors.
> 

Fixed in v3.

>> 
>> Signed-off-by: Govind Singh <govinds@codeaurora.org>
>> ---
>>  .../bindings/clock/qcom,q6sstopcc.yaml        | 45 
>> +++++++++++++++++++
>>  1 file changed, 45 insertions(+)
>>  create mode 100644 
>> Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
>> 
>> diff --git 
>> a/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml 
>> b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
>> new file mode 100644
>> index 000000000000..861e9ba97ca3
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/qcom,q6sstopcc.yaml
>> @@ -0,0 +1,45 @@
>> +# SPDX-License-Identifier: BSD-2-Clause
> 
> GPL-2.0-only OR BSD-2-Clause
> 

I have kept BSD-2-Clause as its new binding.

>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/interconnect/qcom,osm-l3.yaml#
> 
> needs updating
> 

Fixed in V3.

>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Q6SSTOP clock Controller
>> +
>> +maintainers:
>> +  - Govind Singh <govinds@codeaurora.org>
>> +
>> +description:
>> +   Q6SSTOP clock controller is used by WCSS remoteproc driver
>> +   to bring WDSP out of reset.
>> +
>> +properties:
>> +  compatible:
>> +    const: "qcom,qcs404-q6sstopcc"
>> +
>> +  reg:
>> +    maxItems: 2
>> +    description: Q6SSTOP clocks register region
>> +    description: Q6SSTOP_TCSR register region
> 
> Not valid json-schema
> 

Fixed in V3.

>> +
>> +  clocks:
>> +    items:
>> +      - description: ahb clock for the q6sstopCC
> 
> Single item just needs 'maxItems: 1'
> 
>> +
>> +  '#clock-cells':
>> +    const: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - clocks
>> +  - '#clock-cells'
> 
> Should have an 'additionalProperties: false' here.
> 

Fixed in v3.

>> +
>> +examples:
>> +  - |
>> +    q6sstopcc: clock-controller@7500000 {
>> +      compatible = "qcom,qcs404-q6sstopcc";
>> +      reg = <0x07500000 0x4e000>, <0x07550000 0x10000>;
>> +      clocks = <&gcc GCC_WCSS_Q6_AHB_CLK>;
>> +      #clock-cells = <1>;
>> +    };
>> --
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora 
>> Forum,
>> a Linux Foundation Collaborative Project
>> 

BR,
Govind

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-08-23 13:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-13 13:09 [v2 0/2] Add Q6SSTOP clock controller for QCS404 Govind Singh
2019-08-13 13:09 ` [v2 1/2] dt-bindings: clock: qcom: Add QCOM Q6SSTOP clock controller bindings Govind Singh
2019-08-13 13:43   ` Rob Herring
2019-08-14  6:41     ` Bjorn Andersson
2019-08-14 23:17       ` Rob Herring
2019-08-23 13:18     ` Govind Singh
2019-08-13 13:09 ` [v2 2/2] clk: qcom: Add Q6SSTOP clock controller for QCS404 Govind Singh
2019-08-13 18:32 ` [v2 0/2] " Stephen Boyd

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).