996f8a9654
The Allwinner H616 has a crypto engine very similar to the one in the H6, although all addresses in the DMA descriptors are shifted by 2 bits, to accommodate for the larger physical address space. That makes it incompatible to the H6 variant, and thus requires a new compatible string. Clock wise it relies on the internal oscillator for the TRNG, so needs all four possible clocks specified. Add the compatible string to the list of recognised names, and add the H616 to list of devices requiring all four clocks. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Acked-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
104 lines
2.0 KiB
YAML
104 lines
2.0 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/crypto/allwinner,sun8i-ce.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Allwinner Crypto Engine driver
|
|
|
|
maintainers:
|
|
- Corentin Labbe <clabbe.montjoie@gmail.com>
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun8i-h3-crypto
|
|
- allwinner,sun8i-r40-crypto
|
|
- allwinner,sun20i-d1-crypto
|
|
- allwinner,sun50i-a64-crypto
|
|
- allwinner,sun50i-h5-crypto
|
|
- allwinner,sun50i-h6-crypto
|
|
- allwinner,sun50i-h616-crypto
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
items:
|
|
- description: Bus clock
|
|
- description: Module clock
|
|
- description: MBus clock
|
|
- description: TRNG clock (RC oscillator)
|
|
minItems: 2
|
|
|
|
clock-names:
|
|
items:
|
|
- const: bus
|
|
- const: mod
|
|
- const: ram
|
|
- const: trng
|
|
minItems: 2
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
if:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- allwinner,sun20i-d1-crypto
|
|
- allwinner,sun50i-h616-crypto
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 4
|
|
clock-names:
|
|
minItems: 4
|
|
else:
|
|
if:
|
|
properties:
|
|
compatible:
|
|
const: allwinner,sun50i-h6-crypto
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 3
|
|
maxItems: 3
|
|
clock-names:
|
|
minItems: 3
|
|
maxItems: 3
|
|
else:
|
|
properties:
|
|
clocks:
|
|
maxItems: 2
|
|
clock-names:
|
|
maxItems: 2
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- resets
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/sun50i-a64-ccu.h>
|
|
#include <dt-bindings/reset/sun50i-a64-ccu.h>
|
|
|
|
crypto: crypto@1c15000 {
|
|
compatible = "allwinner,sun8i-h3-crypto";
|
|
reg = <0x01c15000 0x1000>;
|
|
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
|
|
clock-names = "bus", "mod";
|
|
resets = <&ccu RST_BUS_CE>;
|
|
};
|