Message ID | 20240105162056.43266-3-linux@fw-web.de |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-18063-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:6f82:b0:100:9c79:88ff with SMTP id tb2csp6327983dyb; Fri, 5 Jan 2024 08:30:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IG7f4hnUiF/Yq77KXa1fFGehqc2MG13uel6rovP9F1mAkt4HtLtGGKrjlfBBVlF4paBqJVT X-Received: by 2002:a17:902:b489:b0:1d4:e1f2:556 with SMTP id y9-20020a170902b48900b001d4e1f20556mr2187449plr.37.1704472256970; Fri, 05 Jan 2024 08:30:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704472256; cv=none; d=google.com; s=arc-20160816; b=BpvyzMAv2TB0z0H/N/0IxtXswrH5UX6t3Lhi17e42Lo4ubkBFOda0oyZ2ATixgifK6 Eza0HjYWSMQx4dJbAH0hbCCqsDhEppoFPXYHhGJg07NF5lQXbk1NyyaEHB2rdC9i0Uml /3TBrGX3kr/Ud/Z+DW456en6Ot8v3K4SIK5KXWOZa1Xk9+CN1IfsX9fOMdsY3wRs35qv bBBQYnCuiiqp5vQeKSZdlDBqmdzaEloIAwrNkTswVqtBQZ7SDEWbCYLYfKRCWwelq5z8 GfpMQEAK72SC7jedhsMtJwjSjzc5G7/cRzWEvYrgAG40H8KDGpGPwMLbG47DqmyJki5A 8ugg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=vJWaZdp7vwDloIQ8UP6qzcfjDSiX0CaWYDKppc3KgpY=; fh=LUzJhCHXByutVbZY6Go/tqbqcJ6i1wxNrBhOCG2u75w=; b=JV6v9eD81QwC4gRf0fM0W6fEGOzOTvTGcVsrZ/gv9ae3lgE4okFNO6VxQiQU3sKaHt uzj1qdf+8M97fq3tJTHF/7Fi8qYiHqKgQb3WjsKImhWH7loLBlU4Zb8CWjkfKzdJ7sbU f0T4+oggjSMufXPb2OUHnY8IDm4OFkMyLUz9otxp82n+gJsWxEsJ7Bvi11TV9xKxCR97 IM2IPp9wpWaMH6gYpyd4mU/yfQx7CxIJoTOOvGoVkVDFipwXJgtAUfK/66MjSIJuEROC xs/D6NvB9xTuACW32flMpj7VKxReYPvHKNZojXerGToZKW/c5Wjw9X16bFlV84j9EVEw pCkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mailerdienst.de header.s=20200217 header.b=eTopNlLc; spf=pass (google.com: domain of linux-kernel+bounces-18063-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-18063-ouuuleilei=gmail.com@vger.kernel.org" Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id q4-20020a17090311c400b001cfbd3f38e0si1428438plh.359.2024.01.05.08.30.56 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jan 2024 08:30:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-18063-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@mailerdienst.de header.s=20200217 header.b=eTopNlLc; spf=pass (google.com: domain of linux-kernel+bounces-18063-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-18063-ouuuleilei=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 137E6285C36 for <ouuuleilei@gmail.com>; Fri, 5 Jan 2024 16:30:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6A38C20F1; Fri, 5 Jan 2024 16:30:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=mailerdienst.de header.i=@mailerdienst.de header.b="eTopNlLc" X-Original-To: linux-kernel@vger.kernel.org Received: from mxout1.routing.net (mxout1.routing.net [134.0.28.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 CF9B81E508; Fri, 5 Jan 2024 16:30:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=fw-web.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fw-web.de Received: from mxbox3.masterlogin.de (unknown [192.168.10.78]) by mxout1.routing.net (Postfix) with ESMTP id 5AEE04027B; Fri, 5 Jan 2024 16:21:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1704471665; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vJWaZdp7vwDloIQ8UP6qzcfjDSiX0CaWYDKppc3KgpY=; b=eTopNlLc2+mGcCIV+tMnOyedCitCF83/aJOtYLEbxcgOCBQLCYMDMx6+Aa3JEH5Hx3kCgN auv4YVUphpYKa0WbyYbeQ4FhrGz/Ae45YjSMDzpETYWyF2dC/RgwET1YGwepZnUy16risK gmJig4Cr65ntK6Av8xywoPDzKIO02Dw= Received: from frank-G5.. (fttx-pool-80.245.77.34.bambit.de [80.245.77.34]) by mxbox3.masterlogin.de (Postfix) with ESMTPSA id 7F9C6360303; Fri, 5 Jan 2024 16:21:04 +0000 (UTC) From: Frank Wunderlich <linux@fw-web.de> To: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Philipp Zabel <p.zabel@pengutronix.de>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org> Cc: Frank Wunderlich <frank-w@public-files.de>, Sam Shih <sam.shih@mediatek.com>, Daniel Golle <daniel@makrotopia.org>, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-mediatek@lists.infradead.org Subject: [PATCH v2 2/2] clk: mediatek: add infracfg reset controller for mt7988 Date: Fri, 5 Jan 2024 17:20:55 +0100 Message-Id: <20240105162056.43266-3-linux@fw-web.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240105162056.43266-1-linux@fw-web.de> References: <20240105162056.43266-1-linux@fw-web.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mail-ID: 31b037bd-067d-4073-9b39-c5bd1557013d X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787268701311136651 X-GMAIL-MSGID: 1787268701311136651 |
Series |
Add reset controller to mt7988 infracfg
|
|
Commit Message
Frank Wunderlich
Jan. 5, 2024, 4:20 p.m. UTC
From: Frank Wunderlich <frank-w@public-files.de> Infracfg can also operate as reset controller, add support for it. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> --- drivers/clk/mediatek/clk-mt7988-infracfg.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
Comments
Il 05/01/24 17:20, Frank Wunderlich ha scritto: > From: Frank Wunderlich <frank-w@public-files.de> > > Infracfg can also operate as reset controller, add support for it. > > Signed-off-by: Frank Wunderlich <frank-w@public-files.de> > --- > drivers/clk/mediatek/clk-mt7988-infracfg.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/clk/mediatek/clk-mt7988-infracfg.c b/drivers/clk/mediatek/clk-mt7988-infracfg.c > index 8011ef278bea..1660a45349ff 100644 > --- a/drivers/clk/mediatek/clk-mt7988-infracfg.c > +++ b/drivers/clk/mediatek/clk-mt7988-infracfg.c > @@ -14,6 +14,9 @@ > #include "clk-gate.h" > #include "clk-mux.h" > #include <dt-bindings/clock/mediatek,mt7988-clk.h> > +#include <dt-bindings/reset/mediatek,mt7988-resets.h> > + > +#define INFRA_RST_SET_OFFSET 0x80 > > static DEFINE_SPINLOCK(mt7988_clk_lock); > > @@ -249,12 +252,29 @@ static const struct mtk_gate infra_clks[] = { > GATE_INFRA3(CLK_INFRA_133M_PCIE_CK_P3, "infra_133m_pcie_ck_p3", "sysaxi_sel", 31), > }; > > +static u16 infra_rst_ofs[] = { > + INFRA_RST_SET_OFFSET, > +}; > + > +static u16 infra_idx_map[] = { > + [MT7988_INFRA_RST0_THERM_CTRL_SWRST] = 0 * RST_NR_PER_BANK + 9, The MT7988A datasheet says that INFRA_RST0 bit 9 is CONN2EMI_M0_GALS_SLV_SWRST, so this is wrong: THERM_CTRL_SWRST is in the RST1 register, bit 9. Also, I'm sure that you really want to add the PCIe MAC reset bit as well, to be used with the PCIe driver... [MT7988_INFRA_RST0_PEXTP_MAC_SWRST] = 0 * RST_NR_PER_BANK + 6, [MT7988_INFRA_RST1_THERM_CTRL_SWRST] = 1 * RST_NR_PER_BANK + 9, Enjoy... :-) Cheers, Angelo
Am 8. Januar 2024 11:12:26 MEZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>: >Il 05/01/24 17:20, Frank Wunderlich ha scritto: >> From: Frank Wunderlich <frank-w@public-files.de> >> >> Infracfg can also operate as reset controller, add support for it. >> >> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> >> --- >> drivers/clk/mediatek/clk-mt7988-infracfg.c | 20 ++++++++++++++++++++ >> 1 file changed, 20 insertions(+) >> >> diff --git a/drivers/clk/mediatek/clk-mt7988-infracfg.c b/drivers/clk/mediatek/clk-mt7988-infracfg.c >> index 8011ef278bea..1660a45349ff 100644 >> --- a/drivers/clk/mediatek/clk-mt7988-infracfg.c >> +++ b/drivers/clk/mediatek/clk-mt7988-infracfg.c >> @@ -14,6 +14,9 @@ >> #include "clk-gate.h" >> #include "clk-mux.h" >> #include <dt-bindings/clock/mediatek,mt7988-clk.h> >> +#include <dt-bindings/reset/mediatek,mt7988-resets.h> >> + >> +#define INFRA_RST_SET_OFFSET 0x80 >> static DEFINE_SPINLOCK(mt7988_clk_lock); >> @@ -249,12 +252,29 @@ static const struct mtk_gate infra_clks[] = { >> GATE_INFRA3(CLK_INFRA_133M_PCIE_CK_P3, "infra_133m_pcie_ck_p3", "sysaxi_sel", 31), >> }; >> +static u16 infra_rst_ofs[] = { >> + INFRA_RST_SET_OFFSET, >> +}; >> + >> +static u16 infra_idx_map[] = { >> + [MT7988_INFRA_RST0_THERM_CTRL_SWRST] = 0 * RST_NR_PER_BANK + 9, > >The MT7988A datasheet says that INFRA_RST0 bit 9 is CONN2EMI_M0_GALS_SLV_SWRST, so >this is wrong: THERM_CTRL_SWRST is in the RST1 register, bit 9. > >Also, I'm sure that you really want to add the PCIe MAC reset bit as well, to be >used with the PCIe driver... > >[MT7988_INFRA_RST0_PEXTP_MAC_SWRST] = 0 * RST_NR_PER_BANK + 6, >[MT7988_INFRA_RST1_THERM_CTRL_SWRST] = 1 * RST_NR_PER_BANK + 9, Yes you are right...i have only rst1 as screenshot,need to get the full datasheet or can you tell me base address for rst0? Need to change value of INFRA_RST_SET_OFFSET then to rst0 and check RST_NR_PER_BANK to be correct. >Enjoy... :-) > >Cheers, >Angelo > regards Frank
Il 08/01/24 14:46, Frank Wunderlich ha scritto: > Am 8. Januar 2024 11:12:26 MEZ schrieb AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>: >> Il 05/01/24 17:20, Frank Wunderlich ha scritto: >>> From: Frank Wunderlich <frank-w@public-files.de> >>> >>> Infracfg can also operate as reset controller, add support for it. >>> >>> Signed-off-by: Frank Wunderlich <frank-w@public-files.de> >>> --- >>> drivers/clk/mediatek/clk-mt7988-infracfg.c | 20 ++++++++++++++++++++ >>> 1 file changed, 20 insertions(+) >>> >>> diff --git a/drivers/clk/mediatek/clk-mt7988-infracfg.c b/drivers/clk/mediatek/clk-mt7988-infracfg.c >>> index 8011ef278bea..1660a45349ff 100644 >>> --- a/drivers/clk/mediatek/clk-mt7988-infracfg.c >>> +++ b/drivers/clk/mediatek/clk-mt7988-infracfg.c >>> @@ -14,6 +14,9 @@ >>> #include "clk-gate.h" >>> #include "clk-mux.h" >>> #include <dt-bindings/clock/mediatek,mt7988-clk.h> >>> +#include <dt-bindings/reset/mediatek,mt7988-resets.h> >>> + >>> +#define INFRA_RST_SET_OFFSET 0x80 >>> static DEFINE_SPINLOCK(mt7988_clk_lock); >>> @@ -249,12 +252,29 @@ static const struct mtk_gate infra_clks[] = { >>> GATE_INFRA3(CLK_INFRA_133M_PCIE_CK_P3, "infra_133m_pcie_ck_p3", "sysaxi_sel", 31), >>> }; >>> +static u16 infra_rst_ofs[] = { >>> + INFRA_RST_SET_OFFSET, >>> +}; >>> + >>> +static u16 infra_idx_map[] = { >>> + [MT7988_INFRA_RST0_THERM_CTRL_SWRST] = 0 * RST_NR_PER_BANK + 9, >> >> The MT7988A datasheet says that INFRA_RST0 bit 9 is CONN2EMI_M0_GALS_SLV_SWRST, so >> this is wrong: THERM_CTRL_SWRST is in the RST1 register, bit 9. >> >> Also, I'm sure that you really want to add the PCIe MAC reset bit as well, to be >> used with the PCIe driver... >> >> [MT7988_INFRA_RST0_PEXTP_MAC_SWRST] = 0 * RST_NR_PER_BANK + 6, >> [MT7988_INFRA_RST1_THERM_CTRL_SWRST] = 1 * RST_NR_PER_BANK + 9, > > Yes you are right...i have only rst1 as screenshot,need to get the full datasheet or can you tell me base address for rst0? Need to change value of INFRA_RST_SET_OFFSET then to rst0 and check RST_NR_PER_BANK to be correct. The datasheet is public ... [1] has it in the Resources paragraph :-) Anyway, since I already have it here in front of me... 10001070 INFRA_GLOBALCON_RST0_SET 10001080 INFRA_GLOBALCON_RST1_SET [1]: https://wiki.banana-pi.org/Banana_Pi_BPI-R4 Cheers, Angelo
diff --git a/drivers/clk/mediatek/clk-mt7988-infracfg.c b/drivers/clk/mediatek/clk-mt7988-infracfg.c index 8011ef278bea..1660a45349ff 100644 --- a/drivers/clk/mediatek/clk-mt7988-infracfg.c +++ b/drivers/clk/mediatek/clk-mt7988-infracfg.c @@ -14,6 +14,9 @@ #include "clk-gate.h" #include "clk-mux.h" #include <dt-bindings/clock/mediatek,mt7988-clk.h> +#include <dt-bindings/reset/mediatek,mt7988-resets.h> + +#define INFRA_RST_SET_OFFSET 0x80 static DEFINE_SPINLOCK(mt7988_clk_lock); @@ -249,12 +252,29 @@ static const struct mtk_gate infra_clks[] = { GATE_INFRA3(CLK_INFRA_133M_PCIE_CK_P3, "infra_133m_pcie_ck_p3", "sysaxi_sel", 31), }; +static u16 infra_rst_ofs[] = { + INFRA_RST_SET_OFFSET, +}; + +static u16 infra_idx_map[] = { + [MT7988_INFRA_RST0_THERM_CTRL_SWRST] = 0 * RST_NR_PER_BANK + 9, +}; + +static struct mtk_clk_rst_desc infra_rst_desc = { + .version = MTK_RST_SET_CLR, + .rst_bank_ofs = infra_rst_ofs, + .rst_bank_nr = ARRAY_SIZE(infra_rst_ofs), + .rst_idx_map = infra_idx_map, + .rst_idx_map_nr = ARRAY_SIZE(infra_idx_map), +}; + static const struct mtk_clk_desc infra_desc = { .clks = infra_clks, .num_clks = ARRAY_SIZE(infra_clks), .mux_clks = infra_muxes, .num_mux_clks = ARRAY_SIZE(infra_muxes), .clk_lock = &mt7988_clk_lock, + .rst_desc = &infra_rst_desc, }; static const struct of_device_id of_match_clk_mt7988_infracfg[] = {