* [PATCH 0/4] hook up pin controller clocks on Google Tensor gs101
@ 2024-04-29 20:04 André Draszik
2024-04-29 20:04 ` [PATCH 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: André Draszik @ 2024-04-29 20:04 UTC (permalink / raw)
To: Peter Griffin, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alim Akhtar
Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
André Draszik
This series hooks up the individual clocks for each pin controller in the
gs101 DTS.
On Google Tensor gs101 there are separate bus clocks / gates each for each
pinctrl instance. To be able to access each pinctrl instance's registers,
this bus clock needs to be running, otherwise register access will hang.
The driver update to support this extra clock has been proposed in
https://lore.kernel.org/r/20240426-samsung-pinctrl-busclock-v3-0-adb8664b8a7e@linaro.org
This series depends on:
* hsi2 series:
https://lore.kernel.org/r/20240429-hsi0-gs101-v3-0-f233be0a2455@linaro.org
* pin controller clock support:
https://lore.kernel.org/r/20240426-samsung-pinctrl-busclock-v3-0-adb8664b8a7e@linaro.org
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
André Draszik (4):
arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
---
base-commit: 87e0588641086e91f3d0a7d97b939301990b1e86
change-id: 20240429-samsung-pinctrl-busclock-dts-46b223471541
Best regards,
--
André Draszik <andre.draszik@linaro.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
2024-04-29 20:04 [PATCH 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
@ 2024-04-29 20:04 ` André Draszik
2024-04-29 20:04 ` [PATCH 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: André Draszik @ 2024-04-29 20:04 UTC (permalink / raw)
To: Peter Griffin, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alim Akhtar
Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
André Draszik
This bus clock is needed for pinctrl register access to work. Add it.
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index e3b068c1a2c1..f2c7c2a4ce1c 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -1348,6 +1348,8 @@ pmu_system_controller: system-controller@17460000 {
pinctrl_gpio_alive: pinctrl@174d0000 {
compatible = "google,gs101-pinctrl";
reg = <0x174d0000 0x00001000>;
+ clocks = <&cmu_apm CLK_GOUT_APM_APBIF_GPIO_ALIVE_PCLK>;
+ clock-names = "pclk";
wakeup-interrupt-controller {
compatible = "google,gs101-wakeup-eint",
@@ -1359,6 +1361,8 @@ wakeup-interrupt-controller {
pinctrl_far_alive: pinctrl@174e0000 {
compatible = "google,gs101-pinctrl";
reg = <0x174e0000 0x00001000>;
+ clocks = <&cmu_apm CLK_GOUT_APM_APBIF_GPIO_FAR_ALIVE_PCLK>;
+ clock-names = "pclk";
wakeup-interrupt-controller {
compatible = "google,gs101-wakeup-eint",
--
2.44.0.769.g3c40516874-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
2024-04-29 20:04 [PATCH 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
2024-04-29 20:04 ` [PATCH 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
@ 2024-04-29 20:04 ` André Draszik
2024-04-29 20:04 ` [PATCH 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
2024-04-29 20:04 ` [PATCH 4/4] arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl André Draszik
3 siblings, 0 replies; 6+ messages in thread
From: André Draszik @ 2024-04-29 20:04 UTC (permalink / raw)
To: Peter Griffin, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alim Akhtar
Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
André Draszik
This bus clock is needed for pinctrl register access to work. Add it.
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index f2c7c2a4ce1c..8d4216cbab2e 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -370,6 +370,8 @@ sysreg_peric0: syscon@10820000 {
pinctrl_peric0: pinctrl@10840000 {
compatible = "google,gs101-pinctrl";
reg = <0x10840000 0x00001000>;
+ clocks = <&cmu_peric0 CLK_GOUT_PERIC0_GPIO_PERIC0_PCLK>;
+ clock-names = "pclk";
interrupts = <GIC_SPI 625 IRQ_TYPE_LEVEL_HIGH 0>;
};
@@ -914,6 +916,8 @@ sysreg_peric1: syscon@10c20000 {
pinctrl_peric1: pinctrl@10c40000 {
compatible = "google,gs101-pinctrl";
reg = <0x10c40000 0x00001000>;
+ clocks = <&cmu_peric1 CLK_GOUT_PERIC1_GPIO_PERIC1_PCLK>;
+ clock-names = "pclk";
interrupts = <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
};
--
2.44.0.769.g3c40516874-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
2024-04-29 20:04 [PATCH 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
2024-04-29 20:04 ` [PATCH 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
2024-04-29 20:04 ` [PATCH 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
@ 2024-04-29 20:04 ` André Draszik
2024-04-29 20:04 ` [PATCH 4/4] arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl André Draszik
3 siblings, 0 replies; 6+ messages in thread
From: André Draszik @ 2024-04-29 20:04 UTC (permalink / raw)
To: Peter Griffin, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alim Akhtar
Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
André Draszik
This bus clock is needed for pinctrl register access to work. Add it.
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index 8d4216cbab2e..f8fcbbb06e7b 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -1327,6 +1327,8 @@ cmu_hsi2: clock-controller@14400000 {
pinctrl_hsi2: pinctrl@14440000 {
compatible = "google,gs101-pinctrl";
reg = <0x14440000 0x00001000>;
+ clocks = <&cmu_hsi2 CLK_GOUT_HSI2_GPIO_HSI2_PCLK>;
+ clock-names = "pclk";
interrupts = <GIC_SPI 503 IRQ_TYPE_LEVEL_HIGH 0>;
};
--
2.44.0.769.g3c40516874-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl
2024-04-29 20:04 [PATCH 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
` (2 preceding siblings ...)
2024-04-29 20:04 ` [PATCH 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
@ 2024-04-29 20:04 ` André Draszik
2024-04-30 6:16 ` Krzysztof Kozlowski
3 siblings, 1 reply; 6+ messages in thread
From: André Draszik @ 2024-04-29 20:04 UTC (permalink / raw)
To: Peter Griffin, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Alim Akhtar
Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel,
André Draszik
The pinctrl instances hsi1, gsactrl, and gsacore need a clock for
register access to work.
Since we haven't implemented the relevant CMUs for the clocks required
by these instances just add placeholder clocks for now so as to make the
DT pass the validation checks.
Once the clocks are implmented in the gs101 clock driver, these should
be updated then.
Signed-off-by: André Draszik <andre.draszik@linaro.org>
---
arch/arm64/boot/dts/exynos/google/gs101.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index f8fcbbb06e7b..6db2c9bbb371 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -180,6 +180,14 @@ HERA_CPU_SLEEP: cpu-hera-sleep {
};
};
+ /* TODO: Remove this once all pinctrl clocks are implemented */
+ clk_placeholder: clock-placeholder {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <0>;
+ clock-output-names = "placeholder_clk";
+ };
+
/* ect node is required to be present by bootloader */
ect {
};
@@ -1309,6 +1317,9 @@ usbdrd31_dwc3: usb@0 {
pinctrl_hsi1: pinctrl@11840000 {
compatible = "google,gs101-pinctrl";
reg = <0x11840000 0x00001000>;
+ /* TODO: update once support for this CMU exists */
+ clocks = <&clk_placeholder>;
+ clock-names = "pclk";
interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH 0>;
};
@@ -1380,11 +1391,17 @@ wakeup-interrupt-controller {
pinctrl_gsactrl: pinctrl@17940000 {
compatible = "google,gs101-pinctrl";
reg = <0x17940000 0x00001000>;
+ /* TODO: update once support for this CMU exists */
+ clocks = <&clk_placeholder>;
+ clock-names = "pclk";
};
pinctrl_gsacore: pinctrl@17a80000 {
compatible = "google,gs101-pinctrl";
reg = <0x17a80000 0x00001000>;
+ /* TODO: update once support for this CMU exists */
+ clocks = <&clk_placeholder>;
+ clock-names = "pclk";
};
cmu_top: clock-controller@1e080000 {
--
2.44.0.769.g3c40516874-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 4/4] arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl
2024-04-29 20:04 ` [PATCH 4/4] arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl André Draszik
@ 2024-04-30 6:16 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2024-04-30 6:16 UTC (permalink / raw)
To: André Draszik, Peter Griffin, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel
On 29/04/2024 22:04, André Draszik wrote:
> The pinctrl instances hsi1, gsactrl, and gsacore need a clock for
> register access to work.
>
> Since we haven't implemented the relevant CMUs for the clocks required
> by these instances just add placeholder clocks for now so as to make the
> DT pass the validation checks.
> Once the clocks are implmented in the gs101 clock driver, these should
> be updated then.
>
> Signed-off-by: André Draszik <andre.draszik@linaro.org>
> ---
> arch/arm64/boot/dts/exynos/google/gs101.dtsi | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
> index f8fcbbb06e7b..6db2c9bbb371 100644
> --- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
> +++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
> @@ -180,6 +180,14 @@ HERA_CPU_SLEEP: cpu-hera-sleep {
> };
> };
>
> + /* TODO: Remove this once all pinctrl clocks are implemented */
> + clk_placeholder: clock-placeholder {
> + compatible = "fixed-clock";
> + #clock-cells = <0>;
> + clock-frequency = <0>;
> + clock-output-names = "placeholder_clk";
> + };
> +
> /* ect node is required to be present by bootloader */
> ect {
> };
> @@ -1309,6 +1317,9 @@ usbdrd31_dwc3: usb@0 {
> pinctrl_hsi1: pinctrl@11840000 {
> compatible = "google,gs101-pinctrl";
> reg = <0x11840000 0x00001000>;
> + /* TODO: update once support for this CMU exists */
> + clocks = <&clk_placeholder>;
<0> does not work for you?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-04-30 6:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-29 20:04 [PATCH 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
2024-04-29 20:04 ` [PATCH 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
2024-04-29 20:04 ` [PATCH 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
2024-04-29 20:04 ` [PATCH 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
2024-04-29 20:04 ` [PATCH 4/4] arm64: dts: exynos: gs101: specify placeholder clocks for remaining pinctrl André Draszik
2024-04-30 6:16 ` Krzysztof Kozlowski
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).