diff mbox series

[v1] arm64: dts: ti: k3-am62p: Enable AUDIO_REFCLKx

Message ID 20250206153911.414702-1-francesco@dolcini.it (mailing list archive)
State New
Headers show
Series [v1] arm64: dts: ti: k3-am62p: Enable AUDIO_REFCLKx | expand

Commit Message

Francesco Dolcini Feb. 6, 2025, 3:39 p.m. UTC
From: Francesco Dolcini <francesco.dolcini@toradex.com>

On AM62P-based SoCs the AUDIO_REFCLKx clocks can be used as an input to
external peripherals when configured through CTRL_MMR, so add the
clock nodes.

Link: http://downloads.ti.com/tisci/esd/latest/5_soc_doc/am62px/clocks.html
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
---
 arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

Comments

Nishanth Menon Feb. 7, 2025, 1:42 a.m. UTC | #1
On 16:39-20250206, Francesco Dolcini wrote:
> From: Francesco Dolcini <francesco.dolcini@toradex.com>
> 
> On AM62P-based SoCs the AUDIO_REFCLKx clocks can be used as an input to
> external peripherals when configured through CTRL_MMR, so add the
> clock nodes.
> 
> Link: http://downloads.ti.com/tisci/esd/latest/5_soc_doc/am62px/clocks.html
> Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> ---
>  arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> index 420c77c8e9e5..4b47b0774330 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> @@ -42,6 +42,26 @@ &inta_main_dmss {
>  	ti,interrupt-ranges = <5 69 35>;
>  };
>  
> +&main_conf {

	Why not add it to main_conf section it self in the file?

> +	audio_refclk0: clock-controller@82e0 {
> +		compatible = "ti,am62-audio-refclk";
> +		reg = <0x82e0 0x4>;
> +		clocks = <&k3_clks 157 0>;
> +		assigned-clocks = <&k3_clks 157 0>;
> +		assigned-clock-parents = <&k3_clks 157 16>;
> +		#clock-cells = <0>;
> +	};
> +
> +	audio_refclk1: clock-controller@82e4 {
> +		compatible = "ti,am62-audio-refclk";
> +		reg = <0x82e4 0x4>;
> +		clocks = <&k3_clks 157 18>;
> +		assigned-clocks = <&k3_clks 157 18>;
> +		assigned-clock-parents = <&k3_clks 157 34>;
> +		#clock-cells = <0>;
> +	};
> +};
> +
>  &main_pmx0 {
>  	pinctrl-single,gpio-range =
>  		<&main_pmx0_range 0 32 PIN_GPIO_RANGE_IOPAD>,
> -- 
> 2.39.5
>
Francesco Dolcini Feb. 7, 2025, 8:33 a.m. UTC | #2
Hello Nishanth,

On Thu, Feb 06, 2025 at 07:42:39PM -0600, Nishanth Menon wrote:
> On 16:39-20250206, Francesco Dolcini wrote:
> > From: Francesco Dolcini <francesco.dolcini@toradex.com>
> > 
> > On AM62P-based SoCs the AUDIO_REFCLKx clocks can be used as an input to
> > external peripherals when configured through CTRL_MMR, so add the
> > clock nodes.
> > 
> > Link: http://downloads.ti.com/tisci/esd/latest/5_soc_doc/am62px/clocks.html
> > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> > ---
> >  arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 20 ++++++++++++++++++++
> >  1 file changed, 20 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > index 420c77c8e9e5..4b47b0774330 100644
> > --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > @@ -42,6 +42,26 @@ &inta_main_dmss {
> >  	ti,interrupt-ranges = <5 69 35>;
> >  };
> >  
> > +&main_conf {
> 
> 	Why not add it to main_conf section it self in the file?

The reason is that main_conf is defined in k3-am62p-j722s-common-main.dtsi,
that is shared between am62p and j722s.

On j722s the audio refclk is added in k3-j722s-main.dtsi the same way as I did
here, so I cannot move this to k3-am62p-j722s-common-main.dtsi without updating
also k3-j722s-main.dtsi.

I looked into the differences of j722s and am62p, and from my understanding,
from the audio refclk point of view, they are identical (same IP, same reg, same
clocks and same IDs), so this should naturally be moved to
k3-am62p-j722s-common-main.dtsi as you are suggesting.

... however, for some reason I am not aware of, on k3-j722s-main.dtsi a different
parent clock is used, and I cannot understand the reason. The actual parent clocks
in this patch are just the same we already have everywhere apart on j722s. I tried
to look at the history of this and it seems that on the TI downstream kernel branch
this is defined in the board dts file (!) and this confused me even more.

So, not wanting to break stuff I was not able to understand I came up with this
proposal.

An alternative could be to override the "unexpected" clocks from
k3-j722s-main.dtsi to the board dts file, and have the "standard" clocks, as
proposed in this patch and already used on all the other AM62 variants, in
k3-am62p-j722s-common-main.dtsi.

+Jayesh that is the author of this specific change in k3-j722s-main.dtsi.

Francesco

> > +	audio_refclk0: clock-controller@82e0 {
> > +		compatible = "ti,am62-audio-refclk";
> > +		reg = <0x82e0 0x4>;
> > +		clocks = <&k3_clks 157 0>;
> > +		assigned-clocks = <&k3_clks 157 0>;
> > +		assigned-clock-parents = <&k3_clks 157 16>;
> > +		#clock-cells = <0>;
> > +	};
> > +
> > +	audio_refclk1: clock-controller@82e4 {
> > +		compatible = "ti,am62-audio-refclk";
> > +		reg = <0x82e4 0x4>;
> > +		clocks = <&k3_clks 157 18>;
> > +		assigned-clocks = <&k3_clks 157 18>;
> > +		assigned-clock-parents = <&k3_clks 157 34>;
> > +		#clock-cells = <0>;
> > +	};
> > +};
> > +
Francesco Dolcini Feb. 28, 2025, 12:43 p.m. UTC | #3
On Fri, Feb 07, 2025 at 09:33:01AM +0100, Francesco Dolcini wrote:
> On Thu, Feb 06, 2025 at 07:42:39PM -0600, Nishanth Menon wrote:
> > On 16:39-20250206, Francesco Dolcini wrote:
> > > From: Francesco Dolcini <francesco.dolcini@toradex.com>
> > > 
> > > On AM62P-based SoCs the AUDIO_REFCLKx clocks can be used as an input to
> > > external peripherals when configured through CTRL_MMR, so add the
> > > clock nodes.
> > > 
> > > Link: http://downloads.ti.com/tisci/esd/latest/5_soc_doc/am62px/clocks.html
> > > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> > > ---
> > >  arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 20 ++++++++++++++++++++
> > >  1 file changed, 20 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > > index 420c77c8e9e5..4b47b0774330 100644
> > > --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > > +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > > @@ -42,6 +42,26 @@ &inta_main_dmss {
> > >  	ti,interrupt-ranges = <5 69 35>;
> > >  };
> > >  
> > > +&main_conf {
> > 
> > 	Why not add it to main_conf section it self in the file?
> 
> The reason is that main_conf is defined in k3-am62p-j722s-common-main.dtsi,
> that is shared between am62p and j722s.
> 
> On j722s the audio refclk is added in k3-j722s-main.dtsi the same way as I did
> here, so I cannot move this to k3-am62p-j722s-common-main.dtsi without updating
> also k3-j722s-main.dtsi.
> 
> I looked into the differences of j722s and am62p, and from my understanding,
> from the audio refclk point of view, they are identical (same IP, same reg, same
> clocks and same IDs), so this should naturally be moved to
> k3-am62p-j722s-common-main.dtsi as you are suggesting.
> 
> ... however, for some reason I am not aware of, on k3-j722s-main.dtsi a different
> parent clock is used, and I cannot understand the reason. The actual parent clocks
> in this patch are just the same we already have everywhere apart on j722s. I tried
> to look at the history of this and it seems that on the TI downstream kernel branch
> this is defined in the board dts file (!) and this confused me even more.
> 
> So, not wanting to break stuff I was not able to understand I came up with this
> proposal.
> 
> An alternative could be to override the "unexpected" clocks from
> k3-j722s-main.dtsi to the board dts file, and have the "standard" clocks, as
> proposed in this patch and already used on all the other AM62 variants, in
> k3-am62p-j722s-common-main.dtsi.
> 
> +Jayesh that is the author of this specific change in k3-j722s-main.dtsi.

Jayesh, Nishanth, any comment on this?

Should I proceed with this last option ?

   An alternative could be to override the "unexpected" clocks from
   k3-j722s-main.dtsi to the board dts file, and have the "standard" clocks, as
   proposed in this patch and already used on all the other AM62 variants, in
   k3-am62p-j722s-common-main.dtsi.

Francesco
Nishanth Menon Feb. 28, 2025, 1:53 p.m. UTC | #4
On 13:43-20250228, Francesco Dolcini wrote:
> On Fri, Feb 07, 2025 at 09:33:01AM +0100, Francesco Dolcini wrote:
> > On Thu, Feb 06, 2025 at 07:42:39PM -0600, Nishanth Menon wrote:
> > > On 16:39-20250206, Francesco Dolcini wrote:
> > > > From: Francesco Dolcini <francesco.dolcini@toradex.com>
> > > > 
> > > > On AM62P-based SoCs the AUDIO_REFCLKx clocks can be used as an input to
> > > > external peripherals when configured through CTRL_MMR, so add the
> > > > clock nodes.
> > > > 
> > > > Link: http://downloads.ti.com/tisci/esd/latest/5_soc_doc/am62px/clocks.html
> > > > Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
> > > > ---
> > > >  arch/arm64/boot/dts/ti/k3-am62p-main.dtsi | 20 ++++++++++++++++++++
> > > >  1 file changed, 20 insertions(+)
> > > > 
> > > > diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > > > index 420c77c8e9e5..4b47b0774330 100644
> > > > --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > > > +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
> > > > @@ -42,6 +42,26 @@ &inta_main_dmss {
> > > >  	ti,interrupt-ranges = <5 69 35>;
> > > >  };
> > > >  
> > > > +&main_conf {
> > > 
> > > 	Why not add it to main_conf section it self in the file?
> > 
> > The reason is that main_conf is defined in k3-am62p-j722s-common-main.dtsi,
> > that is shared between am62p and j722s.
> > 
> > On j722s the audio refclk is added in k3-j722s-main.dtsi the same way as I did
> > here, so I cannot move this to k3-am62p-j722s-common-main.dtsi without updating
> > also k3-j722s-main.dtsi.
> > 
> > I looked into the differences of j722s and am62p, and from my understanding,
> > from the audio refclk point of view, they are identical (same IP, same reg, same
> > clocks and same IDs), so this should naturally be moved to
> > k3-am62p-j722s-common-main.dtsi as you are suggesting.
> > 
> > ... however, for some reason I am not aware of, on k3-j722s-main.dtsi a different
> > parent clock is used, and I cannot understand the reason. The actual parent clocks
> > in this patch are just the same we already have everywhere apart on j722s. I tried
> > to look at the history of this and it seems that on the TI downstream kernel branch
> > this is defined in the board dts file (!) and this confused me even more.
> > 
> > So, not wanting to break stuff I was not able to understand I came up with this
> > proposal.
> > 
> > An alternative could be to override the "unexpected" clocks from
> > k3-j722s-main.dtsi to the board dts file, and have the "standard" clocks, as
> > proposed in this patch and already used on all the other AM62 variants, in
> > k3-am62p-j722s-common-main.dtsi.
> > 
> > +Jayesh that is the author of this specific change in k3-j722s-main.dtsi.
> 
> Jayesh, Nishanth, any comment on this?
> 
> Should I proceed with this last option ?
> 
>    An alternative could be to override the "unexpected" clocks from
>    k3-j722s-main.dtsi to the board dts file, and have the "standard" clocks, as
>    proposed in this patch and already used on all the other AM62 variants, in
>    k3-am62p-j722s-common-main.dtsi.
> 

no, with your explanation it is clear that your patch matches with the
strategy we are using currently.
Vignesh Raghavendra March 2, 2025, 1:19 p.m. UTC | #5
Hi Francesco Dolcini,

On Thu, 06 Feb 2025 16:39:11 +0100, Francesco Dolcini wrote:
> On AM62P-based SoCs the AUDIO_REFCLKx clocks can be used as an input to
> external peripherals when configured through CTRL_MMR, so add the
> clock nodes.
> 
> 

I have applied the following to branch ti-next on [1].
Thank you!

[1/1] arm64: dts: ti: k3-am62p: Enable AUDIO_REFCLKx
      commit: a5a7b2be9506d4483ddc9b4bd20e8948c456a8cb

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent up the chain during
the next merge window (or sooner if it is a relevant bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
--
Vignesh
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
index 420c77c8e9e5..4b47b0774330 100644
--- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
@@ -42,6 +42,26 @@  &inta_main_dmss {
 	ti,interrupt-ranges = <5 69 35>;
 };
 
+&main_conf {
+	audio_refclk0: clock-controller@82e0 {
+		compatible = "ti,am62-audio-refclk";
+		reg = <0x82e0 0x4>;
+		clocks = <&k3_clks 157 0>;
+		assigned-clocks = <&k3_clks 157 0>;
+		assigned-clock-parents = <&k3_clks 157 16>;
+		#clock-cells = <0>;
+	};
+
+	audio_refclk1: clock-controller@82e4 {
+		compatible = "ti,am62-audio-refclk";
+		reg = <0x82e4 0x4>;
+		clocks = <&k3_clks 157 18>;
+		assigned-clocks = <&k3_clks 157 18>;
+		assigned-clock-parents = <&k3_clks 157 34>;
+		#clock-cells = <0>;
+	};
+};
+
 &main_pmx0 {
 	pinctrl-single,gpio-range =
 		<&main_pmx0_range 0 32 PIN_GPIO_RANGE_IOPAD>,