2015-11-25 05:43:29

by Zain Wang

[permalink] [raw]
Subject: [PATCH v5 0/4] crypto: add crypto accelerator support for rk3288

Changed in v5:
- copy IV back after operation
- use cra_block_size to tell AES from DES instaed flag AES/TDES

Changed in v4:
- modify irq function
- add devm_add_action in probe
- fix some minor mistakes

Changed in v3:
- add OF depended in Kconfig
- rename some variate
- add reset property
- remove crypto_p variate

Changed in v2:
- remove some part about hash
- add weak key detection
- changed some variate's type

Changed in v1:
- modify some variate's name
- modify some variate's type
- modify some return value
- remove or modify some print info
- use more dev_xxx in probe
- modify the prio of cipher
- add Kconfig

Zain Wang (4):
crypto: rockchip/crypto - add DT bindings documentation
clk: rockchip: set an ID for crypto clk
Crypto: rockchip/crypto - add crypto driver for rk3288
ARM: dts: rockchip: Add Crypto node for rk3288

.../devicetree/bindings/crypto/rockchip-crypto.txt | 29 ++
arch/arm/boot/dts/rk3288.dtsi | 12 +
drivers/clk/rockchip/clk-rk3288.c | 2 +-
drivers/crypto/Kconfig | 11 +
drivers/crypto/Makefile | 1 +
drivers/crypto/rockchip/Makefile | 3 +
drivers/crypto/rockchip/rk3288_crypto.c | 393 ++++++++++++++++
drivers/crypto/rockchip/rk3288_crypto.h | 216 +++++++++
drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c | 503 +++++++++++++++++++++
include/dt-bindings/clock/rk3288-cru.h | 1 +
10 files changed, 1170 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
create mode 100644 drivers/crypto/rockchip/Makefile
create mode 100644 drivers/crypto/rockchip/rk3288_crypto.c
create mode 100644 drivers/crypto/rockchip/rk3288_crypto.h
create mode 100644 drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c

--
1.9.1


2015-11-25 05:45:57

by zain

[permalink] [raw]
Subject: [PATCH v5 2/4] clk: rockchip: set an ID for crypto clk

Set an ID for crypto clk, so that it can be called in other part.

Signed-off-by: Zain Wang <[email protected]>
Acked-by: Michael Turquette <[email protected]>
Tested-by: Heiko Stuebner <[email protected]>
---
Changed in v5:
- None
Changed in v4:
- None
Changed in v3:
- None
Changed in v2:
- None
Changed in v1:
- define SCLK_CRYPTO in rk3288-cru.h
- use SCLK_CRYPTO instead of SRST_CRYPTO

drivers/clk/rockchip/clk-rk3288.c | 2 +-
include/dt-bindings/clock/rk3288-cru.h | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/rockchip/clk-rk3288.c b/drivers/clk/rockchip/clk-rk3288.c
index 9040878..3fceda1 100644
--- a/drivers/clk/rockchip/clk-rk3288.c
+++ b/drivers/clk/rockchip/clk-rk3288.c
@@ -295,7 +295,7 @@ static struct rockchip_clk_branch rk3288_clk_branches[] __initdata = {
RK3288_CLKGATE_CON(0), 4, GFLAGS),
GATE(0, "c2c_host", "aclk_cpu_src", 0,
RK3288_CLKGATE_CON(13), 8, GFLAGS),
- COMPOSITE_NOMUX(0, "crypto", "aclk_cpu_pre", 0,
+ COMPOSITE_NOMUX(SCLK_CRYPTO, "crypto", "aclk_cpu_pre", 0,
RK3288_CLKSEL_CON(26), 6, 2, DFLAGS,
RK3288_CLKGATE_CON(5), 4, GFLAGS),
GATE(0, "aclk_bus_2pmu", "aclk_cpu_pre", CLK_IGNORE_UNUSED,
diff --git a/include/dt-bindings/clock/rk3288-cru.h b/include/dt-bindings/clock/rk3288-cru.h
index c719aac..30dcd60 100644
--- a/include/dt-bindings/clock/rk3288-cru.h
+++ b/include/dt-bindings/clock/rk3288-cru.h
@@ -86,6 +86,7 @@
#define SCLK_USBPHY480M_SRC 122
#define SCLK_PVTM_CORE 123
#define SCLK_PVTM_GPU 124
+#define SCLK_CRYPTO 125

#define SCLK_MAC 151
#define SCLK_MACREF_OUT 152
--
1.9.1

2015-11-25 05:43:33

by zain

[permalink] [raw]
Subject: [PATCH v5 4/4] ARM: dts: rockchip: Add Crypto node for rk3288

Add Crypto node for rk3288 including crypto controller and dma clk.

Signed-off-by: Zain Wang <[email protected]>
Tested-by: Heiko Stuebner <[email protected]>
---
Changed in v5:
- None

Changed in v4:
- None

Changed in v3:
- add reset property

Changed in v2:
- None

Changed in v1:
- remove the _crypto suffix
- use "rockchip,rk3288-crypto" instead of "rockchip,rk3288"

arch/arm/boot/dts/rk3288.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index ad44d80..c6b1aa4 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -781,6 +781,18 @@
status = "disabled";
};

+ crypto: cypto-controller@ff8a0000 {
+ compatible = "rockchip,rk3288-crypto";
+ reg = <0xff8a0000 0x4000>;
+ interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
+ <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
+ clock-names = "aclk", "hclk", "sclk", "apb_pclk";
+ resets = <&cru SRST_CRYPTO>;
+ reset-names = "crypto-rst";
+ status = "okay";
+ };
+
vopb: vop@ff930000 {
compatible = "rockchip,rk3288-vop";
reg = <0xff930000 0x19c>;
--
1.9.1

2015-11-25 05:43:30

by zain

[permalink] [raw]
Subject: [PATCH v5 1/4] crypto: rockchip/crypto - add DT bindings documentation

Add DT bindings documentation for the rk3288 crypto drivers.

Signed-off-by: Zain Wang <[email protected]>
Acked-by: Rob Herring <[email protected]>
Tested-by: Heiko Stuebner <[email protected]>
---
Changed in v5:
- None

Changed in v4:
- None

Changed in v3:
- add reset property

Changed in v2:
- None

Changed in v1:
- remove the _crypto suffix
- use "rockchip,rk3288-crypto" instead of "rockchip,rk3288"
- remove the description of status

.../devicetree/bindings/crypto/rockchip-crypto.txt | 29 ++++++++++++++++++++++
1 file changed, 29 insertions(+)
create mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt

diff --git a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt b/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
new file mode 100644
index 0000000..096df34
--- /dev/null
+++ b/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
@@ -0,0 +1,29 @@
+Rockchip Electronics And Security Accelerator
+
+Required properties:
+- compatible: Should be "rockchip,rk3288-crypto"
+- reg: Base physical address of the engine and length of memory mapped
+ region
+- interrupts: Interrupt number
+- clocks: Reference to the clocks about crypto
+- clock-names: "aclk" used to clock data
+ "hclk" used to clock data
+ "sclk" used to clock crypto accelerator
+ "apb_pclk" used to clock dma
+- resets: Must contain an entry for each entry in reset-names.
+ See ../reset/reset.txt for details.
+- reset-names: Must include the name "crypto-rst".
+
+Examples:
+
+ crypto: cypto-controller@ff8a0000 {
+ compatible = "rockchip,rk3288-crypto";
+ reg = <0xff8a0000 0x4000>;
+ interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
+ <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
+ clock-names = "aclk", "hclk", "sclk", "apb_pclk";
+ resets = <&cru SRST_CRYPTO>;
+ reset-names = "crypto-rst";
+ status = "okay";
+ };
--
1.9.1

2015-11-25 08:14:56

by Heiko Stuebner

[permalink] [raw]
Subject: Re: [PATCH v5 2/4] clk: rockchip: set an ID for crypto clk

Hi Zain,

Am Mittwoch, 25. November 2015, 13:43:31 schrieb Zain Wang:
> Set an ID for crypto clk, so that it can be called in other part.
>
> Signed-off-by: Zain Wang <[email protected]>
> Acked-by: Michael Turquette <[email protected]>
> Tested-by: Heiko Stuebner <[email protected]>

I've already taken this patch, so no need to resubmit on further version.


Heiko

2015-11-25 08:53:17

by zain

[permalink] [raw]
Subject: Re: [PATCH v5 2/4] clk: rockchip: set an ID for crypto clk



On 2015年11月25日 16:14, Heiko Stübner wrote:
> Hi Zain,
>
> Am Mittwoch, 25. November 2015, 13:43:31 schrieb Zain Wang:
>> Set an ID for crypto clk, so that it can be called in other part.
>>
>> Signed-off-by: Zain Wang <[email protected]>
>> Acked-by: Michael Turquette <[email protected]>
>> Tested-by: Heiko Stuebner <[email protected]>
> I've already taken this patch, so no need to resubmit on further version.
Thanks for your reminding.

Zain
>
> Heiko
>
>
>

2015-11-27 13:25:48

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH v5 1/4] crypto: rockchip/crypto - add DT bindings documentation

On Wed, Nov 25, 2015 at 01:43:30PM +0800, Zain Wang wrote:
> Add DT bindings documentation for the rk3288 crypto drivers.
>
> Signed-off-by: Zain Wang <[email protected]>
> Acked-by: Rob Herring <[email protected]>
> Tested-by: Heiko Stuebner <[email protected]>

Applied.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2015-11-27 17:25:45

by Heiko Stübner

[permalink] [raw]
Subject: Re: [PATCH v5 4/4] ARM: dts: rockchip: Add Crypto node for rk3288

Am Mittwoch, 25. November 2015, 13:43:33 schrieb Zain Wang:
> Add Crypto node for rk3288 including crypto controller and dma clk.
>
> Signed-off-by: Zain Wang <[email protected]>
> Tested-by: Heiko Stuebner <[email protected]>

applied to my dts32 branch for 4.5 .

Thanks
Heiko