2023-05-26 16:13:22

by Anusha Canchi

[permalink] [raw]
Subject: [PATCH V4 0/4] Enable crypto for ipq9574

Update GCC driver to include clocks required for crypto.
Enable crypto nodes in ipq9574.

DTS patch depends on the below series
https://lore.kernel.org/linux-arm-msm/[email protected]/

Changes in V4:
Detailed change logs are added to the respective patches.

V3 can be found at:
https://lore.kernel.org/linux-arm-msm/[email protected]/

V2 can be found at:
https://lore.kernel.org/linux-arm-msm/[email protected]/

V1 can be found at
https://lore.kernel.org/linux-arm-msm/[email protected]/

Anusha Rao (4):
dt-bindings: clock: Add crypto clock and reset definitions
clk: qcom: gcc-ipq9574: Enable crypto clocks
dt-bindings: qcom-qce: add SoC compatible string for ipq9574
arm64: dts: qcom: ipq9574: Enable crypto nodes

.../devicetree/bindings/crypto/qcom-qce.yaml | 1 +
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 20 ++++++
drivers/clk/qcom/gcc-ipq9574.c | 72 +++++++++++++++++++
include/dt-bindings/clock/qcom,ipq9574-gcc.h | 4 ++
include/dt-bindings/reset/qcom,ipq9574-gcc.h | 1 +
5 files changed, 98 insertions(+)


base-commit: aabe491169befbe5481144acf575a0260939764a
--
2.17.1



2023-05-26 16:13:32

by Anusha Canchi

[permalink] [raw]
Subject: [PATCH V4 1/4] dt-bindings: clock: Add crypto clock and reset definitions

Add crypto clock and reset ID definitions for ipq9574.

Acked-by: Krzysztof Kozlowski <[email protected]>
Reviewed-by: Bhupesh Sharma <[email protected]>
Signed-off-by: Anusha Rao <[email protected]>
---
Changes in V4:
- Picked up Reviewed-by tag.

include/dt-bindings/clock/qcom,ipq9574-gcc.h | 4 ++++
include/dt-bindings/reset/qcom,ipq9574-gcc.h | 1 +
2 files changed, 5 insertions(+)

diff --git a/include/dt-bindings/clock/qcom,ipq9574-gcc.h b/include/dt-bindings/clock/qcom,ipq9574-gcc.h
index 5a2961bfe893..b32a7aa65349 100644
--- a/include/dt-bindings/clock/qcom,ipq9574-gcc.h
+++ b/include/dt-bindings/clock/qcom,ipq9574-gcc.h
@@ -210,4 +210,8 @@
#define GCC_SNOC_PCIE1_1LANE_S_CLK 201
#define GCC_SNOC_PCIE2_2LANE_S_CLK 202
#define GCC_SNOC_PCIE3_2LANE_S_CLK 203
+#define GCC_CRYPTO_CLK_SRC 204
+#define GCC_CRYPTO_CLK 205
+#define GCC_CRYPTO_AXI_CLK 206
+#define GCC_CRYPTO_AHB_CLK 207
#endif
diff --git a/include/dt-bindings/reset/qcom,ipq9574-gcc.h b/include/dt-bindings/reset/qcom,ipq9574-gcc.h
index d01dc6a24cf1..c709d103673d 100644
--- a/include/dt-bindings/reset/qcom,ipq9574-gcc.h
+++ b/include/dt-bindings/reset/qcom,ipq9574-gcc.h
@@ -160,5 +160,6 @@
#define GCC_WCSS_Q6_BCR 151
#define GCC_WCSS_Q6_TBU_BCR 152
#define GCC_TCSR_BCR 153
+#define GCC_CRYPTO_BCR 154

#endif
--
2.17.1


2023-05-26 16:13:44

by Anusha Canchi

[permalink] [raw]
Subject: [PATCH V4 2/4] clk: qcom: gcc-ipq9574: Enable crypto clocks

Enable the clocks required for crypto operation.

Reviewed-by: Bhupesh Sharma <[email protected]>
Signed-off-by: Anusha Rao <[email protected]>
---
Changes in V4:
- Added crypto CLK and reset in alphabetical order.
- Picked up Reviewed-by tag.

drivers/clk/qcom/gcc-ipq9574.c | 72 ++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)

diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c
index 7b0505f5c255..6914f962c893 100644
--- a/drivers/clk/qcom/gcc-ipq9574.c
+++ b/drivers/clk/qcom/gcc-ipq9574.c
@@ -728,6 +728,41 @@ static struct clk_rcg2 blsp1_uart6_apps_clk_src = {
},
};

+static const struct freq_tbl ftbl_gcc_crypto_clk_src[] = {
+ F(160000000, P_GPLL0, 5, 0, 0),
+ { }
+};
+
+static struct clk_rcg2 gcc_crypto_clk_src = {
+ .cmd_rcgr = 0x16004,
+ .freq_tbl = ftbl_gcc_crypto_clk_src,
+ .hid_width = 5,
+ .parent_map = gcc_xo_gpll0_gpll0_out_main_div2_map,
+ .clkr.hw.init = &(const struct clk_init_data) {
+ .name = "gcc_crypto_clk_src",
+ .parent_data = gcc_xo_gpll0_gpll0_out_main_div2,
+ .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_out_main_div2),
+ .ops = &clk_rcg2_ops,
+ },
+};
+
+static struct clk_branch gcc_crypto_clk = {
+ .halt_reg = 0x1600c,
+ .halt_check = BRANCH_HALT_VOTED,
+ .clkr = {
+ .enable_reg = 0x0b004,
+ .enable_mask = BIT(14),
+ .hw.init = &(const struct clk_init_data) {
+ .name = "gcc_crypto_clk",
+ .parent_hws = (const struct clk_hw *[]) {
+ &gcc_crypto_clk_src.clkr.hw },
+ .num_parents = 1,
+ .flags = CLK_SET_RATE_PARENT,
+ .ops = &clk_branch2_ops,
+ },
+ },
+};
+
static struct clk_branch gcc_apss_ahb_clk = {
.halt_reg = 0x24018,
.halt_check = BRANCH_HALT_VOTED,
@@ -2071,6 +2106,38 @@ static struct clk_rcg2 pcnoc_bfdcd_clk_src = {
},
};

+static struct clk_branch gcc_crypto_axi_clk = {
+ .halt_reg = 0x16010,
+ .clkr = {
+ .enable_reg = 0x16010,
+ .enable_mask = BIT(0),
+ .hw.init = &(const struct clk_init_data) {
+ .name = "gcc_crypto_axi_clk",
+ .parent_hws = (const struct clk_hw *[]) {
+ &pcnoc_bfdcd_clk_src.clkr.hw },
+ .num_parents = 1,
+ .flags = CLK_SET_RATE_PARENT,
+ .ops = &clk_branch2_ops,
+ },
+ },
+};
+
+static struct clk_branch gcc_crypto_ahb_clk = {
+ .halt_reg = 0x16014,
+ .clkr = {
+ .enable_reg = 0x16014,
+ .enable_mask = BIT(0),
+ .hw.init = &(const struct clk_init_data) {
+ .name = "gcc_crypto_ahb_clk",
+ .parent_hws = (const struct clk_hw *[]) {
+ &pcnoc_bfdcd_clk_src.clkr.hw },
+ .num_parents = 1,
+ .flags = CLK_SET_RATE_PARENT,
+ .ops = &clk_branch2_ops,
+ },
+ },
+};
+
static struct clk_branch gcc_nsscfg_clk = {
.halt_reg = 0x1702c,
.clkr = {
@@ -3880,6 +3947,10 @@ static struct clk_regmap *gcc_ipq9574_clks[] = {
[GCC_BLSP1_UART4_APPS_CLK] = &gcc_blsp1_uart4_apps_clk.clkr,
[GCC_BLSP1_UART5_APPS_CLK] = &gcc_blsp1_uart5_apps_clk.clkr,
[GCC_BLSP1_UART6_APPS_CLK] = &gcc_blsp1_uart6_apps_clk.clkr,
+ [GCC_CRYPTO_AHB_CLK] = &gcc_crypto_ahb_clk.clkr,
+ [GCC_CRYPTO_AXI_CLK] = &gcc_crypto_axi_clk.clkr,
+ [GCC_CRYPTO_CLK] = &gcc_crypto_clk.clkr,
+ [GCC_CRYPTO_CLK_SRC] = &gcc_crypto_clk_src.clkr,
[PCIE0_AXI_M_CLK_SRC] = &pcie0_axi_m_clk_src.clkr,
[GCC_PCIE0_AXI_M_CLK] = &gcc_pcie0_axi_m_clk.clkr,
[PCIE1_AXI_M_CLK_SRC] = &pcie1_axi_m_clk_src.clkr,
@@ -4063,6 +4134,7 @@ static const struct qcom_reset_map gcc_ipq9574_resets[] = {
[GCC_CMN_BLK_AHB_ARES] = { 0x3a010, 0 },
[GCC_CMN_BLK_SYS_ARES] = { 0x3a010, 1 },
[GCC_CMN_BLK_APU_ARES] = { 0x3a010, 2 },
+ [GCC_CRYPTO_BCR] = { 0x16000, 0 },
[GCC_DCC_BCR] = { 0x35000, 0 },
[GCC_DDRSS_BCR] = { 0x11000, 0 },
[GCC_IMEM_BCR] = { 0x0e000, 0 },
--
2.17.1


2023-05-26 16:14:18

by Anusha Canchi

[permalink] [raw]
Subject: [PATCH V4 3/4] dt-bindings: qcom-qce: add SoC compatible string for ipq9574

Document the compatible string for ipq9574.

Acked-by: Conor Dooley <[email protected]>
Reviewed-by: Bhupesh Sharma <[email protected]>
Signed-off-by: Anusha Rao <[email protected]>
---
Changes in V4:
- Picked up Reviewed-by tag.

Documentation/devicetree/bindings/crypto/qcom-qce.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/crypto/qcom-qce.yaml b/Documentation/devicetree/bindings/crypto/qcom-qce.yaml
index e375bd981300..0d1deae06e2d 100644
--- a/Documentation/devicetree/bindings/crypto/qcom-qce.yaml
+++ b/Documentation/devicetree/bindings/crypto/qcom-qce.yaml
@@ -28,6 +28,7 @@ properties:
- enum:
- qcom,ipq6018-qce
- qcom,ipq8074-qce
+ - qcom,ipq9574-qce
- qcom,msm8996-qce
- qcom,sdm845-qce
- const: qcom,ipq4019-qce
--
2.17.1


2023-05-26 16:14:22

by Anusha Canchi

[permalink] [raw]
Subject: [PATCH V4 4/4] arm64: dts: qcom: ipq9574: Enable crypto nodes

Enable crypto support for ipq9574.

Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Anusha Rao <[email protected]>
---
Changes in V4:
- Added bam compatible "qcom,bam-v1.7.4". This change depends on below patchset
https://lore.kernel.org/linux-arm-msm/[email protected]/
- Picked up Reviewed-by tag.

arch/arm64/boot/dts/qcom/ipq9574.dtsi | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index fea15f3cf910..1b0f535d1712 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -123,6 +123,26 @@
clock-names = "core";
};

+ cryptobam: dma-controller@704000 {
+ compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+ reg = <0x00704000 0x20000>;
+ interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
+ #dma-cells = <1>;
+ qcom,ee = <1>;
+ qcom,controlled-remotely;
+ };
+
+ crypto: crypto@73a000 {
+ compatible = "qcom,ipq9574-qce", "qcom,ipq4019-qce", "qcom,qce";
+ reg = <0x0073a000 0x6000>;
+ clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
+ <&gcc GCC_CRYPTO_AXI_CLK>,
+ <&gcc GCC_CRYPTO_CLK>;
+ clock-names = "iface", "bus", "core";
+ dmas = <&cryptobam 2>, <&cryptobam 3>;
+ dma-names = "rx", "tx";
+ };
+
tlmm: pinctrl@1000000 {
compatible = "qcom,ipq9574-tlmm";
reg = <0x01000000 0x300000>;
--
2.17.1


2023-06-13 22:29:12

by Bjorn Andersson

[permalink] [raw]
Subject: Re: (subset) [PATCH V4 0/4] Enable crypto for ipq9574

On Fri, 26 May 2023 21:41:25 +0530, Anusha Rao wrote:
> Update GCC driver to include clocks required for crypto.
> Enable crypto nodes in ipq9574.
>
> DTS patch depends on the below series
> https://lore.kernel.org/linux-arm-msm/[email protected]/
>
> Changes in V4:
> Detailed change logs are added to the respective patches.
>
> [...]

Applied, thanks!

[2/4] clk: qcom: gcc-ipq9574: Enable crypto clocks
commit: f6b2bd9cb29a1150a16f29a8d070e21317c62e71

Best regards,
--
Bjorn Andersson <[email protected]>

2023-06-23 12:10:14

by Anusha Canchi

[permalink] [raw]
Subject: Re: [PATCH V4 3/4] dt-bindings: qcom-qce: add SoC compatible string for ipq9574

> Document the compatible string for ipq9574.
>
> Acked-by: Conor Dooley <[email protected]>
> Reviewed-by: Bhupesh Sharma <[email protected]>
> Signed-off-by: Anusha Rao <[email protected]>
> ---
> Changes in V4:
> - Picked up Reviewed-by tag.

A gentle reminder to pick the dt-binding patch.
As the dts change is picked, this patch is required to resolve dt-bindings check issues.

2023-06-23 12:55:01

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH V4 3/4] dt-bindings: qcom-qce: add SoC compatible string for ipq9574

On 23/06/2023 13:55, Anusha Rao wrote:
>> Document the compatible string for ipq9574.
>>
>> Acked-by: Conor Dooley <[email protected]>
>> Reviewed-by: Bhupesh Sharma <[email protected]>
>> Signed-off-by: Anusha Rao <[email protected]>
>> ---
>> Changes in V4:
>> - Picked up Reviewed-by tag.
>
> A gentle reminder to pick the dt-binding patch.
> As the dts change is picked, this patch is required to resolve dt-bindings check issues.

One patchset with four patches targeting three different subsystems, so
no wonder it gets missed. You will usually receive better results with
splitting such patchsets per subsystems.

One more thing is lack of proper subject prefix which indicates the
subsystem. Without it why anyone would pick it up? For example me, I
would just ignore it for my subsystem...

Best regards,
Krzysztof