diff mbox series

arm: imx: imx8mq: add support to get values for more clocks

Message ID 20210909125917.6653-1-heiko.thiery@gmail.com
State Accepted
Commit 6ff55bcd07aa911d7e2ba514fe9b92c969805763
Delegated to: Stefano Babic
Headers show
Series arm: imx: imx8mq: add support to get values for more clocks | expand

Commit Message

Heiko Thiery Sept. 9, 2021, 12:59 p.m. UTC
Return the root clock values for MXC_CSPI_CLK, MXC_I2C_CLK,
MXC_UART_CLK and MXC_QSPI_CLK.

At least for the I2C clock the missing support leads to a wrong
configured I2C frequency. The expected value is 100kHz but the resulting
value is about 1MHz.

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---

More information and measurements about the wrong configure I2C
frequency can be found here:
https://lists.denx.de/pipermail/u-boot/2021-September/460176.html


 arch/arm/mach-imx/imx8m/clock_imx8mq.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Peng Fan (OSS) Sept. 15, 2021, 2:53 a.m. UTC | #1
On 2021/9/9 20:59, Heiko Thiery wrote:
> Return the root clock values for MXC_CSPI_CLK, MXC_I2C_CLK,
> MXC_UART_CLK and MXC_QSPI_CLK.
> 
> At least for the I2C clock the missing support leads to a wrong
> configured I2C frequency. The expected value is 100kHz but the resulting
> value is about 1MHz.
> 
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> ---
> 
> More information and measurements about the wrong configure I2C
> frequency can be found here:
> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2021-September%2F460176.html&amp;data=04%7C01%7Cpeng.fan%40nxp.com%7C3fd04432d40141466d4208d97391b927%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637667891977601595%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=%2BYXFWRvw3LG%2FhqKU0uxxrvCXiqfKD3qL80DISvG6PQA%3D&amp;reserved=0
> 
> 
>   arch/arm/mach-imx/imx8m/clock_imx8mq.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> index 60e2218a3c..9db62b944e 100644
> --- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> +++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> @@ -359,10 +359,18 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
>   		clock_get_target_val(IPG_CLK_ROOT, &val);
>   		val = val & 0x3;
>   		return get_root_clk(AHB_CLK_ROOT) / (val + 1);
> +	case MXC_CSPI_CLK:
> +		return get_root_clk(ECSPI1_CLK_ROOT);
>   	case MXC_ESDHC_CLK:
>   		return get_root_clk(USDHC1_CLK_ROOT);
>   	case MXC_ESDHC2_CLK:
>   		return get_root_clk(USDHC2_CLK_ROOT);
> +	case MXC_I2C_CLK:
> +		return get_root_clk(I2C1_CLK_ROOT);
> +	case MXC_UART_CLK:
> +		return get_root_clk(UART1_CLK_ROOT);
> +	case MXC_QSPI_CLK:
> +		return get_root_clk(QSPI_CLK_ROOT);
>   	default:
>   		return get_root_clk(clk);
>   	}
> 

Reviewed-by: Peng Fan <peng.fan@nxp.com>
Heiko Thiery Nov. 10, 2021, 11:07 a.m. UTC | #2
Hi,

Am Mi., 15. Sept. 2021 um 04:54 Uhr schrieb Peng Fan (OSS)
<peng.fan@oss.nxp.com>:
>
>
>
> On 2021/9/9 20:59, Heiko Thiery wrote:
> > Return the root clock values for MXC_CSPI_CLK, MXC_I2C_CLK,
> > MXC_UART_CLK and MXC_QSPI_CLK.
> >
> > At least for the I2C clock the missing support leads to a wrong
> > configured I2C frequency. The expected value is 100kHz but the resulting
> > value is about 1MHz.
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > ---
> >
> > More information and measurements about the wrong configure I2C
> > frequency can be found here:
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.denx.de%2Fpipermail%2Fu-boot%2F2021-September%2F460176.html&amp;data=04%7C01%7Cpeng.fan%40nxp.com%7C3fd04432d40141466d4208d97391b927%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637667891977601595%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=%2BYXFWRvw3LG%2FhqKU0uxxrvCXiqfKD3qL80DISvG6PQA%3D&amp;reserved=0
> >
> >
> >   arch/arm/mach-imx/imx8m/clock_imx8mq.c | 8 ++++++++
> >   1 file changed, 8 insertions(+)
> >
> > diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> > index 60e2218a3c..9db62b944e 100644
> > --- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> > +++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
> > @@ -359,10 +359,18 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
> >               clock_get_target_val(IPG_CLK_ROOT, &val);
> >               val = val & 0x3;
> >               return get_root_clk(AHB_CLK_ROOT) / (val + 1);
> > +     case MXC_CSPI_CLK:
> > +             return get_root_clk(ECSPI1_CLK_ROOT);
> >       case MXC_ESDHC_CLK:
> >               return get_root_clk(USDHC1_CLK_ROOT);
> >       case MXC_ESDHC2_CLK:
> >               return get_root_clk(USDHC2_CLK_ROOT);
> > +     case MXC_I2C_CLK:
> > +             return get_root_clk(I2C1_CLK_ROOT);
> > +     case MXC_UART_CLK:
> > +             return get_root_clk(UART1_CLK_ROOT);
> > +     case MXC_QSPI_CLK:
> > +             return get_root_clk(QSPI_CLK_ROOT);
> >       default:
> >               return get_root_clk(clk);
> >       }
> >
>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Any news on that?
Fabio Estevam Jan. 15, 2022, 1:45 p.m. UTC | #3
Hi Heiko,

On Thu, Sep 9, 2021 at 9:59 AM Heiko Thiery <heiko.thiery@gmail.com> wrote:
>
> Return the root clock values for MXC_CSPI_CLK, MXC_I2C_CLK,
> MXC_UART_CLK and MXC_QSPI_CLK.
>
> At least for the I2C clock the missing support leads to a wrong
> configured I2C frequency. The expected value is 100kHz but the resulting
> value is about 1MHz.
>
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>

Reviewed-by: Fabio Estevam <festevam@gmail.com>
Stefano Babic Feb. 5, 2022, 4:39 p.m. UTC | #4
> Return the root clock values for MXC_CSPI_CLK, MXC_I2C_CLK,
> MXC_UART_CLK and MXC_QSPI_CLK.
> At least for the I2C clock the missing support leads to a wrong
> configured I2C frequency. The expected value is 100kHz but the resulting
> value is about 1MHz.
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mq.c b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
index 60e2218a3c..9db62b944e 100644
--- a/arch/arm/mach-imx/imx8m/clock_imx8mq.c
+++ b/arch/arm/mach-imx/imx8m/clock_imx8mq.c
@@ -359,10 +359,18 @@  unsigned int mxc_get_clock(enum mxc_clock clk)
 		clock_get_target_val(IPG_CLK_ROOT, &val);
 		val = val & 0x3;
 		return get_root_clk(AHB_CLK_ROOT) / (val + 1);
+	case MXC_CSPI_CLK:
+		return get_root_clk(ECSPI1_CLK_ROOT);
 	case MXC_ESDHC_CLK:
 		return get_root_clk(USDHC1_CLK_ROOT);
 	case MXC_ESDHC2_CLK:
 		return get_root_clk(USDHC2_CLK_ROOT);
+	case MXC_I2C_CLK:
+		return get_root_clk(I2C1_CLK_ROOT);
+	case MXC_UART_CLK:
+		return get_root_clk(UART1_CLK_ROOT);
+	case MXC_QSPI_CLK:
+		return get_root_clk(QSPI_CLK_ROOT);
 	default:
 		return get_root_clk(clk);
 	}