Message ID | 1341325365-21393-13-git-send-email-andrew@lunn.ch (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Hello Andrew, On Tuesday 03 July 2012 16:22:45 Andrew Lunn wrote: > Based on work by Michael Waller and Jason Cooper. > > Added support for getting the interrupt number from DT. > > Signed-off-by: Andrew Lunn <andrew@lunn.ch> > --- > .../devicetree/bindings/crypto/mv_cesa.txt | 18 ++++++++++++ > drivers/crypto/mv_cesa.c | 31 +++++++++++++++++--- > 2 files changed, 45 insertions(+), 4 deletions(-) > create mode 100644 Documentation/devicetree/bindings/crypto/mv_cesa.txt > > diff --git a/Documentation/devicetree/bindings/crypto/mv_cesa.txt b/Documentation/devicetree/bindings/crypto/mv_cesa.txt > new file mode 100644 > index 0000000..f191122 > --- /dev/null > +++ b/Documentation/devicetree/bindings/crypto/mv_cesa.txt > @@ -0,0 +1,18 @@ > +Marvell Cryptographic Engines And Security Accelerator > + > +Required properties: > +- compatible : should be "mrvl,orion-crypto" You mention "mvrl" here, but the rest of your series uses "marvell", and this is also what you use as a match table later in the driver, this looks like a left-over from your previous submission. > +- reg : base physical address of the engine and length of memory mapped > + region, followed by base physical address of sram and its memory > + length > +- interrupts : interrupt number > + > +Examples: > + > +crypto@f1030000 { > + compatible = "mrvl,orion-crypto"; > + reg = <0xf1030000 0x10000 > + 0xf5000000 0x800>; /* sram */ > + interrupts = <22>; > +}; > + > diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c > index 1cc6b3f..964c4c5 100644 > --- a/drivers/crypto/mv_cesa.c > +++ b/drivers/crypto/mv_cesa.c > @@ -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" > > @@ -1005,7 +1008,11 @@ static int mv_probe(struct platform_device *pdev) > return -EEXIST; > } > > - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs"); > + if (pdev->dev.of_node) > + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, > + "regs"); > + else > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); If you add a reg-names property, which respects the ordering of the reg property, you don't need this. > if (!res) > return -ENXIO; > > @@ -1021,7 +1028,11 @@ static int mv_probe(struct platform_device *pdev) > goto err; > } > > - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sram"); > + if (pdev->dev.of_node) > + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > + else > + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, > + "sram"); ditto > if (!res) { > ret = -ENXIO; > goto err_unmap_reg; > @@ -1034,7 +1045,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; > @@ -1137,12 +1151,21 @@ static int mv_remove(struct platform_device *pdev) > return 0; > } > > +#ifdef CONFIG_OF > +static const struct of_device_id mv_cesa_of_match_table[] __devinitdata = { > + { .compatible = "marvell,orion-crypto", }, > + {}, > +}; > +MODULE_DEVICE_TABLE(of, mv_cesa_of_match_table); > +#endif > + > 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"); > -- > 1.7.10 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
On Tue, Jul 03, 2012 at 05:50:02PM +0200, Florian Fainelli wrote: > Hello Andrew, > > On Tuesday 03 July 2012 16:22:45 Andrew Lunn wrote: > > Based on work by Michael Waller and Jason Cooper. > > > > Added support for getting the interrupt number from DT. > > > > Signed-off-by: Andrew Lunn <andrew@lunn.ch> > > --- > > .../devicetree/bindings/crypto/mv_cesa.txt | 18 ++++++++++++ > > drivers/crypto/mv_cesa.c | 31 > +++++++++++++++++--- > > 2 files changed, 45 insertions(+), 4 deletions(-) > > create mode 100644 Documentation/devicetree/bindings/crypto/mv_cesa.txt > > > > diff --git a/Documentation/devicetree/bindings/crypto/mv_cesa.txt > b/Documentation/devicetree/bindings/crypto/mv_cesa.txt > > new file mode 100644 > > index 0000000..f191122 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/crypto/mv_cesa.txt > > @@ -0,0 +1,18 @@ > > +Marvell Cryptographic Engines And Security Accelerator > > + > > +Required properties: > > +- compatible : should be "mrvl,orion-crypto" > > You mention "mvrl" here, but the rest of your series uses "marvell", and this > is also what you use as a match table later in the driver, this looks like a > left-over from your previous submission. Correct. I will fix this. > > > +- reg : base physical address of the engine and length of memory mapped > > + region, followed by base physical address of sram and its memory > > + length > > +- interrupts : interrupt number > > + > > +Examples: > > + > > +crypto@f1030000 { > > + compatible = "mrvl,orion-crypto"; > > + reg = <0xf1030000 0x10000 > > + 0xf5000000 0x800>; /* sram */ > > + interrupts = <22>; > > +}; > > + > > diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c > > index 1cc6b3f..964c4c5 100644 > > --- a/drivers/crypto/mv_cesa.c > > +++ b/drivers/crypto/mv_cesa.c > > @@ -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" > > > > @@ -1005,7 +1008,11 @@ static int mv_probe(struct platform_device *pdev) > > return -EEXIST; > > } > > > > - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs"); > > + if (pdev->dev.of_node) > > + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, > > + "regs"); > > + else > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > > If you add a reg-names property, which respects the ordering of the reg > property, you don't need this. Ah, thanks for the tip. Andrew ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
diff --git a/Documentation/devicetree/bindings/crypto/mv_cesa.txt b/Documentation/devicetree/bindings/crypto/mv_cesa.txt new file mode 100644 index 0000000..f191122 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/mv_cesa.txt @@ -0,0 +1,18 @@ +Marvell Cryptographic Engines And Security Accelerator + +Required properties: +- compatible : should be "mrvl,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 +- interrupts : interrupt number + +Examples: + +crypto@f1030000 { + compatible = "mrvl,orion-crypto"; + reg = <0xf1030000 0x10000 + 0xf5000000 0x800>; /* sram */ + interrupts = <22>; +}; + diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c index 1cc6b3f..964c4c5 100644 --- a/drivers/crypto/mv_cesa.c +++ b/drivers/crypto/mv_cesa.c @@ -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" @@ -1005,7 +1008,11 @@ static int mv_probe(struct platform_device *pdev) return -EEXIST; } - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "regs"); + if (pdev->dev.of_node) + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, + "regs"); + else + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -ENXIO; @@ -1021,7 +1028,11 @@ static int mv_probe(struct platform_device *pdev) goto err; } - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sram"); + if (pdev->dev.of_node) + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); + else + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, + "sram"); if (!res) { ret = -ENXIO; goto err_unmap_reg; @@ -1034,7 +1045,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; @@ -1137,12 +1151,21 @@ static int mv_remove(struct platform_device *pdev) return 0; } +#ifdef CONFIG_OF +static const struct of_device_id mv_cesa_of_match_table[] __devinitdata = { + { .compatible = "marvell,orion-crypto", }, + {}, +}; +MODULE_DEVICE_TABLE(of, mv_cesa_of_match_table); +#endif + 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");
Based on work by Michael Waller and Jason Cooper. Added support for getting the interrupt number from DT. Signed-off-by: Andrew Lunn <andrew@lunn.ch> --- .../devicetree/bindings/crypto/mv_cesa.txt | 18 ++++++++++++ drivers/crypto/mv_cesa.c | 31 +++++++++++++++++--- 2 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 Documentation/devicetree/bindings/crypto/mv_cesa.txt