From patchwork Wed Feb 21 16:41:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565959 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 94D7E79DAE; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=G09L3rnymfBJ+QGK9YehSYfz6DRJbgGl1DVY/KLHWDNJ86djIZ0a6uTAR7r0DIsb3QcmCDNUnaJ5fk6liONsvfflUzZ6FA0STyROPhC1Ab60xvZ+I9lJHk/Yv1JO3Qdsw5fh7kv/+mRwpiiP7Ad1CoznfZFNQzx0CWhuXglp0Zk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=X+fk+3XslbjTnKyRgSxAmue6mFFlJmgxgQznW4Xq0rA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ba5jOdrsV0lhqm2ZPwk3TaimOXPR+qMah904Tv1rWGBam1X4/WMV28D8OeUiN92qFNTf42mHa7jzq7ygG2pi/Jk1HCUCe8gEQ2FFJe6maJWBpGQXfoj1ojFVUUkH/7OOfr4MdovreD9do1arPB9+yz4eKqz5Wea0nIka0CPl1L0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RP/ftiom; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="RP/ftiom" Received: by smtp.kernel.org (Postfix) with ESMTPS id 39F83C433C7; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=X+fk+3XslbjTnKyRgSxAmue6mFFlJmgxgQznW4Xq0rA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=RP/ftiomqnenfJJKvEKnXjwk+n89r33RqZ+GmIjqZGEWupqGtH40WAD1wVolJYPr0 voXiLHMRCaxx4xLolZwChucC0QugReyxuxxjk5r7OWavKrQPCIS2JrHujN7SJcor7C PR4jyKrWTjj8ULnHQCF/hNBPlZfvlPLgtNwaBBFXHP3lRjpDGMFee6de26vQIPdGJz HjqunMH6hDx5S+Cj/JbJQIDLOX0DY2rrVLfQDLXZVK+XTufqfRz5M557bF55kvIcsJ cL1Bxz6VO40PcBsY1UygcwtVWNluUEcq8GXUKbINtoF+nlm4YeEjxdKVAyak/fXi+P R0HIdzw7X7acw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 225A3C5478A; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:04 +0800 Subject: [PATCH v3 1/8] dt-bindings: clock: convert hisi-crg.txt to YAML Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-1-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=2410; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=e4ZAxJ8Lbk3HDBssdHe1QUVePLSWlZsNs3s4SArOgJI=; b=o0WcTEzhdU8xHqE/WOiTDhMlymGeAJSbT0qbwwa5mbHfJSLvNwLBA6ccO8D9OH4BioeTEAAGN HxVrA4cSw0tBzTfglLHLXYj3jscBdrScWngkPryQiHRP/8l7zCccLUQ X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen Also rename to hisilicon,hisi-crg.yaml. While at it, add "syscon" and "simple-mfd" compatibles to match the existing dts. Add reset-controller subnode for hisilicon,hi3798cv200-crg to match the existing hi3798cv200.dtsi. Signed-off-by: Yang Xiwen --- .../bindings/clock/hisilicon,hisi-crg.yaml | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml b/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml new file mode 100644 index 000000000000..2cf21cb5ff27 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml @@ -0,0 +1,69 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/hisilicon,hisi-crg.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Hisilicon SOC Clock and Reset Generator (CRG) module + +maintainers: + - Yang Xiwen + +description: | + Hisilicon SOC clock control module which supports the clocks, resets and + power domains on various SoCs. + +properties: + compatible: + items: + - enum: + - hisilicon,hi3516cv300-crg + - hisilicon,hi3516cv300-sysctrl + - hisilicon,hi3519-crg + - hisilicon,hi3798cv200-crg + - hisilicon,hi3798cv200-sysctrl + - const: syscon + - const: simple-mfd + + reg: + maxItems: 1 + + '#clock-cells': + const: 1 + + '#reset-cells': + const: 2 + description: | + First cell is reset request register offset. + Second cell is bit offset in reset request register. + + reset-controller: + type: object + description: | + Reset controller for Hi3798CV200 GMAC module + +required: + - compatible + - '#clock-cells' + +allOf: + - if: + properties: + compatible: + not: + contains: + const: hisilicon,hi3798cv200-crg + then: + properties: + reset-controller: false + +additionalProperties: false + +examples: + - | + clock-reset-controller@12010000 { + compatible = "hisilicon,hi3519-crg", "syscon", "simple-mfd"; + reg = <0x12010000 0x10000>; + #clock-cells = <1>; + #reset-cells = <2>; + }; From patchwork Wed Feb 21 16:41:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565960 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 94DBE8062A; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=f8h0f+bq8GPcZa+jT323L0e4vPaQc235iV5fivnTbT56Vt1GZJfssqEkRZ3C5gp0llUeeS+LU461o2BmsnOT+brqRBuYETdlbuerDHingwLbIfsDQ6Wg05eD17p3AtRTzRV/UCD3cZILAjhXmyk0sYjY/c7ZoMvqCfFKH+EW0K0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=L1+xlxuXwgUWeDmdy7tXdySuBS1Cj2Lrew9vVB8GLAQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=q/1Gn5UmraGc+z+ZnSq0PoB9bhSRuuTuSZg3QNVYPID2OvoLBtGVvvBF6qSEZHapJZhLpollTuBp0X6C4bpzeDyR44Icy4LmoaFuX1EdmuCbj/6Sn31HZDmXANm/sqZ+CfkiZVqfAED52t7fdyD2TmzOIUJANFv/ENxjeuRIwD0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VfDJIHCe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VfDJIHCe" Received: by smtp.kernel.org (Postfix) with ESMTPS id 4687DC43394; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=L1+xlxuXwgUWeDmdy7tXdySuBS1Cj2Lrew9vVB8GLAQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=VfDJIHCeJSvOQawjAI2kuNtRJQPzl8p3WZaO8kg0iYRDN81Fu1ZcfEqNxGnhDvla9 hOeC6YfOYV7NhndG2E3Dpp2RH8JqcXYuw+RSkU5SCmds18df9ZDdW1uLsv5nTCa/8c 3Bhs65rvoAsc3RMIE08MZDWWVOhgk1b4AA73BoUR+zP+FgsZkPBsZLDOQ8bsDKJ06N SX5sIkWCDfyzwdB75bG3wXI2Oh+c8iZDrvNTaEfHHZUbRGVWtCwnGWG1+5lzCfYj22 1qQhPxOvmzX1WwRLMG3udwxIrH1yNWK/IZ91yE9Xz6SF/MLZPMGDXeJsVkYkevOkMK wgGdSFocHB6Cw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F042C5478B; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:05 +0800 Subject: [PATCH v3 2/8] ARM: dts: hisilicon: add missing compatibles to CRG node Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-2-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=766; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=tSrn3Xx19dNkcc4kh+ZnlOdA9N28v4ji6ZA0jvly4RQ=; b=5BCNDQfT7CjgnN2jJMO2HjSM6j0VK6bm+CdCgzfdrrknvjWDL3zs2VSGfNMtjj3l0/lNw+ty2 W9EU7FpZ9GMATHftPFrA4bNKEeHKJq62DDrU2GSkptjMtbKGq9kDWxK X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen Add "syscon" and "simple-mfd" compatibles to CRG node due to recent binding changes. Signed-off-by: Yang Xiwen --- arch/arm/boot/dts/hisilicon/hi3519.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/hisilicon/hi3519.dtsi b/arch/arm/boot/dts/hisilicon/hi3519.dtsi index a42b71cdc5d7..da46e01b8fdc 100644 --- a/arch/arm/boot/dts/hisilicon/hi3519.dtsi +++ b/arch/arm/boot/dts/hisilicon/hi3519.dtsi @@ -35,7 +35,7 @@ clk_3m: clk_3m { }; crg: clock-reset-controller@12010000 { - compatible = "hisilicon,hi3519-crg"; + compatible = "hisilicon,hi3519-crg", "syscon", "simple-mfd"; #clock-cells = <1>; #reset-cells = <2>; reg = <0x12010000 0x10000>; From patchwork Wed Feb 21 16:41:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565962 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 94E3481725; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=VD5LJd6HXUhmV9ZHBIV8YDA5ZiU/J2IootCzYCM9w8LDWshs3a+sL6shXSJHgJZDVgDE2pJxiew2ZvafAtzkj1EkbhnOd+U5VXzuezwOtI5yRD0ReqvSxiCAWGQTicERz0gBYMMAa4HTm9/MmCF2ahNhl2au0DhwyHvDGMQv9ug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=OOdaJFALRHGXBd34rb0/0hr6HsgZMzjt0MMlzI7nbpo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Fis/XpWfBflFi799/JHh5Dj3gLjHSYhMQ/omFZzaLtkc9oIKbGnwsZw1unVxUKazekFXom8QszIZdFFnWFPi/QRUp3IxQGEdTjgz1ioolXPGxIAIUdRVB6NzHCZvZoOwi89Q5zuFEqpjvJDy03+TMvP0Jd5ATFOgMppTwWyLehA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=JsXTxtav; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="JsXTxtav" Received: by smtp.kernel.org (Postfix) with ESMTPS id 5130FC433B2; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=OOdaJFALRHGXBd34rb0/0hr6HsgZMzjt0MMlzI7nbpo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=JsXTxtavOh9YB96SwDJXT8tOmpqLYduSmJNt13ik1dPI3l9A5EmqfkwYIZJWCxvap pG98VlszgbX74x94eMnVvw0sbLWc3VanywNi1g7msfNQp6AZxlhN15GtG5GIhT36zU tR8OZx8SNQwTQ1/VvcgRP+K5SRgiZPwfGVlkmjsHCMDfc96hNqcItPskECoFNo6ZLF YT9DJkpCvlox8I2NiT22niQnaJqbVA7mGUOAT8PW3wevkExGzPIX4NTL/9K7StrDfo 6FLit7HOj23+nthCvgVAsrzSrywkqSJ9WqODB3BwZFcewCNVVutObZtQ/JeFv3pWcX n37N+BUUzz2GQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A285C5478D; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:06 +0800 Subject: [PATCH v3 3/8] dt-bindings: clock: histb-clock: split into two header files Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-3-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=6614; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=Ab+yt1Z4j61f2SvCQw17xUNs7xtNwj+ryECKTVK1L6U=; b=gIgeXOl2ii3cla43jE+nsjS1vg8Yj7E6SEh5D5qAsR6XVhsP9GDpyvjZxWWpkXm+HcNhmIEUK WA6VcFDTRZNDoGjyaqy9tcFCmmFL0pCRxBHBbApKAE6h0UDgnvsi8Am X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen The CRG driver between different SoCs provides different clocks and resets. We should not provide a generic header file across all HiSTB SoCs, instead each CRG driver should provide its own. Split histb-clock.h into two files: hisilicon,hi3798cv200-crg.h and hisilicon,hi3798cv200-sysctrl.h. This header file is for Hi3798CV200 only actually. For other HiSTB SoCs, some clock definitions are missing. Create a new histb-clock.h to include these two files for backward compatibility only. Deprecate this file as well. Signed-off-by: Yang Xiwen Acked-by: Krzysztof Kozlowski --- .../dt-bindings/clock/hisilicon,hi3798cv200-crg.h | 62 ++++++++++++++++++ .../clock/hisilicon,hi3798cv200-sysctrl.h | 17 +++++ include/dt-bindings/clock/histb-clock.h | 73 +++------------------- 3 files changed, 87 insertions(+), 65 deletions(-) diff --git a/include/dt-bindings/clock/hisilicon,hi3798cv200-crg.h b/include/dt-bindings/clock/hisilicon,hi3798cv200-crg.h new file mode 100644 index 000000000000..7c8928192af6 --- /dev/null +++ b/include/dt-bindings/clock/hisilicon,hi3798cv200-crg.h @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (c) 2016 HiSilicon Technologies Co., Ltd. + */ + +#ifndef __DTS_HI3798CV200_CRG_H +#define __DTS_HI3798CV200_CRG_H + +/* clocks provided by core CRG */ +#define HISTB_OSC_CLK 0 +#define HISTB_APB_CLK 1 +#define HISTB_AHB_CLK 2 +#define HISTB_UART1_CLK 3 +#define HISTB_UART2_CLK 4 +#define HISTB_UART3_CLK 5 +#define HISTB_I2C0_CLK 6 +#define HISTB_I2C1_CLK 7 +#define HISTB_I2C2_CLK 8 +#define HISTB_I2C3_CLK 9 +#define HISTB_I2C4_CLK 10 +#define HISTB_I2C5_CLK 11 +#define HISTB_SPI0_CLK 12 +#define HISTB_SPI1_CLK 13 +#define HISTB_SPI2_CLK 14 +#define HISTB_SCI_CLK 15 +#define HISTB_FMC_CLK 16 +#define HISTB_MMC_BIU_CLK 17 +#define HISTB_MMC_CIU_CLK 18 +#define HISTB_MMC_DRV_CLK 19 +#define HISTB_MMC_SAMPLE_CLK 20 +#define HISTB_SDIO0_BIU_CLK 21 +#define HISTB_SDIO0_CIU_CLK 22 +#define HISTB_SDIO0_DRV_CLK 23 +#define HISTB_SDIO0_SAMPLE_CLK 24 +#define HISTB_PCIE_AUX_CLK 25 +#define HISTB_PCIE_PIPE_CLK 26 +#define HISTB_PCIE_SYS_CLK 27 +#define HISTB_PCIE_BUS_CLK 28 +#define HISTB_ETH0_MAC_CLK 29 +#define HISTB_ETH0_MACIF_CLK 30 +#define HISTB_ETH1_MAC_CLK 31 +#define HISTB_ETH1_MACIF_CLK 32 +#define HISTB_COMBPHY1_CLK 33 +#define HISTB_USB2_BUS_CLK 34 +#define HISTB_USB2_PHY_CLK 35 +#define HISTB_USB2_UTMI_CLK 36 +#define HISTB_USB2_12M_CLK 37 +#define HISTB_USB2_48M_CLK 38 +#define HISTB_USB2_OTG_UTMI_CLK 39 +#define HISTB_USB2_PHY1_REF_CLK 40 +#define HISTB_USB2_PHY2_REF_CLK 41 +#define HISTB_COMBPHY0_CLK 42 +#define HISTB_USB3_BUS_CLK 43 +#define HISTB_USB3_UTMI_CLK 44 +#define HISTB_USB3_PIPE_CLK 45 +#define HISTB_USB3_SUSPEND_CLK 46 +#define HISTB_USB3_BUS_CLK1 47 +#define HISTB_USB3_UTMI_CLK1 48 +#define HISTB_USB3_PIPE_CLK1 49 +#define HISTB_USB3_SUSPEND_CLK1 50 + +#endif /* __DTS_HI3798CV200_CRG_H */ diff --git a/include/dt-bindings/clock/hisilicon,hi3798cv200-sysctrl.h b/include/dt-bindings/clock/hisilicon,hi3798cv200-sysctrl.h new file mode 100644 index 000000000000..ca07020e0f8c --- /dev/null +++ b/include/dt-bindings/clock/hisilicon,hi3798cv200-sysctrl.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (c) 2016 HiSilicon Technologies Co., Ltd. + */ + +#ifndef __DTS_HI3798CV200_SYSCTRL_H +#define __DTS_HI3798CV200_SYSCTRL_H + +/* clocks provided by mcu CRG */ +#define HISTB_MCE_CLK 1 +#define HISTB_IR_CLK 2 +#define HISTB_TIMER01_CLK 3 +#define HISTB_LEDC_CLK 4 +#define HISTB_UART0_CLK 5 +#define HISTB_LSADC_CLK 6 + +#endif /* __DTS_HI3798CV200_SYSCTRL_H */ diff --git a/include/dt-bindings/clock/histb-clock.h b/include/dt-bindings/clock/histb-clock.h index e64e5770ada6..56b39eb99d2c 100644 --- a/include/dt-bindings/clock/histb-clock.h +++ b/include/dt-bindings/clock/histb-clock.h @@ -1,70 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ /* - * Copyright (c) 2016 HiSilicon Technologies Co., Ltd. + * DEPRECATED + * + * Each CRG driver should have its own clock number definitions header file. + * This file is only reserved for backward compatibility for Hi3798CV200 */ -#ifndef __DTS_HISTB_CLOCK_H -#define __DTS_HISTB_CLOCK_H +#warning "This header file is deprecated, include hisilicon,hi3798cv200-crg.h \ +and hisilicon,hi3798cv200-sysctrl.h directly instead" -/* clocks provided by core CRG */ -#define HISTB_OSC_CLK 0 -#define HISTB_APB_CLK 1 -#define HISTB_AHB_CLK 2 -#define HISTB_UART1_CLK 3 -#define HISTB_UART2_CLK 4 -#define HISTB_UART3_CLK 5 -#define HISTB_I2C0_CLK 6 -#define HISTB_I2C1_CLK 7 -#define HISTB_I2C2_CLK 8 -#define HISTB_I2C3_CLK 9 -#define HISTB_I2C4_CLK 10 -#define HISTB_I2C5_CLK 11 -#define HISTB_SPI0_CLK 12 -#define HISTB_SPI1_CLK 13 -#define HISTB_SPI2_CLK 14 -#define HISTB_SCI_CLK 15 -#define HISTB_FMC_CLK 16 -#define HISTB_MMC_BIU_CLK 17 -#define HISTB_MMC_CIU_CLK 18 -#define HISTB_MMC_DRV_CLK 19 -#define HISTB_MMC_SAMPLE_CLK 20 -#define HISTB_SDIO0_BIU_CLK 21 -#define HISTB_SDIO0_CIU_CLK 22 -#define HISTB_SDIO0_DRV_CLK 23 -#define HISTB_SDIO0_SAMPLE_CLK 24 -#define HISTB_PCIE_AUX_CLK 25 -#define HISTB_PCIE_PIPE_CLK 26 -#define HISTB_PCIE_SYS_CLK 27 -#define HISTB_PCIE_BUS_CLK 28 -#define HISTB_ETH0_MAC_CLK 29 -#define HISTB_ETH0_MACIF_CLK 30 -#define HISTB_ETH1_MAC_CLK 31 -#define HISTB_ETH1_MACIF_CLK 32 -#define HISTB_COMBPHY1_CLK 33 -#define HISTB_USB2_BUS_CLK 34 -#define HISTB_USB2_PHY_CLK 35 -#define HISTB_USB2_UTMI_CLK 36 -#define HISTB_USB2_12M_CLK 37 -#define HISTB_USB2_48M_CLK 38 -#define HISTB_USB2_OTG_UTMI_CLK 39 -#define HISTB_USB2_PHY1_REF_CLK 40 -#define HISTB_USB2_PHY2_REF_CLK 41 -#define HISTB_COMBPHY0_CLK 42 -#define HISTB_USB3_BUS_CLK 43 -#define HISTB_USB3_UTMI_CLK 44 -#define HISTB_USB3_PIPE_CLK 45 -#define HISTB_USB3_SUSPEND_CLK 46 -#define HISTB_USB3_BUS_CLK1 47 -#define HISTB_USB3_UTMI_CLK1 48 -#define HISTB_USB3_PIPE_CLK1 49 -#define HISTB_USB3_SUSPEND_CLK1 50 - -/* clocks provided by mcu CRG */ -#define HISTB_MCE_CLK 1 -#define HISTB_IR_CLK 2 -#define HISTB_TIMER01_CLK 3 -#define HISTB_LEDC_CLK 4 -#define HISTB_UART0_CLK 5 -#define HISTB_LSADC_CLK 6 - -#endif /* __DTS_HISTB_CLOCK_H */ +#include "hisilicon,hi3798cv200-crg.h" +#include "hisilicon,hi3798cv200-sysctrl.h" From patchwork Wed Feb 21 16:41:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565963 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 94E6B8172A; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=J9V9AA5dkADcDGewghWI05DxVdjvIkSCztVucoZLODFxDEaoXa0DaK/3SJry4eYV5C3sZ0fG0l6cyaazMAmkQQsHPcdbSbg3PW1msZv00KHGFsMLNK1BaWgHJE24j3HGVs4G5vcHLFfhBIRtk7J7UktDNA1Tub+ubaRCgFKQVxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=iXlnN86FBtHze7pc7TT1EzncHtGJddooON9T6JhruhI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=l7M6T/n0tzxscOfuIBqRtB0fZ5oCADZ5mFNPHcwdVhdWdoQNdABWzUARfvD3gNdCMWVfTzsiDW51XFv+JUSZg4tsCllhanBwQME1dMzvYProMOZNl5/z7c42HxNYOK4LtGgwou1n1336SWvNcIZEjnDi93XRgzwVb52dHPtT7Wk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=pxTXyMRz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="pxTXyMRz" Received: by smtp.kernel.org (Postfix) with ESMTPS id 5C120C43330; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=iXlnN86FBtHze7pc7TT1EzncHtGJddooON9T6JhruhI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=pxTXyMRzHODhCs8m3WPDg1yVwqJx9/JRGrBWLV1vleIAqUZZ7vPvT3Rcuj+6WSZHJ Nk5ieMU/YYpxeEF5Uwh9KqZDXfZZIrpAerbzkxjJNEvThsGhjyVGYX7DlWoBuWCyvJ kcsquEhHlEx2MYAmSEmYck9WLdYrfuF6n/VnK3tNrA4k9nPkgKXwdO8OkIYi1Q4HCt vJEHxvCzGBk6vvFk8B6JIImNVsAgWAr6fahIYOhG24JTaIG2PAbdS6EphTeu5zZSji ig5l4cX538hFQYkOGaULM/YDl803RDtJ0p7Q12bZYuQ332Kfr7AHLTMOY2XYq+n4mu c1faigvXrvYzQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 453EEC54790; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:07 +0800 Subject: [PATCH v3 4/8] arm64: dts: hisilicon: fix include path Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-4-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=950; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=zO+w8jqaXi8Ww2B8vF6SfS+3nCbKAcDggVh4EP/9jpU=; b=/zpgyb2aPCEvtAZM8P8wB2YLiMdL3+rPSs9RR8eprCxJZflDp5FlJCGz6DZwBdVesZ59D0bfU eLLy8gUqeBYDznG+OfKhtU8+1mxf88705t7+iBjPjQzmdz1c5XsFRgd X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen The generic histb-clock.h header is now deprecated. Fix it by including individual binding header files directly instead. Signed-off-by: Yang Xiwen --- arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi b/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi index ed1b5a7a6067..1e6a8a8829b1 100644 --- a/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi @@ -5,7 +5,8 @@ * Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd. */ -#include +#include +#include #include #include #include From patchwork Wed Feb 21 16:41:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565966 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 CD3B282D97; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=Z5w3ossWxLNDVIUpsAXMfIn0jwjkVD0hfUOfT6RBI/dsA78+GdJl1F/un+xm8YqNDELmyVQzdxMlv1BHz7NVhFhiJnbROZCd8+cMwbiFD6guwbxNoPBYES0DDgUubtspYaMBTgSYFUKH/ePd9k1JFCvAWwsEga7YRAwM82nCbL0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=w3+OCVOg6gitH+bg/hrW+YuNsjWKvSsvmr6SnY+BX9A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Sm+VMICrgKbmWa2g/QeOqEgJ75j+DMx4uOwhef/193LBOLyMxuV33CL+uFLiIaOtRRjCUfPOAN5Tut3A5aXMC2gFq6eb08mrG/A/K9veMh/aJya4CN+5nWd3LfSvPzcHYuWcGl9wNyWbr9sat2tl32NKnCfhUOC8zFEqEqU+jdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kNT/6yhp; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kNT/6yhp" Received: by smtp.kernel.org (Postfix) with ESMTPS id 68F02C43143; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=w3+OCVOg6gitH+bg/hrW+YuNsjWKvSsvmr6SnY+BX9A=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=kNT/6yhpWGoWq6Cx9lK7RefeIrrkmEj9i08v0tfkqGrq5dDEViLHsbXFm+wQl1fLJ OiXCUEpxpJhpWMbwjrFElv6WjSdimCCWa44gi+HL/gzVMBfr94zzennQ/TtDLIg23Z bXZ1HjTc2idcbMZlhT+T70giXWlp1Tptvf0zSaUq8PgWCBlIvkO8WTYABCiBmDoBYb ZGWCGFHowPMAhZGUwrwVggONMUE5DyPfICbO2840CldtSbT1j3BZfbGLvwb6yU2QND TrTruJWLNRjMNazwxtZFlgMBHS9xrDvCcDwvuD3D4J9KiJDm6wHO14yHxrzv24J3RZ AZCgcSp4ciQIg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 50324C5478C; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:08 +0800 Subject: [PATCH v3 5/8] clk: hisilicon: fix include path for crg-hi3798cv200 Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-5-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=857; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=mym+b8HCE92ettwNUwgVrGSN23Zmo9f3k4P4EePsjQY=; b=HLw89V3skgYuIgXNObji690aUCG4vCg3pPngAlQUefQDRmWgy3nuR0CeMUiJFsI9E0pdBvCbv MAJ4hURdBW4CPWHSz+j7FQKY1CknWA3vYvXXyzz+IPsuxVfVLcABYoT X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen histb-clock.h is now deprecated. Include hisilicon,hi3798cv200-crg.h and hisilicon-sysctrl.h directly instead. Signed-off-by: Yang Xiwen --- drivers/clk/hisilicon/crg-hi3798cv200.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/clk/hisilicon/crg-hi3798cv200.c b/drivers/clk/hisilicon/crg-hi3798cv200.c index f651b197e45a..3e26a8f6df36 100644 --- a/drivers/clk/hisilicon/crg-hi3798cv200.c +++ b/drivers/clk/hisilicon/crg-hi3798cv200.c @@ -5,7 +5,8 @@ * Copyright (c) 2016 HiSilicon Technologies Co., Ltd. */ -#include +#include +#include #include #include #include From patchwork Wed Feb 21 16:41:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565965 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 C106882D6B; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=CyEnBq+8HvFOay7a/tH5oCJSdPFGu8b0B4+4KGnwxfFRDXID/icXnE+HP6Cc5sNulDshWbEwISuJC6UwZTgp3/gBlu/XD0NFHXCzsQJrvRnK1+XI/sAtnyDGSxaFWukj5vme1axmg7OHOaRhXsul9voM770TFw3uIYt1VApqpXs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=jQ0Gp3tRoAYTrssZo+hDxMLFbJdD/KIwBxV4lOrp4wE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ub0i4Wqy1GDYARWJw8LL4szdbdMu3g8x5K/Z9/DBGOXfme6PzMQY13JykkYFXBLfGDA7sztuBBaLS76fULpUt9se/NGvjRBazJxA+ETBet3DwY9/03q8A69GAu8JsUoBHhbJeRDZ6nsaLcu0kUA8+L2viCeFx3tt/nATPx0u4Ps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=H+MiuG1/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="H+MiuG1/" Received: by smtp.kernel.org (Postfix) with ESMTPS id 71D2AC4166C; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=jQ0Gp3tRoAYTrssZo+hDxMLFbJdD/KIwBxV4lOrp4wE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=H+MiuG1/crM/qEcyJUG0GVNTqqbZqSni17q9DyxfSFaP2SghSvAp9W/Zr3OzWWbuv CtHWcRfLPU6RgS7bnXytwE+ycRsUltirOHxCJ8cRIQbrp643uzrXhNPzcHDJmIKh1H CyWTYm26A1Jc5PHySv/UdGoQanxlDsHmP7BbPS5X3nqutW9AI5N6ZXcWja1vVaD71V z6UZ5J2K71wcoNh/P7ETX5ilKtlklwe4/l14eoi8SMtylLNHCXI34R1leeWMnIAMEq t/ljiMGlIybU6SzDoSZna2tFsfBCoZIqZcScO3E+mNzQJ6U66+8ebdzYZis1GL79f2 4tkVTEnx8I6UQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60BAAC5478A; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:09 +0800 Subject: [PATCH v3 6/8] dt-bindings: clock: hisilicon,clock-reset-controller: add Hi3798MV200 SoC Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-6-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=838; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=loFK3Ng4KJm9y+N05vI2yM21cRI/NAqIUEkGNGWtP4Y=; b=RE3IgR4NkTHq8jI65Vbtpjsp+Mb81PnG6e02E5loAnlQCbCQ+3BGgQxeJejJjpWTgvhLIPGKJ XT30dX1tsfdDvnjuZJTOEarmYcyO8wDtkAGq9qZZwYC44VFMBP8JnMG X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen This SoC is similar to Hi3798CV200. Signed-off-by: Yang Xiwen --- Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml b/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml index 2cf21cb5ff27..41d35de47252 100644 --- a/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml +++ b/Documentation/devicetree/bindings/clock/hisilicon,hisi-crg.yaml @@ -22,6 +22,8 @@ properties: - hisilicon,hi3519-crg - hisilicon,hi3798cv200-crg - hisilicon,hi3798cv200-sysctrl + - hisilicon,hi3798mv200-crg + - hisilicon,hi3798mv200-sysctrl - const: syscon - const: simple-mfd From patchwork Wed Feb 21 16:41:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565967 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 DE9DA839EA; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533682; cv=none; b=K0k/46oW6boN+CYZRWV2T7BlfZ29FyRQxass+jCtwcYcJhreUzFF3Sy108DQ2xEvMvcwh9IH4aDgFDQO1s7zEXd5s2bv85eGyUzEdtBM9zMbvrKlvcyq+UC9gf1yRCIkGspcU/akbCkc30Mz0eVcy5Zex97p0dwfWlYFd5BBoEI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533682; c=relaxed/simple; bh=9m5EheU4d2kYLN7XPOS+yJFs0DWkYRSbnky/8bpWpQE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AeDtSOx/eup2wCzr4n4g9JId7TNEu2uNi3SBAMJEDdMkTsPpRL/gj3Y+zA8hO/vmYFFQjJlYzYkVT2B56FFE4KM5BOtvISmY6FzkxlbFx3GEOQILYmzhCs5Hnj+MqevkpSUp0UkomQLbGsCrfn5Av5dh2EOAcG8WLa3s6DEyzqU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=OKJkOO4G; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="OKJkOO4G" Received: by smtp.kernel.org (Postfix) with ESMTPS id 7B789C4167D; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=9m5EheU4d2kYLN7XPOS+yJFs0DWkYRSbnky/8bpWpQE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=OKJkOO4GYmDAFmWIHPp6UL2WwmCelBK6S+cDKXicr75El5ynu0V8kdHQxlWqDPuNh AJMrqMvp4p+LMF+woJ4/NSw0HHchTA3hRHEqBMCGt9kpp6OObsiZoQXCaSxRBpmtc1 LyUiBjpV6DOh3Sj/SweUBPEaUKEMRsthOjTV2cSwalwQ3hE2qmojIR7Zjyfm8oxrg1 aPkR0XyXQb7Aqrk4nbe2jYOLnaMOxfns4ORp0TEMQcvJ49V8MZkPA3b0XBrA/M7uC8 3IffJyT0dne4G+RKbPqhEu5542msefqrK2iyCkdochBBYuUCXJPmW/o0//zVlCjHXX /3Rvu8g58gXnw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6C795C48BEB; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:10 +0800 Subject: [PATCH v3 7/8] dt-bindings: clock: hisilicon: add clock definitions for Hi3798MV200 Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-7-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=8314; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=/Zx9rOJCxdEvcDD/AuxMNiUuDXM5Wsl3T+6VUT3KaKI=; b=whs7v2aNA0BTocw7m1gSeDckVZqWdslWxZg7LAUDiTwV3Or3n/F14jLDBLokICyKG1Hx0CBeu GPdhxQR2L/OBcgDENNwEr4ZpvlDRaBgSi2O3tpYPQN+SGk99X1gYG6U X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen Add clock definitions for core CRG and mcu CRG for Hi3798MV200 SoC. Signed-off-by: Yang Xiwen --- .../dt-bindings/clock/hisilicon,hi3798mv200-crg.h | 150 +++++++++++++++++++++ .../clock/hisilicon,hi3798mv200-sysctrl.h | 21 +++ 2 files changed, 171 insertions(+) diff --git a/include/dt-bindings/clock/hisilicon,hi3798mv200-crg.h b/include/dt-bindings/clock/hisilicon,hi3798mv200-crg.h new file mode 100644 index 000000000000..bf6b6b855724 --- /dev/null +++ b/include/dt-bindings/clock/hisilicon,hi3798mv200-crg.h @@ -0,0 +1,150 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) 2024 Yang Xiwen + */ + +#ifndef __DTS_HI3798MV200_CRG_H +#define __DTS_HI3798MV200_CRG_H + +/* clocks provided by core CRG */ +#define HI3798MV200_OSC_CLK 0 +#define HI3798MV200_APB_CLK 1 +#define HI3798MV200_AHB_CLK 2 +#define HI3798MV200_APLL_CLK 3 +#define HI3798MV200_BPLL_CLK 4 +#define HI3798MV200_DPLL_CLK 5 +#define HI3798MV200_VPLL_CLK 6 +#define HI3798MV200_HPLL_CLK 7 +#define HI3798MV200_EPLL_CLK 8 +#define HI3798MV200_QPLL_CLK 9 +#define HI3798MV200_PERI_DIV_CLK 10 +#define HI3798MV200_CORE_BUS_CLK 11 +#define HI3798MV200_MDE0_BUS_CLK 12 +#define HI3798MV200_MDE1_BUS_CLK 13 +#define HI3798MV200_MDE2_BUS_CLK 14 +#define HI3798MV200_MDE3_BUS_CLK 15 +/* UART1 does not exist */ +#define HI3798MV200_UART2_CLK 16 +#define HI3798MV200_UART3_CLK 17 +#define HI3798MV200_I2C0_CLK 18 +#define HI3798MV200_I2C1_CLK 19 +#define HI3798MV200_I2C2_CLK 20 +#define HI3798MV200_SPI0_CLK 21 +#define HI3798MV200_SCI0_CLK 22 +#define HI3798MV200_SCI1_CLK 23 +#define HI3798MV200_VDH_CLK 24 +#define HI3798MV200_VDH_DSP_CLK 25 +#define HI3798MV200_JPGD_CLK 26 +#define HI3798MV200_PGD_CLK 27 +#define HI3798MV200_BPD_CLK 28 +#define HI3798MV200_VENV_CLK 29 +#define HI3798MV200_VENV_AXI_CLK 30 +#define HI3798MV200_JPGE_CLK 31 +#define HI3798MV200_TDE_CLK 32 +#define HI3798MV200_SDIO0_BIU_CLK 33 +#define HI3798MV200_SDIO0_CIU_CLK 34 +#define HI3798MV200_SDIO0_DRV_CLK 35 +#define HI3798MV200_SDIO0_SAMPLE_CLK 36 +#define HI3798MV200_MMC_BIU_CLK 37 +#define HI3798MV200_MMC_CIU_CLK 38 +#define HI3798MV200_MMC_DRV_CLK 39 +#define HI3798MV200_MMC_SAMPLE_CLK 40 +#define HI3798MV200_SATA_CLK 41 +#define HI3798MV200_SATA_RX_CLK 42 +#define HI3798MV200_SATA_CKO_ALIVE_CLK 43 +#define HI3798MV200_SATA_TX_CLK 44 +#define HI3798MV200_USB3_BUS_CLK 45 +#define HI3798MV200_USB3_REF_CLK 46 +#define HI3798MV200_USB3_SUSPEND_CLK 47 +#define HI3798MV200_USB3_PIPE_CLK 48 +#define HI3798MV200_USB3_UTMI_CLK 49 +#define HI3798MV200_USB3_GS_CLK 50 +#define HI3798MV200_USB3_GM_CLK 51 +#define HI3798MV200_USB2_BUS_CLK 52 +#define HI3798MV200_USB2_48M_CLK 53 +#define HI3798MV200_USB2_12M_CLK 54 +#define HI3798MV200_USB2_OTG_UTMI_CLK 55 +#define HI3798MV200_USB2_HST_PHY_CLK 56 +#define HI3798MV200_USB2_UTMI0_CLK 57 +#define HI3798MV200_USB2_UTMI1_CLK 58 +#define HI3798MV200_USB2_PHY1_REF_CLK 59 +#define HI3798MV200_USB2_PHY2_REF_CLK 60 +#define HI3798MV200_SHA0_CLK 61 +#define HI3798MV200_SHA1_CLK 62 +#define HI3798MV200_PMC_CLK 63 +#define HI3798MV200_GSF_CLK 64 +#define HI3798MV200_GMAC_CLK 65 +#define HI3798MV200_EXT_NETPHY_CLK 66 +#define HI3798MV200_ETH_BUS_CLK 67 +#define HI3798MV200_ETH_CLK 68 +#define HI3798MV200_GPU_CLK 69 +#define HI3798MV200_VO_BUS 70 +#define HI3798MV200_VO_SD 71 +#define HI3798MV200_VO_SDATE 72 +#define HI3798MV200_VDAC_CH0_CLK 73 +#define HI3798MV200_VO_HD 74 +#define HI3798MV200_VDP_CLK 75 +#define HI3798MV200_VDP_CFG_CLK 76 +#define HI3798MV200_VPSS_CLK 77 +#define HI3798MV200_PVR_BUS_CLK 78 +#define HI3798MV200_PVR_DMX_CLK 79 +#define HI3798MV200_PVR_27M_CLK 80 +#define HI3798MV200_PVR_TSI1_CLK 81 +#define HI3798MV200_PVR_TSI2_CLK 82 +#define HI3798MV200_PVR_TSI3_CLK 83 +#define HI3798MV200_PVR_TSI4_CLK 84 +#define HI3798MV200_PVR_TS0_CLK 85 +#define HI3798MV200_PVR_TSOUT0_CLK 86 +#define HI3798MV200_HDMITX_SSC_CLK 87 +#define HI3798MV200_HDMITX_SSC_BYPASS_CLK 88 +#define HI3798MV200_HDMITX_CTRL_24M_CLK 89 +#define HI3798MV200_HDMITX_CTRL_CEC_CLK 90 +#define HI3798MV200_HDMITX_CTRL_60M_CLK 91 +#define HI3798MV200_HDMITX_CTRL_AS_CLK 92 +#define HI3798MV200_HDMITX_PHY_TMDS_CLK 93 +#define HI3798MV200_ADAC_CLK 94 +#define HI3798MV200_AIAO_CLK 95 +#define HI3798MV200_VDAC_CHOP_CLK 96 +#define HI3798MV200_WDG0_CLK 97 +#define HI3798MV200_COMBPHY_CLK 98 +#define HI3798MV200_PCIE_BUS_CLK 99 +#define HI3798MV200_PCIE_SYS_CLK 100 +#define HI3798MV200_PCIE_PIPE_CLK 101 +#define HI3798MV200_PCIE_AUX_CLK 102 +#define HI3798MV200_SDIO1_BIU_CLK 103 +#define HI3798MV200_SDIO1_CIU_CLK 104 +#define HI3798MV200_SDIO1_DRV_CLK 105 +#define HI3798MV200_SDIO1_SAMPLE_CLK 106 +#define HI3798MV200_VENC_SMMU_CLK 107 +#define HI3798MV200_TDE_SMMU_CLK 108 +#define HI3798MV200_JPGD_SMMU_CLK 109 +#define HI3798MV200_VDH_SMMU_CLK 110 +#define HI3798MV200_VDP_SMMU_CLK 111 +#define HI3798MV200_VPSS_SMMU_CLK 112 +#define HI3798MV200_PGD_SMMU_CLK 113 +#define HI3798MV200_VO_BP_CLK 114 +#define HI3798MV200_VDP_G4_CLK 115 +#define HI3798MV200_VDP_V3_CLK 116 +#define HI3798MV200_VDP_SD_CLK 117 +#define HI3798MV200_VDP_WBC_CP_CLK 118 +#define HI3798MV200_VDP_WBC_GP_CLK 119 +#define HI3798MV200_VDP_WBC_HD_CLK 120 +#define HI3798MV200_VDP_G3_CLK 121 +#define HI3798MV200_VDP_G1_CLK 122 +#define HI3798MV200_VDP_G0_CLK 123 +#define HI3798MV200_VDP_V1_CLK 124 +#define HI3798MV200_VDP_V0_CLK 125 +#define HI3798MV200_VDP_HD_CLK 126 +#define HI3798MV200_CIPHER_SMMU_CLK 127 +#define HI3798MV200_FMC_CLK 128 +#define HI3798MV200_FEPHY_CLK 129 +#define HI3798MV200_DMAC_CLK 130 +#define HI3798MV200_GZIP_CLK 131 +#define HI3798MV200_GZIP_AXI_CLK 132 +#define HI3798MV200_GZIP_APB_CLK 133 +#define HI3798MV200_PM_CLK 134 +#define HI3798MV200_FRACDIV_CLK 135 + +#define HI3798MV200_CRG_CLK_COUNT 136 + +#endif /* __DTS_HI3798MV200_CRG_H */ diff --git a/include/dt-bindings/clock/hisilicon,hi3798mv200-sysctrl.h b/include/dt-bindings/clock/hisilicon,hi3798mv200-sysctrl.h new file mode 100644 index 000000000000..82411d28a8c7 --- /dev/null +++ b/include/dt-bindings/clock/hisilicon,hi3798mv200-sysctrl.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (c) 2024 Yang Xiwen + */ + +#ifndef __DTS_HI3798MV200_SYSCTRL_H +#define __DTS_HI3798MV200_SYSCTRL_H + +/* clocks provided by mcu CRG */ +#define HI3798MV200_MCU_BUS_CLK 0 +#define HI3798MV200_MCE_CLK 1 +#define HI3798MV200_IR_CLK 2 +#define HI3798MV200_TIMER01_CLK 3 +#define HI3798MV200_LEDC_CLK 4 +#define HI3798MV200_UART0_CLK 5 +#define HI3798MV200_WIFI_CLK 6 +#define HI3798MV200_LSADC_CLK 7 + +#define HI3798MV200_SYSCTRL_CLK_COUNT 8 + +#endif /* __DTS_HI3798MV200_SYSCTRL_H */ From patchwork Wed Feb 21 16:41:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 13565964 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 C103382D63; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; cv=none; b=AxQiNFmCGGrQazUyrs9JWFxAm6VpwKr/zqWGFLiAk79KOJ0PujmBt7BiLmmf2AaN5yh3SX+3Kvvv+oOzGzqIWdDJPJRPK4U6glWbYjAThxbImi9GxpDD0H/VEY7NIZJKnLPvTaQ48A/xYDw+t0kR9n8PBYHYgFHRb1MHXPUfP+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708533681; c=relaxed/simple; bh=6jiMQsziQVT6fOrvLbLmIT+jqUpGKlFvZg9cowyUhmk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sYhNa2wj2ZRjhytNBY7sFfvN5yrxqZGwg1MDERWE8QVcmD8zU0Mhrl6/DLJqWETSn/ygNzjlCr+o4MPOCSday2H74/P6iC3j9HfaTM6XFeW9afAuM5F843AboCAKO6OqGpgBJHgAJ9RfNn/tUZXyGFul0Zwx0wlC+OBmqS309YY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DDGdAfUD; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DDGdAfUD" Received: by smtp.kernel.org (Postfix) with ESMTPS id 8738DC116B1; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708533681; bh=6jiMQsziQVT6fOrvLbLmIT+jqUpGKlFvZg9cowyUhmk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=DDGdAfUDvv6CXPxm8MV7z6D3UN0QsVmf8Q1NeyV83tmWfXgXWklkTK2Tsv6goKDvj 6QU7/rRRmjqHZPELp9O1qe1TjRkpIdroLIclkVQ2bcfRCD76xbe7pfyVSptaFuV5KD /8rrmDCDU2QhmZdaBviqlfcBfT6JY0vPtQpz7hLP7fuW3lPx58Kp4plBK7eCalKI2n ZOxFNWSI2CQTYap+rQahBSatR9/2YmXbRi2Y9ghO9Z/qwEUMXQk8OBX4UGYAdzOGRb 3Pnr+6VLXl3CDSBgyxwSZV4mGeJCrca2ESAisbHzcbHUK0hfXM0OJvMpELZhNtc6CI ygnD8YHmzEHLQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77569C5478B; Wed, 21 Feb 2024 16:41:21 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Thu, 22 Feb 2024 00:41:11 +0800 Subject: [PATCH v3 8/8] clk: hisilicon: add CRG driver for Hi3798MV200 SoC Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240222-clk-mv200-v3-8-f30795b50318@outlook.com> References: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> In-Reply-To: <20240222-clk-mv200-v3-0-f30795b50318@outlook.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: David Yang , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708533664; l=18889; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=/5tubVp4D3o4gm3SuOgYSetmwQOt4vNMUPhcAqZfpwU=; b=k0zCNkj9clZ0nbOb1euyA6zdq6nENBEFZd1qxvEoz0F57Y4oORcZs7ehiiAWM8Nxv/dxiTsTk czhP/eYWPk3BTf+wKibqUthRZL9QZH9ZhX7GO0aicvmOwaLbAeAjQKx X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: From: Yang Xiwen Add CRG driver for Hi3798MV200 SoC. CRG(Clock and Reset Generator) module generates clock and reset signals used by other module blocks on SoC. Only currently used clocks are added. Clocks without mainline user are omitted. Notably PLLs are missing due to the lack of PLL driver. Signed-off-by: Yang Xiwen --- drivers/clk/hisilicon/Kconfig | 8 + drivers/clk/hisilicon/Makefile | 1 + drivers/clk/hisilicon/crg-hi3798mv200.c | 462 ++++++++++++++++++++++++++++++++ 3 files changed, 471 insertions(+) diff --git a/drivers/clk/hisilicon/Kconfig b/drivers/clk/hisilicon/Kconfig index c1ec75aa4ccd..fab8059240b7 100644 --- a/drivers/clk/hisilicon/Kconfig +++ b/drivers/clk/hisilicon/Kconfig @@ -45,6 +45,14 @@ config COMMON_CLK_HI3798CV200 help Build the clock driver for hi3798cv200. +config COMMON_CLK_HI3798MV200 + tristate "Hi3798MV200 Clock Driver" + depends on ARCH_HISI || COMPILE_TEST + select RESET_HISI + default ARCH_HISI + help + Build the clock driver for hi3798mv200. + config COMMON_CLK_HI6220 bool "Hi6220 Clock Driver" depends on ARCH_HISI || COMPILE_TEST diff --git a/drivers/clk/hisilicon/Makefile b/drivers/clk/hisilicon/Makefile index 2978e56cb876..7acb63e909bd 100644 --- a/drivers/clk/hisilicon/Makefile +++ b/drivers/clk/hisilicon/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_COMMON_CLK_HI3559A) += clk-hi3559a.o obj-$(CONFIG_COMMON_CLK_HI3660) += clk-hi3660.o obj-$(CONFIG_COMMON_CLK_HI3670) += clk-hi3670.o obj-$(CONFIG_COMMON_CLK_HI3798CV200) += crg-hi3798cv200.o +obj-$(CONFIG_COMMON_CLK_HI3798MV200) += crg-hi3798mv200.o obj-$(CONFIG_COMMON_CLK_HI6220) += clk-hi6220.o obj-$(CONFIG_RESET_HISI) += reset.o obj-$(CONFIG_STUB_CLK_HI6220) += clk-hi6220-stub.o diff --git a/drivers/clk/hisilicon/crg-hi3798mv200.c b/drivers/clk/hisilicon/crg-hi3798mv200.c new file mode 100644 index 000000000000..065def955e6a --- /dev/null +++ b/drivers/clk/hisilicon/crg-hi3798mv200.c @@ -0,0 +1,462 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Hi3798MV200 Clock and Reset Generator Driver + * + * Copyright (c) 2024 Yang Xiwen + * Copyright (c) 2016 HiSilicon Technologies Co., Ltd. + */ + +#include +#include +#include +#include +#include +#include +#include "clk.h" +#include "crg.h" +#include "reset.h" + +/* hi3798MV200 core CRG */ +enum hi3798mv200_crg_inner_clk { + HI3798MV200_FIXED_3M = HI3798MV200_CRG_CLK_COUNT, + HI3798MV200_FIXED_12M, + HI3798MV200_FIXED_24M, + HI3798MV200_FIXED_25M, + HI3798MV200_FIXED_27M, + HI3798MV200_FIXED_48M, + HI3798MV200_FIXED_50M, + HI3798MV200_FIXED_54M, + HI3798MV200_FIXED_60M, + HI3798MV200_FIXED_75M, + HI3798MV200_FIXED_100M, + HI3798MV200_FIXED_125M, + HI3798MV200_FIXED_150M, + HI3798MV200_FIXED_200M, + HI3798MV200_FIXED_250M, + HI3798MV200_FIXED_300M, + HI3798MV200_FIXED_400M, + HI3798MV200_FIXED_450M, + HI3798MV200_MMC_MUX, + HI3798MV200_SDIO0_MUX, + HI3798MV200_SDIO1_MUX, + HI3798MV200_COMBPHY0_MUX, + HI3798MV200_FEMAC_MUX, + HI3798MV200_GMAC_MUX, + HI3798MV200_CRG_NR_CLKS, +}; + +static const struct hisi_fixed_rate_clock hi3798mv200_fixed_rate_clks[] = { + { HI3798MV200_OSC_CLK, "clk_osc", NULL, 0, 24000000, }, + { HI3798MV200_APB_CLK, "clk_apb", NULL, 0, 100000000, }, + { HI3798MV200_AHB_CLK, "clk_ahb", NULL, 0, 200000000, }, + { HI3798MV200_FIXED_3M, "3m", NULL, 0, 3000000, }, + { HI3798MV200_FIXED_12M, "12m", NULL, 0, 12000000, }, + { HI3798MV200_FIXED_24M, "24m", NULL, 0, 24000000, }, + { HI3798MV200_FIXED_25M, "25m", NULL, 0, 25000000, }, + { HI3798MV200_FIXED_27M, "27m", NULL, 0, 27000000, }, + { HI3798MV200_FIXED_48M, "48m", NULL, 0, 48000000, }, + { HI3798MV200_FIXED_50M, "50m", NULL, 0, 50000000, }, + { HI3798MV200_FIXED_54M, "54m", NULL, 0, 54000000, }, + { HI3798MV200_FIXED_60M, "60m", NULL, 0, 60000000, }, + { HI3798MV200_FIXED_75M, "75m", NULL, 0, 75000000, }, + { HI3798MV200_FIXED_100M, "100m", NULL, 0, 100000000, }, + { HI3798MV200_FIXED_125M, "125m", NULL, 0, 125000000, }, + { HI3798MV200_FIXED_150M, "150m", NULL, 0, 150000000, }, + { HI3798MV200_FIXED_200M, "200m", NULL, 0, 200000000, }, +}; + +static const char *const sdio_mux_p[] = { "100m", "50m", "150m", "25m" }; +static u32 sdio_mux_table[] = {0, 1, 2, 3}; + +static const char *const mmc_mux_p[] = { "100m", "50m", "25m", "200m", "150m" }; +static u32 mmc_mux_table[] = {0, 1, 2, 3, 6}; + +static const char *const comphy_mux_p[] = { "25m", "100m"}; +static const char *const femac_mux_p[] = { "54m", "27m" }; +static const char *const gmac_mux_p[] = { "125m", "75m" }; +static const char *const ext_netphy_mux_p[] = { "25m", "50m" }; +static const char *const mde1_bus_mux_p[] = { "24m", "200m" }; +static const char *const mde3_bus_mux_p[] = { "24m", "400m" }; +static u32 mux_table_1bit[] = {0, 1}; + +static const char *const core_bus_mux_p[] = { "24m", "200m", "250m" }; +static const char *const mde0_bus_mux_p[] = { "24m", "300m", "400m" }; +static const char *const mde2_bus_mux_p[] = { "24m", "400m", "450m" }; +static u32 mux_table_2bit_pattern1[] = {0, 1, 2}; + +static struct hisi_mux_clock hi3798mv200_mux_clks[] = { + { HI3798MV200_CORE_BUS_CLK, "clk_core_bus", core_bus_mux_p, ARRAY_SIZE(core_bus_mux_p), + 0, 0x58, 0, 2, 0, mux_table_2bit_pattern1, }, + { HI3798MV200_MDE0_BUS_CLK, "clk_mde0_bus", mde0_bus_mux_p, ARRAY_SIZE(mde0_bus_mux_p), + 0, 0x58, 2, 2, 0, mux_table_2bit_pattern1, }, + { HI3798MV200_MDE1_BUS_CLK, "clk_mde1_bus", mde1_bus_mux_p, ARRAY_SIZE(mde1_bus_mux_p), + 0, 0x58, 4, 1, 0, mux_table_1bit, }, + { HI3798MV200_MDE2_BUS_CLK, "clk_mde2_bus", mde2_bus_mux_p, ARRAY_SIZE(mde2_bus_mux_p), + 0, 0x58, 8, 2, 0, mux_table_2bit_pattern1, }, + { HI3798MV200_MDE3_BUS_CLK, "clk_mde3_bus", mde3_bus_mux_p, ARRAY_SIZE(mde3_bus_mux_p), + 0, 0x58, 10, 1, 0, mux_table_1bit, }, + { HI3798MV200_MMC_MUX, "mmc_mux", mmc_mux_p, ARRAY_SIZE(mmc_mux_p), + 0, 0xa0, 8, 3, CLK_MUX_ROUND_CLOSEST, mmc_mux_table, }, + { HI3798MV200_COMBPHY0_MUX, "combphy_mux", comphy_mux_p, + ARRAY_SIZE(comphy_mux_p), 0, 0x188, 3, 1, 0, mux_table_1bit, }, + { HI3798MV200_SDIO0_MUX, "sdio0_mux", sdio_mux_p, ARRAY_SIZE(sdio_mux_p), + 0, 0x9c, 8, 2, CLK_MUX_ROUND_CLOSEST, sdio_mux_table, }, + { HI3798MV200_SDIO1_MUX, "sdio1_mux", sdio_mux_p, ARRAY_SIZE(sdio_mux_p), + 0, 0x28c, 8, 2, CLK_MUX_ROUND_CLOSEST, sdio_mux_table, }, + { HI3798MV200_FEMAC_MUX, "femac_mux", femac_mux_p, ARRAY_SIZE(femac_mux_p), + 0, 0xd0, 2, 1, 0, mux_table_1bit, }, + { HI3798MV200_GMAC_MUX, "gmac_mux", gmac_mux_p, ARRAY_SIZE(gmac_mux_p), + 0, 0xcc, 7, 1, 0, mux_table_1bit, }, + { HI3798MV200_EXT_NETPHY_CLK, "ext_netphy_mux", ext_netphy_mux_p, ARRAY_SIZE(ext_netphy_mux_p), + 0, 0xcc, 6, 1, 0, mux_table_1bit, }, +}; + +static u32 mmc_phase_regvals[] = {0, 1, 2, 3, 4, 5, 6, 7}; +static u32 mmc_phase_degrees[] = {0, 45, 90, 135, 180, 225, 270, 315}; + +static struct hisi_phase_clock hi3798mv200_phase_clks[] = { + { HI3798MV200_SDIO0_SAMPLE_CLK, "sdio0_sample", "clk_sdio0_ciu", + 0, 0x9c, 12, 3, mmc_phase_degrees, + mmc_phase_regvals, ARRAY_SIZE(mmc_phase_regvals) }, + { HI3798MV200_SDIO0_DRV_CLK, "sdio0_drive", "clk_sdio0_ciu", + 0, 0x9c, 16, 3, mmc_phase_degrees, + mmc_phase_regvals, ARRAY_SIZE(mmc_phase_regvals) }, + { HI3798MV200_SDIO1_SAMPLE_CLK, "sdio1_sample", "clk_sdio1_ciu", + 0, 0x28c, 12, 3, mmc_phase_degrees, + mmc_phase_regvals, ARRAY_SIZE(mmc_phase_regvals) }, + { HI3798MV200_SDIO1_DRV_CLK, "sdio1_drive", "clk_sdio1_ciu", + 0, 0x28c, 16, 3, mmc_phase_degrees, + mmc_phase_regvals, ARRAY_SIZE(mmc_phase_regvals) }, + { HI3798MV200_MMC_SAMPLE_CLK, "mmc_sample", "clk_mmc_ciu", + 0, 0xa0, 12, 3, mmc_phase_degrees, + mmc_phase_regvals, ARRAY_SIZE(mmc_phase_regvals) }, + { HI3798MV200_MMC_DRV_CLK, "mmc_drive", "clk_mmc_ciu", + 0, 0xa0, 16, 3, mmc_phase_degrees, + mmc_phase_regvals, ARRAY_SIZE(mmc_phase_regvals) }, +}; + +static const struct hisi_gate_clock hi3798mv200_gate_clks[] = { + /* UART */ + { HI3798MV200_UART2_CLK, "clk_uart2", "75m", + CLK_SET_RATE_PARENT, 0x68, 4, 0, }, + { HI3798MV200_UART3_CLK, "clk_uart3", "75m", + CLK_SET_RATE_PARENT, 0x68, 6, 0, }, + /* I2C */ + { HI3798MV200_I2C0_CLK, "clk_i2c0", "clk_apb", + CLK_SET_RATE_PARENT, 0x6c, 4, 0, }, + { HI3798MV200_I2C1_CLK, "clk_i2c1", "clk_apb", + CLK_SET_RATE_PARENT, 0x6c, 8, 0, }, + { HI3798MV200_I2C2_CLK, "clk_i2c2", "clk_apb", + CLK_SET_RATE_PARENT, 0x6c, 12, 0, }, + /* SPI */ + { HI3798MV200_SPI0_CLK, "clk_spi0", "clk_apb", + CLK_SET_RATE_PARENT, 0x70, 0, 0, }, + /* SCI */ + { HI3798MV200_SCI0_CLK, "clk_sci0", "clk_apb", + CLK_SET_RATE_PARENT, 0x74, 0, 0, }, + { HI3798MV200_SCI1_CLK, "clk_sci1", "clk_apb", + CLK_SET_RATE_PARENT, 0x74, 2, 0, }, + /* SDIO */ + { HI3798MV200_SDIO0_BIU_CLK, "clk_sdio0_biu", "clk_ahb", + CLK_SET_RATE_PARENT, 0x9c, 0, 0, }, + { HI3798MV200_SDIO0_CIU_CLK, "clk_sdio0_ciu", "sdio0_mux", + CLK_SET_RATE_PARENT, 0x9c, 1, 0, }, + { HI3798MV200_SDIO1_BIU_CLK, "clk_sdio1_biu", "clk_ahb", + CLK_SET_RATE_PARENT, 0x28c, 0, 0, }, + { HI3798MV200_SDIO1_CIU_CLK, "clk_sdio1_ciu", "sdio1_mux", + CLK_SET_RATE_PARENT, 0x28c, 1, 0, }, + /* EMMC */ + { HI3798MV200_MMC_BIU_CLK, "clk_mmc_biu", "clk_ahb", + CLK_SET_RATE_PARENT, 0xa0, 0, 0, }, + { HI3798MV200_MMC_CIU_CLK, "clk_mmc_ciu", "mmc_mux", + CLK_SET_RATE_PARENT, 0xa0, 1, 0, }, + /* Ethernet */ + { HI3798MV200_GMAC_CLK, "clk_gmac", "gmac_mux", + CLK_SET_RATE_PARENT, 0xcc, 2, 0, }, + { HI3798MV200_GSF_CLK, "clk_gmacif", "clk_ahb", + CLK_SET_RATE_PARENT, 0xcc, 0, 0, }, + { HI3798MV200_ETH_CLK, "clk_femac", "femac_mux", + CLK_SET_RATE_PARENT, 0xd0, 1, 0, }, + { HI3798MV200_ETH_BUS_CLK, "clk_femacif", "clk_ahb", + CLK_SET_RATE_PARENT, 0xd0, 0, 0, }, + { HI3798MV200_FEPHY_CLK, "clk_fephy", "25m", + CLK_SET_RATE_PARENT, 0x388, 0, 0, }, + /* COMBPHY */ + { HI3798MV200_COMBPHY_CLK, "clk_combphy", "combphy_mux", + CLK_SET_RATE_PARENT, 0x188, 0, 0, }, + /* USB2 */ + { HI3798MV200_USB2_BUS_CLK, "clk_u2_bus", "clk_ahb", + CLK_SET_RATE_PARENT, 0xb8, 0, 0, }, + { HI3798MV200_USB2_HST_PHY_CLK, "clk_u2_phy", "60m", + CLK_SET_RATE_PARENT, 0xb8, 4, 0, }, + { HI3798MV200_USB2_12M_CLK, "clk_u2_12m", "12m", + CLK_SET_RATE_PARENT, 0xb8, 2, 0 }, + { HI3798MV200_USB2_48M_CLK, "clk_u2_48m", "48m", + CLK_SET_RATE_PARENT, 0xb8, 1, 0 }, + { HI3798MV200_USB2_UTMI0_CLK, "clk_u2_utmi0", "60m", + CLK_SET_RATE_PARENT, 0xb8, 5, 0 }, + { HI3798MV200_USB2_UTMI1_CLK, "clk_u2_utmi1", "60m", + CLK_SET_RATE_PARENT, 0xb8, 6, 0 }, + { HI3798MV200_USB2_OTG_UTMI_CLK, "clk_u2_otg_utmi", "60m", + CLK_SET_RATE_PARENT, 0xb8, 3, 0 }, + { HI3798MV200_USB2_PHY1_REF_CLK, "clk_u2_phy1_ref", "24m", + CLK_SET_RATE_PARENT, 0xbc, 0, 0 }, + { HI3798MV200_USB2_PHY2_REF_CLK, "clk_u2_phy2_ref", "24m", + CLK_SET_RATE_PARENT, 0xbc, 2, 0 }, + /* USB3 bus */ + { HI3798MV200_USB3_GM_CLK, "clk_u3_gm", "clk_ahb", + CLK_SET_RATE_PARENT, 0xb0, 6, 0 }, + { HI3798MV200_USB3_GS_CLK, "clk_u3_gs", "clk_ahb", + CLK_SET_RATE_PARENT, 0xb0, 5, 0 }, + { HI3798MV200_USB3_BUS_CLK, "clk_u3_bus", "clk_ahb", + CLK_SET_RATE_PARENT, 0xb0, 0, 0 }, + /* USB3 ctrl */ + { HI3798MV200_USB3_SUSPEND_CLK, "clk_u3_suspend", NULL, + CLK_SET_RATE_PARENT, 0xb0, 2, 0 }, + { HI3798MV200_USB3_PIPE_CLK, "clk_u3_pipe", NULL, + CLK_SET_RATE_PARENT, 0xb0, 3, 0 }, + { HI3798MV200_USB3_REF_CLK, "clk_u3_ref", "125m", + CLK_SET_RATE_PARENT, 0xb0, 1, 0 }, + { HI3798MV200_USB3_UTMI_CLK, "clk_u3_utmi", "60m", + CLK_SET_RATE_PARENT, 0xb0, 4, 0 }, + /* Watchdog */ + { HI3798MV200_WDG0_CLK, "clk_wdg0", "clk_osc", + CLK_SET_RATE_PARENT, 0x178, 0, 0 }, +}; + +static struct hisi_clock_data *hi3798mv200_clk_register( + struct platform_device *pdev) +{ + struct hisi_clock_data *clk_data; + int ret; + + clk_data = hisi_clk_alloc(pdev, HI3798MV200_CRG_NR_CLKS); + if (!clk_data) + return ERR_PTR(-ENOMEM); + + /* hisi_phase_clock is resource managed */ + ret = hisi_clk_register_phase(&pdev->dev, + hi3798mv200_phase_clks, + ARRAY_SIZE(hi3798mv200_phase_clks), + clk_data); + if (ret) + return ERR_PTR(ret); + + ret = hisi_clk_register_fixed_rate(hi3798mv200_fixed_rate_clks, + ARRAY_SIZE(hi3798mv200_fixed_rate_clks), + clk_data); + if (ret) + return ERR_PTR(ret); + + ret = hisi_clk_register_mux(hi3798mv200_mux_clks, + ARRAY_SIZE(hi3798mv200_mux_clks), + clk_data); + if (ret) + goto unregister_fixed_rate; + + ret = hisi_clk_register_gate(hi3798mv200_gate_clks, + ARRAY_SIZE(hi3798mv200_gate_clks), + clk_data); + if (ret) + goto unregister_mux; + + ret = of_clk_add_provider(pdev->dev.of_node, + of_clk_src_onecell_get, &clk_data->clk_data); + if (ret) + goto unregister_gate; + + return clk_data; + +unregister_gate: + hisi_clk_unregister_gate(hi3798mv200_gate_clks, + ARRAY_SIZE(hi3798mv200_gate_clks), + clk_data); +unregister_mux: + hisi_clk_unregister_mux(hi3798mv200_mux_clks, + ARRAY_SIZE(hi3798mv200_mux_clks), + clk_data); +unregister_fixed_rate: + hisi_clk_unregister_fixed_rate(hi3798mv200_fixed_rate_clks, + ARRAY_SIZE(hi3798mv200_fixed_rate_clks), + clk_data); + return ERR_PTR(ret); +} + +static void hi3798mv200_clk_unregister(struct platform_device *pdev) +{ + struct hisi_crg_dev *crg = platform_get_drvdata(pdev); + + of_clk_del_provider(pdev->dev.of_node); + + hisi_clk_unregister_gate(hi3798mv200_gate_clks, + ARRAY_SIZE(hi3798mv200_gate_clks), + crg->clk_data); + hisi_clk_unregister_mux(hi3798mv200_mux_clks, + ARRAY_SIZE(hi3798mv200_mux_clks), + crg->clk_data); + hisi_clk_unregister_fixed_rate(hi3798mv200_fixed_rate_clks, + ARRAY_SIZE(hi3798mv200_fixed_rate_clks), + crg->clk_data); +} + +static const struct hisi_crg_funcs hi3798mv200_crg_funcs = { + .register_clks = hi3798mv200_clk_register, + .unregister_clks = hi3798mv200_clk_unregister, +}; + +/* hi3798MV200 sysctrl CRG */ + +enum hi3798mv200_sysctrl_inner_clk { + HI3798MV200_UART0_MUX = HI3798MV200_SYSCTRL_CLK_COUNT, + + HI3798MV200_SYSCTRL_NR_CLKS +}; + +static const char *const uart0_mux_p[] = { "3m", "75m" }; + +static const char *const mcu_bus_mux_p[] = { "24m", "200m", "6m" }; + +static const struct hisi_mux_clock hi3798mv200_sysctrl_mux_clks[] = { + { HI3798MV200_UART0_MUX, "uart0_mux", uart0_mux_p, ARRAY_SIZE(uart0_mux_p), + CLK_SET_RATE_PARENT, 0x48, 29, 1, 0, mux_table_1bit, }, + { HI3798MV200_MCU_BUS_CLK, "mcu_bus_mux", mcu_bus_mux_p, ARRAY_SIZE(mcu_bus_mux_p), + CLK_SET_RATE_PARENT, 0x0, 0, 2, 0, mux_table_2bit_pattern1, }, +}; + +static const struct hisi_gate_clock hi3798mv200_sysctrl_gate_clks[] = { + { HI3798MV200_MCE_CLK, "clk_mce", "mcu_bus_mux", + CLK_SET_RATE_PARENT, 0x48, 0, 0, }, + { HI3798MV200_IR_CLK, "clk_ir", "clk_osc", + CLK_SET_RATE_PARENT, 0x48, 4, 0, }, + { HI3798MV200_TIMER01_CLK, "clk_timer01", "clk_osc", + CLK_SET_RATE_PARENT, 0x48, 6, 0, }, + { HI3798MV200_UART0_CLK, "clk_uart0", "uart0_mux", + CLK_SET_RATE_PARENT, 0x48, 12, 0, }, +}; + +static struct hisi_clock_data *hi3798mv200_sysctrl_clk_register( + struct platform_device *pdev) +{ + struct hisi_clock_data *clk_data; + int ret; + + clk_data = hisi_clk_alloc(pdev, HI3798MV200_SYSCTRL_NR_CLKS); + if (!clk_data) + return ERR_PTR(-ENOMEM); + + ret = hisi_clk_register_mux(hi3798mv200_sysctrl_mux_clks, + ARRAY_SIZE(hi3798mv200_sysctrl_mux_clks), + clk_data); + if (ret) + return ERR_PTR(ret); + + ret = hisi_clk_register_gate(hi3798mv200_sysctrl_gate_clks, + ARRAY_SIZE(hi3798mv200_sysctrl_gate_clks), + clk_data); + if (ret) + goto unregister_mux; + + ret = of_clk_add_provider(pdev->dev.of_node, + of_clk_src_onecell_get, &clk_data->clk_data); + if (ret) + goto unregister_gate; + + return clk_data; + +unregister_gate: + hisi_clk_unregister_gate(hi3798mv200_sysctrl_gate_clks, + ARRAY_SIZE(hi3798mv200_sysctrl_gate_clks), + clk_data); +unregister_mux: + hisi_clk_unregister_mux(hi3798mv200_sysctrl_mux_clks, + ARRAY_SIZE(hi3798mv200_sysctrl_mux_clks), + clk_data); + return ERR_PTR(ret); +} + +static void hi3798mv200_sysctrl_clk_unregister(struct platform_device *pdev) +{ + struct hisi_crg_dev *crg = platform_get_drvdata(pdev); + + of_clk_del_provider(pdev->dev.of_node); + + hisi_clk_unregister_gate(hi3798mv200_sysctrl_gate_clks, + ARRAY_SIZE(hi3798mv200_sysctrl_gate_clks), + crg->clk_data); + hisi_clk_unregister_mux(hi3798mv200_sysctrl_mux_clks, + ARRAY_SIZE(hi3798mv200_sysctrl_mux_clks), + crg->clk_data); +} + +static const struct hisi_crg_funcs hi3798mv200_sysctrl_funcs = { + .register_clks = hi3798mv200_sysctrl_clk_register, + .unregister_clks = hi3798mv200_sysctrl_clk_unregister, +}; + +static const struct of_device_id hi3798mv200_crg_match_table[] = { + { .compatible = "hisilicon,hi3798mv200-crg", + .data = &hi3798mv200_crg_funcs }, + { .compatible = "hisilicon,hi3798mv200-sysctrl", + .data = &hi3798mv200_sysctrl_funcs }, + { } +}; +MODULE_DEVICE_TABLE(of, hi3798mv200_crg_match_table); + +static int hi3798mv200_crg_probe(struct platform_device *pdev) +{ + struct hisi_crg_dev *crg; + + crg = devm_kmalloc(&pdev->dev, sizeof(*crg), GFP_KERNEL); + if (!crg) + return -ENOMEM; + + crg->funcs = of_device_get_match_data(&pdev->dev); + if (!crg->funcs) + return -ENOENT; + + crg->rstc = hisi_reset_init(pdev); + if (!crg->rstc) + return -ENOMEM; + + crg->clk_data = crg->funcs->register_clks(pdev); + if (IS_ERR(crg->clk_data)) { + hisi_reset_exit(crg->rstc); + return PTR_ERR(crg->clk_data); + } + + platform_set_drvdata(pdev, crg); + return 0; +} + +static int hi3798mv200_crg_remove(struct platform_device *pdev) +{ + struct hisi_crg_dev *crg = platform_get_drvdata(pdev); + + hisi_reset_exit(crg->rstc); + crg->funcs->unregister_clks(pdev); + return 0; +} + +static struct platform_driver hi3798mv200_crg_driver = { + .probe = hi3798mv200_crg_probe, + .remove = hi3798mv200_crg_remove, + .driver = { + .name = "hi3798mv200-crg", + .of_match_table = hi3798mv200_crg_match_table, + }, +}; + +static int __init hi3798mv200_crg_init(void) +{ + return platform_driver_register(&hi3798mv200_crg_driver); +} +core_initcall(hi3798mv200_crg_init); + +static void __exit hi3798mv200_crg_exit(void) +{ + platform_driver_unregister(&hi3798mv200_crg_driver); +} +module_exit(hi3798mv200_crg_exit); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("HiSilicon Hi3798MV200 CRG Driver");