crypto: mxs - Add Freescale MXS DCP driver
Add support for the MXS DCP block. The driver currently supports SHA-1/SHA-256 hashing and AES-128 CBC/ECB modes. The non-standard CRC32 is not yet supported. Signed-off-by: Marek Vasut <marex@denx.de> Cc: David S. Miller <davem@davemloft.net> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Shawn Guo <shawn.guo@linaro.org> Cc: devicetree@vger.kernel.org Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
c493c04403
commit
15b59e7c37
4 changed files with 1135 additions and 0 deletions
17
Documentation/devicetree/bindings/crypto/fsl-dcp.txt
Normal file
17
Documentation/devicetree/bindings/crypto/fsl-dcp.txt
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
Freescale DCP (Data Co-Processor) found on i.MX23/i.MX28 .
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible : Should be "fsl,<soc>-dcp"
|
||||||
|
- reg : Should contain MXS DCP registers location and length
|
||||||
|
- interrupts : Should contain MXS DCP interrupt numbers, VMI IRQ and DCP IRQ
|
||||||
|
must be supplied, optionally Secure IRQ can be present, but
|
||||||
|
is currently not implemented and not used.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
dcp@80028000 {
|
||||||
|
compatible = "fsl,imx28-dcp", "fsl,imx23-dcp";
|
||||||
|
reg = <0x80028000 0x2000>;
|
||||||
|
interrupts = <52 53>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
|
@ -401,4 +401,21 @@ if CRYPTO_DEV_CCP
|
||||||
source "drivers/crypto/ccp/Kconfig"
|
source "drivers/crypto/ccp/Kconfig"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
config CRYPTO_DEV_MXS_DCP
|
||||||
|
tristate "Support for Freescale MXS DCP"
|
||||||
|
depends on ARCH_MXS
|
||||||
|
select CRYPTO_SHA1
|
||||||
|
select CRYPTO_SHA256
|
||||||
|
select CRYPTO_CBC
|
||||||
|
select CRYPTO_ECB
|
||||||
|
select CRYPTO_AES
|
||||||
|
select CRYPTO_BLKCIPHER
|
||||||
|
select CRYPTO_ALGAPI
|
||||||
|
help
|
||||||
|
The Freescale i.MX23/i.MX28 has SHA1/SHA256 and AES128 CBC/ECB
|
||||||
|
co-processor on the die.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the module
|
||||||
|
will be called mxs-dcp.
|
||||||
|
|
||||||
endif # CRYPTO_HW
|
endif # CRYPTO_HW
|
||||||
|
|
|
@ -22,3 +22,4 @@ obj-$(CONFIG_CRYPTO_DEV_ATMEL_AES) += atmel-aes.o
|
||||||
obj-$(CONFIG_CRYPTO_DEV_ATMEL_TDES) += atmel-tdes.o
|
obj-$(CONFIG_CRYPTO_DEV_ATMEL_TDES) += atmel-tdes.o
|
||||||
obj-$(CONFIG_CRYPTO_DEV_ATMEL_SHA) += atmel-sha.o
|
obj-$(CONFIG_CRYPTO_DEV_ATMEL_SHA) += atmel-sha.o
|
||||||
obj-$(CONFIG_CRYPTO_DEV_CCP) += ccp/
|
obj-$(CONFIG_CRYPTO_DEV_CCP) += ccp/
|
||||||
|
obj-$(CONFIG_CRYPTO_DEV_MXS_DCP) += mxs-dcp.o
|
||||||
|
|
1100
drivers/crypto/mxs-dcp.c
Normal file
1100
drivers/crypto/mxs-dcp.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue