Skip to contentSkip to conversation

hwrng: atmel: add DT support

PATCH RESEND In review Nicolas Ferre 2 participants 6 messages Nov 20, 2014

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

v2 cover hwrng: atmel: add DT support

This is the patch series that Boris sent yesterday. I've just collected "Acked-by" tags and resend it with updated cover letter.

This series adds DT support for the TRNG (True Random Generator) block and adds missing trng nodes to at91sam9g45 dtsi files.

Herbert,
As you said that you can take this series, here is the latest vertion ready for you to pick it up. Thanks for your help.

Bye,

Boris Brezillon (4):
hwrng: atmel: use clk_prepapre_enable/_disable_unprepare
hwrng: atmel: add DT support
hwrng: atmel: Add TRNG DT binding doc
ARM: at91/dt: add trng node to at91sam9g45

 Documentation/devicetree/bindings/hwrng/atmel-trng.txt | 16 ++++++++++++++++
 arch/arm/boot/dts/at91sam9g45.dtsi                     |  7 +++++++
 drivers/char/hw_random/Kconfig                         |  2 +-
 drivers/char/hw_random/atmel-rng.c                     | 15 +++++++++++----
 4 files changed, 35 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/hwrng/atmel-trng.txt
Signature · 1 line
2.1.3
#1 lore raw

PATCH RESEND v2 1/4 hwrng: atmel: use clk_prepapre_enable/_disable_unprepare

From: Boris Brezillon <[email protected]>

Use clk_prepare_enable/_disable_unprepare instead of clk_enable/disable to work properly with the CCF.

---
 drivers/char/hw_random/atmel-rng.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/char/hw_random/atmel-rng.c +4 -4
index 851bc7e20ad2..644ec4882206 100644
@@ -67,7 +67,7 @@ static int atmel_trng_probe(struct platform_device *pdev)
 	if (IS_ERR(trng->clk))
 		return PTR_ERR(trng->clk);
 
-	ret = clk_enable(trng->clk);
+	ret = clk_prepare_enable(trng->clk);
 	if (ret)
 		return ret;
 
@@ -95,7 +95,7 @@ static int atmel_trng_remove(struct platform_device *pdev)
 	hwrng_unregister(&trng->rng);
 
 	writel(TRNG_KEY, trng->base + TRNG_CR);
-	clk_disable(trng->clk);
+	clk_disable_unprepare(trng->clk);
 
 	return 0;
 }
@@ -105,7 +105,7 @@ static int atmel_trng_suspend(struct device *dev)
 {
 	struct atmel_trng *trng = dev_get_drvdata(dev);
 
-	clk_disable(trng->clk);
+	clk_disable_unprepare(trng->clk);
 
 	return 0;
 }
@@ -114,7 +114,7 @@ static int atmel_trng_resume(struct device *dev)
 {
 	struct atmel_trng *trng = dev_get_drvdata(dev);
 
-	return clk_enable(trng->clk);
+	return clk_prepare_enable(trng->clk);
 }
 
 static const struct dev_pm_ops atmel_trng_pm_ops = {
Signature · 1 line
2.1.3
#2 lore raw

PATCH RESEND v2 2/4 hwrng: atmel: add DT support

In reply to Nicolas Ferre

From: Boris Brezillon <[email protected]>

Add DT support.

Make the driver depend on CONFIG_OF as at91sam9g45 was the only SoC making use of the TRNG block and this SoC is now fully migrated to DT.

---
 drivers/char/hw_random/Kconfig     | 2 +-
 drivers/char/hw_random/atmel-rng.c | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)
drivers/char/hw_random/Kconfig +1 -1
index 91a04ae8003c..de57b38809c7 100644
@@ -64,7 +64,7 @@ config HW_RANDOM_AMD
 
 config HW_RANDOM_ATMEL
 	tristate "Atmel Random Number Generator support"
-	depends on ARCH_AT91 && HAVE_CLK
+	depends on ARCH_AT91 && HAVE_CLK && OF
 	default HW_RANDOM
 	---help---
 	  This driver provides kernel-side support for the Random Number
drivers/char/hw_random/atmel-rng.c +7 -0
index 644ec4882206..0bb0b2120a63 100644
@@ -123,6 +123,12 @@ static const struct dev_pm_ops atmel_trng_pm_ops = {
 };
 #endif /* CONFIG_PM */
 
+static const struct of_device_id atmel_trng_dt_ids[] = {
+	{ .compatible = "atmel,at91sam9g45-trng" },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, atmel_trng_dt_ids);
+
 static struct platform_driver atmel_trng_driver = {
 	.probe		= atmel_trng_probe,
 	.remove		= atmel_trng_remove,
@@ -132,6 +138,7 @@ static struct platform_driver atmel_trng_driver = {
 #ifdef CONFIG_PM
 		.pm	= &atmel_trng_pm_ops,
 #endif /* CONFIG_PM */
+		.of_match_table = atmel_trng_dt_ids,
 	},
 };
 
Signature · 1 line
2.1.3
#3 lore raw

PATCH RESEND v2 3/4 hwrng: atmel: Add TRNG DT binding doc

In reply to Nicolas Ferre

From: Boris Brezillon <[email protected]>

Document DT bindings of Atmel's TRNG (True Random Number Generator) IP.

---
 Documentation/devicetree/bindings/hwrng/atmel-trng.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwrng/atmel-trng.txt
Documentation/devicetree/bindings/hwrng/atmel-trng.txt new file +16 -0
new file mode 100644
index 000000000000..4ac5aaa2d024
@@ -0,0 +1,16 @@
+Atmel TRNG (True Random Number Generator) block
+
+Required properties:
+- compatible : Should be "atmel,at91sam9g45-trng"
+- reg : Offset and length of the register set of this block
+- interrupts : the interrupt number for the TRNG block
+- clocks: should contain the TRNG clk source
+
+Example:
+
+trng at fffcc000 {
+	compatible = "atmel,at91sam9g45-trng";
+	reg = <0xfffcc000 0x4000>;
+	interrupts = <6 IRQ_TYPE_LEVEL_HIGH 0>;
+	clocks = <&trng_clk>;
+};
Signature · 1 line
2.1.3
#4 lore raw

PATCH RESEND v2 4/4 ARM: at91/dt: add trng node to at91sam9g45

In reply to Nicolas Ferre

From: Boris Brezillon <[email protected]>

Add a DT node for the TRNG (True Random Number Generator) block.

Keep this block enabled as it does not depend on any external connection, and thus should be available on all boards.

---
 arch/arm/boot/dts/at91sam9g45.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)
arch/arm/boot/dts/at91sam9g45.dtsi +7 -0
index d3f65130a1f8..6c0637a4bda5 100644
@@ -940,6 +940,13 @@
 				status = "disabled";
 			};
 
+			trng at fffcc000 {
+				compatible = "atmel,at91sam9g45-trng";
+				reg = <0xfffcc000 0x4000>;
+				interrupts = <6 IRQ_TYPE_LEVEL_HIGH 0>;
+				clocks = <&trng_clk>;
+			};
+
 			i2c0: i2c at fff84000 {
 				compatible = "atmel,at91sam9g10-i2c";
 				reg = <0xfff84000 0x100>;
Signature · 1 line
2.1.3
maintainer
#5 lore raw
In reply to Nicolas Ferre
Quoted 10 lines · Nicolas Ferre

This is the patch series that Boris sent yesterday. I've just collected "Acked-by" tags and resend it with updated cover letter.

This series adds DT support for the TRNG (True Random Generator) block and adds missing trng nodes to at91sam9g45 dtsi files.

Herbert,
As you said that you can take this series, here is the latest vertion ready for you to pick it up. Thanks for your help.

Quoted 7 lines

Bye,

Boris Brezillon (4):
hwrng: atmel: use clk_prepapre_enable/_disable_unprepare
hwrng: atmel: add DT support
hwrng: atmel: Add TRNG DT binding doc
ARM: at91/dt: add trng node to at91sam9g45

All applied. Thanks!

Signature · 3 lines
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt