Crypto: CESA: Add support for DT based instantiation.
Subsystems (4)
PATCH 1/1 Crypto: CESA: Add support for DT based instantiation.
Based on work by Michael Waller and Jason Cooper.
Added support for getting the interrupt number and address of SRAM from DT.
--- .../devicetree/bindings/crypto/mv_cesa.txt | 20 ++++++++++++++++++++ arch/arm/boot/dts/kirkwood.dtsi | 12 +++++++++++- arch/arm/mach-kirkwood/board-dt.c | 2 +- drivers/crypto/mv_cesa.c | 17 +++++++++++++++-- 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 Documentation/devicetree/bindings/crypto/mv_cesa.txt
Documentation/devicetree/bindings/crypto/mv_cesa.txt new file +20 -0
@@ -0,0 +1,20 @@ +Marvell Cryptographic Engines And Security Accelerator + +Required properties: +- compatible : should be "marvell,orion-crypto" +- reg : base physical address of the engine and length of memory mapped + region, followed by base physical address of sram and its memory + length +- reg-names : "regs" , "sram"; +- interrupts : interrupt number + +Examples: + + crypto at 30000 { + compatible = "marvell,orion-crypto"; + reg = <0x30000 0x10000>, + <0x4000000 0x800>; + reg-names = "regs" , "sram"; + interrupts = <22>; + status = "okay"; + };
arch/arm/boot/dts/kirkwood.dtsi +11 -1
@@ -14,7 +14,8 @@ ocp at f1000000 { compatible = "simple-bus"; - ranges = <0 0xf1000000 0x4000000>; + ranges = <0x00000000 0xf1000000 0x4000000 + 0xf5000000 0xf5000000 0x0000400>; #address-cells = <1>; #size-cells = <1>;
@@ -113,5 +114,14 @@ clock-frequency = <100000>; status = "disabled"; }; + + crypto at 30000 { + compatible = "marvell,orion-crypto"; + reg = <0x30000 0x10000>, + <0xf5000000 0x800>; + reg-names = "regs", "sram"; + interrupts = <22>; + status = "okay"; + }; }; };
arch/arm/mach-kirkwood/board-dt.c +1 -1
@@ -34,6 +34,7 @@ struct of_dev_auxdata kirkwood_auxdata_lookup[] __initdata = {OF_DEV_AUXDATA ("marvell,orion-sata" ,0xf1080000 ,"sata_mv.0" ,NULL ),OF_DEV_AUXDATA ("marvell,orion-nand" ,0xf4000000 ,"orion_nand" ,NULL ),OF_DEV_AUXDATA ("marvell,orion-ehci" ,0xf1050000 ,"orion-ehci.0" ,NULL ), + OF_DEV_AUXDATA("marvell,orion-crypto", 0xf1030000, "mv_crypto", NULL), {}, };
@@ -61,7 +62,6 @@ static void __init kirkwood_dt_init(void)/* internal devices that every board has */ kirkwood_xor0_init ();kirkwood_xor1_init (); -kirkwood_crypto_init ();#ifdef CONFIG_KEXEC kexec_reinit = kirkwood_enable_pcie;
drivers/crypto/mv_cesa.c +15 -2
@@ -19,6 +19,9 @@#include <linux/clk.h> #include <crypto/internal/hash.h> #include <crypto/sha.h> +#include <linux/of.h> +#include <linux/of_platform.h> +#include <linux/of_irq.h> #include "mv_cesa.h"
@@ -1062,7 +1065,10 @@ static int mv_probe(struct platform_device *pdev) goto err_unmap_reg; } - irq =platform_get_irq (pdev,0 ); +if (pdev->dev.of_node) + irq =irq_of_parse_and_map (pdev->dev.of_node,0 ); +else + irq =platform_get_irq (pdev,0 );if (irq <0 || irq ==NO_IRQ ) { ret = irq; goto err_unmap_sram;
@@ -1170,12 +1176,19 @@ static int mv_remove(struct platform_device *pdev)return 0 ; } +static const struct of_device_id mv_cesa_of_match_table[] = { + { .compatible ="marvell,orion-crypto" , }, + {} +}; +MODULE_DEVICE_TABLE (of, mv_cesa_of_match_table); +static struct platform_driver marvell_crypto = { .probe = mv_probe, - .remove = mv_remove, + .remove =__devexit_p (mv_remove), .driver = { .owner =THIS_MODULE , .name ="mv_crypto" , + .of_match_table =of_match_ptr (mv_cesa_of_match_table), }, };MODULE_ALIAS ("platform:mv_crypto" );
Signature · 1 line
1.7.10.4
PATCH 1/1 Crypto: CESA: Add support for DT based instantiation.
Quoted 1 line · Andrew Lunn
Based on work by Michael Waller and Jason Cooper.
nit. "Michael Walle"
If nothing significant crops up in the next few days, I'll fix it when I pull it in.
thx,
Jason.
PATCH 1/1 Crypto: CESA: Add support for DT based instantiation.
In reply to Andrew LunnQuoted 2 lines · Andrew Lunn
Added support for getting the interrupt number and address of SRAM from DT.
on DT-enabled Dove.
PATCH 1/1 Crypto: CESA: Add support for DT based instantiation.
In reply to Andrew LunnQuoted 6 lines · Andrew Lunn
Based on work by Michael Waller and Jason Cooper.
Added support for getting the interrupt number and address of SRAM from DT.
Signed-off-by Andrew Lunn <[email protected]>
Applied to:
git://git.infradead.org/users/jcooper/linux.git kirkwood/dt
thx,
Jason.