* [PATCH 0/2] Add reset controller to mt7988 infracfg
@ 2024-01-04 17:39 Frank Wunderlich
2024-01-04 17:39 ` [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID Frank Wunderlich
2024-01-04 17:39 ` [PATCH 2/2] clk: mediatek: add infracfg reset controller for mt7988 Frank Wunderlich
0 siblings, 2 replies; 6+ messages in thread
From: Frank Wunderlich @ 2024-01-04 17:39 UTC (permalink / raw)
To: linux-mediatek
Cc: Frank Wunderlich, Michael Turquette, Stephen Boyd,
Matthias Brugger, AngeloGioacchino Del Regno, Philipp Zabel,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sam Shih,
Daniel Golle, linux-clk, linux-kernel, linux-arm-kernel,
devicetree
From: Frank Wunderlich <frank-w@public-files.de>
Infracfg on mt7988 supports reset controller function which is
needed to get lvts thermal working.
Patches are based on clk-next due to recently added mt7988 clock driver:
https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git
Frank Wunderlich (2):
dt-bindings: reset: mediatek: add MT7988 LVTS reset ID
clk: mediatek: add infracfg reset controller for mt7988
drivers/clk/mediatek/clk-mt7988-infracfg.c | 20 +++++++++++++++++++
.../reset/mediatek,mt7988-resets.h | 4 ++++
2 files changed, 24 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID
2024-01-04 17:39 [PATCH 0/2] Add reset controller to mt7988 infracfg Frank Wunderlich
@ 2024-01-04 17:39 ` Frank Wunderlich
2024-01-04 18:12 ` Daniel Golle
2024-01-04 17:39 ` [PATCH 2/2] clk: mediatek: add infracfg reset controller for mt7988 Frank Wunderlich
1 sibling, 1 reply; 6+ messages in thread
From: Frank Wunderlich @ 2024-01-04 17:39 UTC (permalink / raw)
To: linux-mediatek
Cc: Frank Wunderlich, Michael Turquette, Stephen Boyd,
Matthias Brugger, AngeloGioacchino Del Regno, Philipp Zabel,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sam Shih,
Daniel Golle, linux-clk, linux-kernel, linux-arm-kernel,
devicetree
From: Frank Wunderlich <frank-w@public-files.de>
---
include/dt-bindings/reset/mediatek,mt7988-resets.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/dt-bindings/reset/mediatek,mt7988-resets.h b/include/dt-bindings/reset/mediatek,mt7988-resets.h
index 493301971367..3f1e4ec07ad5 100644
--- a/include/dt-bindings/reset/mediatek,mt7988-resets.h
+++ b/include/dt-bindings/reset/mediatek,mt7988-resets.h
@@ -10,4 +10,8 @@
/* ETHWARP resets */
#define MT7988_ETHWARP_RST_SWITCH 0
+/* INFRA resets */
+#define MT7988_INFRA_RST0_THERM_CTRL_SWRST 9
+
#endif /* _DT_BINDINGS_RESET_CONTROLLER_MT7988 */
+
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] clk: mediatek: add infracfg reset controller for mt7988
2024-01-04 17:39 [PATCH 0/2] Add reset controller to mt7988 infracfg Frank Wunderlich
2024-01-04 17:39 ` [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID Frank Wunderlich
@ 2024-01-04 17:39 ` Frank Wunderlich
1 sibling, 0 replies; 6+ messages in thread
From: Frank Wunderlich @ 2024-01-04 17:39 UTC (permalink / raw)
To: linux-mediatek
Cc: Frank Wunderlich, Michael Turquette, Stephen Boyd,
Matthias Brugger, AngeloGioacchino Del Regno, Philipp Zabel,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sam Shih,
Daniel Golle, linux-clk, linux-kernel, linux-arm-kernel,
devicetree
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,
+};
+
+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[] = {
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID
2024-01-04 17:39 ` [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID Frank Wunderlich
@ 2024-01-04 18:12 ` Daniel Golle
2024-01-04 19:19 ` Krzysztof Kozlowski
0 siblings, 1 reply; 6+ messages in thread
From: Daniel Golle @ 2024-01-04 18:12 UTC (permalink / raw)
To: Frank Wunderlich
Cc: linux-mediatek, Frank Wunderlich, Michael Turquette, Stephen Boyd,
Matthias Brugger, AngeloGioacchino Del Regno, Philipp Zabel,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sam Shih,
linux-clk, linux-kernel, linux-arm-kernel, devicetree
Hi Frank,
On Thu, Jan 04, 2024 at 06:39:29PM +0100, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
>
> ---
> include/dt-bindings/reset/mediatek,mt7988-resets.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/dt-bindings/reset/mediatek,mt7988-resets.h b/include/dt-bindings/reset/mediatek,mt7988-resets.h
> index 493301971367..3f1e4ec07ad5 100644
> --- a/include/dt-bindings/reset/mediatek,mt7988-resets.h
> +++ b/include/dt-bindings/reset/mediatek,mt7988-resets.h
> @@ -10,4 +10,8 @@
> /* ETHWARP resets */
> #define MT7988_ETHWARP_RST_SWITCH 0
>
> +/* INFRA resets */
> +#define MT7988_INFRA_RST0_THERM_CTRL_SWRST 9
I suppose this argument applies here as well:
"IDs should start from 0 or 1 and increment by 1. If these are not IDs,
then you do not need them in the bindings."
https://lore.kernel.org/all/59629ec1-cc0c-4c5a-87cc-ea30d64ec191@linaro.org/
As a consequence, as what you are describing there are hardware bits
rather than IDs used by the driver, you can just use a numeric constant
in device tree instead of adding dt-bindings header.
Or change the driver so RST0_THERM_CTRL_SWRST could be defined as 0.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID
2024-01-04 18:12 ` Daniel Golle
@ 2024-01-04 19:19 ` Krzysztof Kozlowski
2024-01-04 20:54 ` Aw: " Frank Wunderlich
0 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Kozlowski @ 2024-01-04 19:19 UTC (permalink / raw)
To: Daniel Golle, Frank Wunderlich
Cc: linux-mediatek, Frank Wunderlich, Michael Turquette, Stephen Boyd,
Matthias Brugger, AngeloGioacchino Del Regno, Philipp Zabel,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sam Shih,
linux-clk, linux-kernel, linux-arm-kernel, devicetree
On 04/01/2024 19:12, Daniel Golle wrote:
> Hi Frank,
>
> On Thu, Jan 04, 2024 at 06:39:29PM +0100, Frank Wunderlich wrote:
>> From: Frank Wunderlich <frank-w@public-files.de>
>>
>> ---
>> include/dt-bindings/reset/mediatek,mt7988-resets.h | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/include/dt-bindings/reset/mediatek,mt7988-resets.h b/include/dt-bindings/reset/mediatek,mt7988-resets.h
>> index 493301971367..3f1e4ec07ad5 100644
>> --- a/include/dt-bindings/reset/mediatek,mt7988-resets.h
>> +++ b/include/dt-bindings/reset/mediatek,mt7988-resets.h
>> @@ -10,4 +10,8 @@
>> /* ETHWARP resets */
>> #define MT7988_ETHWARP_RST_SWITCH 0
>>
>> +/* INFRA resets */
>> +#define MT7988_INFRA_RST0_THERM_CTRL_SWRST 9
>
> I suppose this argument applies here as well:
>
> "IDs should start from 0 or 1 and increment by 1. If these are not IDs,
> then you do not need them in the bindings."
>
> https://lore.kernel.org/all/59629ec1-cc0c-4c5a-87cc-ea30d64ec191@linaro.org/
>
> As a consequence, as what you are describing there are hardware bits
If this is existing driver which already uses such pattern, then it is
fine. I usually comment this on new drivers which can be changed.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Aw: Re: [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID
2024-01-04 19:19 ` Krzysztof Kozlowski
@ 2024-01-04 20:54 ` Frank Wunderlich
0 siblings, 0 replies; 6+ messages in thread
From: Frank Wunderlich @ 2024-01-04 20:54 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Daniel Golle, Frank Wunderlich, linux-mediatek, Michael Turquette,
Stephen Boyd, Matthias Brugger, AngeloGioacchino Del Regno,
Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Sam Shih, linux-clk, linux-kernel, linux-arm-kernel, devicetree
Hi
> Gesendet: Donnerstag, 04. Januar 2024 um 20:19 Uhr
> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>
> Betreff: Re: [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID
>
> On 04/01/2024 19:12, Daniel Golle wrote:
> > Hi Frank,
> >
> > On Thu, Jan 04, 2024 at 06:39:29PM +0100, Frank Wunderlich wrote:
> >> From: Frank Wunderlich <frank-w@public-files.de>
> >>
> >> ---
> >> include/dt-bindings/reset/mediatek,mt7988-resets.h | 4 ++++
> >> 1 file changed, 4 insertions(+)
> >>
> >> diff --git a/include/dt-bindings/reset/mediatek,mt7988-resets.h b/include/dt-bindings/reset/mediatek,mt7988-resets.h
> >> index 493301971367..3f1e4ec07ad5 100644
> >> --- a/include/dt-bindings/reset/mediatek,mt7988-resets.h
> >> +++ b/include/dt-bindings/reset/mediatek,mt7988-resets.h
> >> @@ -10,4 +10,8 @@
> >> /* ETHWARP resets */
> >> #define MT7988_ETHWARP_RST_SWITCH 0
> >>
> >> +/* INFRA resets */
> >> +#define MT7988_INFRA_RST0_THERM_CTRL_SWRST 9
> >
> > I suppose this argument applies here as well:
> >
> > "IDs should start from 0 or 1 and increment by 1. If these are not IDs,
> > then you do not need them in the bindings."
> >
> > https://lore.kernel.org/all/59629ec1-cc0c-4c5a-87cc-ea30d64ec191@linaro.org/
> >
> > As a consequence, as what you are describing there are hardware bits
>
> If this is existing driver which already uses such pattern, then it is
> fine. I usually comment this on new drivers which can be changed.
this is a new driver so i guess i should change this like daniel suggests.
As i want to use this constant in dts and driver i would like keep it as binding in the reset header,
but because i use it only as index in the infra_idx_map array its value does not need to have the value
needed in hardware. i kept it same to not have different values and for ordering purposes (when the other
possible resets are added).
so the way starting at 0 will be the preferred one for me, is this ok?
regards Frank
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-01-04 20:55 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-04 17:39 [PATCH 0/2] Add reset controller to mt7988 infracfg Frank Wunderlich
2024-01-04 17:39 ` [PATCH 1/2] dt-bindings: reset: mediatek: add MT7988 LVTS reset ID Frank Wunderlich
2024-01-04 18:12 ` Daniel Golle
2024-01-04 19:19 ` Krzysztof Kozlowski
2024-01-04 20:54 ` Aw: " Frank Wunderlich
2024-01-04 17:39 ` [PATCH 2/2] clk: mediatek: add infracfg reset controller for mt7988 Frank Wunderlich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).