Skip to contentSkip to conversation

Add support for PDC Global on SDM845 SoCs

PATCH In review Sibi Sankar 4 participants 14 messages Aug 29, 2018 – Oct 5, 2018

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

v3 cover Add support for PDC Global on SDM845 SoCs

This patch series add support for PDC Global (Power Domain Controller) on SDM845 SoCs and adds pdc reset lines assert/deassert to remoteproc Q6v5 modem-pil. The first two patches adds PDC Global reset driver to control reset signals of Modem, Compute, Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS. The last four patches (cleans up)/adds pdc reset lines to q6v5 bindings and asserts/deasserts in modem start/stop path.

V3:
refactored pdc reset driver to remove unused layer of indirection as suggested by Matthias
Other minor fixes suggested by Matthias/Bjorn

V2:
Incorporated Philipp/Bjorn/Rob suggestions Renamed reset binding to pdc-global.txt replaced offset with #define of register name replaced with devm_reset_control_get_exclusive() Separted dt binding from the drivers

Sibi Sankar (6):
dt-bindings: reset: Add PDC Global binding for SDM845 SoCs
reset: qcom: PDC Global (Power Domain Controller) reset controller
dt-bindings: remoteproc: qcom: Remove additional definition tag
dt-bindings: remoteproc: Add PDC reset binding for Q6V5 PIL
remoteproc: qcom: q6v5-pil: Explicitly get mss_restart line
remoteproc: qcom: q6v5-pil: Add PDC reset for modem on SDM845 SoCs

 .../bindings/remoteproc/qcom,q6v5.txt         |   8 +-
 .../bindings/reset/qcom,pdc-global.txt        |  52 ++++++++
 drivers/remoteproc/qcom_q6v5_pil.c            |  31 ++++-
 drivers/reset/Kconfig                         |   9 ++
 drivers/reset/Makefile                        |   1 +
 drivers/reset/reset-qcom-pdc.c                | 124 ++++++++++++++++++
 include/dt-bindings/reset/qcom,sdm845-pdc.h   |  20 +++
 7 files changed, 237 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/reset/qcom,pdc-global.txt
 create mode 100644 drivers/reset/reset-qcom-pdc.c
 create mode 100644 include/dt-bindings/reset/qcom,sdm845-pdc.h
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#1 lore raw

PATCH v3 1/6 dt-bindings: reset: Add PDC Global binding for SDM845 SoCs

Add PDC Global (Power Domain Controller) binding for SDM845 SoCs.

---
 .../bindings/reset/qcom,pdc-global.txt        | 52 +++++++++++++++++++
 include/dt-bindings/reset/qcom,sdm845-pdc.h   | 20 +++++++
 2 files changed, 72 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/reset/qcom,pdc-global.txt
 create mode 100644 include/dt-bindings/reset/qcom,sdm845-pdc.h
Documentation/devicetree/bindings/reset/qcom,pdc-global.txt new file +52 -0
new file mode 100644
index 000000000000..a62a492843e7
@@ -0,0 +1,52 @@
+PDC Global
+======================================
+
+This binding describes a reset-controller found on PDC-Global (Power Domain
+Controller) block for Qualcomm Technologies Inc SDM845 SoCs.
+
+Required properties:
+- compatible:
+	Usage: required
+	Value type: <string>
+	Definition: must be:
+		    "qcom,sdm845-pdc-global"
+
+- reg:
+	Usage: required
+	Value type: <prop-encoded-array>
+	Definition: must specify the base address and size of the register
+	            space.
+
+- #reset-cells:
+	Usage: required
+	Value type: <uint>
+	Definition: must be 1; cell entry represents the reset index.
+
+Example:
+
+pdc_reset: reset-controller@b2e0000 {
+	compatible = "qcom,sdm845-pdc-global";
+	reg = <0xb2e0000 0x20000>;
+	#reset-cells = <1>;
+};
+
+PDC reset clients
+======================================
+
+Device nodes that need access to reset lines should
+specify them as a reset phandle in their corresponding node as
+specified in reset.txt.
+
+For a list of all valid reset indices see
+<dt-bindings/reset/qcom,sdm845-pdc.h>
+
+Example:
+
+modem-pil@4080000 {
+	...
+
+	resets = <&pdc_reset PDC_MODEM_SYNC_RESET>;
+	reset-names = "pdc_reset";
+
+	...
+};
include/dt-bindings/reset/qcom,sdm845-pdc.h new file +20 -0
new file mode 100644
index 000000000000..53c37f9c319a
@@ -0,0 +1,20 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2018 The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_RESET_PDC_SDM_845_H
+#define _DT_BINDINGS_RESET_PDC_SDM_845_H
+
+#define PDC_APPS_SYNC_RESET	0
+#define PDC_SP_SYNC_RESET	1
+#define PDC_AUDIO_SYNC_RESET	2
+#define PDC_SENSORS_SYNC_RESET	3
+#define PDC_AOP_SYNC_RESET	4
+#define PDC_DEBUG_SYNC_RESET	5
+#define PDC_GPU_SYNC_RESET	6
+#define PDC_DISPLAY_SYNC_RESET	7
+#define PDC_COMPUTE_SYNC_RESET	8
+#define PDC_MODEM_SYNC_RESET	9
+
+#endif
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#2 lore raw

PATCH v3 2/6 reset: qcom: PDC Global (Power Domain Controller) reset controller

In reply to Sibi Sankar

Add reset controller for SDM845 SoCs to control reset signals provided by PDC Global for Modem, Compute, Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS

---
 drivers/reset/Kconfig          |   9 +++
 drivers/reset/Makefile         |   1 +
 drivers/reset/reset-qcom-pdc.c | 124 +++++++++++++++++++++++++++++++++
 3 files changed, 134 insertions(+)
 create mode 100644 drivers/reset/reset-qcom-pdc.c
drivers/reset/Kconfig +9 -0
index 13d28fdbdbb5..c21da9fe51ec 100644
@@ -98,6 +98,15 @@ config RESET_QCOM_AOSS
 	  reset signals provided by AOSS for Modem, Venus, ADSP,
 	  GPU, Camera, Wireless, Display subsystem. Otherwise, say N.
 
+config RESET_QCOM_PDC
+	tristate "Qualcomm PDC Reset Driver"
+	depends on ARCH_QCOM || COMPILE_TEST
+	help
+	  This enables the PDC (Power Domain Controller) reset driver
+	  for Qualcomm Technologies Inc SDM845 SoCs. Say Y if you want
+	  to control reset signals provided by PDC for Modem, Compute,
+	  Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS.
+
 config RESET_SIMPLE
 	bool "Simple Reset Controller Driver" if COMPILE_TEST
 	default ARCH_SOCFPGA || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARCH_ZX || ARCH_ASPEED
drivers/reset/Makefile +1 -0
index 4243c38228e2..d08e8b90046a 100644
@@ -16,6 +16,7 @@ obj-$(CONFIG_RESET_MESON_AUDIO_ARB) += reset-meson-audio-arb.o
 obj-$(CONFIG_RESET_OXNAS) += reset-oxnas.o
 obj-$(CONFIG_RESET_PISTACHIO) += reset-pistachio.o
 obj-$(CONFIG_RESET_QCOM_AOSS) += reset-qcom-aoss.o
+obj-$(CONFIG_RESET_QCOM_PDC) += reset-qcom-pdc.o
 obj-$(CONFIG_RESET_SIMPLE) += reset-simple.o
 obj-$(CONFIG_RESET_STM32MP157) += reset-stm32mp1.o
 obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o
drivers/reset/reset-qcom-pdc.c new file +124 -0

124 lines not on this page · raw message

Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Reviewed-by on v3 2/6
#3 lore raw

Re: [PATCH v3 2/6] reset: qcom: PDC Global (Power Domain Controller) reset controller

Quoted 5 lines · Sibi Sankar

Add reset controller for SDM845 SoCs to control reset signals provided by PDC Global for Modem, Compute, Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS

Regards,
Bjorn

Quoted 173 lines
---
 drivers/reset/Kconfig          |   9 +++
 drivers/reset/Makefile         |   1 +
 drivers/reset/reset-qcom-pdc.c | 124 +++++++++++++++++++++++++++++++++
 3 files changed, 134 insertions(+)
 create mode 100644 drivers/reset/reset-qcom-pdc.c
drivers/reset/Kconfig +9 -0
index 13d28fdbdbb5..c21da9fe51ec 100644
@@ -98,6 +98,15 @@ config RESET_QCOM_AOSS
 	  reset signals provided by AOSS for Modem, Venus, ADSP,
 	  GPU, Camera, Wireless, Display subsystem. Otherwise, say N.
 
+config RESET_QCOM_PDC
+	tristate "Qualcomm PDC Reset Driver"
+	depends on ARCH_QCOM || COMPILE_TEST
+	help
+	  This enables the PDC (Power Domain Controller) reset driver
+	  for Qualcomm Technologies Inc SDM845 SoCs. Say Y if you want
+	  to control reset signals provided by PDC for Modem, Compute,
+	  Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS.
+
 config RESET_SIMPLE
 	bool "Simple Reset Controller Driver" if COMPILE_TEST
 	default ARCH_SOCFPGA || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARCH_ZX || ARCH_ASPEED
drivers/reset/Makefile +1 -0
index 4243c38228e2..d08e8b90046a 100644
@@ -16,6 +16,7 @@ obj-$(CONFIG_RESET_MESON_AUDIO_ARB) += reset-meson-audio-arb.o
 obj-$(CONFIG_RESET_OXNAS) += reset-oxnas.o
 obj-$(CONFIG_RESET_PISTACHIO) += reset-pistachio.o
 obj-$(CONFIG_RESET_QCOM_AOSS) += reset-qcom-aoss.o
+obj-$(CONFIG_RESET_QCOM_PDC) += reset-qcom-pdc.o
 obj-$(CONFIG_RESET_SIMPLE) += reset-simple.o
 obj-$(CONFIG_RESET_STM32MP157) += reset-stm32mp1.o
 obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o
drivers/reset/reset-qcom-pdc.c new file +124 -0
new file mode 100644
index 000000000000..ab74bccd4a5b
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2018 The Linux Foundation. All rights reserved.
+ */
+
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/reset-controller.h>
+
+#include <dt-bindings/reset/qcom,sdm845-pdc.h>
+
+#define RPMH_PDC_SYNC_RESET	0x100
+
+struct qcom_pdc_reset_map {
+	u8 bit;
+};
+
+struct qcom_pdc_reset_data {
+	struct reset_controller_dev rcdev;
+	struct regmap *regmap;
+};
+
+static const struct regmap_config sdm845_pdc_regmap_config = {
+	.name		= "pdc-reset",
+	.reg_bits	= 32,
+	.reg_stride	= 4,
+	.val_bits	= 32,
+	.max_register	= 0x20000,
+	.fast_io	= true,
+};
+
+static const struct qcom_pdc_reset_map sdm845_pdc_resets[] = {
+	[PDC_APPS_SYNC_RESET] = {0},
+	[PDC_SP_SYNC_RESET] = {1},
+	[PDC_AUDIO_SYNC_RESET] = {2},
+	[PDC_SENSORS_SYNC_RESET] = {3},
+	[PDC_AOP_SYNC_RESET] = {4},
+	[PDC_DEBUG_SYNC_RESET] = {5},
+	[PDC_GPU_SYNC_RESET] = {6},
+	[PDC_DISPLAY_SYNC_RESET] = {7},
+	[PDC_COMPUTE_SYNC_RESET] = {8},
+	[PDC_MODEM_SYNC_RESET] = {9},
+};
+
+static inline struct qcom_pdc_reset_data *to_qcom_pdc_reset_data(
+				struct reset_controller_dev *rcdev)
+{
+	return container_of(rcdev, struct qcom_pdc_reset_data, rcdev);
+}
+
+static int qcom_pdc_control_assert(struct reset_controller_dev *rcdev,
+					unsigned long idx)
+{
+	struct qcom_pdc_reset_data *data = to_qcom_pdc_reset_data(rcdev);
+
+	return regmap_update_bits(data->regmap, RPMH_PDC_SYNC_RESET,
+				  BIT(sdm845_pdc_resets[idx].bit),
+				  BIT(sdm845_pdc_resets[idx].bit));
+}
+
+static int qcom_pdc_control_deassert(struct reset_controller_dev *rcdev,
+					unsigned long idx)
+{
+	struct qcom_pdc_reset_data *data = to_qcom_pdc_reset_data(rcdev);
+
+	return regmap_update_bits(data->regmap, RPMH_PDC_SYNC_RESET,
+				  BIT(sdm845_pdc_resets[idx].bit), 0);
+}
+
+static const struct reset_control_ops qcom_pdc_reset_ops = {
+	.assert = qcom_pdc_control_assert,
+	.deassert = qcom_pdc_control_deassert,
+};
+
+static int qcom_pdc_reset_probe(struct platform_device *pdev)
+{
+	struct qcom_pdc_reset_data *data;
+	struct device *dev = &pdev->dev;
+	void __iomem *base;
+	struct resource *res;
+
+	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
+	if (!data)
+		return -ENOMEM;
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	base = devm_ioremap_resource(dev, res);
+	if (IS_ERR(base))
+		return PTR_ERR(base);
+
+	data->regmap = devm_regmap_init_mmio(dev, base,
+					     &sdm845_pdc_regmap_config);
+	if (IS_ERR(data->regmap)) {
+		dev_err(dev, "Unable to initialize regmap\n");
+		return PTR_ERR(data->regmap);
+	}
+
+	data->rcdev.owner = THIS_MODULE;
+	data->rcdev.ops = &qcom_pdc_reset_ops;
+	data->rcdev.nr_resets = ARRAY_SIZE(sdm845_pdc_resets);
+	data->rcdev.of_node = dev->of_node;
+
+	return devm_reset_controller_register(dev, &data->rcdev);
+}
+
+static const struct of_device_id qcom_pdc_reset_of_match[] = {
+	{ .compatible = "qcom,sdm845-pdc-global" },
+	{}
+};
+MODULE_DEVICE_TABLE(of, qcom_pdc_reset_of_match);
+
+static struct platform_driver qcom_pdc_reset_driver = {
+	.probe = qcom_pdc_reset_probe,
+	.driver = {
+		.name = "qcom_pdc_reset",
+		.of_match_table = qcom_pdc_reset_of_match,
+	},
+};
+module_platform_driver(qcom_pdc_reset_driver);
+
+MODULE_DESCRIPTION("Qualcomm PDC Reset Driver");
+MODULE_LICENSE("GPL v2");
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#4 lore raw

PATCH v3 3/6 dt-bindings: remoteproc: qcom: Remove additional definition tag

In reply to Sibi Sankar

Remove the additional definition tag declared for WCSS sub-system under reset-names.

---
 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +2 -2
index 601dd9f389aa..3a66cde5895a 100644
@@ -58,8 +58,8 @@ on the Qualcomm Hexagon core.
 	Usage: required
 	Value type: <stringlist>
 	Definition: must be "mss_restart" for the modem sub-system
-	Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
-		    for the wcss syb-system
+		    must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
+		    for the wcss sub-system
 
 - cx-supply:
 - mss-supply:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Reviewed-by on v3 3/6
#5 lore raw

Re: [PATCH v3 3/6] dt-bindings: remoteproc: qcom: Remove additional definition tag

Quoted 5 lines · Sibi Sankar

Remove the additional definition tag declared for WCSS sub-system under reset-names.

Regards,
Bjorn

Quoted 23 lines
---
 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +2 -2
index 601dd9f389aa..3a66cde5895a 100644
@@ -58,8 +58,8 @@ on the Qualcomm Hexagon core.
 	Usage: required
 	Value type: <stringlist>
 	Definition: must be "mss_restart" for the modem sub-system
-	Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
-		    for the wcss syb-system
+		    must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
+		    for the wcss sub-system
 
 - cx-supply:
 - mss-supply:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
maintainer Reviewed-by on v3 3/6
#6 lore raw

Re: [PATCH v3 3/6] dt-bindings: remoteproc: qcom: Remove additional definition tag

In reply to Sibi Sankar
Quoted 9 lines · Sibi Sankar

Remove the additional definition tag declared for WCSS sub-system under reset-names.

---
 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
#7 lore raw

PATCH v3 4/6 dt-bindings: remoteproc: Add PDC reset binding for Q6V5 PIL

In reply to Sibi Sankar

Add additional pdc_reset binding required for Q6V5 Modem PIL on SDM845 SoCs.

---
 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt | 4 ++++
 1 file changed, 4 insertions(+)
Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +4 -0
index 3a66cde5895a..9ff5b0309417 100644
@@ -53,6 +53,8 @@ on the Qualcomm Hexagon core.
 	Definition: reference to the reset-controller for the modem sub-system
 		    reference to the list of 3 reset-controllers for the
 		    wcss sub-system
+		    reference to the list of 2 reset-controllers for the modem
+		    sub-system on SDM845 SoCs
 
 - reset-names:
 	Usage: required
@@ -60,6 +62,8 @@ on the Qualcomm Hexagon core.
 	Definition: must be "mss_restart" for the modem sub-system
 		    must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
 		    for the wcss sub-system
+		    must be "mss_restart", "pdc_reset" for the modem
+		    sub-system on SDM845 SoCs
 
 - cx-supply:
 - mss-supply:
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#8 lore raw

PATCH v3 5/6 remoteproc: qcom: q6v5-pil: Explicitly get mss_restart line

In reply to Sibi Sankar

Explicitly get mss_restart to facilitate adding PDC reset line for modem on SDM845 SoCs

---
 drivers/remoteproc/qcom_q6v5_pil.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/remoteproc/qcom_q6v5_pil.c +1 -1
index b1296d614b8b..968413edf0c8 100644
@@ -1177,7 +1177,7 @@ static int q6v5_init_clocks(struct device *dev, struct clk **clks,
 static int q6v5_init_reset(struct q6v5 *qproc)
 {
 	qproc->mss_restart = devm_reset_control_get_exclusive(qproc->dev,
-							      NULL);
+							      "mss_restart");
 	if (IS_ERR(qproc->mss_restart)) {
 		dev_err(qproc->dev, "failed to acquire mss restart\n");
 		return PTR_ERR(qproc->mss_restart);
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#9 lore raw

PATCH v3 6/6 remoteproc: qcom: q6v5-pil: Add PDC reset for modem on SDM845 SoCs

In reply to Sibi Sankar

In the presence of a PDC block working with subsystem RSC, assert/deassert PDC reset in modem start/stop path.

---
 drivers/remoteproc/qcom_q6v5_pil.c | 29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)
drivers/remoteproc/qcom_q6v5_pil.c +24 -5
index 968413edf0c8..835fa005fe3e 100644
@@ -149,6 +149,7 @@ struct q6v5 {
 	u32 halt_nc;
 
 	struct reset_control *mss_restart;
+	struct reset_control *pdc_reset;
 
 	struct qcom_q6v5 q6v5;
 
@@ -349,10 +350,17 @@ static int q6v5_load(struct rproc *rproc, const struct firmware *fw)
 
 static int q6v5_reset_assert(struct q6v5 *qproc)
 {
-	if (qproc->has_alt_reset)
-		return reset_control_reset(qproc->mss_restart);
-	else
-		return reset_control_assert(qproc->mss_restart);
+	int ret;
+
+	if (qproc->has_alt_reset) {
+		reset_control_assert(qproc->pdc_reset);
+		ret = reset_control_reset(qproc->mss_restart);
+		reset_control_deassert(qproc->pdc_reset);
+	} else {
+		ret = reset_control_assert(qproc->mss_restart);
+	}
+
+	return ret;
 }
 
 static int q6v5_reset_deassert(struct q6v5 *qproc)
@@ -360,9 +368,11 @@ static int q6v5_reset_deassert(struct q6v5 *qproc)
 	int ret;
 
 	if (qproc->has_alt_reset) {
+		reset_control_assert(qproc->pdc_reset);
 		writel(1, qproc->rmb_base + RMB_MBA_ALT_RESET);
 		ret = reset_control_reset(qproc->mss_restart);
 		writel(0, qproc->rmb_base + RMB_MBA_ALT_RESET);
+		reset_control_deassert(qproc->pdc_reset);
 	} else {
 		ret = reset_control_deassert(qproc->mss_restart);
 	}
@@ -1183,6 +1193,15 @@ static int q6v5_init_reset(struct q6v5 *qproc)
 		return PTR_ERR(qproc->mss_restart);
 	}
 
+	if (qproc->has_alt_reset) {
+		qproc->pdc_reset = devm_reset_control_get_exclusive(qproc->dev,
+								"pdc_reset");
+		if (IS_ERR(qproc->pdc_reset)) {
+			dev_err(qproc->dev, "failed to acquire pdc reset\n");
+			return PTR_ERR(qproc->pdc_reset);
+		}
+	}
+
 	return 0;
 }
 
@@ -1303,12 +1322,12 @@ static int q6v5_probe(struct platform_device *pdev)
 	}
 	qproc->active_reg_count = ret;
 
+	qproc->has_alt_reset = desc->has_alt_reset;
 	ret = q6v5_init_reset(qproc);
 	if (ret)
 		goto free_rproc;
 
 	qproc->version = desc->version;
-	qproc->has_alt_reset = desc->has_alt_reset;
 	qproc->need_mem_protection = desc->need_mem_protection;
 
 	ret = qcom_q6v5_init(&qproc->q6v5, pdev, rproc, MPSS_CRASH_REASON_SMEM,
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#10 lore raw
In reply to Sibi Sankar
Quoted 20 lines · Sibi Sankar

This patch series add support for PDC Global (Power Domain Controller) on SDM845 SoCs and adds pdc reset lines assert/deassert to remoteproc Q6v5 modem-pil. The first two patches adds PDC Global reset driver to control reset signals of Modem, Compute, Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS. The last four patches (cleans up)/adds pdc reset lines to q6v5 bindings and asserts/deasserts in modem start/stop path.

V3:
refactored pdc reset driver to remove unused layer of indirection as suggested by Matthias
Other minor fixes suggested by Matthias/Bjorn

V2:
Incorporated Philipp/Bjorn/Rob suggestions Renamed reset binding to pdc-global.txt replaced offset with #define of register name replaced with devm_reset_control_get_exclusive() Separted dt binding from the drivers

Quoted 3 lines

Sibi Sankar (6):
dt-bindings: reset: Add PDC Global binding for SDM845 SoCs
reset: qcom: PDC Global (Power Domain Controller) reset controller

Philipp, there's no compile time dependencies between the PDC and remoteproc patches in this series. Will you take these two through your tree and I'll take the remaining four through the remoteproc tree?

Regards,
Bjorn

Quoted 21 lines

dt-bindings: remoteproc: qcom: Remove additional definition tag
dt-bindings: remoteproc: Add PDC reset binding for Q6V5 PIL
remoteproc: qcom: q6v5-pil: Explicitly get mss_restart line
remoteproc: qcom: q6v5-pil: Add PDC reset for modem on SDM845 SoCs

 .../bindings/remoteproc/qcom,q6v5.txt         |   8 +-
 .../bindings/reset/qcom,pdc-global.txt        |  52 ++++++++
 drivers/remoteproc/qcom_q6v5_pil.c            |  31 ++++-
 drivers/reset/Kconfig                         |   9 ++
 drivers/reset/Makefile                        |   1 +
 drivers/reset/reset-qcom-pdc.c                | 124 ++++++++++++++++++
 include/dt-bindings/reset/qcom,sdm845-pdc.h   |  20 +++
 7 files changed, 237 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/reset/qcom,pdc-global.txt
 create mode 100644 drivers/reset/reset-qcom-pdc.c
 create mode 100644 include/dt-bindings/reset/qcom,sdm845-pdc.h
Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
#11 lore raw

Hey Phillip,

Will the PDC driver make the cut for reset/next this time for the 4.20rc?

Quoted 55 lines · Bjorn Andersson
Quoted 20 lines · Sibi Sankar

This patch series add support for PDC Global (Power Domain Controller) on SDM845 SoCs and adds pdc reset lines assert/deassert to remoteproc Q6v5 modem-pil. The first two patches adds PDC Global reset driver to control reset signals of Modem, Compute, Display, GPU, Debug, AOP, Sensors, Audio, SP and APPS. The last four patches (cleans up)/adds pdc reset lines to q6v5 bindings and asserts/deasserts in modem start/stop path.

V3:
refactored pdc reset driver to remove unused layer of indirection as suggested by Matthias
Other minor fixes suggested by Matthias/Bjorn

V2:
Incorporated Philipp/Bjorn/Rob suggestions Renamed reset binding to pdc-global.txt replaced offset with #define of register name replaced with devm_reset_control_get_exclusive() Separted dt binding from the drivers

Quoted 3 lines

Sibi Sankar (6):
dt-bindings: reset: Add PDC Global binding for SDM845 SoCs
reset: qcom: PDC Global (Power Domain Controller) reset controller

Philipp, there's no compile time dependencies between the PDC and remoteproc patches in this series. Will you take these two through your tree and I'll take the remaining four through the remoteproc tree?

Regards,
Bjorn

Quoted 21 lines

dt-bindings: remoteproc: qcom: Remove additional definition tag
dt-bindings: remoteproc: Add PDC reset binding for Q6V5 PIL
remoteproc: qcom: q6v5-pil: Explicitly get mss_restart line
remoteproc: qcom: q6v5-pil: Add PDC reset for modem on SDM845 SoCs

  .../bindings/remoteproc/qcom,q6v5.txt         |   8 +-
  .../bindings/reset/qcom,pdc-global.txt        |  52 ++++++++
  drivers/remoteproc/qcom_q6v5_pil.c            |  31 ++++-
  drivers/reset/Kconfig                         |   9 ++
  drivers/reset/Makefile                        |   1 +
  drivers/reset/reset-qcom-pdc.c                | 124 ++++++++++++++++++
  include/dt-bindings/reset/qcom,sdm845-pdc.h   |  20 +++
  7 files changed, 237 insertions(+), 8 deletions(-)

create mode 100644 Documentation/devicetree/bindings/reset/qcom,pdc-global.txt create mode 100644 drivers/reset/reset-qcom-pdc.c
create mode 100644 include/dt-bindings/reset/qcom,sdm845-pdc.h

Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
Signature · 3 lines
Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc, is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
maintainer
#12 lore raw

Hi Sibi, Bjorn,

Quoted 1 line · Sibi Sankar

On 09/04/2018 01:06 AM, Bjorn Andersson wrote:

[...]

Quoted 11 lines
Quoted 6 lines

Philipp, there's no compile time dependencies between the PDC and remoteproc patches in this series. Will you take these two through your tree and I'll take the remaining four through the remoteproc tree?

Regards,
Bjorn

Hey Phillip,

Will the PDC driver make the cut for reset/next this time for the 4.20rc?

I have applied patches 1 and 2 to reset/next. I'll send a pull request early next week.

regards
Philipp

#13 lore raw
Quoted 12 lines · Philipp Zabel

Hi Sibi, Bjorn,

Quoted 1 line · Sibi Sankar

On 09/04/2018 01:06 AM, Bjorn Andersson wrote:

[...]

Quoted 7 lines
Quoted 6 lines

Philipp, there's no compile time dependencies between the PDC and remoteproc patches in this series. Will you take these two through your tree and I'll take the remaining four through the remoteproc tree?

Regards,
Bjorn

Quoted 8 lines
Quoted 4 lines

Hey Phillip,

Will the PDC driver make the cut for reset/next this time for the 4.20rc?

I have applied patches 1 and 2 to reset/next. I'll send a pull request early next week.

Thanks Philipp, I picked patch 3 through 6 in the rproc-next branch.

Regards,
Bjorn