From nobody Mon Feb 9 04:31:06 2026 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4C0B217F54 for ; Mon, 3 Mar 2025 15:25:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.118.77.11 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741015526; cv=none; b=Cuo0vXApHZ5eAB33SVGTAcPISlgkcJYPVdRWZIFlAT3DePLMYuyyAohybNQPAjjqAsvUxqp+ir25K+jPEP2d1yNyNwrWfI3Ya0iko4/qpSSKwBJRJ34KLN2e21YDDAuxE085vVVa8ttd056sVdVFJxgNNg5b2HtJQbLDi0GukHo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741015526; c=relaxed/simple; bh=jL/ZOxKyvdqpOrclFp17pKr6a7qXhVpu9FIi2TROBG0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=p0642TWYcmwhF7AVxTBxL3N4fb7HPtYCjiIgWZiBSwxH+FYxKrWfzJkqGUiJPS216H8zlQX98vnP/EeWOJV1DnN6iHbsaop6GF7uymgII7xbZZGDy3t4YrH6h0Krq0PptwypdkLHa338nvUhrg+fQ6LqmjFaIFX9dT7XwfBHmtA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=l4RuxHhV; arc=none smtp.client-ip=210.118.77.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="l4RuxHhV" Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20250303152522euoutp0184b77ed4fbf2f4f070ed6c8ec776dc8d~pVGSnBM9E3089530895euoutp016 for ; Mon, 3 Mar 2025 15:25:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20250303152522euoutp0184b77ed4fbf2f4f070ed6c8ec776dc8d~pVGSnBM9E3089530895euoutp016 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1741015522; bh=jVZ5nqMUcHkMSF5q4NF0ZDob3npe9EZcPVY0lveTg7Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=l4RuxHhVjTXMp0j2jvZWDvUadTXJ+ViOvhpiLmcgjMZtvr8Gz/Zje6U88OrlDChHn 3AdyWcKfDo1L/ZOGTMr38Yv9iar1iGP3TiKT5dchayyt8GYgP8Ao04/FpFoa6hqwOJ 84LFrEh9QHTJF5AZTNnnYsjedqINhmYG7BSEDg6k= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20250303152521eucas1p2f92030379e8cd9f51ef57b96ee6cb76a~pVGSU3aEx2155721557eucas1p26; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 48.36.20821.1E9C5C76; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20250303152521eucas1p26c54c5b15c024d749cf004b66345d2e0~pVGRsBRTE0643406434eucas1p2O; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20250303152521eusmtrp1eb5a81ce83872562a3d2cf596a237284~pVGRrVhT30903609036eusmtrp1L; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) X-AuditID: cbfec7f2-b09c370000005155-63-67c5c9e1004d Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 2C.E0.19654.1E9C5C76; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) Received: from AMDC4942.home (unknown [106.210.136.40]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20250303152520eusmtip1f98e75370d2129a10a90094783353ada~pVGRAmQWx0673706737eusmtip1j; Mon, 3 Mar 2025 15:25:20 +0000 (GMT) From: Michal Wilczynski To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, drew@pdp7.com, guoren@kernel.org, wefu@redhat.com, p.zabel@pengutronix.de, m.szyprowski@samsung.com Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Wilczynski , Krzysztof Kozlowski Subject: [PATCH v1 1/2] dt-bindings: reset: Add T-HEAD TH1520 SoC Reset Controller Date: Mon, 3 Mar 2025 16:25:10 +0100 Message-Id: <20250303152511.494405-2-m.wilczynski@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250303152511.494405-1-m.wilczynski@samsung.com> 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 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrCKsWRmVeSWpSXmKPExsWy7djPc7oPTx5NN2h9Z2SxZu85Jov5R86x Wty7tIXJ4sXeRhaLl7PusVnsfb2V3eLyrjlsFmuP3GW3WP91PpPF3XsnWCz+79nBbtGyfwqL A4/HplWdbB53ru1h82hZe4zJo/+vgcf7fVfZPPq2rGL0+LxJLoA9issmJTUnsyy1SN8ugSuj ZeY55oL5MhX7js5ibGB8Ld7FyMkhIWAisXrya8YuRi4OIYEVjBKP7jyAcr4wSuxf/pQVwvnM KDFhwnU2mJaZj64zQySWM0pMP7mZHSQhJPCGUeLONw8Qm03ASOLB8vlg3SICSxkl7nf+Autg FljCKNHcuQ+sQ1ggRKLx20swm0VAVeLlxltgK3gF7CRenWxlhlgnL7H/4Fkwm1PAXmLrs/9Q NYISJ2c+YQGxmYFqmrfOBlsgIfCBQ+LSihuMEM0uEq2dP6AGCUu8Or6FHcKWkTg9uYcFws6X eLD1E1RNjcTOnuNQtrXEnXO/gJZxAC3QlFi/Sx8i7CixbP9pJpCwhACfxI23ghAn8ElM2jad GSLMK9HRJgRRrSYxtacXbum5FduYIGwPifkvXrJOYFScheSZWUiemYWwdwEj8ypG8dTS4tz0 1GLDvNRyveLE3OLSvHS95PzcTYzAhHX63/FPOxjnvvqod4iRiYPxEKMEB7OSCO+t9qPpQrwp iZVVqUX58UWlOanFhxilOViUxHkX7W9NFxJITyxJzU5NLUgtgskycXBKNTClX66pSDt8aMdF /42si91v9b6Lu/9z989Ft2/rJPM1r4qMCBXObL7W5n77xezsXfIZL5baxf36aJOdtSDp26zn /Q81N/94uFrx85/nH1/buTNM22cyvWDe3dAv0iXqDlYL2UU2TUqaNqfcjf3Q9IdcqdpK7O/V brnfSztXOG33/2kTFj/YPSta2CJWYuVzj2+TQ/ffEe+Yc2Ha8X1WtuGfTinO8fescArltLFU /FO2KvB+x0/tNLGHwt+ZL9W+Oqbsv0WykHPaxO0Mdksvh05bYH7gKLe4+H7moNSJR5gFX01d 9axn0xz2hxy3HxYIZOX8KdI/Xtt605ln+uuNs821PHeePrHGWmf1/R+bP/hkmCqxFGckGmox FxUnAgD12ngOxwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrMIsWRmVeSWpSXmKPExsVy+t/xu7oPTx5NN1jSyW6xZu85Jov5R86x Wty7tIXJ4sXeRhaLl7PusVnsfb2V3eLyrjlsFmuP3GW3WP91PpPF3XsnWCz+79nBbtGyfwqL A4/HplWdbB53ru1h82hZe4zJo/+vgcf7fVfZPPq2rGL0+LxJLoA9Ss+mKL+0JFUhI7+4xFYp 2tDCSM/Q0kLPyMRSz9DYPNbKyFRJ384mJTUnsyy1SN8uQS+jZeY55oL5MhX7js5ibGB8Ld7F yMkhIWAiMfPRdeYuRi4OIYGljBJXej6yQCRkJK51v4SyhSX+XOtigyh6xSixcdoyNpAEm4CR xIPl81lBEiIC6xklOq9uYgJxmAWWMUocfPqAsYuRg0NYIEhi211WkAYWAVWJlxtvgTXzCthJ vDrZygyxQV5i/8GzYDangL3E1mf/wWqEgGrunZ7BClEvKHFy5hOwi5iB6pu3zmaewCgwC0lq FpLUAkamVYwiqaXFuem5xUZ6xYm5xaV56XrJ+bmbGIGxte3Yzy07GFe++qh3iJGJg/EQowQH s5II7632o+lCvCmJlVWpRfnxRaU5qcWHGE2B7p7ILCWanA+M7rySeEMzA1NDEzNLA1NLM2Ml cV62K+fThATSE0tSs1NTC1KLYPqYODilGpismWTmi4U8mDFh+jHpgqwVLuvuJwSnhZ5Rlnoz RWzKsuvbLsmsdTtd+1/0o+RkG+vXp4Qjtk41Fz/3+qhhlM2EZkO2xbnXS8IX789OTpm1t4d9 Ks/a0Hn9/p8rpxXMff+8K27HCnXlpeYq5XW7Ld3XLzj5tfrlnF9LEip8RNi/Pj8lpvljvtWR /tdcsf927jwiVBT9SvWpoSzvw5rjZguNviyY81tj/q+4sICIkgzdfSnPq07FxfpPnvZt0SGe jWa7HV/EHLN+u+mO16fF5ZWH/r7bmdmoFVckKywfHs4UFWPd/C9xkdzNbeavOlbuc1r5N/bM V7/faZl2N3pkg4P6LeZHM37Zma4ZPuXh9DBBJZbijERDLeai4kQAT2fr8TYDAAA= X-CMS-MailID: 20250303152521eucas1p26c54c5b15c024d749cf004b66345d2e0 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20250303152521eucas1p26c54c5b15c024d749cf004b66345d2e0 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20250303152521eucas1p26c54c5b15c024d749cf004b66345d2e0 References: <20250303152511.494405-1-m.wilczynski@samsung.com> Add a YAML schema for the T-HEAD TH1520 SoC reset controller. This controller manages resets for subsystems such as the GPU within the TH1520 SoC. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Michal Wilczynski --- .../bindings/reset/thead,th1520-reset.yaml | 44 +++++++++++++++++++ MAINTAINERS | 2 + .../dt-bindings/reset/thead,th1520-reset.h | 16 +++++++ 3 files changed, 62 insertions(+) create mode 100644 Documentation/devicetree/bindings/reset/thead,th1520-re= set.yaml create mode 100644 include/dt-bindings/reset/thead,th1520-reset.h diff --git a/Documentation/devicetree/bindings/reset/thead,th1520-reset.yam= l b/Documentation/devicetree/bindings/reset/thead,th1520-reset.yaml new file mode 100644 index 000000000000..f2e91d0add7a --- /dev/null +++ b/Documentation/devicetree/bindings/reset/thead,th1520-reset.yaml @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/reset/thead,th1520-reset.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: T-HEAD TH1520 SoC Reset Controller + +description: + The T-HEAD TH1520 reset controller is a hardware block that asserts/deas= serts + resets for SoC subsystems. + +maintainers: + - Michal Wilczynski + +properties: + compatible: + enum: + - thead,th1520-reset + + reg: + maxItems: 1 + + "#reset-cells": + const: 1 + +required: + - compatible + - reg + - "#reset-cells" + +additionalProperties: false + +examples: + - | + soc { + #address-cells =3D <2>; + #size-cells =3D <2>; + rst: reset-controller@ffef528000 { + compatible =3D "thead,th1520-reset"; + reg =3D <0xff 0xef528000 0x0 0x1000>; + #reset-cells =3D <1>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index 18f0eb293519..819686e98214 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20417,6 +20417,7 @@ F: Documentation/devicetree/bindings/firmware/thead= ,th1520-aon.yaml F: Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml F: Documentation/devicetree/bindings/net/thead,th1520-gmac.yaml F: Documentation/devicetree/bindings/pinctrl/thead,th1520-pinctrl.yaml +F: Documentation/devicetree/bindings/reset/thead,th1520-reset.yaml F: arch/riscv/boot/dts/thead/ F: drivers/clk/thead/clk-th1520-ap.c F: drivers/firmware/thead,th1520-aon.c @@ -20426,6 +20427,7 @@ F: drivers/pinctrl/pinctrl-th1520.c F: drivers/pmdomain/thead/ F: include/dt-bindings/clock/thead,th1520-clk-ap.h F: include/dt-bindings/power/thead,th1520-power.h +F: include/dt-bindings/reset/thead,th1520-reset.h F: include/linux/firmware/thead/thead,th1520-aon.h =20 RNBD BLOCK DRIVERS diff --git a/include/dt-bindings/reset/thead,th1520-reset.h b/include/dt-bi= ndings/reset/thead,th1520-reset.h new file mode 100644 index 000000000000..00459f160489 --- /dev/null +++ b/include/dt-bindings/reset/thead,th1520-reset.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) 2024 Samsung Electronics Co., Ltd. + * Author: Michal Wilczynski + */ + +#ifndef _DT_BINDINGS_TH1520_RESET_H +#define _DT_BINDINGS_TH1520_RESET_H + +#define TH1520_RESET_ID_GPU 0 +#define TH1520_RESET_ID_GPU_CLKGEN 1 +#define TH1520_RESET_ID_NPU 2 +#define TH1520_RESET_ID_WDT0 3 +#define TH1520_RESET_ID_WDT1 4 + +#endif /* _DT_BINDINGS_TH1520_RESET_H */ --=20 2.34.1 From nobody Mon Feb 9 04:31:06 2026 Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDDAC215793 for ; Mon, 3 Mar 2025 15:25:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=210.118.77.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741015525; cv=none; b=pkdTR3vzeC5gzG1dCxJ1OwIQOUivYT94OPre+0ET40I/xH/A7StsTxx4H4E5GjPxXvcfaHJ4mbEJLZYIMEf8LUd9cLB6y0y8Nq95IcL3ks8gnMsOmmKRiPpjorG1KU6Cv6gm7SwRR1I98St4VQ4m5ft7uY02uAY+LSTDSUat2mI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741015525; c=relaxed/simple; bh=b1plolZA6iwD6CVq7oze/ekvDaU9zsdYmy85kqI28to=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:MIME-Version: Content-Type:References; b=gyIo3fnR4ot7u8iRsEoh5yG9QLBtXbQE5Y9kJQ4d2OvAUYOFdG9V1SNICcjn57gbzGqkL6wZigwRTchZYNrdgv66AoiE8kakQUBKRLfulZEOCqHprmpMI2QN8a6KKxssOe0QM6GDll40K3l+Dl0xkshYk507XiUqFM4Yt4q17hY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com; spf=pass smtp.mailfrom=samsung.com; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b=HNbZdXi5; arc=none smtp.client-ip=210.118.77.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=samsung.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="HNbZdXi5" Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20250303152522euoutp022af5ca22ecc5ce3b1d2939c15808f991~pVGSvEhkA1852418524euoutp02s for ; Mon, 3 Mar 2025 15:25:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20250303152522euoutp022af5ca22ecc5ce3b1d2939c15808f991~pVGSvEhkA1852418524euoutp02s DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1741015522; bh=ANz8D/VpNY0MVaFHX53+xkCV78An0pUG8ELJjmjm7w0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HNbZdXi5PO2uLLINFTJ43HM7qx5x7np8BRX1QogCUEz6d5LJTNh201E+PHcdYskQm +iyIJ2RCet2/Ke3eKcwYB5o3RKEAK8fmSDCHPu2kwjyh/VjCgSM5mzQzd25t1SGYeS KWfK7hKF+EJmzGbUxzoI5JAAEuesx9EBdYW9RxcM= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20250303152522eucas1p1a063bfe20e72f45fcfe6934309822fbc~pVGSerqu70413104131eucas1p19; Mon, 3 Mar 2025 15:25:22 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id B9.67.20409.1E9C5C76; Mon, 3 Mar 2025 15:25:22 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20250303152521eucas1p20128508eb79e20c1e124155beaf8fb4d~pVGSKIY6g2156121561eucas1p2T; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20250303152521eusmtrp11cec5cf50ae69be4c7374f5795e1bf0a~pVGSJRS__0903609036eusmtrp1O; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) X-AuditID: cbfec7f4-c39fa70000004fb9-b6-67c5c9e15fb0 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 7D.E0.19654.1E9C5C76; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) Received: from AMDC4942.home (unknown [106.210.136.40]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20250303152521eusmtip1bab26c8c74d66ee7cf334e80346130f7~pVGRl100Z0673406734eusmtip1T; Mon, 3 Mar 2025 15:25:21 +0000 (GMT) From: Michal Wilczynski To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, drew@pdp7.com, guoren@kernel.org, wefu@redhat.com, p.zabel@pengutronix.de, m.szyprowski@samsung.com Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Michal Wilczynski Subject: [PATCH v1 2/2] reset: thead: Add TH1520 reset controller driver Date: Mon, 3 Mar 2025 16:25:11 +0100 Message-Id: <20250303152511.494405-3-m.wilczynski@samsung.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250303152511.494405-1-m.wilczynski@samsung.com> 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 X-Brightmail-Tracker: H4sIAAAAAAAAA01Se1BMcRTud+/t7m3N6loNh6JpxQxNS8m4BmGEK8zEMIZpsJNra+xWdm3U KKlE2eTNVoRBWlZma5PViq2s7bHNUMYkW5PHsBiPEEJsN4//vvN93/l955z5Ubi41HM0FRe/ lVPFyxQSUkhU3vnaEtxtr5dP6dQj5rLFgTHFdQ5PxnmvAmNeWHYRzMsCJ8ncNxeRjKHusYAp +1SMMY+ddwmmv7pKwGTVHCHmDmGN+hySzTLcwdj8H1PYtzfbSHZ/hR6xPcaxUeRa4ayNnCIu iVNNDt8gjLWnVwkSe0O2G8p6UTrKnJSLKAroMHj3c1kuElJi+iKCTFMhzhcfETT3XxDwRQ+C OscxLBd5DXSY+nQYL5QgaGrIIPniNYKG+mOk20XSodBVUuzpFnzo8wg6c77hbgGnFWB+Y0Bu PJxmwZR9fYAn6PHQdyJngBfR4XDf/ALxcf5Qc7t5wONFzwHT836S9wwDu+4pwb/p/3dwoLso eNJnEPDNEVCmbyR5PBxctopB3g8aD2sJHidAl+kDzuMdcF1rG8QzocPxjXRfCacnQpl5Mk/P A1tmEeKPNxQevhnGjzAUDlUex3laBHuzxbx7AhzV5v0NdVysHDwiC86TRcQBFFDw3zIF/y1T 8C/3NML1aCSnUSvlnDo0ntsmVcuUak28XBqToDSi37+p8aftYxUqcb2XWhFGISsCCpf4iNr3 1MvFoo2y5BROlbBepVFwaivypQjJSNHZmt1yMS2XbeU2c1wip/qjYpTX6HTMw3Y4e+X8fMuq juPfvxAt0UlvYwNHcUE+qH3Wtt3Ke87YgBWJ3U06S3CoWbs6esZ0X1d4TO/OhZ7Gh9KEUakb 6j7DiFtRdFykIGjx7Wt5hRfm9/uliDMfZVz1uWENwV1pqZsUYZ19M86k2PWBC2OSr7Q05p3r CbC1nlbu9z5YvsBulOp6vZ3IcKrp3LoKDTttfHWeszRCsLOyyffBLUtXw7Pw6EulzX5zHxAh cVNrw+YtLVzTrknVudq0Y2ZrgjMaPim27GP905LNh1oDgiNeLXeNyz81e+KTg0n2rKiiV8Vb Xi/quNS91xptFO+pOhtZy9YIy9OqPW5+b0u3LmmF2gMSQh0rC5mEq9SyX32RH9y8AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJIsWRmVeSWpSXmKPExsVy+t/xu7oPTx5NN9h5SdNizd5zTBbzj5xj tbh3aQuTxYu9jSwWL2fdY7O4vGsOm8XaI3fZLdZ/nc9kcffeCRaL/3t2sFu07J/C4sDtsWlV J5tHy9pjTB79fw083u+7yubRt2UVo8fnTXIBbFF6NkX5pSWpChn5xSW2StGGFkZ6hpYWekYm lnqGxuaxVkamSvp2NimpOZllqUX6dgl6GScbdrAXfDesWLv+O2MDY7NWFyMnh4SAicTW3zOZ uhi5OIQEljJKvFzyhBkiISNxrfslC4QtLPHnWhcbRNErRom50x6DFbEJGEk8WD6fFSQhIrCe UaLz6iYmkASzQJ7E6w3d7CC2sICHxNa2nWANLAKqEr9ndDKC2LwCdhKXd71ghNggL7H/4Fmw Gk4Be4mtz/6zgdhCQDX3Ts9ghagXlDg58wkLxHx5ieats5knMArMQpKahSS1gJFpFaNIamlx bnpusZFecWJucWleul5yfu4mRmAcbTv2c8sOxpWvPuodYmTiYDzEKMHBrCTCe6v9aLoQb0pi ZVVqUX58UWlOavEhRlOguycyS4km5wMjOa8k3tDMwNTQxMzSwNTSzFhJnJftyvk0IYH0xJLU 7NTUgtQimD4mDk6pBqZdlSIzJp1/23xY5H39Ks2FE+8ccoy+/WDGlQdmH7o3TLtdesI9557E 1XtqDccu6LRZTWox+FG5PHBebm3Kj61XPJUFvx5ikSlsWV/y33njsY+LvdLvT+u480Kw4Kta kcBSzcLy+U6crX1nAxXsY7dGX7RiWRzN3Jk54/ijObKbX9qezNjYukwqVF5F6Nb0iQxqds9E i+ZPUz1n/FzH6cbL91t0+AW+/mW3mGe/05HjJaOiy2VlKXGHeXNOFi2ZPoNT3pYl50SqIGOJ nfXnszJr5R7rTfjJw6z9b0paYPABMynLC+aRLW9dzY/5P5r5Ls952bEJLzm/lvFYGx24mbPm mU/vHovvkhfdWEQm9rkosRRnJBpqMRcVJwIATz68DiwDAAA= X-CMS-MailID: 20250303152521eucas1p20128508eb79e20c1e124155beaf8fb4d X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20250303152521eucas1p20128508eb79e20c1e124155beaf8fb4d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20250303152521eucas1p20128508eb79e20c1e124155beaf8fb4d References: <20250303152511.494405-1-m.wilczynski@samsung.com> Add reset controller driver for the T-HEAD TH1520 SoC that manages hardware reset lines for various subsystems. The driver currently implements support for GPU reset control, with infrastructure in place to extend support for NPU and Watchdog Timer resets in future updates. Reviewed-by: Philipp Zabel Signed-off-by: Michal Wilczynski --- MAINTAINERS | 1 + drivers/reset/Kconfig | 10 +++ drivers/reset/Makefile | 1 + drivers/reset/reset-th1520.c | 135 +++++++++++++++++++++++++++++++++++ 4 files changed, 147 insertions(+) create mode 100644 drivers/reset/reset-th1520.c diff --git a/MAINTAINERS b/MAINTAINERS index 819686e98214..e4a0a83b4c11 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -20425,6 +20425,7 @@ F: drivers/mailbox/mailbox-th1520.c F: drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c F: drivers/pinctrl/pinctrl-th1520.c F: drivers/pmdomain/thead/ +F: drivers/reset/reset-th1520.c F: include/dt-bindings/clock/thead,th1520-clk-ap.h F: include/dt-bindings/power/thead,th1520-power.h F: include/dt-bindings/reset/thead,th1520-reset.h diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig index 5b3abb6db248..fa0943c3d1de 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -272,6 +272,16 @@ config RESET_SUNXI help This enables the reset driver for Allwinner SoCs. =20 +config RESET_TH1520 + tristate "T-HEAD 1520 reset controller" + depends on ARCH_THEAD || COMPILE_TEST + select REGMAP_MMIO + help + This driver provides support for the T-HEAD TH1520 SoC reset controller, + which manages hardware reset lines for SoC components such as the GPU. + Enable this option if you need to control hardware resets on TH1520-bas= ed + systems. + config RESET_TI_SCI tristate "TI System Control Interface (TI-SCI) reset driver" depends on TI_SCI_PROTOCOL || (COMPILE_TEST && TI_SCI_PROTOCOL=3Dn) diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile index 677c4d1e2632..d6c2774407ae 100644 --- a/drivers/reset/Makefile +++ b/drivers/reset/Makefile @@ -35,6 +35,7 @@ obj-$(CONFIG_RESET_SIMPLE) +=3D reset-simple.o obj-$(CONFIG_RESET_SOCFPGA) +=3D reset-socfpga.o obj-$(CONFIG_RESET_SUNPLUS) +=3D reset-sunplus.o obj-$(CONFIG_RESET_SUNXI) +=3D reset-sunxi.o +obj-$(CONFIG_RESET_TH1520) +=3D reset-th1520.o obj-$(CONFIG_RESET_TI_SCI) +=3D reset-ti-sci.o obj-$(CONFIG_RESET_TI_SYSCON) +=3D reset-ti-syscon.o obj-$(CONFIG_RESET_TI_TPS380X) +=3D reset-tps380x.o diff --git a/drivers/reset/reset-th1520.c b/drivers/reset/reset-th1520.c new file mode 100644 index 000000000000..7874f0693e1b --- /dev/null +++ b/drivers/reset/reset-th1520.c @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2024 Samsung Electronics Co., Ltd. + * Author: Michal Wilczynski + */ + +#include +#include +#include +#include + +#include + + /* register offset in VOSYS_REGMAP */ +#define TH1520_GPU_RST_CFG 0x0 +#define TH1520_GPU_RST_CFG_MASK GENMASK(1, 0) + +/* register values */ +#define TH1520_GPU_SW_GPU_RST BIT(0) +#define TH1520_GPU_SW_CLKGEN_RST BIT(1) + +struct th1520_reset_priv { + struct reset_controller_dev rcdev; + struct regmap *map; +}; + +struct th1520_reset_map { + u32 bit; + u32 reg; +}; + +static const struct th1520_reset_map th1520_resets[] =3D { + [TH1520_RESET_ID_GPU] =3D { + .bit =3D TH1520_GPU_SW_GPU_RST, + .reg =3D TH1520_GPU_RST_CFG, + }, + [TH1520_RESET_ID_GPU_CLKGEN] =3D { + .bit =3D TH1520_GPU_SW_CLKGEN_RST, + .reg =3D TH1520_GPU_RST_CFG, + } +}; + +static inline struct th1520_reset_priv * +to_th1520_reset(struct reset_controller_dev *rcdev) +{ + return container_of(rcdev, struct th1520_reset_priv, rcdev); +} + +static int th1520_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + struct th1520_reset_priv *priv =3D to_th1520_reset(rcdev); + const struct th1520_reset_map *reset; + + reset =3D &th1520_resets[id]; + + return regmap_update_bits(priv->map, reset->reg, reset->bit, 0); +} + +static int th1520_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + struct th1520_reset_priv *priv =3D to_th1520_reset(rcdev); + const struct th1520_reset_map *reset; + + reset =3D &th1520_resets[id]; + + return regmap_update_bits(priv->map, reset->reg, reset->bit, + reset->bit); +} + +static const struct reset_control_ops th1520_reset_ops =3D { + .assert =3D th1520_reset_assert, + .deassert =3D th1520_reset_deassert, +}; + +static const struct regmap_config th1520_reset_regmap_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .fast_io =3D true, +}; + +static int th1520_reset_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct th1520_reset_priv *priv; + void __iomem *base; + int ret; + + priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + base =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(base)) + return PTR_ERR(base); + + priv->map =3D devm_regmap_init_mmio(dev, base, + &th1520_reset_regmap_config); + if (IS_ERR(priv->map)) + return PTR_ERR(priv->map); + + /* Initialize GPU resets to asserted state */ + ret =3D regmap_update_bits(priv->map, TH1520_GPU_RST_CFG, + TH1520_GPU_RST_CFG_MASK, 0); + if (ret) + return ret; + + priv->rcdev.owner =3D THIS_MODULE; + priv->rcdev.nr_resets =3D ARRAY_SIZE(th1520_resets); + priv->rcdev.ops =3D &th1520_reset_ops; + priv->rcdev.of_node =3D dev->of_node; + + return devm_reset_controller_register(dev, &priv->rcdev); +} + +static const struct of_device_id th1520_reset_match[] =3D { + { .compatible =3D "thead,th1520-reset" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, th1520_reset_match); + +static struct platform_driver th1520_reset_driver =3D { + .driver =3D { + .name =3D "th1520-reset", + .of_match_table =3D th1520_reset_match, + }, + .probe =3D th1520_reset_probe, +}; +module_platform_driver(th1520_reset_driver); + +MODULE_AUTHOR("Michal Wilczynski "); +MODULE_DESCRIPTION("T-HEAD TH1520 SoC reset controller"); +MODULE_LICENSE("GPL"); --=20 2.34.1