Hi, On Wed, Jul 08, 2026 at 06:58:22PM +0100, Dawid Olesinski wrote: > Add a YAML device tree binding for the Rockchip second-generation (V2) > cryptographic hardware accelerator present on the RK3568 and RK3588 SoCs. > > The IP block exposes AES-ECB, AES-CBC, AES-XTS block ciphers, SHA-1, > SHA-224, SHA-256, SHA-384, SHA-512, MD5, and SM3 hash algorithms, each > with a hardware DMA engine controlled via linked-list descriptors. > > The binding covers two compatible strings: > > - rockchip,rk3568-crypto: clocks and resets are driven directly by the > non-secure CRU (accessible to Linux at EL1). > - rockchip,rk3588-crypto: clocks and resets live in SECURECRU, a > register bank sandboxed to TrustZone. Linux must request them through > the ARM SCMI firmware interface (scmi_clk / scmi_reset), as direct > MMIO access to SECURECRU from EL1 triggers a bus fault. Looking at the driver, the two implementations are compatible. The clocks/reset line source being different is not a reason for not being compatible. So the binding should look like this: compatible: oneOf: - const: rockchip,rk3568-crypto - items: - enum: - rockchip,rk3588-crypto - const: rockchip,rk3568-crypto and then in the RK3588 DTS, use compatible = "rockchip,rk3588-crypto", "rockchip,rk3568-crypto"; finally in the driver only bind against "rockchip,rk3568-crypto". The RK3588 specific binding is only added in case a difference requiring custom RK3588 quirks is found in the future. Greetings, -- Sebastian > Signed-off-by: Dawid Olesinski > --- > .../crypto/rockchip,rk3588-crypto.yaml | 75 +++++++++++++++++++ > 1 file changed, 75 insertions(+) > create mode 100644 Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml > > diff --git a/Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml b/Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml > new file mode 100644 > index 000000000000..fc09f21b0654 > --- /dev/null > +++ b/Documentation/devicetree/bindings/crypto/rockchip,rk3588-crypto.yaml > @@ -0,0 +1,75 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/crypto/rockchip,rk3588-crypto.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Rockchip cryptographic offloader > + > +maintainers: > + - Heiko Stuebner > + - Corentin Labbe > + - Dawid Olesinski > + > +properties: > + compatible: > + enum: > + - rockchip,rk3568-crypto > + - rockchip,rk3588-crypto > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + items: > + - description: Core clock for the crypto IP internal logic > + - description: AXI interconnect clock interface > + - description: AHB interface clock > + > + clock-names: > + items: > + - const: core > + - const: aclk > + - const: hclk > + > + resets: > + maxItems: 1 > + > + reset-names: > + items: > + - const: core > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - resets > + > +additionalProperties: false > + > +examples: > + - | > + #include > + #include > + #include > + > + bus { > + #address-cells = <2>; > + #size-cells = <2>; > + > + crypto@fe370000 { > + compatible = "rockchip,rk3588-crypto"; > + reg = <0x0 0xfe370000 0x0 0x2000>; > + interrupts = ; > + clocks = <&scmi_clk SCMI_CRYPTO_CORE>, <&scmi_clk SCMI_ACLK_SECURE_NS>, > + <&scmi_clk SCMI_HCLK_SECURE_NS>; > + clock-names = "core", "aclk", "hclk"; > + resets = <&scmi_reset SCMI_SRST_CRYPTO_CORE>; > + reset-names = "core"; > + }; > + }; > -- > 2.47.3 > >