linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
@ 2022-02-11 11:59 Corentin Labbe
  2022-02-11 13:13 ` Johan Jonker
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Corentin Labbe @ 2022-02-11 11:59 UTC (permalink / raw)
  To: davem, heiko, herbert, krzysztof.kozlowski, robh+dt
  Cc: devicetree, linux-arm-kernel, linux-crypto, linux-kernel,
	linux-rockchip, Corentin Labbe

Convert rockchip-crypto to yaml

Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
---
Changes since v1:
- fixed example
- renamed to a new name
- fixed some maxItems

Change since v2:
- Fixed maintainers section

 .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
 .../bindings/crypto/rockchip-crypto.txt       | 28 --------
 2 files changed, 66 insertions(+), 28 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
 delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt

diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
new file mode 100644
index 000000000000..2e1e9fa711c4
--- /dev/null
+++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip Electronics And Security Accelerator
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    const: rockchip,rk3288-crypto
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: clock data
+      - description: clock data
+      - description: clock crypto accelerator
+      - description: clock dma
+
+  clock-names:
+    items:
+      - const: aclk
+      - const: hclk
+      - const: sclk
+      - const: apb_pclk
+
+  resets:
+    maxItems: 1
+
+  reset-names:
+    const: crypto-rst
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/rk3288-cru.h>
+    crypto@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";
+    };
diff --git a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt b/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
deleted file mode 100644
index 5e2ba385b8c9..000000000000
--- a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-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";
-	};
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-11 11:59 [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml Corentin Labbe
@ 2022-02-11 13:13 ` Johan Jonker
  2022-02-11 19:48   ` LABBE Corentin
  2022-02-12 16:02 ` Krzysztof Kozlowski
  2022-02-15 14:07 ` Johan Jonker
  2 siblings, 1 reply; 9+ messages in thread
From: Johan Jonker @ 2022-02-11 13:13 UTC (permalink / raw)
  To: Corentin Labbe, davem, heiko, herbert, krzysztof.kozlowski, robh+dt
  Cc: devicetree, linux-arm-kernel, linux-crypto, linux-kernel, linux-rockchip



On 2/11/22 12:59, Corentin Labbe wrote:
> Convert rockchip-crypto to yaml
> 
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
> Changes since v1:
> - fixed example
> - renamed to a new name
> - fixed some maxItems
> 
> Change since v2:
> - Fixed maintainers section
> 
>  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
>  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
>  2 files changed, 66 insertions(+), 28 deletions(-)

>  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt

There's more possible to this document:

dt-bindings: crypto: rockchip: add support for px30
https://github.com/rockchip-linux/kernel/commit/3655df1bc6114bda2a6417f39772a3cb008084ea

crypto: rockchip - add px30 crypto aes/des support
https://github.com/rockchip-linux/kernel/commit/ee082ae4f609f3b48f768420b31d8600448bd35a

> 
> diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> new file mode 100644
> index 000000000000..2e1e9fa711c4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip Electronics And Security Accelerator
> +
> +maintainers:
> +  - Heiko Stuebner <heiko@sntech.de>
> +
> +properties:
> +  compatible:
> +    const: rockchip,rk3288-crypto
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: clock data
> +      - description: clock data
> +      - description: clock crypto accelerator
> +      - description: clock dma
> +
> +  clock-names:
> +    items:
> +      - const: aclk
> +      - const: hclk
> +      - const: sclk
> +      - const: apb_pclk
> +
> +  resets:
> +    maxItems: 1
> +
> +  reset-names:
> +    const: crypto-rst
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - clock-names
> +  - resets
> +  - reset-names
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/clock/rk3288-cru.h>
> +    crypto@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";
> +    };
> diff --git a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt b/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> deleted file mode 100644
> index 5e2ba385b8c9..000000000000
> --- a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -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";
> -	};

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-11 13:13 ` Johan Jonker
@ 2022-02-11 19:48   ` LABBE Corentin
  2022-02-13 22:37     ` Johan Jonker
  0 siblings, 1 reply; 9+ messages in thread
From: LABBE Corentin @ 2022-02-11 19:48 UTC (permalink / raw)
  To: Johan Jonker
  Cc: davem, heiko, herbert, krzysztof.kozlowski, robh+dt, devicetree,
	linux-arm-kernel, linux-crypto, linux-kernel, linux-rockchip

Le Fri, Feb 11, 2022 at 02:13:00PM +0100, Johan Jonker a écrit :
> 
> 
> On 2/11/22 12:59, Corentin Labbe wrote:
> > Convert rockchip-crypto to yaml
> > 
> > Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> > ---
> > Changes since v1:
> > - fixed example
> > - renamed to a new name
> > - fixed some maxItems
> > 
> > Change since v2:
> > - Fixed maintainers section
> > 
> >  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
> >  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
> >  2 files changed, 66 insertions(+), 28 deletions(-)
> 
> >  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> 
> There's more possible to this document:
> 
> dt-bindings: crypto: rockchip: add support for px30
> https://github.com/rockchip-linux/kernel/commit/3655df1bc6114bda2a6417f39772a3cb008084ea
> 
> crypto: rockchip - add px30 crypto aes/des support
> https://github.com/rockchip-linux/kernel/commit/ee082ae4f609f3b48f768420b31d8600448bd35a
> 

Hello

The great advantage of out of tree code is that we can ignore it.
Anyway, if one day this code goes upstream, I think the new compatible should be in a new driver/module, both v1 and v2 are too different for me to be shared in the same driver.

But before upstreaming this code, the one in mainline should be fixed first, it fail self tests. (I have some patch partialy fixing it in progress)

Regards

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-11 11:59 [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml Corentin Labbe
  2022-02-11 13:13 ` Johan Jonker
@ 2022-02-12 16:02 ` Krzysztof Kozlowski
  2022-02-15 14:07 ` Johan Jonker
  2 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2022-02-12 16:02 UTC (permalink / raw)
  To: Corentin Labbe, davem, heiko, herbert, robh+dt
  Cc: devicetree, linux-arm-kernel, linux-crypto, linux-kernel, linux-rockchip

On 11/02/2022 12:59, Corentin Labbe wrote:
> Convert rockchip-crypto to yaml
> 
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
> Changes since v1:
> - fixed example
> - renamed to a new name
> - fixed some maxItems
> 
> Change since v2:
> - Fixed maintainers section
> 
>  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
>  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
>  2 files changed, 66 insertions(+), 28 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> 


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-11 19:48   ` LABBE Corentin
@ 2022-02-13 22:37     ` Johan Jonker
  0 siblings, 0 replies; 9+ messages in thread
From: Johan Jonker @ 2022-02-13 22:37 UTC (permalink / raw)
  To: LABBE Corentin, heiko, robh+dt
  Cc: davem, herbert, krzysztof.kozlowski, devicetree,
	linux-arm-kernel, linux-crypto, linux-kernel, linux-rockchip



On 2/11/22 20:48, LABBE Corentin wrote:
> Le Fri, Feb 11, 2022 at 02:13:00PM +0100, Johan Jonker a écrit :
>>
>>
>> On 2/11/22 12:59, Corentin Labbe wrote:
>>> Convert rockchip-crypto to yaml
>>>
>>> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
>>> ---
>>> Changes since v1:
>>> - fixed example
>>> - renamed to a new name
>>> - fixed some maxItems
>>>
>>> Change since v2:
>>> - Fixed maintainers section
>>>
>>>  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
>>>  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
>>>  2 files changed, 66 insertions(+), 28 deletions(-)
>>
>>>  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>>>  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
>>
>> There's more possible to this document:
>>
>> dt-bindings: crypto: rockchip: add support for px30
>> https://github.com/rockchip-linux/kernel/commit/3655df1bc6114bda2a6417f39772a3cb008084ea
>>
>> crypto: rockchip - add px30 crypto aes/des support
>> https://github.com/rockchip-linux/kernel/commit/ee082ae4f609f3b48f768420b31d8600448bd35a
>>
> 

> Hello
> 
> The great advantage of out of tree code is that we can ignore it.

See comment below.
This is not about code, but about reusing the (generic) binding for more
SoCs then just rk3288 that happened to have Linux support.
See spi-rockchip.yaml rockchip-dw-mshc.yaml etc.

> Anyway, if one day this code goes upstream, I think the new compatible should be in a new driver/module, both v1 and v2 are too different for me to be shared in the same driver.
> 
> But before upstreaming this code, the one in mainline should be fixed first, it fail self tests. (I have some patch partialy fixing it in progress)
> 

Success! Send us lots of patches...
Is it possible to keep portability (to U-boot) in mind for multiple
Rockchip SoC types.

> Regards
> 

Although DT and bindings are hosted in the Linux tree they are separate
things. DT files and bindings can be used elsewhere. There's no need for
(full) Linux driver support. For Rockchip crypto nodes this is mostly
done in the Manufacturer U-boot tree.

https://github.com/rockchip-linux/u-boot/blob/next-dev/drivers/crypto/rockchip/crypto_v1.c

https://github.com/rockchip-linux/u-boot/blame/next-dev/drivers/crypto/rockchip/crypto_v2.c

Given Krzysztof's comment:

> file name: rockchip,crypto.yaml or rockchip,rk3288-crypto.yaml.
> Kind of depends whether there is another binding possible for newer
> Crypto blocks from Rockchip.

For U-boot the Rockchip dtsi files are synced from the Linux tree,
so it may well be possible that someone add them here and use them
elsewhere if needed.

From the links to the files above we can expect:
crypto v1:
	{ .compatible = "rockchip,rk312x-crypto" },
	{ .compatible = "rockchip,rk322x-crypto" },
	{ .compatible = "rockchip,rk3288-crypto" },
	{ .compatible = "rockchip,rk3328-crypto" },
	{ .compatible = "rockchip,rk3368-crypto" },
	{ .compatible = "rockchip,rk3399-crypto" },

crypto v2:
	{ .compatible = "rockchip,px30-crypto" },
	{ .compatible = "rockchip,rk1808-crypto" },
	{ .compatible = "rockchip,rk3308-crypto" },
	{ .compatible = "rockchip,rv1126-crypto" },
	{ .compatible = "rockchip,rk3568-crypto" },
	{ .compatible = "rockchip,rk3588-crypto" },

With only small nodes differences for clocks we reuse the "generic"
binding and NOT a (rk3288) SoC orientated one.

Johan




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-11 11:59 [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml Corentin Labbe
  2022-02-11 13:13 ` Johan Jonker
  2022-02-12 16:02 ` Krzysztof Kozlowski
@ 2022-02-15 14:07 ` Johan Jonker
  2022-02-23 13:05   ` LABBE Corentin
  2022-03-18 10:20   ` LABBE Corentin
  2 siblings, 2 replies; 9+ messages in thread
From: Johan Jonker @ 2022-02-15 14:07 UTC (permalink / raw)
  To: heiko, Corentin Labbe
  Cc: devicetree, linux-arm-kernel, linux-crypto, linux-kernel,
	linux-rockchip, robh+dt, krzysztof.kozlowski, herbert, davem

Hi Heiko,

On 2/11/22 12:59, Corentin Labbe wrote:
> Convert rockchip-crypto to yaml
> 
> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> ---
> Changes since v1:
> - fixed example
> - renamed to a new name
> - fixed some maxItems
> 
> Change since v2:
> - Fixed maintainers section
> 
>  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
>  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
>  2 files changed, 66 insertions(+), 28 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml

rockchip,crypto.yaml

>  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> 
> diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> new file mode 100644
> index 000000000000..2e1e9fa711c4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> @@ -0,0 +1,66 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#

rockchip,crypto.yaml

> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip Electronics And Security Accelerator
> +
> +maintainers:
> +  - Heiko Stuebner <heiko@sntech.de>
> +
> +properties:
> +  compatible:

    oneOf:
      - const: rockchip,rk3288-crypto
      - items:
          - enum:
              - rockchip,rk3228-crypto
              - rockchip,rk3328-crypto
              - rockchip,rk3368-crypto
              - rockchip,rk3399-crypto
          - const: rockchip,rk3288-crypto

rk3288 was the first in line that had support, so we use that as fall
back string.

> +    const: rockchip,rk3288-crypto
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: clock data
> +      - description: clock data
> +      - description: clock crypto accelerator

> +      - description: clock dma

remove ???

> +
> +  clock-names:
> +    items:
> +      - const: aclk
> +      - const: hclk
> +      - const: sclk

> +      - const: apb_pclk

remove ???

Similar to the rk3568 pclk_xpcs discussion ACLK_DMAC1 belongs to the
dmac_bus_s node and should have been enabled by the DMA driver I think.
Could you advise if this is correct or should we remove parsing/enabling
ACLK_DMAC1 in rk3288_crypto.c in order to it easier
porting/adding/syncing nodes for other SoC types?

Johan

===

From rk3288.dtsi:

	dmac_bus_s: dma-controller@ffb20000 {
		compatible = "arm,pl330", "arm,primecell";
		reg = <0x0 0xffb20000 0x0 0x4000>;
		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
		#dma-cells = <1>;
		arm,pl330-broken-no-flushp;
		arm,pl330-periph-burst;

		clocks = <&cru ACLK_DMAC1>;

		clock-names = "apb_pclk";
	};

	crypto: cypto@ff8a0000 {
		compatible = "rockchip,rk3288-crypto";
		reg = <0x0 0xff8a0000 0x0 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";
	};
===

https://github.com/rockchip-linux/u-boot/blob/next-dev/drivers/crypto/rockchip/crypto_v1.c

U-boot currently only looks for a SCLK_CRYPTO array and sets the
SCLK_CRYPTO frequency.

TODO:
Make it work/portable for all Rockchip SoC types in both Linux and
U-boot with variable number of clocks and resets.


rk322x.dtsi:

	crypto: crypto@100a0000 {
		compatible = "rockchip,rk3228-crypto", "rockchip,rk3288-crypto";
		reg = <0x100a0000 0x10000>;
		clocks = <&cru SCLK_CRYPTO>;
		clock-names = "sclk_crypto";
	};


#define SRST_CRYPTO		53
#define HCLK_M_CRYPTO		476
#define HCLK_S_CRYPTO		477

#define SRST_CRYPTO		53

===
rk3328.dtsi:

	crypto: crypto@ff060000 {
		compatible = "rockchip,rk3328-crypto", "rockchip,rk3288-crypto";
		reg = <0x0 0xff060000 0x0 0x10000>;
		clocks = <&cru SCLK_CRYPTO>;
		clock-names = "sclk_crypto";
	};

#define SRST_CRYPTO		68
#define HCLK_CRYPTO_MST		336
#define HCLK_CRYPTO_SLV		337

#define SRST_CRYPTO		68

===
rk3368.dtsi:

	crypto: crypto@ff8a0000 {
		compatible = "rockchip,rk3368-crypto", "rockchip,rk3288-crypto";
		reg = <0x0 0xff8a0000 0x0 0x10000>;
		clocks = <&cru SCLK_CRYPTO>;
		clock-names = "sclk_crypto";
	};

#define SCLK_CRYPTO		130  ??? missing in rk3368-cru.h
#define MCLK_CRYPTO		191
#define HCLK_CRYPTO		461

#define SRST_CRYPTO		174

===
rk3399.dtsi:

	crypto: crypto@ff8b0000 {
		compatible = "rockchip,rk3399-crypto", "rockchip,rk3288-crypto";
		reg = <0x0 0xff8b0000 0x0 0x10000>;
		clocks = <&cru SCLK_CRYPTO0>, <&cru SCLK_CRYPTO1>;
		clock-names = "sclk_crypto0", "sclk_crypto1";
	};


#define SCLK_CRYPTO0			133
#define SCLK_CRYPTO1			134
#define HCLK_M_CRYPTO0			464
#define HCLK_M_CRYPTO1			465
#define HCLK_S_CRYPTO0			466
#define HCLK_S_CRYPTO1			467

#define SRST_CRYPTO_S			174
#define SRST_CRYPTO_M			175
#define SRST_CRYPTO			181
#define SRST_CRYPTO1_S			184
#define SRST_CRYPTO1_M			185
#define SRST_CRYPTO1			186

> +
> +  resets:
> +    maxItems: 1
> +
> +  reset-names:
> +    const: crypto-rst
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - clock-names
> +  - resets
> +  - reset-names
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    #include <dt-bindings/clock/rk3288-cru.h>
> +    crypto@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";
> +    };
> diff --git a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt b/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> deleted file mode 100644
> index 5e2ba385b8c9..000000000000
> --- a/Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -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";
> -	};

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-15 14:07 ` Johan Jonker
@ 2022-02-23 13:05   ` LABBE Corentin
  2022-02-23 13:14     ` Krzysztof Kozlowski
  2022-03-18 10:20   ` LABBE Corentin
  1 sibling, 1 reply; 9+ messages in thread
From: LABBE Corentin @ 2022-02-23 13:05 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, devicetree, linux-arm-kernel, linux-crypto, linux-kernel,
	linux-rockchip, robh+dt, krzysztof.kozlowski, herbert, davem

Le Tue, Feb 15, 2022 at 03:07:56PM +0100, Johan Jonker a écrit :
> Hi Heiko,
> 
> On 2/11/22 12:59, Corentin Labbe wrote:
> > Convert rockchip-crypto to yaml
> > 
> > Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> > ---
> > Changes since v1:
> > - fixed example
> > - renamed to a new name
> > - fixed some maxItems
> > 
> > Change since v2:
> > - Fixed maintainers section
> > 
> >  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
> >  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
> >  2 files changed, 66 insertions(+), 28 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> 
> rockchip,crypto.yaml


Hello

DT maintainer asked for rockchip,rk3288-crypto, so I will keep it.

> 
> >  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> > new file mode 100644
> > index 000000000000..2e1e9fa711c4
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> > @@ -0,0 +1,66 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#
> 
> rockchip,crypto.yaml
> 
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Rockchip Electronics And Security Accelerator
> > +
> > +maintainers:
> > +  - Heiko Stuebner <heiko@sntech.de>
> > +
> > +properties:
> > +  compatible:
> 
>     oneOf:
>       - const: rockchip,rk3288-crypto
>       - items:
>           - enum:
>               - rockchip,rk3228-crypto
>               - rockchip,rk3328-crypto
>               - rockchip,rk3368-crypto
>               - rockchip,rk3399-crypto
>           - const: rockchip,rk3288-crypto
> 
> rk3288 was the first in line that had support, so we use that as fall
> back string.

I will dont add compatible which are not handled by the driver unless DT maintainer said I should.

> 
> > +    const: rockchip,rk3288-crypto
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    items:
> > +      - description: clock data
> > +      - description: clock data
> > +      - description: clock crypto accelerator
> 
> > +      - description: clock dma
> 
> remove ???
> 
> > +
> > +  clock-names:
> > +    items:
> > +      - const: aclk
> > +      - const: hclk
> > +      - const: sclk
> 
> > +      - const: apb_pclk
> 
> remove ???
> 
> Similar to the rk3568 pclk_xpcs discussion ACLK_DMAC1 belongs to the
> dmac_bus_s node and should have been enabled by the DMA driver I think.
> Could you advise if this is correct or should we remove parsing/enabling
> ACLK_DMAC1 in rk3288_crypto.c in order to it easier
> porting/adding/syncing nodes for other SoC types?
> 
> Johan

I tested on my rk3328-rock64 and I confirm apb_pclk is unnessecary.
I will issue patch for fixing this.

Regards

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-23 13:05   ` LABBE Corentin
@ 2022-02-23 13:14     ` Krzysztof Kozlowski
  0 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2022-02-23 13:14 UTC (permalink / raw)
  To: LABBE Corentin, Johan Jonker
  Cc: heiko, devicetree, linux-arm-kernel, linux-crypto, linux-kernel,
	linux-rockchip, robh+dt, herbert, davem

On 23/02/2022 14:05, LABBE Corentin wrote:
> Le Tue, Feb 15, 2022 at 03:07:56PM +0100, Johan Jonker a écrit :
>> Hi Heiko,
>>
>> On 2/11/22 12:59, Corentin Labbe wrote:
>>> Convert rockchip-crypto to yaml
>>>
>>> Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
>>> ---
>>> Changes since v1:
>>> - fixed example
>>> - renamed to a new name
>>> - fixed some maxItems
>>>
>>> Change since v2:
>>> - Fixed maintainers section
>>>
>>>  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
>>>  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
>>>  2 files changed, 66 insertions(+), 28 deletions(-)
>>>  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>>
>> rockchip,crypto.yaml
> 
> 
> Hello
> 
> DT maintainer asked for rockchip,rk3288-crypto, so I will keep it.

I don't insist on keeping rk32880crypto name. It depends whether the
bindings are for a family of devices or rather specific one or few
devices. Based on comments here, it is quite possible that all Rockchip
crypto blocks will fit into this bindings, so the name could be generic.

Having a specific name, even if it contains multiple devices, is also fine.

What I would prefer to avoid is to have a generic name
"rockchip,crypto.yaml" and then in two months one more generic
"rockchip,crypto2.yaml", and then add third...

> 
>>
>>>  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>>> new file mode 100644
>>> index 000000000000..2e1e9fa711c4
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
>>> @@ -0,0 +1,66 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#
>>
>> rockchip,crypto.yaml
>>
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Rockchip Electronics And Security Accelerator
>>> +
>>> +maintainers:
>>> +  - Heiko Stuebner <heiko@sntech.de>
>>> +
>>> +properties:
>>> +  compatible:
>>
>>     oneOf:
>>       - const: rockchip,rk3288-crypto
>>       - items:
>>           - enum:
>>               - rockchip,rk3228-crypto
>>               - rockchip,rk3328-crypto
>>               - rockchip,rk3368-crypto
>>               - rockchip,rk3399-crypto
>>           - const: rockchip,rk3288-crypto
>>
>> rk3288 was the first in line that had support, so we use that as fall
>> back string.
> 
> I will dont add compatible which are not handled by the driver unless DT maintainer said I should.

They could be added for completeness because bindings describe rather
hardware, not Linux driver state, but there is no such must. It can also
be added later by another contributor.


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml
  2022-02-15 14:07 ` Johan Jonker
  2022-02-23 13:05   ` LABBE Corentin
@ 2022-03-18 10:20   ` LABBE Corentin
  1 sibling, 0 replies; 9+ messages in thread
From: LABBE Corentin @ 2022-03-18 10:20 UTC (permalink / raw)
  To: Johan Jonker
  Cc: heiko, devicetree, linux-arm-kernel, linux-crypto, linux-kernel,
	linux-rockchip, robh+dt, krzysztof.kozlowski, herbert, davem

Le Tue, Feb 15, 2022 at 03:07:56PM +0100, Johan Jonker a écrit :
> Hi Heiko,
> 
> On 2/11/22 12:59, Corentin Labbe wrote:
> > Convert rockchip-crypto to yaml
> > 
> > Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
> > ---
> > Changes since v1:
> > - fixed example
> > - renamed to a new name
> > - fixed some maxItems
> > 
> > Change since v2:
> > - Fixed maintainers section
> > 
> >  .../crypto/rockchip,rk3288-crypto.yaml        | 66 +++++++++++++++++++
> >  .../bindings/crypto/rockchip-crypto.txt       | 28 --------
> >  2 files changed, 66 insertions(+), 28 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> 
> rockchip,crypto.yaml
> 
> >  delete mode 100644 Documentation/devicetree/bindings/crypto/rockchip-crypto.txt
> > 
> > diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> > new file mode 100644
> > index 000000000000..2e1e9fa711c4
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
> > @@ -0,0 +1,66 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/crypto/rockchip,rk3288-crypto.yaml#
> 
> rockchip,crypto.yaml
> 
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Rockchip Electronics And Security Accelerator
> > +
> > +maintainers:
> > +  - Heiko Stuebner <heiko@sntech.de>
> > +
> > +properties:
> > +  compatible:
> 
>     oneOf:
>       - const: rockchip,rk3288-crypto
>       - items:
>           - enum:
>               - rockchip,rk3228-crypto
>               - rockchip,rk3328-crypto
>               - rockchip,rk3368-crypto
>               - rockchip,rk3399-crypto
>           - const: rockchip,rk3288-crypto
> 
> rk3288 was the first in line that had support, so we use that as fall
> back string.
> 
> > +    const: rockchip,rk3288-crypto
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    items:
> > +      - description: clock data
> > +      - description: clock data
> > +      - description: clock crypto accelerator
> 
> > +      - description: clock dma
> 
> remove ???
> 
> > +
> > +  clock-names:
> > +    items:
> > +      - const: aclk
> > +      - const: hclk
> > +      - const: sclk
> 
> > +      - const: apb_pclk
> 
> remove ???
> 
> Similar to the rk3568 pclk_xpcs discussion ACLK_DMAC1 belongs to the
> dmac_bus_s node and should have been enabled by the DMA driver I think.
> Could you advise if this is correct or should we remove parsing/enabling
> ACLK_DMAC1 in rk3288_crypto.c in order to it easier
> porting/adding/syncing nodes for other SoC types?
> 
> Johan
> 

Hello

I came back on this as I got access to a rk3288-miqi, and crypto does not work at all.
This is due to ACLK_DMAC1 not being enabled.

While not touching it work on rk3399 and rk3328, rk3288 seems to need it.

Probably the DMA controller goes to sleep under PM.

Any idea on how to create a dependency so dma controller does not sleep ?

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-03-18 10:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-11 11:59 [PATCH v3] dt-bindings: crypto: convert rockchip-crypto to yaml Corentin Labbe
2022-02-11 13:13 ` Johan Jonker
2022-02-11 19:48   ` LABBE Corentin
2022-02-13 22:37     ` Johan Jonker
2022-02-12 16:02 ` Krzysztof Kozlowski
2022-02-15 14:07 ` Johan Jonker
2022-02-23 13:05   ` LABBE Corentin
2022-02-23 13:14     ` Krzysztof Kozlowski
2022-03-18 10:20   ` LABBE Corentin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).