mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Naveen Krishna Ch <ch.naveen@samsung.com>
To: linux-crypto@vger.kernel.org, linux-samsung-soc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, vzapolskiy@gmail.com,
	herbert@gondor.apana.org.au, naveenkrishna.ch@gmail.com,
	cpgs@samsung.com, "David S. Miller" <davem@davemloft.net>
Subject: [PATCH 2/5] crypto:s5p-sss: Add device tree and Exynos5 support
Date: Tue, 07 Jan 2014 17:21:46 +0530	[thread overview]
Message-ID: <1389095509-14357-3-git-send-email-ch.naveen@samsung.com> (raw)
In-Reply-To: <1389095509-14357-1-git-send-email-ch.naveen@samsung.com>

This patch adds device tree support along with a new
compatible string to support Exynos5 SoCs (SSS_VER_5).

Also, Documentation under devicetree/bindings added.

Signed-off-by: Naveen Krishna Ch <ch.naveen@samsung.com>
CC: Herbert Xu <herbert@gondor.apana.org.au>
CC: David S. Miller <davem@davemloft.net>
CC: Vladimir Zapolskiy <vzapolskiy@gmail.com>
TO: <linux-crypto@vger.kernel.org>
CC: <linux-samsung-soc@vger.kernel.org>
---
 .../devicetree/bindings/crypto/samsung-sss.txt     |   24 ++++++++++++
 drivers/crypto/s5p-sss.c                           |   40 ++++++++++++++++++++
 2 files changed, 64 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/crypto/samsung-sss.txt

diff --git a/Documentation/devicetree/bindings/crypto/samsung-sss.txt b/Documentation/devicetree/bindings/crypto/samsung-sss.txt
new file mode 100644
index 0000000..8871a29
--- /dev/null
+++ b/Documentation/devicetree/bindings/crypto/samsung-sss.txt
@@ -0,0 +1,24 @@
+Samsung SoC SSS crypto Module
+
+Required properties:
+
+- compatible : Should contain entries for this and backward compatible
+  SSS versions:
+  - "samsung,exynos-secss" for S5PV210.
+  - "samsung,s5p-secss" for Exynos5 series SoCs.
+  TBD: SSS module on Exynos5 SoCs supports other algorithms,
+  support for the is yet to be added in the driver.
+- reg : Offset and length of the register set for the module
+- interrupts : the interrupt-specifier for the SSS module.
+- clocks : the required gating clock for the SSS module.
+- clock-names : the gating clock name requested in the SSS driver.
+
+Example:
+	/* SSS_VER_5 */
+	sss: sss {
+		compatible = "samsung,exynos-secss";
+		reg = <0x10830000 0x10000>;
+		interrupts = <0 112 0>;
+		clocks = <&clock 471>;
+		clock-names = "secss";
+	};
diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c
index dda4551..dcb9fc1 100644
--- a/drivers/crypto/s5p-sss.c
+++ b/drivers/crypto/s5p-sss.c
@@ -22,6 +22,7 @@
 #include <linux/scatterlist.h>
 #include <linux/dma-mapping.h>
 #include <linux/io.h>
+#include <linux/of.h>
 #include <linux/crypto.h>
 #include <linux/interrupt.h>
 
@@ -173,10 +174,45 @@ struct s5p_aes_dev {
 	struct crypto_queue         queue;
 	bool                        busy;
 	spinlock_t                  lock;
+
+	/* To support SSS versions across Samsung SoCs */
+	unsigned int		    version;
 };
 
 static struct s5p_aes_dev *s5p_dev;
 
+enum sss_version {
+	SSS_VER_4,	/* SSS found on S5PV210 */
+	SSS_VER_5,	/* SSS found on Exynos5 Series SoCs */
+};
+
+static struct platform_device_id s5p_sss_ids[] = {
+	{
+		.name		= "s5p-secss",
+		.driver_data	= SSS_VER_4,
+	}, { },
+};
+MODULE_DEVICE_TABLE(platform, s5p_sss_ids);
+
+static struct of_device_id s5p_sss_dt_match[] = {
+	{ .compatible = "samsung,s5p-secss", .data = (void *)SSS_VER_4 },
+	{ .compatible = "samsung,exynos-secss", .data = (void *)SSS_VER_5 },
+	{ },
+};
+MODULE_DEVICE_TABLE(of, s5p_sss_dt_match);
+
+static inline unsigned int find_s5p_sss_version(struct platform_device *pdev)
+{
+#ifdef CONFIG_OF
+	if (pdev->dev.of_node) {
+		const struct of_device_id *match;
+		match = of_match_node(s5p_sss_dt_match, pdev->dev.of_node);
+		return (unsigned int)match->data;
+	}
+#endif
+	return platform_get_device_id(pdev)->driver_data;
+}
+
 static void s5p_set_dma_indata(struct s5p_aes_dev *dev, struct scatterlist *sg)
 {
 	SSS_WRITE(dev, FCBRDMAS, sg_dma_address(sg));
@@ -580,6 +616,8 @@ static int s5p_aes_probe(struct platform_device *pdev)
 				     resource_size(res), pdev->name))
 		return -EBUSY;
 
+	pdata->version = find_s5p_sss_version(pdev);
+
 	pdata->clk = devm_clk_get(dev, "secss");
 	if (IS_ERR(pdata->clk)) {
 		dev_err(dev, "failed to find secss clock source\n");
@@ -674,9 +712,11 @@ static int s5p_aes_remove(struct platform_device *pdev)
 static struct platform_driver s5p_aes_crypto = {
 	.probe	= s5p_aes_probe,
 	.remove	= s5p_aes_remove,
+	.id_table	= s5p_sss_ids,
 	.driver	= {
 		.owner	= THIS_MODULE,
 		.name	= "s5p-secss",
+		.of_match_table = s5p_sss_dt_match,
 	},
 };
 
-- 
1.7.9.5


  parent reply	other threads:[~2014-01-07 11:52 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-07 11:51 [PATCH 0/5] crypto:s5p-sss: Add DT " Naveen Krishna Ch
2014-01-07 11:51 ` [PATCH 1/5] crypto:s5p-sss: Use platform_get_irq() instead of _byname() Naveen Krishna Ch
2014-01-08  0:14   ` Tomasz Figa
2014-01-09  4:58   ` [PATCH 1/6 v2] " Naveen Krishna Chatradhi
2014-01-10 11:41   ` [PATCH 1/8 v3] " Naveen Krishna Chatradhi
2014-01-10 15:15     ` Tomasz Figa
2014-01-15  9:14   ` [PATCH 1/8 v4] " Naveen Krishna Chatradhi
2014-01-23 10:19     ` Naveen Krishna Ch
2014-01-29  9:19   ` [PATCH 1/9 v5] " Naveen Krishna Chatradhi
2014-02-07  5:21   ` [PATCH 1/9 v6] " Naveen Krishna Chatradhi
2014-01-07 11:51 ` Naveen Krishna Ch [this message]
2014-01-08  0:25   ` [PATCH 2/5] crypto:s5p-sss: Add device tree and Exynos5 support Tomasz Figa
2014-01-09  4:59   ` [PATCH 2/6 v2] crypto:s5p-sss: Add device tree support Naveen Krishna Chatradhi
2014-01-09 14:14     ` Tomasz Figa
2014-01-10  6:07       ` Naveen Krishna Ch
2014-01-10  6:20         ` Sachin Kamat
2014-01-10 13:44         ` Tomasz Figa
2014-01-10 11:42     ` [PATCH 2/8 v3] " Naveen Krishna Chatradhi
2014-01-15  9:14     ` [PATCH 2/8 v4] " Naveen Krishna Chatradhi
2014-01-23 10:20       ` Naveen Krishna Ch
2014-01-23 10:28       ` Sylwester Nawrocki
2014-01-23 17:41         ` Mark Rutland
2014-01-23 17:47           ` Sylwester Nawrocki
2014-01-23 17:59             ` Mark Rutland
2014-01-29  9:20     ` [PATCH 2/9 v5] " Naveen Krishna Chatradhi
2014-02-06 14:36       ` Tomasz Figa
2014-02-07  5:21     ` [PATCH 2/9 v6] " Naveen Krishna Chatradhi
2014-01-07 11:51 ` [PATCH 3/5] crypto:s5p-sss: Add support for SSS module on Exynos5 Naveen Krishna Ch
2014-01-08  0:29   ` Tomasz Figa
2014-01-09  4:59   ` [PATCH 3/6 v2] crypto:s5p-sss: Add support for SSS module on Exynos Naveen Krishna Chatradhi
2014-01-09  9:32     ` Sachin Kamat
2014-01-15  9:15     ` [PATCH 3/8 v4] " Naveen Krishna Chatradhi
2014-01-24 14:09       ` Tomasz Figa
2014-01-29  9:21     ` [PATCH 3/9 v5] " Naveen Krishna Chatradhi
2014-02-06 14:39       ` Tomasz Figa
2014-01-10 11:42   ` [PATCH 3/8 v3] " Naveen Krishna Chatradhi
2014-01-10 15:44     ` Tomasz Figa
2014-01-13 21:06       ` Vladimir Zapolskiy
2014-01-14  6:16         ` Naveen Krishna Ch
2014-01-07 11:51 ` [PATCH 4/5] crypto:s5p-sss: Exynos5 SoCs too can select SSS driver Naveen Krishna Ch
2014-01-08  0:30   ` Tomasz Figa
2014-01-09  4:27     ` Naveen Krishna Ch
2014-01-09  4:59   ` [PATCH 4/6 v2] crypto:s5p-sss: Kconfig: Let Exynos SoCs " Naveen Krishna Chatradhi
2014-01-09  9:29     ` Sachin Kamat
2014-01-15  9:15     ` [PATCH 4/8 v4] " Naveen Krishna Chatradhi
2014-01-29  9:22     ` [PATCH 4/9 v5] " Naveen Krishna Chatradhi
2014-02-06 14:41       ` Tomasz Figa
2014-01-10 11:43   ` [PATCH 4/8 v3] " Naveen Krishna Chatradhi
2014-01-10 15:47     ` Tomasz Figa
2014-02-07  5:23   ` [PATCH 4/9 v6] " Naveen Krishna Chatradhi
2014-01-07 11:51 ` [PATCH 5/5] ARM: exynos5420: add dt node for sss module Naveen Krishna Ch
2014-01-08  0:32   ` Tomasz Figa
2014-01-09  4:26     ` Naveen Krishna Ch
2014-01-09  5:00   ` [PATCH 5/6 v2] ARM: dts: " Naveen Krishna Chatradhi
2014-01-10 11:44     ` [PATCH 6/8 v3] ARM: dts: exynos5250/5420: " Naveen Krishna Chatradhi
2014-01-10 16:00       ` Tomasz Figa
2014-01-10 11:43   ` [PATCH 5/8 v3] clk:exynos-5250: Add gate clock for SSS module Naveen Krishna Chatradhi
2014-01-10 15:58     ` Tomasz Figa
2014-01-15  9:05       ` Naveen Krishna Ch
2014-01-15  9:16     ` [PATCH 5/8 v4] clk: samsung: exynos5250/5420: " Naveen Krishna Chatradhi
2014-01-23 10:20       ` Naveen Krishna Ch
2014-01-24 15:26       ` Tomasz Figa
2014-01-29  9:24     ` [PATCH 5/9 v5] clk: samsung " Naveen Krishna Chatradhi
2014-02-06 14:43       ` Tomasz Figa
2014-02-07  5:24     ` [PATCH 5/9 v6] " Naveen Krishna Chatradhi
2014-02-07  5:24   ` [PATCH 6/9 v6] ARM: dts: exynos5250/5420: add dt node for sss module Naveen Krishna Chatradhi
2014-02-13 23:28     ` Kukjin Kim
2014-02-13 23:32       ` Kukjin Kim
2014-02-14  4:13         ` Naveen Krishna Ch
2014-02-14 10:54       ` Tomasz Figa
2014-02-17  8:56         ` Naveen Krishna Ch
2014-01-10 11:41 ` [PATCH 0/8 v3] crypto:s5p-sss: Add DT and Exynos support Naveen Krishna Chatradhi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1389095509-14357-3-git-send-email-ch.naveen@samsung.com \
    --to=ch.naveen@samsung.com \
    --cc=cpgs@samsung.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=naveenkrishna.ch@gmail.com \
    --cc=vzapolskiy@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®