Re: [PATCH 1/6] reset: qcom: AOSS (Always on subsystem) reset controller

2018-03-12 Thread Sibi S

Hi Trilok,
Thanks for the review. I will include it in the v3 patch series.

On 03/10/2018 02:59 AM, Trilok Soni wrote:

Sibi,

One cosmetic comment below.

On 3/9/2018 6:55 AM, Sibi S wrote:

+
+This binding describes a reset-controller found on AOSS (Always on 
SubSysem)

+for Qualcomm SDM845 SoCs.


S/SubSysem/Subsytem




Will correct it


---Trilok Soni





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


Re: [PATCH 1/6] reset: qcom: AOSS (Always on subsystem) reset controller

2018-03-09 Thread Trilok Soni

Sibi,

One cosmetic comment below.

On 3/9/2018 6:55 AM, Sibi S wrote:

+
+This binding describes a reset-controller found on AOSS (Always on 
SubSysem)

+for Qualcomm SDM845 SoCs.


S/SubSysem/Subsytem

---Trilok Soni




Re: [PATCH 1/6] reset: qcom: AOSS (Always on subsystem) reset controller

2018-03-09 Thread Sibi S

Hi Rob,
Thanks for the review, will add the changes in v3 of the patch series

On 03/08/2018 03:05 AM, Rob Herring wrote:

On Mon, Mar 05, 2018 at 03:23:28PM +0530, sibis wrote:

Add reset controller driver for Qualcomm SDM845 SoC to
control reset signals provided by AOSS for Modem, Venus
ADSP, GPU, Camera, Wireless, Display subsystem

Signed-off-by: sibis 


Need a full name here.



Will correct it


---
  .../devicetree/bindings/reset/qcom,aoss-reset.txt  |  54 


Separate patch for bindings (with the header) please.



Will make a separate patch


  drivers/reset/Kconfig  |  10 ++
  drivers/reset/Makefile |   1 +
  drivers/reset/reset-qcom-aoss.c| 151 +
  include/dt-bindings/reset/qcom,aoss-sdm845.h   |  17 +++
  5 files changed, 233 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
  create mode 100644 drivers/reset/reset-qcom-aoss.c
  create mode 100644 include/dt-bindings/reset/qcom,aoss-sdm845.h

diff --git a/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt 
b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
new file mode 100644
index 000..5318e14
--- /dev/null
+++ b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
@@ -0,0 +1,54 @@
+Qualcomm AOSS Reset Controller
+==
+
+This binding describes a reset-controller found on AOSS (Always on SubSysem)
+for Qualcomm SDM845 SoCs.
+
+Required properties:
+- compatible:
+   Usage: required
+   Value type: 
+   Definition: must be:
+   "qcom,aoss-reset-sdm845", "syscon"


Someone in QCom needs to go fix the order of all your downstream
compatibles or review your bindings before sending upstream. The
standard ordering is ,-.



Will correct it.


Why syscon? The description is this is just a reset controller.



syscon was needed in the compatible list due to using
syscon_node_to_regmap in the reset driver but I guess
since it is just a reset controller the correct thing to do
be ioremap the reg space and do devm_regmap_init_mmio on it.
Will remove syscon.


+
+- reg:
+   Usage: required
+   Value type: 
+   Definition: must specify the base address and size of the
+   syscon device.
+
+
+- #reset-cells:
+   Usage: required
+   Value type: 
+   Definition: must be 1; cell entry represents the reset index.
+
+example:
+
+aoss_reset: qcom,reset-controller@b2e0100 {
+   compatible = "qcom,aoss-reset-sdm845", "syscon";
+   reg = <0xc2b 0x20004>;
+   #reset-cells = <1>;
+};
+
+
+Specifying reset lines connected to IP modules
+==
+
+Device nodes that need access to reset lines should
+specify them as a reset phandle in their corresponding node as
+specified in reset.txt.
+
+Example:
+
+   modem-pil@408 {
+   ...
+
+   resets = <&aoss_reset AOSS_CC_MSS_RESTART>;
+   reset-names = "mss_restart";
+
+   ...
+};
+
+For list of all valid reset indicies see
+


Put this before the example.



ok


--
To unsubscribe from this list: send the line "unsubscribe linux-remoteproc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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


Re: [PATCH 1/6] reset: qcom: AOSS (Always on subsystem) reset controller

2018-03-07 Thread Rob Herring
On Mon, Mar 05, 2018 at 03:23:28PM +0530, sibis wrote:
> Add reset controller driver for Qualcomm SDM845 SoC to
> control reset signals provided by AOSS for Modem, Venus
> ADSP, GPU, Camera, Wireless, Display subsystem
> 
> Signed-off-by: sibis 

Need a full name here.

> ---
>  .../devicetree/bindings/reset/qcom,aoss-reset.txt  |  54 

Separate patch for bindings (with the header) please.

>  drivers/reset/Kconfig  |  10 ++
>  drivers/reset/Makefile |   1 +
>  drivers/reset/reset-qcom-aoss.c| 151 
> +
>  include/dt-bindings/reset/qcom,aoss-sdm845.h   |  17 +++
>  5 files changed, 233 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
>  create mode 100644 drivers/reset/reset-qcom-aoss.c
>  create mode 100644 include/dt-bindings/reset/qcom,aoss-sdm845.h
> 
> diff --git a/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt 
> b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
> new file mode 100644
> index 000..5318e14
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
> @@ -0,0 +1,54 @@
> +Qualcomm AOSS Reset Controller
> +==
> +
> +This binding describes a reset-controller found on AOSS (Always on SubSysem)
> +for Qualcomm SDM845 SoCs.
> +
> +Required properties:
> +- compatible:
> + Usage: required
> + Value type: 
> + Definition: must be:
> + "qcom,aoss-reset-sdm845", "syscon"

Someone in QCom needs to go fix the order of all your downstream 
compatibles or review your bindings before sending upstream. The 
standard ordering is ,-.

Why syscon? The description is this is just a reset controller.

> +
> +- reg:
> + Usage: required
> + Value type: 
> + Definition: must specify the base address and size of the
> + syscon device.
> +
> +
> +- #reset-cells:
> + Usage: required
> + Value type: 
> + Definition: must be 1; cell entry represents the reset index.
> +
> +example:
> +
> +aoss_reset: qcom,reset-controller@b2e0100 {
> + compatible = "qcom,aoss-reset-sdm845", "syscon";
> + reg = <0xc2b 0x20004>;
> + #reset-cells = <1>;
> +};
> +
> +
> +Specifying reset lines connected to IP modules
> +==
> +
> +Device nodes that need access to reset lines should
> +specify them as a reset phandle in their corresponding node as
> +specified in reset.txt.
> +
> +Example:
> +
> + modem-pil@408 {
> + ...
> +
> + resets = <&aoss_reset AOSS_CC_MSS_RESTART>;
> + reset-names = "mss_restart";
> +
> + ...
> +};
> +
> +For list of all valid reset indicies see
> +

Put this before the example.



Re: [PATCH 1/6] reset: qcom: AOSS (Always on subsystem) reset controller

2018-03-04 Thread Sibi S

Hi Philipp,

Thanks for the review. I will post out the v2 of the patch series.

On 03/02/2018 04:00 PM, Philipp Zabel wrote:

Hi sibis,

thank you for the patch. I have a few questions and comments below.

On Fri, 2018-03-02 at 14:53 +0530, sibis wrote:

Add reset controller driver for Qualcomm SDM845 SoC to
control reset signals provided by AOSS for Modem, Venus
ADSP, GPU, Camera, Wireless, Display subsystem

Signed-off-by: sibis 
---
  .../devicetree/bindings/reset/qcom,aoss-reset.txt  |  54 +++
  drivers/reset/Kconfig  |  10 ++
  drivers/reset/Makefile |   1 +
  drivers/reset/reset-qcom-aoss.c| 161 +
  include/dt-bindings/reset/qcom,aoss-sdm845.h   |  17 +++
  5 files changed, 243 insertions(+)
  create mode 100644 Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
  create mode 100644 drivers/reset/reset-qcom-aoss.c
  create mode 100644 include/dt-bindings/reset/qcom,aoss-sdm845.h

diff --git a/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt 
b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
new file mode 100644
index 000..5318e14
--- /dev/null
+++ b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
@@ -0,0 +1,54 @@
+Qualcomm AOSS Reset Controller
+==
+
+This binding describes a reset-controller found on AOSS (Always on SubSysem)
+for Qualcomm SDM845 SoCs.
+
+Required properties:
+- compatible:
+   Usage: required
+   Value type: 
+   Definition: must be:
+   "qcom,aoss-reset-sdm845", "syscon"
+
+- reg:
+   Usage: required
+   Value type: 
+   Definition: must specify the base address and size of the
+   syscon device.
+
+
+- #reset-cells:
+   Usage: required
+   Value type: 
+   Definition: must be 1; cell entry represents the reset index.
+
+example:
+
+aoss_reset: qcom,reset-controller@b2e0100 {
+   compatible = "qcom,aoss-reset-sdm845", "syscon";
+   reg = <0xc2b 0x20004>;
+   #reset-cells = <1>;
+};
+
+
+Specifying reset lines connected to IP modules
+==
+
+Device nodes that need access to reset lines should
+specify them as a reset phandle in their corresponding node as
+specified in reset.txt.
+
+Example:
+
+   modem-pil@408 {
+   ...
+
+   resets = <&aoss_reset AOSS_CC_MSS_RESTART>;
+   reset-names = "mss_restart";
+
+   ...
+};
+
+For list of all valid reset indicies see
+
diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index 7fc7769..4b1da86 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -81,6 +81,16 @@ config RESET_PISTACHIO
help
  This enables the reset driver for ImgTec Pistachio SoCs.
  
+config RESET_QCOM_AOSS

+   bool "Qcom AOSS Reset Driver"
+   depends on ARCH_QCOM || COMPILE_TEST


Do all ARCH_QCOM have AOSS? If so, should this be enabled by default?



AOSS reset is currently supported on SDM845 SoCs and not on any of other 
the previously upstreamed Qualcomm SoCs. I will change description to 
convey the same. I needs to explicitly enabled for SDM845 SoCs.



+   select MFD_SYSCON
+   help
+ This enables the AOSS (Always On SubSystem) reset driver
+ for Qcom SoCs. Say Y if you want to control reset signals


Is Qcom and Qualcomm interchangeable?



Though it is used interchangeably, it will make more sense if I
change it to Qualcomm here.


+ provided by AOSS for Modem, Venus, ADSP, GPU, Camera,
+ Wireless, Display subsystem. Otherwise, say N.
+
  config RESET_SIMPLE
bool "Simple Reset Controller Driver" if COMPILE_TEST
default ARCH_SOCFPGA || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || 
ARCH_ZX
diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile
index 132c24f..c30044a 100644
--- a/drivers/reset/Makefile
+++ b/drivers/reset/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_RESET_LPC18XX) += reset-lpc18xx.o
  obj-$(CONFIG_RESET_MESON) += reset-meson.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_SIMPLE) += reset-simple.o
  obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o
  obj-$(CONFIG_RESET_TI_SCI) += reset-ti-sci.o
diff --git a/drivers/reset/reset-qcom-aoss.c b/drivers/reset/reset-qcom-aoss.c
new file mode 100644
index 000..eb8c69b
--- /dev/null
+++ b/drivers/reset/reset-qcom-aoss.c
@@ -0,0 +1,161 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2018 The Linux Foundation. All rights reserved.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+struct qcom_aoss_reset_map {
+   unsigned int reg;
+   u8 bit;
+};
+
+struct qcom_aoss_desc {
+   const struct regmap_config *config;
+   const struct qcom_aoss_reset_map *

Re: [PATCH 1/6] reset: qcom: AOSS (Always on subsystem) reset controller

2018-03-02 Thread Philipp Zabel
Hi sibis,

thank you for the patch. I have a few questions and comments below.

On Fri, 2018-03-02 at 14:53 +0530, sibis wrote:
> Add reset controller driver for Qualcomm SDM845 SoC to
> control reset signals provided by AOSS for Modem, Venus
> ADSP, GPU, Camera, Wireless, Display subsystem
> 
> Signed-off-by: sibis 
> ---
>  .../devicetree/bindings/reset/qcom,aoss-reset.txt  |  54 +++
>  drivers/reset/Kconfig  |  10 ++
>  drivers/reset/Makefile |   1 +
>  drivers/reset/reset-qcom-aoss.c| 161 
> +
>  include/dt-bindings/reset/qcom,aoss-sdm845.h   |  17 +++
>  5 files changed, 243 insertions(+)
>  create mode 100644 
> Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
>  create mode 100644 drivers/reset/reset-qcom-aoss.c
>  create mode 100644 include/dt-bindings/reset/qcom,aoss-sdm845.h
> 
> diff --git a/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt 
> b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
> new file mode 100644
> index 000..5318e14
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/reset/qcom,aoss-reset.txt
> @@ -0,0 +1,54 @@
> +Qualcomm AOSS Reset Controller
> +==
> +
> +This binding describes a reset-controller found on AOSS (Always on SubSysem)
> +for Qualcomm SDM845 SoCs.
> +
> +Required properties:
> +- compatible:
> + Usage: required
> + Value type: 
> + Definition: must be:
> + "qcom,aoss-reset-sdm845", "syscon"
> +
> +- reg:
> + Usage: required
> + Value type: 
> + Definition: must specify the base address and size of the
> + syscon device.
> +
> +
> +- #reset-cells:
> + Usage: required
> + Value type: 
> + Definition: must be 1; cell entry represents the reset index.
> +
> +example:
> +
> +aoss_reset: qcom,reset-controller@b2e0100 {
> + compatible = "qcom,aoss-reset-sdm845", "syscon";
> + reg = <0xc2b 0x20004>;
> + #reset-cells = <1>;
> +};
> +
> +
> +Specifying reset lines connected to IP modules
> +==
> +
> +Device nodes that need access to reset lines should
> +specify them as a reset phandle in their corresponding node as
> +specified in reset.txt.
> +
> +Example:
> +
> + modem-pil@408 {
> + ...
> +
> + resets = <&aoss_reset AOSS_CC_MSS_RESTART>;
> + reset-names = "mss_restart";
> +
> + ...
> +};
> +
> +For list of all valid reset indicies see
> +
> diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
> index 7fc7769..4b1da86 100644
> --- a/drivers/reset/Kconfig
> +++ b/drivers/reset/Kconfig
> @@ -81,6 +81,16 @@ config RESET_PISTACHIO
>   help
> This enables the reset driver for ImgTec Pistachio SoCs.
>  
> +config RESET_QCOM_AOSS
> + bool "Qcom AOSS Reset Driver"
> + depends on ARCH_QCOM || COMPILE_TEST

Do all ARCH_QCOM have AOSS? If so, should this be enabled by default?

> + select MFD_SYSCON
> + help
> +   This enables the AOSS (Always On SubSystem) reset driver
> +   for Qcom SoCs. Say Y if you want to control reset signals

Is Qcom and Qualcomm interchangeable?

> +   provided by AOSS for Modem, Venus, ADSP, GPU, Camera,
> +   Wireless, Display subsystem. Otherwise, say N.
> +
>  config RESET_SIMPLE
>   bool "Simple Reset Controller Driver" if COMPILE_TEST
>   default ARCH_SOCFPGA || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || 
> ARCH_ZX
> diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile
> index 132c24f..c30044a 100644
> --- a/drivers/reset/Makefile
> +++ b/drivers/reset/Makefile
> @@ -14,6 +14,7 @@ obj-$(CONFIG_RESET_LPC18XX) += reset-lpc18xx.o
>  obj-$(CONFIG_RESET_MESON) += reset-meson.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_SIMPLE) += reset-simple.o
>  obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o
>  obj-$(CONFIG_RESET_TI_SCI) += reset-ti-sci.o
> diff --git a/drivers/reset/reset-qcom-aoss.c b/drivers/reset/reset-qcom-aoss.c
> new file mode 100644
> index 000..eb8c69b
> --- /dev/null
> +++ b/drivers/reset/reset-qcom-aoss.c
> @@ -0,0 +1,161 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2018 The Linux Foundation. All rights reserved.
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +struct qcom_aoss_reset_map {
> + unsigned int reg;
> + u8 bit;
> +};
> +
> +struct qcom_aoss_desc {
> + const struct regmap_config *config;
> + const struct qcom_aoss_reset_map *resets;
> + int delay;
> + size_t num_resets;
> +};
> +
> +struct qcom_aoss_reset_data {
> + struct reset_controller_dev rcdev;
> + struct regmap *regmap;
> + const struct qcom_aoss_desc *desc;
> +};
> +
> +static const struct