* [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for mt8186 scp
@ 2022-01-03 7:58 ` allen-kh.cheng
0 siblings, 0 replies; 15+ messages in thread
From: allen-kh.cheng @ 2022-01-03 7:58 UTC (permalink / raw)
To: Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek, allen-kh.cheng
Add mt8186 compatible to binding document.
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
---
Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
index d21a25ee96e6..5b693a2d049c 100644
--- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
@@ -17,6 +17,7 @@ properties:
compatible:
enum:
- mediatek,mt8183-scp
+ - mediatek,mt8186-scp
- mediatek,mt8192-scp
- mediatek,mt8195-scp
--
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for mt8186 scp
@ 2022-01-03 7:58 ` allen-kh.cheng
0 siblings, 0 replies; 15+ messages in thread
From: allen-kh.cheng @ 2022-01-03 7:58 UTC (permalink / raw)
To: Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek, allen-kh.cheng
Add mt8186 compatible to binding document.
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
---
Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
index d21a25ee96e6..5b693a2d049c 100644
--- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
@@ -17,6 +17,7 @@ properties:
compatible:
enum:
- mediatek,mt8183-scp
+ - mediatek,mt8186-scp
- mediatek,mt8192-scp
- mediatek,mt8195-scp
--
2.18.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
2022-01-03 7:58 ` allen-kh.cheng
@ 2022-01-03 7:58 ` allen-kh.cheng
-1 siblings, 0 replies; 15+ messages in thread
From: allen-kh.cheng @ 2022-01-03 7:58 UTC (permalink / raw)
To: Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek, allen-kh.cheng
Add SCP support for mt8186
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
---
drivers/remoteproc/mtk_scp.c | 39 ++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index 36e48cf58ed6..38eab6b86fd7 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -365,6 +365,31 @@ static int mt8183_scp_before_load(struct mtk_scp *scp)
return 0;
}
+static int mt8186_scp_before_load(struct mtk_scp *scp)
+{
+ int i;
+
+ /* Clear SCP to host interrupt */
+ writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
+
+ /* Reset clocks before loading FW */
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
+
+ /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
+ for (i = 31; i >= 0; i--)
+ writel(GENMASK(i, 0), scp->reg_base + MT8183_SCP_SRAM_PDN);
+ writel(0, scp->reg_base + MT8183_SCP_SRAM_PDN);
+
+ /* Initialize TCM before loading FW. */
+ writel(0x0, scp->reg_base + MT8183_SCP_L1_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8183_SCP_TCM_TAIL_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_P1);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_p2);
+
+ return 0;
+}
+
static void mt8192_power_on_sram(void __iomem *addr)
{
int i;
@@ -887,6 +912,19 @@ static const struct mtk_scp_of_data mt8183_of_data = {
.ipi_buf_offset = 0x7bdb0,
};
+static const struct mtk_scp_of_data mt8186_of_data = {
+ .scp_clk_get = mt8195_scp_clk_get,
+ .scp_before_load = mt8186_scp_before_load,
+ .scp_irq_handler = mt8183_scp_irq_handler,
+ .scp_reset_assert = mt8183_scp_reset_assert,
+ .scp_reset_deassert = mt8183_scp_reset_deassert,
+ .scp_stop = mt8183_scp_stop,
+ .scp_da_to_va = mt8183_scp_da_to_va,
+ .host_to_scp_reg = MT8183_HOST_TO_SCP,
+ .host_to_scp_int_bit = MT8183_HOST_IPC_INT_BIT,
+ .ipi_buf_offset = 0x7bdb0,
+};
+
static const struct mtk_scp_of_data mt8192_of_data = {
.scp_clk_get = mt8192_scp_clk_get,
.scp_before_load = mt8192_scp_before_load,
@@ -913,6 +951,7 @@ static const struct mtk_scp_of_data mt8195_of_data = {
static const struct of_device_id mtk_scp_of_match[] = {
{ .compatible = "mediatek,mt8183-scp", .data = &mt8183_of_data },
+ { .compatible = "mediatek,mt8186-scp", .data = &mt8186_of_data },
{ .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data },
{ .compatible = "mediatek,mt8195-scp", .data = &mt8195_of_data },
{},
--
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
@ 2022-01-03 7:58 ` allen-kh.cheng
0 siblings, 0 replies; 15+ messages in thread
From: allen-kh.cheng @ 2022-01-03 7:58 UTC (permalink / raw)
To: Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek, allen-kh.cheng
Add SCP support for mt8186
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
---
drivers/remoteproc/mtk_scp.c | 39 ++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index 36e48cf58ed6..38eab6b86fd7 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -365,6 +365,31 @@ static int mt8183_scp_before_load(struct mtk_scp *scp)
return 0;
}
+static int mt8186_scp_before_load(struct mtk_scp *scp)
+{
+ int i;
+
+ /* Clear SCP to host interrupt */
+ writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
+
+ /* Reset clocks before loading FW */
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
+
+ /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
+ for (i = 31; i >= 0; i--)
+ writel(GENMASK(i, 0), scp->reg_base + MT8183_SCP_SRAM_PDN);
+ writel(0, scp->reg_base + MT8183_SCP_SRAM_PDN);
+
+ /* Initialize TCM before loading FW. */
+ writel(0x0, scp->reg_base + MT8183_SCP_L1_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8183_SCP_TCM_TAIL_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_P1);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_p2);
+
+ return 0;
+}
+
static void mt8192_power_on_sram(void __iomem *addr)
{
int i;
@@ -887,6 +912,19 @@ static const struct mtk_scp_of_data mt8183_of_data = {
.ipi_buf_offset = 0x7bdb0,
};
+static const struct mtk_scp_of_data mt8186_of_data = {
+ .scp_clk_get = mt8195_scp_clk_get,
+ .scp_before_load = mt8186_scp_before_load,
+ .scp_irq_handler = mt8183_scp_irq_handler,
+ .scp_reset_assert = mt8183_scp_reset_assert,
+ .scp_reset_deassert = mt8183_scp_reset_deassert,
+ .scp_stop = mt8183_scp_stop,
+ .scp_da_to_va = mt8183_scp_da_to_va,
+ .host_to_scp_reg = MT8183_HOST_TO_SCP,
+ .host_to_scp_int_bit = MT8183_HOST_IPC_INT_BIT,
+ .ipi_buf_offset = 0x7bdb0,
+};
+
static const struct mtk_scp_of_data mt8192_of_data = {
.scp_clk_get = mt8192_scp_clk_get,
.scp_before_load = mt8192_scp_before_load,
@@ -913,6 +951,7 @@ static const struct mtk_scp_of_data mt8195_of_data = {
static const struct of_device_id mtk_scp_of_match[] = {
{ .compatible = "mediatek,mt8183-scp", .data = &mt8183_of_data },
+ { .compatible = "mediatek,mt8186-scp", .data = &mt8186_of_data },
{ .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data },
{ .compatible = "mediatek,mt8195-scp", .data = &mt8195_of_data },
{},
--
2.18.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
2022-01-03 7:58 ` allen-kh.cheng
(?)
@ 2022-01-04 8:43 ` AngeloGioacchino Del Regno
-1 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-04 8:43 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek
Il 03/01/22 08:58, allen-kh.cheng ha scritto:
> Add SCP support for mt8186
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Hello! Thanks for the patch!
However, there's something to improve...
> ---
> drivers/remoteproc/mtk_scp.c | 39 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index 36e48cf58ed6..38eab6b86fd7 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -365,6 +365,31 @@ static int mt8183_scp_before_load(struct mtk_scp *scp)
> return 0;
> }
>
> +static int mt8186_scp_before_load(struct mtk_scp *scp)
> +{
> + int i;
> +
> + /* Clear SCP to host interrupt */
> + writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
> +
> + /* Reset clocks before loading FW */
> + writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
> + writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
> +
.............
> + /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
> + for (i = 31; i >= 0; i--)
> + writel(GENMASK(i, 0), scp->reg_base + MT8183_SCP_SRAM_PDN);
> + writel(0, scp->reg_base + MT8183_SCP_SRAM_PDN);
> +
.............
This snippet corresponds exactly to the mt8192_power_on_sram() helper:
please avoid code duplication by simply calling that function instead.
Thanks,
- Angelo
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
@ 2022-01-04 8:43 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-04 8:43 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek
Il 03/01/22 08:58, allen-kh.cheng ha scritto:
> Add SCP support for mt8186
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Hello! Thanks for the patch!
However, there's something to improve...
> ---
> drivers/remoteproc/mtk_scp.c | 39 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index 36e48cf58ed6..38eab6b86fd7 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -365,6 +365,31 @@ static int mt8183_scp_before_load(struct mtk_scp *scp)
> return 0;
> }
>
> +static int mt8186_scp_before_load(struct mtk_scp *scp)
> +{
> + int i;
> +
> + /* Clear SCP to host interrupt */
> + writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
> +
> + /* Reset clocks before loading FW */
> + writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
> + writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
> +
.............
> + /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
> + for (i = 31; i >= 0; i--)
> + writel(GENMASK(i, 0), scp->reg_base + MT8183_SCP_SRAM_PDN);
> + writel(0, scp->reg_base + MT8183_SCP_SRAM_PDN);
> +
.............
This snippet corresponds exactly to the mt8192_power_on_sram() helper:
please avoid code duplication by simply calling that function instead.
Thanks,
- Angelo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
@ 2022-01-04 8:43 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-04 8:43 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek
Il 03/01/22 08:58, allen-kh.cheng ha scritto:
> Add SCP support for mt8186
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Hello! Thanks for the patch!
However, there's something to improve...
> ---
> drivers/remoteproc/mtk_scp.c | 39 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
> index 36e48cf58ed6..38eab6b86fd7 100644
> --- a/drivers/remoteproc/mtk_scp.c
> +++ b/drivers/remoteproc/mtk_scp.c
> @@ -365,6 +365,31 @@ static int mt8183_scp_before_load(struct mtk_scp *scp)
> return 0;
> }
>
> +static int mt8186_scp_before_load(struct mtk_scp *scp)
> +{
> + int i;
> +
> + /* Clear SCP to host interrupt */
> + writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
> +
> + /* Reset clocks before loading FW */
> + writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
> + writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
> +
.............
> + /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
> + for (i = 31; i >= 0; i--)
> + writel(GENMASK(i, 0), scp->reg_base + MT8183_SCP_SRAM_PDN);
> + writel(0, scp->reg_base + MT8183_SCP_SRAM_PDN);
> +
.............
This snippet corresponds exactly to the mt8192_power_on_sram() helper:
please avoid code duplication by simply calling that function instead.
Thanks,
- Angelo
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for mt8186 scp
2022-01-03 7:58 ` allen-kh.cheng
(?)
@ 2022-01-04 8:43 ` AngeloGioacchino Del Regno
-1 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-04 8:43 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek
Il 03/01/22 08:58, allen-kh.cheng ha scritto:
> Add mt8186 compatible to binding document.
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
> ---
> Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> index d21a25ee96e6..5b693a2d049c 100644
> --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> @@ -17,6 +17,7 @@ properties:
> compatible:
> enum:
> - mediatek,mt8183-scp
> + - mediatek,mt8186-scp
> - mediatek,mt8192-scp
> - mediatek,mt8195-scp
>
>
Acked-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for mt8186 scp
@ 2022-01-04 8:43 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-04 8:43 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek
Il 03/01/22 08:58, allen-kh.cheng ha scritto:
> Add mt8186 compatible to binding document.
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
> ---
> Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> index d21a25ee96e6..5b693a2d049c 100644
> --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> @@ -17,6 +17,7 @@ properties:
> compatible:
> enum:
> - mediatek,mt8183-scp
> + - mediatek,mt8186-scp
> - mediatek,mt8192-scp
> - mediatek,mt8195-scp
>
>
Acked-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for mt8186 scp
@ 2022-01-04 8:43 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-04 8:43 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger, Tinghan Shen
Cc: Mark Brown, linux-remoteproc,
Project_Global_Chrome_Upstream_Group, linux-kernel, devicetree,
linux-arm-kernel, linux-mediatek
Il 03/01/22 08:58, allen-kh.cheng ha scritto:
> Add mt8186 compatible to binding document.
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
> ---
> Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> index d21a25ee96e6..5b693a2d049c 100644
> --- a/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/mtk,scp.yaml
> @@ -17,6 +17,7 @@ properties:
> compatible:
> enum:
> - mediatek,mt8183-scp
> + - mediatek,mt8186-scp
> - mediatek,mt8192-scp
> - mediatek,mt8195-scp
>
>
Acked-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
2022-01-04 11:47 ` allen-kh.cheng
(?)
@ 2022-01-05 9:19 ` AngeloGioacchino Del Regno
-1 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-05 9:19 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger
Cc: Tinghan Shen, Project_Global_Chrome_Upstream_Group, linux-kernel,
devicetree, linux-mediatek, linux-arm-kernel, linux-remoteproc
Il 04/01/22 12:47, allen-kh.cheng ha scritto:
> Add SCP support for mt8186
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-By: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
@ 2022-01-05 9:19 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-05 9:19 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger
Cc: Tinghan Shen, Project_Global_Chrome_Upstream_Group, linux-kernel,
devicetree, linux-mediatek, linux-arm-kernel, linux-remoteproc
Il 04/01/22 12:47, allen-kh.cheng ha scritto:
> Add SCP support for mt8186
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-By: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
@ 2022-01-05 9:19 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 15+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-01-05 9:19 UTC (permalink / raw)
To: allen-kh.cheng, Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier,
Rob Herring, Matthias Brugger
Cc: Tinghan Shen, Project_Global_Chrome_Upstream_Group, linux-kernel,
devicetree, linux-mediatek, linux-arm-kernel, linux-remoteproc
Il 04/01/22 12:47, allen-kh.cheng ha scritto:
> Add SCP support for mt8186
>
> Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-By: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
2022-01-04 11:47 [PATCH 0/2] Add SCP support for mt8186 allen-kh.cheng
@ 2022-01-04 11:47 ` allen-kh.cheng
0 siblings, 0 replies; 15+ messages in thread
From: allen-kh.cheng @ 2022-01-04 11:47 UTC (permalink / raw)
To: Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Matthias Brugger
Cc: Tinghan Shen, Project_Global_Chrome_Upstream_Group, linux-kernel,
devicetree, linux-mediatek, linux-arm-kernel, linux-remoteproc,
allen-kh.cheng
Add SCP support for mt8186
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
---
drivers/remoteproc/mtk_common.h | 3 +++
drivers/remoteproc/mtk_scp.c | 35 +++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+)
diff --git a/drivers/remoteproc/mtk_common.h b/drivers/remoteproc/mtk_common.h
index 5ff3867c72f3..71ce4977cb0b 100644
--- a/drivers/remoteproc/mtk_common.h
+++ b/drivers/remoteproc/mtk_common.h
@@ -32,6 +32,9 @@
#define MT8183_SCP_CACHESIZE_8KB BIT(8)
#define MT8183_SCP_CACHE_CON_WAYEN BIT(10)
+#define MT8186_SCP_L1_SRAM_PD_P1 0x40B0
+#define MT8186_SCP_L1_SRAM_PD_p2 0x40B4
+
#define MT8192_L2TCM_SRAM_PD_0 0x10C0
#define MT8192_L2TCM_SRAM_PD_1 0x10C4
#define MT8192_L2TCM_SRAM_PD_2 0x10C8
diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index 36e48cf58ed6..6860ea4d5125 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -383,6 +383,27 @@ static void mt8192_power_off_sram(void __iomem *addr)
writel(GENMASK(i, 0), addr);
}
+static int mt8186_scp_before_load(struct mtk_scp *scp)
+{
+ /* Clear SCP to host interrupt */
+ writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
+
+ /* Reset clocks before loading FW */
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
+
+ /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
+ mt8192_power_on_sram(scp->reg_base + MT8183_SCP_SRAM_PDN);
+
+ /* Initialize TCM before loading FW. */
+ writel(0x0, scp->reg_base + MT8183_SCP_L1_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8183_SCP_TCM_TAIL_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_P1);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_p2);
+
+ return 0;
+}
+
static int mt8192_scp_before_load(struct mtk_scp *scp)
{
/* clear SPM interrupt, SCP2SPM_IPC_CLR */
@@ -887,6 +908,19 @@ static const struct mtk_scp_of_data mt8183_of_data = {
.ipi_buf_offset = 0x7bdb0,
};
+static const struct mtk_scp_of_data mt8186_of_data = {
+ .scp_clk_get = mt8195_scp_clk_get,
+ .scp_before_load = mt8186_scp_before_load,
+ .scp_irq_handler = mt8183_scp_irq_handler,
+ .scp_reset_assert = mt8183_scp_reset_assert,
+ .scp_reset_deassert = mt8183_scp_reset_deassert,
+ .scp_stop = mt8183_scp_stop,
+ .scp_da_to_va = mt8183_scp_da_to_va,
+ .host_to_scp_reg = MT8183_HOST_TO_SCP,
+ .host_to_scp_int_bit = MT8183_HOST_IPC_INT_BIT,
+ .ipi_buf_offset = 0x7bdb0,
+};
+
static const struct mtk_scp_of_data mt8192_of_data = {
.scp_clk_get = mt8192_scp_clk_get,
.scp_before_load = mt8192_scp_before_load,
@@ -913,6 +947,7 @@ static const struct mtk_scp_of_data mt8195_of_data = {
static const struct of_device_id mtk_scp_of_match[] = {
{ .compatible = "mediatek,mt8183-scp", .data = &mt8183_of_data },
+ { .compatible = "mediatek,mt8186-scp", .data = &mt8186_of_data },
{ .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data },
{ .compatible = "mediatek,mt8195-scp", .data = &mt8195_of_data },
{},
--
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp
@ 2022-01-04 11:47 ` allen-kh.cheng
0 siblings, 0 replies; 15+ messages in thread
From: allen-kh.cheng @ 2022-01-04 11:47 UTC (permalink / raw)
To: Ohad Ben-Cohen, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Matthias Brugger
Cc: Tinghan Shen, Project_Global_Chrome_Upstream_Group, linux-kernel,
devicetree, linux-mediatek, linux-arm-kernel, linux-remoteproc,
allen-kh.cheng
Add SCP support for mt8186
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
---
drivers/remoteproc/mtk_common.h | 3 +++
drivers/remoteproc/mtk_scp.c | 35 +++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+)
diff --git a/drivers/remoteproc/mtk_common.h b/drivers/remoteproc/mtk_common.h
index 5ff3867c72f3..71ce4977cb0b 100644
--- a/drivers/remoteproc/mtk_common.h
+++ b/drivers/remoteproc/mtk_common.h
@@ -32,6 +32,9 @@
#define MT8183_SCP_CACHESIZE_8KB BIT(8)
#define MT8183_SCP_CACHE_CON_WAYEN BIT(10)
+#define MT8186_SCP_L1_SRAM_PD_P1 0x40B0
+#define MT8186_SCP_L1_SRAM_PD_p2 0x40B4
+
#define MT8192_L2TCM_SRAM_PD_0 0x10C0
#define MT8192_L2TCM_SRAM_PD_1 0x10C4
#define MT8192_L2TCM_SRAM_PD_2 0x10C8
diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index 36e48cf58ed6..6860ea4d5125 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -383,6 +383,27 @@ static void mt8192_power_off_sram(void __iomem *addr)
writel(GENMASK(i, 0), addr);
}
+static int mt8186_scp_before_load(struct mtk_scp *scp)
+{
+ /* Clear SCP to host interrupt */
+ writel(MT8183_SCP_IPC_INT_BIT, scp->reg_base + MT8183_SCP_TO_HOST);
+
+ /* Reset clocks before loading FW */
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_SW_SEL);
+ writel(0x0, scp->reg_base + MT8183_SCP_CLK_DIV_SEL);
+
+ /* Turn on the power of SCP's SRAM before using it. Enable 1 block per time*/
+ mt8192_power_on_sram(scp->reg_base + MT8183_SCP_SRAM_PDN);
+
+ /* Initialize TCM before loading FW. */
+ writel(0x0, scp->reg_base + MT8183_SCP_L1_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8183_SCP_TCM_TAIL_SRAM_PD);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_P1);
+ writel(0x0, scp->reg_base + MT8186_SCP_L1_SRAM_PD_p2);
+
+ return 0;
+}
+
static int mt8192_scp_before_load(struct mtk_scp *scp)
{
/* clear SPM interrupt, SCP2SPM_IPC_CLR */
@@ -887,6 +908,19 @@ static const struct mtk_scp_of_data mt8183_of_data = {
.ipi_buf_offset = 0x7bdb0,
};
+static const struct mtk_scp_of_data mt8186_of_data = {
+ .scp_clk_get = mt8195_scp_clk_get,
+ .scp_before_load = mt8186_scp_before_load,
+ .scp_irq_handler = mt8183_scp_irq_handler,
+ .scp_reset_assert = mt8183_scp_reset_assert,
+ .scp_reset_deassert = mt8183_scp_reset_deassert,
+ .scp_stop = mt8183_scp_stop,
+ .scp_da_to_va = mt8183_scp_da_to_va,
+ .host_to_scp_reg = MT8183_HOST_TO_SCP,
+ .host_to_scp_int_bit = MT8183_HOST_IPC_INT_BIT,
+ .ipi_buf_offset = 0x7bdb0,
+};
+
static const struct mtk_scp_of_data mt8192_of_data = {
.scp_clk_get = mt8192_scp_clk_get,
.scp_before_load = mt8192_scp_before_load,
@@ -913,6 +947,7 @@ static const struct mtk_scp_of_data mt8195_of_data = {
static const struct of_device_id mtk_scp_of_match[] = {
{ .compatible = "mediatek,mt8183-scp", .data = &mt8183_of_data },
+ { .compatible = "mediatek,mt8186-scp", .data = &mt8186_of_data },
{ .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data },
{ .compatible = "mediatek,mt8195-scp", .data = &mt8195_of_data },
{},
--
2.18.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2022-01-05 9:21 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-03 7:58 [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for mt8186 scp allen-kh.cheng
2022-01-03 7:58 ` allen-kh.cheng
2022-01-03 7:58 ` [PATCH 2/2] remoteproc: mediatek: Support " allen-kh.cheng
2022-01-03 7:58 ` allen-kh.cheng
2022-01-04 8:43 ` AngeloGioacchino Del Regno
2022-01-04 8:43 ` AngeloGioacchino Del Regno
2022-01-04 8:43 ` AngeloGioacchino Del Regno
2022-01-04 8:43 ` [PATCH 1/2] dt-bindings: remoteproc: mediatek: Add binding for " AngeloGioacchino Del Regno
2022-01-04 8:43 ` AngeloGioacchino Del Regno
2022-01-04 8:43 ` AngeloGioacchino Del Regno
2022-01-04 11:47 [PATCH 0/2] Add SCP support for mt8186 allen-kh.cheng
2022-01-04 11:47 ` [PATCH 2/2] remoteproc: mediatek: Support mt8186 scp allen-kh.cheng
2022-01-04 11:47 ` allen-kh.cheng
2022-01-05 9:19 ` AngeloGioacchino Del Regno
2022-01-05 9:19 ` AngeloGioacchino Del Regno
2022-01-05 9:19 ` AngeloGioacchino Del Regno
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.