linux-samsung-soc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101
@ 2024-04-30  9:49 André Draszik
  2024-04-30  9:49 ` [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: André Draszik @ 2024-04-30  9:49 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>
---
Changes in v2:
- use <0> instead of a placeholder clock (Krzysztof)
- Link to v1: https://lore.kernel.org/r/20240429-samsung-pinctrl-busclock-dts-v1-0-5e935179f3ca@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 empty clocks for remaining pinctrl

 arch/arm64/boot/dts/exynos/google/gs101.dtsi | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
---
base-commit: d04466706db5e241ee026f17b5f920e50dee26b5
change-id: 20240429-samsung-pinctrl-busclock-dts-46b223471541

Best regards,
-- 
André Draszik <andre.draszik@linaro.org>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
  2024-04-30  9:49 [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
@ 2024-04-30  9:49 ` André Draszik
  2024-05-02  6:49   ` Tudor Ambarus
  2024-04-30  9:49 ` [PATCH v2 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 12+ messages in thread
From: André Draszik @ 2024-04-30  9:49 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] 12+ messages in thread

* [PATCH v2 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
  2024-04-30  9:49 [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
  2024-04-30  9:49 ` [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
@ 2024-04-30  9:49 ` André Draszik
  2024-05-02  6:49   ` Tudor Ambarus
  2024-04-30  9:49 ` [PATCH v2 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 12+ messages in thread
From: André Draszik @ 2024-04-30  9:49 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] 12+ messages in thread

* [PATCH v2 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
  2024-04-30  9:49 [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
  2024-04-30  9:49 ` [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
  2024-04-30  9:49 ` [PATCH v2 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
@ 2024-04-30  9:49 ` André Draszik
  2024-05-02  6:50   ` Tudor Ambarus
  2024-04-30  9:49 ` [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl André Draszik
  2024-05-03  8:37 ` [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 Krzysztof Kozlowski
  4 siblings, 1 reply; 12+ messages in thread
From: André Draszik @ 2024-04-30  9:49 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] 12+ messages in thread

* [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
  2024-04-30  9:49 [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
                   ` (2 preceding siblings ...)
  2024-04-30  9:49 ` [PATCH v2 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
@ 2024-04-30  9:49 ` André Draszik
  2024-05-02  6:51   ` Tudor Ambarus
  2024-05-03  8:37 ` [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 Krzysztof Kozlowski
  4 siblings, 1 reply; 12+ messages in thread
From: André Draszik @ 2024-04-30  9:49 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 empty 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>

---
v2: use empty clock instead of placeholder
---
 arch/arm64/boot/dts/exynos/google/gs101.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/google/gs101.dtsi b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
index f8fcbbb06e7b..c8a5eb8c7d45 100644
--- a/arch/arm64/boot/dts/exynos/google/gs101.dtsi
+++ b/arch/arm64/boot/dts/exynos/google/gs101.dtsi
@@ -1309,6 +1309,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 = <0>;
+			clock-names = "pclk";
 			interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH 0>;
 		};
 
@@ -1380,11 +1383,17 @@ wakeup-interrupt-controller {
 		pinctrl_gsactrl: pinctrl@17940000 {
 			compatible = "google,gs101-pinctrl";
 			reg = <0x17940000 0x00001000>;
+			/* TODO: update once support for this CMU exists */
+			clocks = <0>;
+			clock-names = "pclk";
 		};
 
 		pinctrl_gsacore: pinctrl@17a80000 {
 			compatible = "google,gs101-pinctrl";
 			reg = <0x17a80000 0x00001000>;
+			/* TODO: update once support for this CMU exists */
+			clocks = <0>;
+			clock-names = "pclk";
 		};
 
 		cmu_top: clock-controller@1e080000 {

-- 
2.44.0.769.g3c40516874-goog


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
  2024-04-30  9:49 ` [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
@ 2024-05-02  6:49   ` Tudor Ambarus
  0 siblings, 0 replies; 12+ messages in thread
From: Tudor Ambarus @ 2024-05-02  6:49 UTC (permalink / raw)
  To: André Draszik, Peter Griffin, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, Sam Protsenko, kernel-team, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
  2024-04-30  9:49 ` [PATCH v2 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
@ 2024-05-02  6:49   ` Tudor Ambarus
  0 siblings, 0 replies; 12+ messages in thread
From: Tudor Ambarus @ 2024-05-02  6:49 UTC (permalink / raw)
  To: André Draszik, Peter Griffin, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, Sam Protsenko, kernel-team, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
  2024-04-30  9:49 ` [PATCH v2 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
@ 2024-05-02  6:50   ` Tudor Ambarus
  0 siblings, 0 replies; 12+ messages in thread
From: Tudor Ambarus @ 2024-05-02  6:50 UTC (permalink / raw)
  To: André Draszik, Peter Griffin, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, Sam Protsenko, kernel-team, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
  2024-04-30  9:49 ` [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl André Draszik
@ 2024-05-02  6:51   ` Tudor Ambarus
  2024-05-02 10:44     ` André Draszik
  0 siblings, 1 reply; 12+ messages in thread
From: Tudor Ambarus @ 2024-05-02  6:51 UTC (permalink / raw)
  To: André Draszik, Peter Griffin, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, Sam Protsenko, kernel-team, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel


All 4 patches could have been squashed in a single patch as they do the
same thing, but I'm fine either way:

Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
  2024-05-02  6:51   ` Tudor Ambarus
@ 2024-05-02 10:44     ` André Draszik
  2024-05-03  8:36       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 12+ messages in thread
From: André Draszik @ 2024-05-02 10:44 UTC (permalink / raw)
  To: Tudor Ambarus, Peter Griffin, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alim Akhtar
  Cc: Will McVicker, Sam Protsenko, kernel-team, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

On Thu, 2024-05-02 at 07:51 +0100, Tudor Ambarus wrote:
> 
> All 4 patches could have been squashed in a single patch as they do the
> same thing, but I'm fine either way:
> 
> Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>

I guess the patches had accumulated gradually over a period of time while
more CMU support was being implemented.

I'm happy to squash them if that's the preference? Krzysztof?


Cheers,
Andre'


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
  2024-05-02 10:44     ` André Draszik
@ 2024-05-03  8:36       ` Krzysztof Kozlowski
  0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2024-05-03  8:36 UTC (permalink / raw)
  To: André Draszik, Tudor Ambarus, Peter Griffin, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Alim Akhtar
  Cc: Will McVicker, Sam Protsenko, kernel-team, linux-arm-kernel,
	linux-samsung-soc, devicetree, linux-kernel

On 02/05/2024 12:44, André Draszik wrote:
> On Thu, 2024-05-02 at 07:51 +0100, Tudor Ambarus wrote:
>>
>> All 4 patches could have been squashed in a single patch as they do the
>> same thing, but I'm fine either way:
>>
>> Reviewed-by: Tudor Ambarus <tudor.ambarus@linaro.org>
> 
> I guess the patches had accumulated gradually over a period of time while
> more CMU support was being implemented.
> 
> I'm happy to squash them if that's the preference? Krzysztof?

It's fine.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101
  2024-04-30  9:49 [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
                   ` (3 preceding siblings ...)
  2024-04-30  9:49 ` [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl André Draszik
@ 2024-05-03  8:37 ` Krzysztof Kozlowski
  4 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2024-05-03  8:37 UTC (permalink / raw)
  To: Peter Griffin, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Alim Akhtar, André Draszik
  Cc: Tudor Ambarus, Will McVicker, Sam Protsenko, kernel-team,
	linux-arm-kernel, linux-samsung-soc, devicetree, linux-kernel


On Tue, 30 Apr 2024 10:49:45 +0100, André Draszik wrote:
> 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.
> 
> [...]

Applied, thanks!

[1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
      https://git.kernel.org/krzk/linux/c/1665b303a00c1acb2fe126486c6256c755f0b7c4
[2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
      https://git.kernel.org/krzk/linux/c/42e3f188b238b7fb1c42dee8b4dc4107cbb321e2
[3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
      https://git.kernel.org/krzk/linux/c/8120dc4656aedf86c24e1b5776f84fdd9f8ece80
[4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
      https://git.kernel.org/krzk/linux/c/4db286b0a29aa3576a401b637ac5910dac22117f

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-05-03  8:37 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-30  9:49 [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 André Draszik
2024-04-30  9:49 ` [PATCH v2 1/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive André Draszik
2024-05-02  6:49   ` Tudor Ambarus
2024-04-30  9:49 ` [PATCH v2 2/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01] André Draszik
2024-05-02  6:49   ` Tudor Ambarus
2024-04-30  9:49 ` [PATCH v2 3/4] arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2 André Draszik
2024-05-02  6:50   ` Tudor Ambarus
2024-04-30  9:49 ` [PATCH v2 4/4] arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl André Draszik
2024-05-02  6:51   ` Tudor Ambarus
2024-05-02 10:44     ` André Draszik
2024-05-03  8:36       ` Krzysztof Kozlowski
2024-05-03  8:37 ` [PATCH v2 0/4] hook up pin controller clocks on Google Tensor gs101 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).