All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trevor Woerner <twoerner@gmail.com>
To: Vladimir Zapolskiy <vz@mleia.com>
Cc: Robin Murphy <robin.murphy@arm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Kuldeep Singh <singh.kuldeep87k@gmail.com>,
	Olof Johansson <olof@lixom.net>, SoC Team <soc@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	DTML <devicetree@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 3/3] ARM: dts: lpc32xx: Update spi clock properties
Date: Sun, 27 Mar 2022 14:32:13 -0400	[thread overview]
Message-ID: <20220327183213.GA36326@localhost> (raw)
In-Reply-To: <024f0d22-47d8-2d14-bed4-9f538a1537b3@mleia.com>

Hi Vladimir,

On Sun 2022-03-27 @ 07:27:00 PM, Vladimir Zapolskiy wrote:
> Hi Trevor,
> 
> On 3/27/22 5:57 AM, Trevor Woerner wrote:
> > On the lpc32xx both the SPI and SSP peripherals are APB devices (low-speed)
> > 
> > lpc32xx-apb-peripherals.png
> > The APB devices on this SoC are driven by the PERIPH_CLK which can be
> > derived from either the HCLK or the SYSCLK.
> 
> thank you for the data, I'd like to reference to Table 14, which says that
> both bus clock source and function clock source for SSP0 and SSP1 are a
> non-selectable HCLK. I'm unsure if for instance PERIPH_CLK can be set as
> a function clock source for SSPx.

Interesting. I see that I had assumed that all APB peripherals would be driven
by the PERIPH_CLK since the diagram shows that clock as going to all APB
peripherals.

In the SSP chapter, for example, there is a clock prescale register, which
says:

	This register controls the factor by which the prescaler divides the AHB clock
	HCLK to yield the prescaler clock that is, in turn, divided by the SCR factor
	in SSPnCR0, to determine the bit clock.

So that confirms that the clock driving the SSP (an APB peripheral) is the
AHB's HCLK!

Section 21.7 of the SPI chapter also clearly shows the SPI clock as being
derived from the HCLK as well.

Thanks for the clarification :-)

> > lpc32xx-clock.png
> > The default on reset is for PERIPH_CLK to be derived from the SYSCLK but
> > both U-Boot and Linux run in "normal" mode, which is to say that
> > PERIPH_CLK, HCLK, ARM_CLK, and DDRAM_CLK are derived from the HCLK PLL.>
> > There is no separate SSP clock, the SSP is driven by one clock: the
> > PERIPH_CLK (or "apb_pclk").
> 
> Right, there is no separate SSP clock in sense of a bus clock, it is
> correct to get HCLK clock (or equally its child SSP clock) rate as a bus
> clock rate, and the reason for introduction of SSP0/SSP1 clocks is that
> these clocks are gated.
> 
> If I'm correct above, what does it mean in connection to LPC32xx device
> tree bindings? The first or single clock source shall remain to be SSPx
> clock, either the former is "sspclk" or "apb_pclk".

Doesn't this mean the apb_pclk should not be specified as the SSP/SPI clock?
If sspclk is a synonym for HCLK, then sspclk and apb_pclk are completely
different clocks. On my device HCLK is 260MHz and PERIPH_CLK is 13MHz.

WARNING: multiple messages have this Message-ID (diff)
From: Trevor Woerner <twoerner@gmail.com>
To: Vladimir Zapolskiy <vz@mleia.com>
Cc: Robin Murphy <robin.murphy@arm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Kuldeep Singh <singh.kuldeep87k@gmail.com>,
	Olof Johansson <olof@lixom.net>, SoC Team <soc@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	DTML <devicetree@vger.kernel.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 3/3] ARM: dts: lpc32xx: Update spi clock properties
Date: Sun, 27 Mar 2022 14:32:13 -0400	[thread overview]
Message-ID: <20220327183213.GA36326@localhost> (raw)
In-Reply-To: <024f0d22-47d8-2d14-bed4-9f538a1537b3@mleia.com>

Hi Vladimir,

On Sun 2022-03-27 @ 07:27:00 PM, Vladimir Zapolskiy wrote:
> Hi Trevor,
> 
> On 3/27/22 5:57 AM, Trevor Woerner wrote:
> > On the lpc32xx both the SPI and SSP peripherals are APB devices (low-speed)
> > 
> > lpc32xx-apb-peripherals.png
> > The APB devices on this SoC are driven by the PERIPH_CLK which can be
> > derived from either the HCLK or the SYSCLK.
> 
> thank you for the data, I'd like to reference to Table 14, which says that
> both bus clock source and function clock source for SSP0 and SSP1 are a
> non-selectable HCLK. I'm unsure if for instance PERIPH_CLK can be set as
> a function clock source for SSPx.

Interesting. I see that I had assumed that all APB peripherals would be driven
by the PERIPH_CLK since the diagram shows that clock as going to all APB
peripherals.

In the SSP chapter, for example, there is a clock prescale register, which
says:

	This register controls the factor by which the prescaler divides the AHB clock
	HCLK to yield the prescaler clock that is, in turn, divided by the SCR factor
	in SSPnCR0, to determine the bit clock.

So that confirms that the clock driving the SSP (an APB peripheral) is the
AHB's HCLK!

Section 21.7 of the SPI chapter also clearly shows the SPI clock as being
derived from the HCLK as well.

Thanks for the clarification :-)

> > lpc32xx-clock.png
> > The default on reset is for PERIPH_CLK to be derived from the SYSCLK but
> > both U-Boot and Linux run in "normal" mode, which is to say that
> > PERIPH_CLK, HCLK, ARM_CLK, and DDRAM_CLK are derived from the HCLK PLL.>
> > There is no separate SSP clock, the SSP is driven by one clock: the
> > PERIPH_CLK (or "apb_pclk").
> 
> Right, there is no separate SSP clock in sense of a bus clock, it is
> correct to get HCLK clock (or equally its child SSP clock) rate as a bus
> clock rate, and the reason for introduction of SSP0/SSP1 clocks is that
> these clocks are gated.
> 
> If I'm correct above, what does it mean in connection to LPC32xx device
> tree bindings? The first or single clock source shall remain to be SSPx
> clock, either the former is "sspclk" or "apb_pclk".

Doesn't this mean the apb_pclk should not be specified as the SSP/SPI clock?
If sspclk is a synonym for HCLK, then sspclk and apb_pclk are completely
different clocks. On my device HCLK is 260MHz and PERIPH_CLK is 13MHz.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-03-27 18:32 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-11  9:37 [PATCH v2 0/3] PL022 DT fixes for seattle, lg and lpc platform Kuldeep Singh
2022-03-11  9:37 ` Kuldeep Singh
2022-03-11  9:37 ` [PATCH v2 1/3] arm64: dts: seattle: Update spi clock properties Kuldeep Singh
2022-03-11  9:37   ` Kuldeep Singh
2022-03-11  9:37 ` [PATCH v2 2/3] arm64: dts: lg131x: " Kuldeep Singh
2022-03-11  9:37   ` Kuldeep Singh
2022-03-11  9:38 ` [PATCH v2 3/3] ARM: dts: lpc32xx: " Kuldeep Singh
2022-03-11  9:38   ` Kuldeep Singh
2022-03-11 13:20   ` Vladimir Zapolskiy
2022-03-11 13:20     ` Vladimir Zapolskiy
2022-03-11 13:38     ` Arnd Bergmann
2022-03-11 13:38       ` Arnd Bergmann
2022-03-11 14:07       ` Vladimir Zapolskiy
2022-03-11 14:07         ` Vladimir Zapolskiy
2022-03-11 14:33         ` Krzysztof Kozlowski
2022-03-11 14:33           ` Krzysztof Kozlowski
2022-03-11 21:26           ` Vladimir Zapolskiy
2022-03-11 21:26             ` Vladimir Zapolskiy
2022-03-12 10:23             ` Krzysztof Kozlowski
2022-03-12 10:23               ` Krzysztof Kozlowski
2022-03-12 12:26               ` Vladimir Zapolskiy
2022-03-12 12:26                 ` Vladimir Zapolskiy
2022-03-14 11:43         ` Robin Murphy
2022-03-14 11:43           ` Robin Murphy
2022-03-14 11:50           ` Vladimir Zapolskiy
2022-03-14 11:50             ` Vladimir Zapolskiy
2022-03-14 12:20             ` Robin Murphy
2022-03-14 12:20               ` Robin Murphy
2022-03-14 12:32               ` Arnd Bergmann
2022-03-14 12:32                 ` Arnd Bergmann
2022-03-14 17:55                 ` Robin Murphy
2022-03-14 17:55                   ` Robin Murphy
2022-03-14 12:34               ` Vladimir Zapolskiy
2022-03-14 12:34                 ` Vladimir Zapolskiy
2022-03-27  2:57                 ` Trevor Woerner
2022-03-27 16:27                   ` Vladimir Zapolskiy
2022-03-27 16:27                     ` Vladimir Zapolskiy
2022-03-27 18:32                     ` Trevor Woerner [this message]
2022-03-27 18:32                       ` Trevor Woerner
2022-03-11 10:50 ` [PATCH v2 0/3] PL022 DT fixes for seattle, lg and lpc platform patchwork-bot+linux-soc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220327183213.GA36326@localhost \
    --to=twoerner@gmail.com \
    --cc=arnd@arndb.de \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=singh.kuldeep87k@gmail.com \
    --cc=soc@kernel.org \
    --cc=vz@mleia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.