From nobody Thu Dec 18 08:37:59 2025 Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com [209.85.210.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D7C41741CE for ; Tue, 18 Jun 2024 20:45:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743527; cv=none; b=ObspDOEShjC6GmHJKsBVlnvzPMHmCEkjREyqbwX5/wrKLB/LIRNefk+jzkEnnP/0X6izrr8IcVdTBycwIj7ImtmbB9tfwCOQfqhvTz9UxR4s6k8kOp8QhPG/z/1sO463ZolRnAujmDVbaj17nzC4k/yNTsP2+ExK0GqJoPaEIoI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743527; c=relaxed/simple; bh=jCr2PSyk+QzA3n1KIeezmKnsRWEIq76Xr/2/3wqo+Ho=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mTybADRZ67gj08CejrD1tSV0qJt7gEspg2L1bpXvoJeuPvNaBdx017A5IC2QKd4oGY1F7ej2FrmEHWY4ycceRVQDdn0LhtnFhfpMaLecIHHkenOERcNzXPZnVrn8MTAjCXerqTVgmiaPdbIFXzSmOdx1Tohxc6Qh3dGlBpCfafI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=SkwesoYg; arc=none smtp.client-ip=209.85.210.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="SkwesoYg" Received: by mail-ot1-f48.google.com with SMTP id 46e09a7af769-6f361af4cb6so1985864a34.3 for ; Tue, 18 Jun 2024 13:45:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743525; x=1719348325; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AlbvvMZMqGqL9+iJm7HJUKaP51agxlDWROSsJ57jie8=; b=SkwesoYg7VwJrx3rP2Davq8TCBbyBLRbJ7Fgaac4j/4oN9bzcc6stGTcoxzkuJZu8y lLrw1vhOvW2hhSTG66fwsyk6jG206ziommkub0nqko6V2bN6Gf8ekxJi2rO/Ko7cQUa8 eHb+TyTtQ6dNg95qrA1A79LoVXsP542WTD56cOqoJWCAFsfueRD62b879GkDE7iM4URQ tN4syU3DJQGUCjKzbIuXn3lhDoynNPxwfj+qxUCWDNPVweHsvhZJbmMFpO/2sc//Klc2 ccbKrc5rXrUOShPnoK1+y6g8FnptpkHppq3PulPeH0wsN/uBa22NklYFfvvRv41U8YKC CHrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743525; x=1719348325; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AlbvvMZMqGqL9+iJm7HJUKaP51agxlDWROSsJ57jie8=; b=WZ75EtLnVvQKihK0G7oVKNY0eKKdXSUtudgg9HDmW3byMaLY1mK4VQy7XCEzWLy6Vh QQmLiG7GJs2sJaGChHm6CMbIxlcSKIt8Ct6ELxpWOyQg5uxw22+AvksZE+Yvjjd5W0yM nr2aojgFk+iKbBP46Nlxx/gxH8w4OJ+ZJhR19iH9s5GbOVrncGNwfKeDL6mnEnE0/JTy Dd3zUXAeNsahOc77OsgbHkjk9ARlx84KDthWkfbAHQ9BrgyP2K75WgixanYbFDJUfSdF QRCxCalnFRZYdRz5QTO/gD8znMVpH1TbI5vYEcZMrIwgbJmLsnwsPGd23tWLlFL2t4GP f7Ig== X-Forwarded-Encrypted: i=1; AJvYcCUOLKliNF7Vz4W0T4TRhdQ49ATavGx1hNPMlc5EaOcEx3iM0AFa6MGqKke9umyf+gndZN28v4v38NODieusYlh09ldCWkKten1ljXaY X-Gm-Message-State: AOJu0YzM0jdc3tT75WD9PbpNhZJGoTMkuICeyzqBjBa8tQeXqv3vDdwb pidPe5BFZzyaRXPFycT8HE3rmlvaQYpmM50qQnOfxBXRfhuPix0Hrxht6G2jGMQ= X-Google-Smtp-Source: AGHT+IHtQ4jPiGwmE6Fqz4f+T054gfg7HjueTuRrzz7pHpWmzy4tU4cMlClLNNSm5wif6dmg4G42uA== X-Received: by 2002:a9d:7841:0:b0:6fe:858a:8d4a with SMTP id 46e09a7af769-700771e7314mr874352a34.35.1718743525201; Tue, 18 Jun 2024 13:45:25 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6fb5afab892sm1937125a34.7.2024.06.18.13.45.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:24 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/7] dt-bindings: rng: Add Exynos850 support to exynos-trng Date: Tue, 18 Jun 2024 15:45:17 -0500 Message-Id: <20240618204523.9563-2-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The TRNG block in Exynos850 is pretty much the same as in Exynos5250, but there are two clocks that has to be controlled to make it work: 1. Functional (operating) clock: called ACLK in Exynos850, the same as "secss" clock in Exynos5250 2. Interface (bus) clock: called PCLK in Exynos850. It has to be enabled in order to access TRNG registers Document Exynos850 compatible and the related clock changes. Signed-off-by: Sam Protsenko Reviewed-by: Krzysztof Kozlowski --- Changes in v2: - Removed example added in v1 .../bindings/rng/samsung,exynos5250-trng.yaml | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.= yaml b/Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml index 765d9f9edd6e..1a71935d8a19 100644 --- a/Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml +++ b/Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml @@ -12,14 +12,17 @@ maintainers: =20 properties: compatible: - const: samsung,exynos5250-trng + enum: + - samsung,exynos5250-trng + - samsung,exynos850-trng =20 clocks: - maxItems: 1 + minItems: 1 + maxItems: 2 =20 clock-names: - items: - - const: secss + minItems: 1 + maxItems: 2 =20 reg: maxItems: 1 @@ -30,6 +33,35 @@ required: - clock-names - reg =20 +allOf: + - if: + properties: + compatible: + contains: + const: samsung,exynos850-trng + + then: + properties: + clocks: + items: + - description: SSS (Security Sub System) operating clock + - description: SSS (Security Sub System) bus clock + + clock-names: + items: + - const: secss + - const: pclk + + else: + properties: + clocks: + items: + - description: SSS (Security Sub System) operating clock + + clock-names: + items: + - const: secss + additionalProperties: false =20 examples: --=20 2.39.2 From nobody Thu Dec 18 08:37:59 2025 Received: from mail-oo1-f42.google.com (mail-oo1-f42.google.com [209.85.161.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE7DB1741F1 for ; Tue, 18 Jun 2024 20:45:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743528; cv=none; b=flHuvj4bksT34gQI7Iu2pQ91I+37TC3pn0UQMwU3IavuadDrxSR7AiapAr9NeTn2jX6D7yl/rQJqbYBui0PK/HKOZvUQCvjeyatsUnOGVX9dXNt9hvYt0yjxpOUasvRNbBMJAb/K/UNSs6XLN6SFTYIk/DzRDsZMaaeIcJC1cjQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743528; c=relaxed/simple; bh=5evvsN4at6BMrRF8OVlHRN4HocF8R+R/ozNBsMGh+IY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=o9u0OaKrQ7/UENDj9nOhuBx9yvqzD1pM3ds5ycMcpdFF4o6TuQDCvzGzrNKTtockLBvdNFmVe6dGI4BMBNWIke1mwvoDYH73lqWJEaTQ24zt1I/g8EogThQfZRe1xZmR3GwYHXOnLVmMsPgfPuI15Q+qwz7rIAeLlRiySNbhMA0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=P+u5z204; arc=none smtp.client-ip=209.85.161.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="P+u5z204" Received: by mail-oo1-f42.google.com with SMTP id 006d021491bc7-5bdbbc37664so2842185eaf.2 for ; Tue, 18 Jun 2024 13:45:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743526; x=1719348326; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/1x8MC9aiceHsiOgibtWuSN+CH2pLi0RJoi6RQX0En0=; b=P+u5z204Qbm0CSzbkkRSSWm6QgaoJEiCADHtZd2mJpGxmAZbnuOn8GQl4y+vhV0l1M Rj/MC9pP0HKEWkM9KS7cl/2TVQOtMVglIb/LasirBhpglfUZSqSy5OlP5Dj1uULziVkq OVVygyqtxjnBwDJCOdpMb8r1WSO64izFnXGuOeQMXo1Z4OWOOHj1DmqVkjYaqydG055o 8iGVCYECz4n2BaxdqPCtkNa49Jh7LKY9Trkpzq+7B2P47gMbCQhf71gjvd2ZWv63dwSv sOjtDnrl8PO2Bs32WxwY9OA0PhAo3cqxGdIWI19U1K6XubI7jthFN9YcIWMsSsmRGryR E0ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743526; x=1719348326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/1x8MC9aiceHsiOgibtWuSN+CH2pLi0RJoi6RQX0En0=; b=ITMuC8tK8goj4p25nNt4aprFtSp7mksRt3n3+LdEOnsqTnrQuQ+8mwDPl9iJwmvove HqXPOjfQ45I3lVnf+91VsoMplvrKUi6+zP5va2XhSfmyuhM5qPLyTiieRZpG40YRHz7K zcit+uzFX79PZ54F4DvbCLi1kpRMA6PASsRf7virTg4gCluDFvwGtPihKYEHl7ol921x 7XKqNh02BoM9LSvJ3OZWZy2fFHprKjTP1iX6b/CQuDXKuDMRYUy2sQrztbaYTzqGbUvt DxSin4OtYFS1ZJgOmSMmoj3alG4EVrEVXh87SlY9WCQWc9QQXZKhfdpjkVly8LicWyvU GcPA== X-Forwarded-Encrypted: i=1; AJvYcCX0A15DuV/8BBVeAw/DDhsKVrZMwfNJCtQVWVmnnmNyQvySv0p3eF4T68iYisewWoq9HL0C/V01mQQsBVcl1Ny5iTAD8jm/m0Wz+pMg X-Gm-Message-State: AOJu0Yz/oVLfVRQEHJJIfs3wY+/If+g2U/mbc9tECIpdsrStAAyo49vM YqfVJ4lMfSvfSapwMKr4Z4VkRugXhPybejaj8ONbBMMBpaxIh88GFpZ1P/CH/84= X-Google-Smtp-Source: AGHT+IHoIqS42kE6h2gsiMCU58NN0xvPF/vSFb4SrpjHZNqEyhPtxGPcglOULs7EmkuqnqSorllKtg== X-Received: by 2002:a4a:240f:0:b0:5c1:a296:66b5 with SMTP id 006d021491bc7-5c1adc0715emr917189eaf.9.1718743525910; Tue, 18 Jun 2024 13:45:25 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-5bd5f2a1801sm1432107eaf.37.2024.06.18.13.45.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:25 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/7] hwrng: exynos: Improve coding style Date: Tue, 18 Jun 2024 15:45:18 -0500 Message-Id: <20240618204523.9563-3-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Fix obvious style issues. Some of those were found with checkpatch, and some just contradict the kernel coding style guide. No functional change. Signed-off-by: Sam Protsenko Reviewed-by: Krzysztof Kozlowski Acked-by: =C5=81ukasz Stelmach --- Changes in v2: - Added Krzysztof's R-b tag drivers/char/hw_random/exynos-trng.c | 61 +++++++++++++--------------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/drivers/char/hw_random/exynos-trng.c b/drivers/char/hw_random/= exynos-trng.c index 0ed5d22fe667..88a5088ed34d 100644 --- a/drivers/char/hw_random/exynos-trng.c +++ b/drivers/char/hw_random/exynos-trng.c @@ -23,45 +23,41 @@ #include #include =20 -#define EXYNOS_TRNG_CLKDIV (0x0) - -#define EXYNOS_TRNG_CTRL (0x20) -#define EXYNOS_TRNG_CTRL_RNGEN BIT(31) - -#define EXYNOS_TRNG_POST_CTRL (0x30) -#define EXYNOS_TRNG_ONLINE_CTRL (0x40) -#define EXYNOS_TRNG_ONLINE_STAT (0x44) -#define EXYNOS_TRNG_ONLINE_MAXCHI2 (0x48) -#define EXYNOS_TRNG_FIFO_CTRL (0x50) -#define EXYNOS_TRNG_FIFO_0 (0x80) -#define EXYNOS_TRNG_FIFO_1 (0x84) -#define EXYNOS_TRNG_FIFO_2 (0x88) -#define EXYNOS_TRNG_FIFO_3 (0x8c) -#define EXYNOS_TRNG_FIFO_4 (0x90) -#define EXYNOS_TRNG_FIFO_5 (0x94) -#define EXYNOS_TRNG_FIFO_6 (0x98) -#define EXYNOS_TRNG_FIFO_7 (0x9c) -#define EXYNOS_TRNG_FIFO_LEN (8) -#define EXYNOS_TRNG_CLOCK_RATE (500000) - +#define EXYNOS_TRNG_CLKDIV 0x0 + +#define EXYNOS_TRNG_CTRL 0x20 +#define EXYNOS_TRNG_CTRL_RNGEN BIT(31) + +#define EXYNOS_TRNG_POST_CTRL 0x30 +#define EXYNOS_TRNG_ONLINE_CTRL 0x40 +#define EXYNOS_TRNG_ONLINE_STAT 0x44 +#define EXYNOS_TRNG_ONLINE_MAXCHI2 0x48 +#define EXYNOS_TRNG_FIFO_CTRL 0x50 +#define EXYNOS_TRNG_FIFO_0 0x80 +#define EXYNOS_TRNG_FIFO_1 0x84 +#define EXYNOS_TRNG_FIFO_2 0x88 +#define EXYNOS_TRNG_FIFO_3 0x8c +#define EXYNOS_TRNG_FIFO_4 0x90 +#define EXYNOS_TRNG_FIFO_5 0x94 +#define EXYNOS_TRNG_FIFO_6 0x98 +#define EXYNOS_TRNG_FIFO_7 0x9c +#define EXYNOS_TRNG_FIFO_LEN 8 +#define EXYNOS_TRNG_CLOCK_RATE 500000 =20 struct exynos_trng_dev { - struct device *dev; - void __iomem *mem; - struct clk *clk; - struct hwrng rng; + struct device *dev; + void __iomem *mem; + struct clk *clk; + struct hwrng rng; }; =20 static int exynos_trng_do_read(struct hwrng *rng, void *data, size_t max, bool wait) { - struct exynos_trng_dev *trng; + struct exynos_trng_dev *trng =3D (struct exynos_trng_dev *)rng->priv; int val; =20 max =3D min_t(size_t, max, (EXYNOS_TRNG_FIFO_LEN * 4)); - - trng =3D (struct exynos_trng_dev *)rng->priv; - writel_relaxed(max * 8, trng->mem + EXYNOS_TRNG_FIFO_CTRL); val =3D readl_poll_timeout(trng->mem + EXYNOS_TRNG_FIFO_CTRL, val, val =3D=3D 0, 200, 1000000); @@ -122,7 +118,7 @@ static int exynos_trng_probe(struct platform_device *pd= ev) =20 trng->rng.init =3D exynos_trng_init; trng->rng.read =3D exynos_trng_do_read; - trng->rng.priv =3D (unsigned long) trng; + trng->rng.priv =3D (unsigned long)trng; =20 platform_set_drvdata(pdev, trng); trng->dev =3D &pdev->dev; @@ -175,7 +171,7 @@ static int exynos_trng_probe(struct platform_device *pd= ev) =20 static void exynos_trng_remove(struct platform_device *pdev) { - struct exynos_trng_dev *trng =3D platform_get_drvdata(pdev); + struct exynos_trng_dev *trng =3D platform_get_drvdata(pdev); =20 clk_disable_unprepare(trng->clk); =20 @@ -204,7 +200,7 @@ static int exynos_trng_resume(struct device *dev) } =20 static DEFINE_SIMPLE_DEV_PM_OPS(exynos_trng_pm_ops, exynos_trng_suspend, - exynos_trng_resume); + exynos_trng_resume); =20 static const struct of_device_id exynos_trng_dt_match[] =3D { { @@ -225,6 +221,7 @@ static struct platform_driver exynos_trng_driver =3D { }; =20 module_platform_driver(exynos_trng_driver); + MODULE_AUTHOR("=C5=81ukasz Stelmach"); MODULE_DESCRIPTION("H/W TRNG driver for Exynos chips"); MODULE_LICENSE("GPL v2"); --=20 2.39.2 From nobody Thu Dec 18 08:37:59 2025 Received: from mail-ot1-f46.google.com (mail-ot1-f46.google.com [209.85.210.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A7A94D8DC for ; Tue, 18 Jun 2024 20:45:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743529; cv=none; b=cr/9t8WkTiAOFnIGAsQy4ZQy8+cLUhSWEsN4/rBlGDpYRtJNds8KDd/QWPaFswM3H3zIMQN1t6EPiWt3pP1E8z0Qn3eaDceR708UlL9fUB12RBhrlp2wHZMB/Q5I7ogqGxfbc1FggKob7OKs+Lt9935ccUSKO7RL7x+/Dlqe3No= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743529; c=relaxed/simple; bh=sT0sL+RgnVg+AcQBnBOs3VMjWsZ2hzrqXKz/8cJCc5Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Wg85xIMbI0W6HOkwt/3d/qib5KSnAxcwsVRrZbq7m0E6qZmkno13x6uHIYAlTcXDG+gxcVDDmB6G6psZY4IyEqaC8wYQ7Azj2DQifbb4h+a6lfBKrm7vB8mHdgLRZephhIQrNTsiUzn+ZdhC+w2pCUS2/Z7ASLZv9YoTEZFpxns= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=tFfjpUMC; arc=none smtp.client-ip=209.85.210.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="tFfjpUMC" Received: by mail-ot1-f46.google.com with SMTP id 46e09a7af769-6f977acff19so2667199a34.3 for ; Tue, 18 Jun 2024 13:45:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743526; x=1719348326; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0aRxOAD2Qgk5Lly7g3t86NVGFyqjyCN/MyLZiIAVgHs=; b=tFfjpUMCoTEIxTtYITK2ouVif7oQGDFsXuGPjH5Z2yG/pst/U9bLYzawApH1QPvjY+ jMH2f/umE6iK9aSiNKWSAOitylJDmkzJ4+oX+Qgd3OUhRVNVshWc0Sv352thIostt54N +d1INApBiKOKOCKxVeG/Sy7A90BACt+TumHrMNxkuf+6To+2CyQS1/5iO2XkbNw5ydqG rE8mF+AAo1xoil1fssubZ2Dk2XY+LJVnf0gzDUq6iGBYMyVv6hGM9OwTJuy0B8IVpVEb nIq+TQ0GR4aMTEq7236TuTD5hrptq08T6dzcVpXoxvwB+4xuxnUmn+iUmOCc4I3zY2fA /oVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743526; x=1719348326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0aRxOAD2Qgk5Lly7g3t86NVGFyqjyCN/MyLZiIAVgHs=; b=NTvJFMiB2lrzPOBXg+xvfwsqOTUw3KdjIKfzg4mVuZXUU+SXrBEBLNqfltFbaKt/r8 ljsRfCBLcRitk4tPt/ajQKEDhV4cK9jsrs2IX7b83pvD/1ERLN2MZlr8ePrKQ9Oz42eV ZMg+9d09HR45A0mnzregHQjSf1ONf5dJjB73hw4O89W683Tm/7nkF8M0E50tCJ6iGZTX qWmqRYNc1zSI62wJnjl7atELQ4saG+naAmiscKiCOw5zQh2Bbk4EEynw2aiLM8gv5Q2Z z8JzdrbODsL+s2GtlstvYRt16wG9p8mQwTTGkIJdRDutMF4JAKZkPQpdLrz7MZeKqzN9 QWCw== X-Forwarded-Encrypted: i=1; AJvYcCU/n/Q2Ob0f++c334Tr/X+IUyLJnYl3XeCEitsNwW1NCV5g1Bk0+F8OJQp0redijgNEUUJe6SuKvTZI+tYUEBTANIM6BPuhbR+7/s40 X-Gm-Message-State: AOJu0YwiToa1mNWzZlKGd5VKTURF0doHTTEWMD5LeJlaxPtqdqlWdLRB 7u8wnZKUFrJCqoBzqZseaue1Dg8D8O8YfPl26PbPfkMy3HdaCJWx3w2mFjJhJu4= X-Google-Smtp-Source: AGHT+IFsyuXPTcRk/B3lUM1O8/TQZfkRs+GDfXqj2NsRA9yWpG9ZWVrUspoi5rnxH+NBKKi8Gu9VmQ== X-Received: by 2002:a05:6830:1d91:b0:6f9:c989:261c with SMTP id 46e09a7af769-700766349damr883708a34.33.1718743526611; Tue, 18 Jun 2024 13:45:26 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6fb97051e68sm1692599a34.80.2024.06.18.13.45.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:26 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/7] hwrng: exynos: Use devm_clk_get_enabled() to get the clock Date: Tue, 18 Jun 2024 15:45:19 -0500 Message-Id: <20240618204523.9563-4-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use devm_clk_get_enabled() helper instead of calling devm_clk_get() and then clk_prepare_enable(). It simplifies the error handling and makes the code more compact. Also use dev_err_probe() to handle possible -EPROBE_DEFER errors if the clock is not available yet. Signed-off-by: Sam Protsenko Reviewed-by: Anand Moon Reviewed-by: Krzysztof Kozlowski --- Changes in v2: - No changes (it's a new patch added in v2) drivers/char/hw_random/exynos-trng.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/drivers/char/hw_random/exynos-trng.c b/drivers/char/hw_random/= exynos-trng.c index 88a5088ed34d..91c210d80a3d 100644 --- a/drivers/char/hw_random/exynos-trng.c +++ b/drivers/char/hw_random/exynos-trng.c @@ -134,32 +134,23 @@ static int exynos_trng_probe(struct platform_device *= pdev) goto err_pm_get; } =20 - trng->clk =3D devm_clk_get(&pdev->dev, "secss"); + trng->clk =3D devm_clk_get_enabled(&pdev->dev, "secss"); if (IS_ERR(trng->clk)) { - ret =3D PTR_ERR(trng->clk); - dev_err(&pdev->dev, "Could not get clock.\n"); - goto err_clock; - } - - ret =3D clk_prepare_enable(trng->clk); - if (ret) { - dev_err(&pdev->dev, "Could not enable the clk.\n"); + ret =3D dev_err_probe(&pdev->dev, PTR_ERR(trng->clk), + "Could not get clock"); goto err_clock; } =20 ret =3D devm_hwrng_register(&pdev->dev, &trng->rng); if (ret) { dev_err(&pdev->dev, "Could not register hwrng device.\n"); - goto err_register; + goto err_clock; } =20 dev_info(&pdev->dev, "Exynos True Random Number Generator.\n"); =20 return 0; =20 -err_register: - clk_disable_unprepare(trng->clk); - err_clock: pm_runtime_put_noidle(&pdev->dev); =20 @@ -171,10 +162,6 @@ static int exynos_trng_probe(struct platform_device *p= dev) =20 static void exynos_trng_remove(struct platform_device *pdev) { - struct exynos_trng_dev *trng =3D platform_get_drvdata(pdev); - - clk_disable_unprepare(trng->clk); - pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); } --=20 2.39.2 From nobody Thu Dec 18 08:37:59 2025 Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A4C2176FA8 for ; Tue, 18 Jun 2024 20:45:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743529; cv=none; b=e9pqZDZZwqzn/WM5egDzRCjELOnRuCQ9oQVxWK2qtllZ9VKhdb7TVkKTh5oPQGImxDh2ATuSngkCqF1W2ZjNCw6SO0KqWEV04vyEt4+FctBs5tEAis5cHJgOh7+MQRraxZkFFW3/dpQ52SmqUmV7lZGd/V0E4A88efr85oKdQ5o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743529; c=relaxed/simple; bh=o3eOG1LnpJmTG9KLHgnK43QtqvIq3WSopLjA7R+Hozs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qc2f6jI9xUujyNzUIVCA5pS0hwKFmcwcgYXKzedPbSgjTkP5f+11etp3FCCnvPmvTPmj56qTyvA5aQE5JyvlXfbVGRrBv81g61eFid8BGLtBXa2gJipxQIo3Q3YPALtp74nLD56gAcbuPOqzVjyUFUjNfgcJRzy2eZ2YR3NmA8k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=F65tdRX1; arc=none smtp.client-ip=209.85.160.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="F65tdRX1" Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-259884ef4ddso408151fac.2 for ; Tue, 18 Jun 2024 13:45:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743527; x=1719348327; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N5PSLoK5277DwTxre0IUhy89MhV1sfVHkT9GD1kskOA=; b=F65tdRX12CZvBh/aL3651rs/OvEn/1FazE8eHzQMvFPHdVmHHZp7VW7WWG19ewIiVO WFC61EbwUb/txN8ZoSaFkfcyrqOE4ANqGtULk/2IjudV6Ky5eQeEzU4bi7vCNLwbwwS6 MW/OCJwnhe1kUKli3I4nL7OGSoBo25S1mieh4EHvTAcC4moz2aYCSXoleb8e4ENY7sbI gFp+lLyzwBWM/HGB/vdDpZNzKGK2t321madq8tvtDyC4Lbv8OQPqjBSVsrTeXezlqAfE K8j9cQGHsOro13y2kh1QxUny86b3CCj56xMVzrqid8CU6S25P8s46R7ksG9kZoIFzmfr nLYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743527; x=1719348327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N5PSLoK5277DwTxre0IUhy89MhV1sfVHkT9GD1kskOA=; b=ONySHefpVIwUuJXo7IIAXUQzFXp4pZIeu8AddmMOhpza1u8qBLUUUQmehQ8zCfzQV1 Og28iLu2od9Yr6oclkJAVVcWBvcAu6m6EcA6vq0ww93UsE+zhYL1zE3pmI1+4hnkKo5i mXNhwYaE57FpVzqko/1DG/tpbAp3aYZ6zgc9A7JyoPKH2OHgWiQPAL5Ng7cIXhs3Go6m X0F+7NXQ2CclUBmSjldr94RG07Mn0zcja+EdlLr+Q0yZQrooAUvuNP9/8luqQWrPQsEa eC5XSxbTmuqQxtgyhn7PhL25TxYqwJkXKVviW/Cgag9EXgeyj7Bb/EQDz0ubL2k8M2cH G/Ew== X-Forwarded-Encrypted: i=1; AJvYcCVhY9J728PvxVCZ/aHXeegIB+K5yL/XplQx9sU4UWllR8NlpCz64KG5SN5dw2NWYbfckPCkozl0FmGd17IyNPOyuFZa7j39VCE6gXPv X-Gm-Message-State: AOJu0YxZH5QgiRQkL9qrNU04GU1FWeae96EKhIgKbssBzx4p8BOX6bs5 CM8r7NBVv8c2bqqCyGnd2m7veF+xzGIvUnQMT0EusKYgR9yHoRZap36Vnx5wlgs= X-Google-Smtp-Source: AGHT+IFDRAFXeFBv7i8uwvM6wavaDuobxVfToXwipE3qzms4/u2yGTluz+/UFCszPXir6zQE6J0cyg== X-Received: by 2002:a05:6871:5209:b0:254:b3cc:a6d8 with SMTP id 586e51a60fabf-25c94a200famr1057219fac.32.1718743527261; Tue, 18 Jun 2024 13:45:27 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-25a6d0fd5a6sm231281fac.56.2024.06.18.13.45.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:27 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/7] hwrng: exynos: Implement bus clock control Date: Tue, 18 Jun 2024 15:45:20 -0500 Message-Id: <20240618204523.9563-5-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some SoCs like Exynos850 might require the SSS bus clock (PCLK) to be enabled in order to access TRNG registers. Add and handle the optional PCLK clock accordingly to make it possible. Signed-off-by: Sam Protsenko Reviewed-by: Anand Moon Reviewed-by: Krzysztof Kozlowski --- Changes in v2: - Used devm_clk_get_optional_enabled() to avoid calling clk_prepare_enable() for PCLK drivers/char/hw_random/exynos-trng.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/char/hw_random/exynos-trng.c b/drivers/char/hw_random/= exynos-trng.c index 91c210d80a3d..99a0b271ffb7 100644 --- a/drivers/char/hw_random/exynos-trng.c +++ b/drivers/char/hw_random/exynos-trng.c @@ -47,7 +47,8 @@ struct exynos_trng_dev { struct device *dev; void __iomem *mem; - struct clk *clk; + struct clk *clk; /* operating clock */ + struct clk *pclk; /* bus clock */ struct hwrng rng; }; =20 @@ -141,6 +142,13 @@ static int exynos_trng_probe(struct platform_device *p= dev) goto err_clock; } =20 + trng->pclk =3D devm_clk_get_optional_enabled(&pdev->dev, "pclk"); + if (IS_ERR(trng->pclk)) { + ret =3D dev_err_probe(&pdev->dev, PTR_ERR(trng->pclk), + "Could not get pclk"); + goto err_clock; + } + ret =3D devm_hwrng_register(&pdev->dev, &trng->rng); if (ret) { dev_err(&pdev->dev, "Could not register hwrng device.\n"); --=20 2.39.2 From nobody Thu Dec 18 08:37:59 2025 Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 778F717E8FB for ; Tue, 18 Jun 2024 20:45:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743532; cv=none; b=c2gxTWU1qWcA9JWHmrq4xGh2oVXOQxWhhuOZqnpXyw7LIC78Keiugez+QVV7wro5Z0YoTogqwKVaQAzmrZ/zlZMTrwwoA3yaZxFAD/sOfUczSXWgOzSYRXgGmlc6T92V1db2dTON9bxIVTXKah3YWgQgvzkrxM+JkQWxShzqMSc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743532; c=relaxed/simple; bh=Be3QsddRFn1tQun0Ci4OnCg1bFvG6cNdgpu2xdZl3FQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=gaAZSjhLqH91PRB6i4VNT2l6Q9FG3AKqmED/mkF5bKdKEeo0POqKPPe5kbNwGlr32czJjTpubheUG1YGbbASuqk7gZ69F5RF9W1u9IJ8R5hvXAsA3AlGTJdi7qEIHuyTuXQjiTbevUu1pS0RtwpyMDAK5G6PxMvR77wD2OPjyXY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=mqixCpVU; arc=none smtp.client-ip=209.85.167.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="mqixCpVU" Received: by mail-oi1-f178.google.com with SMTP id 5614622812f47-3c9cc681ee0so2804565b6e.0 for ; Tue, 18 Jun 2024 13:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743529; x=1719348329; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D1tGGKDb/pzoSYKfOaGs32qG7utZGs+QUbR9RohPaQI=; b=mqixCpVU95F4MYRCLDLa8EL5Fr/aymZzwZHyp0ILdQhE573bMXiuQV5mdhWhJNNkG9 O5iZQIReBCp16BpFeT8bDFjryUw8fy6K1WURHYFJtLoHP95CyeL4wx9KOrwQHUIn1asn NOSyaDoaUnsC7k5Wg1wlImXrlDaiuj3TL3hJ6L4vLEzww8RCk3pTlCgsMJlNSiRUlY9M jad2CV8qpw6ioA2/qa3L8ttYB15KQ/HE7IcI/joJYTet0MdldF8S1vbU3BU0DiLCEJ3Z H5NeMcwoKNzPG7++BmagC4xdTzX/uNAJ+LEZC2WMwajo/9G+40Kdkx3iQRJzu91d97Vk o7ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743529; x=1719348329; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D1tGGKDb/pzoSYKfOaGs32qG7utZGs+QUbR9RohPaQI=; b=IPUMV91X1X/IqKtt9p+DNXg52wDezMsbCaaYy3PmbSfp/GDYi8TT9/SOqMnr26XYii vcDNVRz8m8qocFtYqSrdHue64DjS8ZjT0ubwPUbQqC7VXFs22uCMXwoP+dHUXruQv+Io htIr9aFhsLC1mJzYjW2PkgurFjCj/dfNlwwxWXKoX60sYaNgf58tsLX+u5H3Q0qpqXNi RuNbdQby9VXAG+oEvxdfwxmKNRlU+3XYKqg5+YbY5LKuyw1bdxfnjG05quKr2fkwcZLQ igaF45qhCQ9pUM8780b+0WJdlNgW55Z8drJhDzJGQzKKBn8h1sP3ijagTkL8siKjWzb4 6Qgw== X-Forwarded-Encrypted: i=1; AJvYcCXYxxhKDTVL1wUGn1dnnze1v6i90mEBJZa4+U6NxUKrZDO3aspshB/hvS+ID4UVnzXaS2cQcpKwHKT+o8z8lDOsnRqlOnN2YBgdSYq9 X-Gm-Message-State: AOJu0YxSxQTHG+SvkKLGCR/mPjY80cJ1jVmaYCZPhX7obklwhCW+Ibx4 rrIm0GGL6TbW0pJ4d7r/qxmouSnT2Ilg9ngvsGy5BOTmD7ZVuFcgaCq5cxHszTM= X-Google-Smtp-Source: AGHT+IExMUu5uMoYHOz6Ly2rBBDwUiHBtNbETwIOmMglcoTYhcR+mi7mM6Kezl435MsKYs2EFya3dg== X-Received: by 2002:a05:6808:1522:b0:3d2:16c8:64f4 with SMTP id 5614622812f47-3d51b9e3769mr981490b6e.24.1718743527969; Tue, 18 Jun 2024 13:45:27 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3d2476bb609sm1898298b6e.44.2024.06.18.13.45.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:27 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/7] hwrng: exynos: Add SMC based TRNG operation Date: Tue, 18 Jun 2024 15:45:21 -0500 Message-Id: <20240618204523.9563-6-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On some Exynos chips like Exynos850 the access to Security Sub System (SSS) registers is protected with TrustZone, and therefore only possible from EL3 monitor software. The Linux kernel is running in EL1, so the only way for the driver to obtain TRNG data is via SMC calls to EL3 monitor. Implement such SMC operation and use it when EXYNOS_SMC flag is set in the corresponding chip driver data. Signed-off-by: Sam Protsenko Reviewed-by: Krzysztof Kozlowski --- Changes in v2: - Used the "reversed Christmas tree" style in the variable declaration block in exynos_trng_do_read_smc() - Renamed .quirks to .flags in the driver structure - Added Krzysztof's R-b tag drivers/char/hw_random/exynos-trng.c | 133 +++++++++++++++++++++++++-- 1 file changed, 123 insertions(+), 10 deletions(-) diff --git a/drivers/char/hw_random/exynos-trng.c b/drivers/char/hw_random/= exynos-trng.c index 99a0b271ffb7..497d6018c6ba 100644 --- a/drivers/char/hw_random/exynos-trng.c +++ b/drivers/char/hw_random/exynos-trng.c @@ -10,6 +10,7 @@ * Krzysztof Koz=C5=82owski */ =20 +#include #include #include #include @@ -22,6 +23,7 @@ #include #include #include +#include =20 #define EXYNOS_TRNG_CLKDIV 0x0 =20 @@ -44,16 +46,41 @@ #define EXYNOS_TRNG_FIFO_LEN 8 #define EXYNOS_TRNG_CLOCK_RATE 500000 =20 +/* Driver feature flags */ +#define EXYNOS_SMC BIT(0) + +#define EXYNOS_SMC_CALL_VAL(func_num) \ + ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \ + ARM_SMCCC_SMC_32, \ + ARM_SMCCC_OWNER_SIP, \ + func_num) + +/* SMC command for DTRNG access */ +#define SMC_CMD_RANDOM EXYNOS_SMC_CALL_VAL(0x1012) + +/* SMC_CMD_RANDOM: arguments */ +#define HWRNG_INIT 0x0 +#define HWRNG_EXIT 0x1 +#define HWRNG_GET_DATA 0x2 +#define HWRNG_RESUME 0x3 + +/* SMC_CMD_RANDOM: return values */ +#define HWRNG_RET_OK 0x0 +#define HWRNG_RET_RETRY_ERROR 0x2 + +#define HWRNG_MAX_TRIES 100 + struct exynos_trng_dev { struct device *dev; void __iomem *mem; struct clk *clk; /* operating clock */ struct clk *pclk; /* bus clock */ struct hwrng rng; + unsigned long flags; }; =20 -static int exynos_trng_do_read(struct hwrng *rng, void *data, size_t max, - bool wait) +static int exynos_trng_do_read_reg(struct hwrng *rng, void *data, size_t m= ax, + bool wait) { struct exynos_trng_dev *trng =3D (struct exynos_trng_dev *)rng->priv; int val; @@ -70,7 +97,40 @@ static int exynos_trng_do_read(struct hwrng *rng, void *= data, size_t max, return max; } =20 -static int exynos_trng_init(struct hwrng *rng) +static int exynos_trng_do_read_smc(struct hwrng *rng, void *data, size_t m= ax, + bool wait) +{ + struct arm_smccc_res res; + unsigned int copied =3D 0; + u32 *buf =3D data; + int tries =3D 0; + + while (copied < max) { + arm_smccc_smc(SMC_CMD_RANDOM, HWRNG_GET_DATA, 0, 0, 0, 0, 0, 0, + &res); + switch (res.a0) { + case HWRNG_RET_OK: + *buf++ =3D res.a2; + *buf++ =3D res.a3; + copied +=3D 8; + tries =3D 0; + break; + case HWRNG_RET_RETRY_ERROR: + if (!wait) + return copied; + if (++tries >=3D HWRNG_MAX_TRIES) + return copied; + cond_resched(); + break; + default: + return -EIO; + } + } + + return copied; +} + +static int exynos_trng_init_reg(struct hwrng *rng) { struct exynos_trng_dev *trng =3D (struct exynos_trng_dev *)rng->priv; unsigned long sss_rate; @@ -103,6 +163,17 @@ static int exynos_trng_init(struct hwrng *rng) return 0; } =20 +static int exynos_trng_init_smc(struct hwrng *rng) +{ + struct arm_smccc_res res; + + arm_smccc_smc(SMC_CMD_RANDOM, HWRNG_INIT, 0, 0, 0, 0, 0, 0, &res); + if (res.a0 !=3D HWRNG_RET_OK) + return -EIO; + + return 0; +} + static int exynos_trng_probe(struct platform_device *pdev) { struct exynos_trng_dev *trng; @@ -112,21 +183,29 @@ static int exynos_trng_probe(struct platform_device *= pdev) if (!trng) return ret; =20 + platform_set_drvdata(pdev, trng); + trng->dev =3D &pdev->dev; + + trng->flags =3D (unsigned long)device_get_match_data(&pdev->dev); + trng->rng.name =3D devm_kstrdup(&pdev->dev, dev_name(&pdev->dev), GFP_KERNEL); if (!trng->rng.name) return ret; =20 - trng->rng.init =3D exynos_trng_init; - trng->rng.read =3D exynos_trng_do_read; trng->rng.priv =3D (unsigned long)trng; =20 - platform_set_drvdata(pdev, trng); - trng->dev =3D &pdev->dev; + if (trng->flags & EXYNOS_SMC) { + trng->rng.init =3D exynos_trng_init_smc; + trng->rng.read =3D exynos_trng_do_read_smc; + } else { + trng->rng.init =3D exynos_trng_init_reg; + trng->rng.read =3D exynos_trng_do_read_reg; =20 - trng->mem =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(trng->mem)) - return PTR_ERR(trng->mem); + trng->mem =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(trng->mem)) + return PTR_ERR(trng->mem); + } =20 pm_runtime_enable(&pdev->dev); ret =3D pm_runtime_resume_and_get(&pdev->dev); @@ -170,12 +249,31 @@ static int exynos_trng_probe(struct platform_device *= pdev) =20 static void exynos_trng_remove(struct platform_device *pdev) { + struct exynos_trng_dev *trng =3D platform_get_drvdata(pdev); + + if (trng->flags & EXYNOS_SMC) { + struct arm_smccc_res res; + + arm_smccc_smc(SMC_CMD_RANDOM, HWRNG_EXIT, 0, 0, 0, 0, 0, 0, + &res); + } + pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); } =20 static int exynos_trng_suspend(struct device *dev) { + struct exynos_trng_dev *trng =3D dev_get_drvdata(dev); + struct arm_smccc_res res; + + if (trng->flags & EXYNOS_SMC) { + arm_smccc_smc(SMC_CMD_RANDOM, HWRNG_EXIT, 0, 0, 0, 0, 0, 0, + &res); + if (res.a0 !=3D HWRNG_RET_OK) + return -EIO; + } + pm_runtime_put_sync(dev); =20 return 0; @@ -183,6 +281,7 @@ static int exynos_trng_suspend(struct device *dev) =20 static int exynos_trng_resume(struct device *dev) { + struct exynos_trng_dev *trng =3D dev_get_drvdata(dev); int ret; =20 ret =3D pm_runtime_resume_and_get(dev); @@ -191,6 +290,20 @@ static int exynos_trng_resume(struct device *dev) return ret; } =20 + if (trng->flags & EXYNOS_SMC) { + struct arm_smccc_res res; + + arm_smccc_smc(SMC_CMD_RANDOM, HWRNG_RESUME, 0, 0, 0, 0, 0, 0, + &res); + if (res.a0 !=3D HWRNG_RET_OK) + return -EIO; + + arm_smccc_smc(SMC_CMD_RANDOM, HWRNG_INIT, 0, 0, 0, 0, 0, 0, + &res); + if (res.a0 !=3D HWRNG_RET_OK) + return -EIO; + } + return 0; } =20 --=20 2.39.2 From nobody Thu Dec 18 08:37:59 2025 Received: from mail-ot1-f54.google.com (mail-ot1-f54.google.com [209.85.210.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C07C17BB14 for ; Tue, 18 Jun 2024 20:45:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743532; cv=none; b=NC/b+74ekOMP+lxenZu2FDItNfAC8HfwNzI6WvsjtHb1/b8AvEJbLbVrfZy/bm4xck+X4kRFl0nh6tQUcYhbOu1KgrPlOrkRu8r3c8G7TQKRamM4uYOAlbvhkwXS806ksnpWY1+gWseC1arAgTD8/DVZGXOEJ13D02yPdDnA62k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743532; c=relaxed/simple; bh=rUnkk/wWp2sBNpjdL8bQQN9zcFpLFYBuc4V2vmUKBPA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pqGmFukImc9q/ZuF4HYOvEWtYoMDTJ/AZTsHwUDAkSscd3VUTi4bw/UFhsODcgv0yqvfF1Q5GIKn+2zepFx7YasiBBSQXQCMPJanbD0YeG7oDW1wF1ZyCKIuabtnK6hIFgZCQB37a0IrmnfsCvaVsYGfSwAtlyVtpwE1A4bvfK4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=NpzmG5Ly; arc=none smtp.client-ip=209.85.210.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="NpzmG5Ly" Received: by mail-ot1-f54.google.com with SMTP id 46e09a7af769-6fa0edb64bdso3199132a34.1 for ; Tue, 18 Jun 2024 13:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743529; x=1719348329; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1QypTvkVpwSwPwrJWMvND1OKOL2Sl2RDuWylFLER89I=; b=NpzmG5Ly3n1yFvYTlRk80TvVWZOIciXljpQqzN9zXbsKygeg+KQ8LUBMmiWBHxBm4X zcMfILvwCvaAvcnj6g/+qOUXMTovT/erA/aWUZ4IsIXHAvhmDw0Wtmpzk7evgP4iugEn mCg1X+Gnuo7PfQ5I1AjN8xALUtBCm0wCcuGoi7hkbpDih7n7QNGEWf7NxjoPqgnBAgbW 1KYRktryaao8aqG/Hj5v0c8oKMPkIAIPMyK0J7/jHJgeGd7PJRsXrrzKJoDvb14hEA3B R4ojBAXrhmU1y0iUNSjeCtT40ZcEGoM9QFSPqb515PIUbJHVNkrm822YwJsCOovZ6WD3 a6rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743529; x=1719348329; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1QypTvkVpwSwPwrJWMvND1OKOL2Sl2RDuWylFLER89I=; b=XRtt+mFny1BqLjt/rS8OD2NINj17FZnXzogOZtWbcvlFwa0CALwkUNxM5Cx3xRsqz5 pzmYV0fmmvhCd3s+2ytn0BFwa1UXAbt/1KFE08jjh9d/yIxZhyZ1jbUvZuzJGyylHNtl EgaOcHEYAjhHxugX2lHFG8e6dXmQbc+DYw6pHK2NkcXrIlWLsNmgH7OFoVFlTTYesOYs RCWWbQpLgl/2sYaky207HRWlLe9aqZoUmjC+iqZJzNeHNTCbWPK6W7Lsxl5g3hW9KIE7 MoVQ2Xcj46XdH2lhja0B8c1ypMOd8gTR7jl87mXVE0OD98pa8YWMoV0oHoQH/bD7uYea OrHw== X-Forwarded-Encrypted: i=1; AJvYcCUyFVy8ZunlqPfa41nFlpJIUyzlMYqRooZOSrcA2PDF2HhmgAwBnczAUQgDPGZvuKGwqxZOqAz5vDrH7E8bY6qLoLobLyKEj3HJ/YNZ X-Gm-Message-State: AOJu0YyfiLP9w4jVPMOMwpoq2dO+4PVTIJAcswR/yDTol+HQP3uVpgIX yVSVg4pHe6KetA2VWA1DES+35JSDow/GJTOTMupsBOvTEPrDecFMvjld/lVFmko= X-Google-Smtp-Source: AGHT+IF0mhCadvOIWkaEzxJ7YG63of9Ku+vM0wRbKCJ3zcWLEWNNSJ7oU6/+slg8XAwGOA979+WVSQ== X-Received: by 2002:a05:6830:1390:b0:6f9:7abf:c6df with SMTP id 46e09a7af769-700761499b8mr936632a34.27.1718743529356; Tue, 18 Jun 2024 13:45:29 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6fb5b755c2bsm1938957a34.69.2024.06.18.13.45.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:28 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/7] hwrng: exynos: Enable Exynos850 support Date: Tue, 18 Jun 2024 15:45:22 -0500 Message-Id: <20240618204523.9563-7-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add Exynos850 compatible and its driver data. It's only possible to access TRNG block via SMC calls in Exynos850, so specify that fact using EXYNOS_SMC flag in the driver data. Signed-off-by: Sam Protsenko Acked-by: =C5=81ukasz Stelmach Reviewed-by: Krzysztof Kozlowski --- Changes in v2: - Changed QUIRK_SMC to EXYNOS_SMC to reflect the name change in the previous patch drivers/char/hw_random/exynos-trng.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/char/hw_random/exynos-trng.c b/drivers/char/hw_random/= exynos-trng.c index 497d6018c6ba..841598037cce 100644 --- a/drivers/char/hw_random/exynos-trng.c +++ b/drivers/char/hw_random/exynos-trng.c @@ -313,6 +313,9 @@ static DEFINE_SIMPLE_DEV_PM_OPS(exynos_trng_pm_ops, exy= nos_trng_suspend, static const struct of_device_id exynos_trng_dt_match[] =3D { { .compatible =3D "samsung,exynos5250-trng", + }, { + .compatible =3D "samsung,exynos850-trng", + .data =3D (void *)EXYNOS_SMC, }, { }, }; --=20 2.39.2 From nobody Thu Dec 18 08:37:59 2025 Received: from mail-ot1-f42.google.com (mail-ot1-f42.google.com [209.85.210.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BAEC1849FA for ; Tue, 18 Jun 2024 20:45:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743533; cv=none; b=Lpai9JgNJOpJ2Rs4foVUhQYUCNlszErZJPcU3uVGLrzhYkaThr+LRYzzUZrsAHRsTbJavMr1/PXkgciyX1vMOiHSZvljS6UpGNUTqmxz+9qjevQ3hXMEp374Xy8xvzZN4d0sVDx+zdj9IYKLtNeP0guWqgCemnI55Hw7DfJj3vg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718743533; c=relaxed/simple; bh=OTr12Bi8/NXL7P/8SsOisfRk21WzJPQ5t6rWot8jDSk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lPCRzPiEZQmjqLT+FZ5meLPnd9N/pTyAWq9aj35bKlWyCzbrwNPJhO/Mc7Ac+lp7kgsep0reHJJp3SY4RSZsJh2rKWz4iak1hV7XnR1E5pnEdU2n8NEhVafKMnqqtNrHlrgOEDbqCHlSS3ICKPrr/tBP41fSv0LvhAAQ2liVjuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=fwD1UANX; arc=none smtp.client-ip=209.85.210.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="fwD1UANX" Received: by mail-ot1-f42.google.com with SMTP id 46e09a7af769-6f8d0a1e500so4359491a34.3 for ; Tue, 18 Jun 2024 13:45:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1718743530; x=1719348330; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=An62MJeGUMiGGgvWvJTRH6LH32AiZhil1QbTJRqvu4k=; b=fwD1UANXPhuQFNeXn3tyjKPmjRgb0RzjMolQ5d+F8KZyOdw1ybhQ7kbI28aoLCxeUk se5th8eZJ/O9caG/Z5Rvt/Bv32NwRX3cg/QNEiV6gsHJvEm2n6yP13eFGYFoyiHaYtFH Cwx/he5GGrhUQ6qTez3iPi9xBh00e8smX0UTEPqmJeNSySSWFECVX8BXIjcdovHfEcAE YwUDDYZopGHj//69Qdjy8B8o2yH79W8/SGuhDWfC9xFCPEdB5D5/P+Y5VHyL4eK5+Jzp d0zwSwXHpAvjRpHbg93M94OmDdkR1SzLupirHUVnCS/thwvaWaJbMdwjiRmOfFDZKbVx VGfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718743530; x=1719348330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=An62MJeGUMiGGgvWvJTRH6LH32AiZhil1QbTJRqvu4k=; b=pZFaaHxe+BIxl0RUycY1DfVkkONe+l8BocAUSHKxGhccPWvxweMnMrsBoqXGwR9pNw s6sZvr3OU850rfROchDQccVK5KVPPVWG15i8B2Jy1t8xsbo3iv9ljdeC5V+IjmENlkHO lgL4HqMvXg1IYp1+JdtdGz87Lbe8bSwtCjv5I7Xc0KSA8e6TIfGD2tXDTYfNXWdASV23 1wDyYfNC6DzBduqAjKkABrRPJLVvjVgqMr1HZ6euxfM0vYnpN9rbspyloh4S6ZznlHrn MkMv+Ssn9m9jNRWehnm/RTHAsr2XtokkHfRCsXvUxpdJe65nvGg67wgF+HD1W7JR6SIQ /GUQ== X-Forwarded-Encrypted: i=1; AJvYcCUucjJHRkaRFPQwWKQz1Ow8Y+xdXTT2UqIUeKf+hy/39p3Gt29cNLYakMn47K8g2kdPfNrFP/urY9xvNt9JfeC9Q+JbRPo6Sqhe8dAz X-Gm-Message-State: AOJu0YyH+U1TbHD8hYyW6pGgc14J2zekckeFSL8J8O7u+4EuYqx2gsfU YF94BTybEj/bPPyW8rGAvPHJp6jaWIZI23WfiikXzX0W1ffPzkN+cpUrim4ZDXM= X-Google-Smtp-Source: AGHT+IF/wZnyEwlmp014WzzyEzK86air2V/fRVppB5R1D3+8KBOP7B7VGADdvbG4uR9hRt+kJZiG5w== X-Received: by 2002:a9d:7d05:0:b0:6f9:72ca:fdcb with SMTP id 46e09a7af769-70075a7530bmr843183a34.36.1718743530058; Tue, 18 Jun 2024 13:45:30 -0700 (PDT) Received: from localhost ([136.62.192.75]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6fb5b1e3adesm1931562a34.36.2024.06.18.13.45.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Jun 2024 13:45:29 -0700 (PDT) From: Sam Protsenko To: =?UTF-8?q?=C5=81ukasz=20Stelmach?= , Krzysztof Kozlowski , Rob Herring , Conor Dooley Cc: Anand Moon , Olivia Mackall , Herbert Xu , Alim Akhtar , linux-samsung-soc@vger.kernel.org, linux-crypto@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 7/7] arm64: dts: exynos850: Enable TRNG Date: Tue, 18 Jun 2024 15:45:23 -0500 Message-Id: <20240618204523.9563-8-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240618204523.9563-1-semen.protsenko@linaro.org> References: <20240618204523.9563-1-semen.protsenko@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add True Random Number Generator (TRNG) node to Exynos850 SoC dtsi. Signed-off-by: Sam Protsenko --- Changes in v2: - (no changes) arch/arm64/boot/dts/exynos/exynos850.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/exynos850.dtsi b/arch/arm64/boot/dt= s/exynos/exynos850.dtsi index 0706c8534ceb..f1c8b4613cbc 100644 --- a/arch/arm64/boot/dts/exynos/exynos850.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos850.dtsi @@ -416,6 +416,14 @@ pinctrl_core: pinctrl@12070000 { interrupts =3D ; }; =20 + trng: rng@12081400 { + compatible =3D "samsung,exynos850-trng"; + reg =3D <0x12081400 0x100>; + clocks =3D <&cmu_core CLK_GOUT_SSS_ACLK>, + <&cmu_core CLK_GOUT_SSS_PCLK>; + clock-names =3D "secss", "pclk"; + }; + pinctrl_hsi: pinctrl@13430000 { compatible =3D "samsung,exynos850-pinctrl"; reg =3D <0x13430000 0x1000>; --=20 2.39.2