Merge pull request #27 from UnagiDojyou/fix_cpu-clock-div

Fix CPU clock
This commit is contained in:
Takumi Sueda 2024-02-03 16:53:23 -08:00 committed by GitHub
commit 82aebbe57d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 45 additions and 0 deletions

View File

@ -4,3 +4,4 @@ obj-$(CONFIG_VIDEO_MXS) += dma.o
else
obj- = __dummy__.o
endif
obj-y := cpu_clkdiv.o

View File

@ -0,0 +1,14 @@
#include <common.h>
#include <asm/io.h>
#include <asm/arch/clock.h>
#include <asm/arch/imx-regs.h>
void mxs_set_divcpu(uint8_t clkdiv) {
struct mxs_clkctrl_regs *clkctrl_regs =
(struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE;
uint32_t clkctrl;
clkctrl = readl(&clkctrl_regs->hw_clkctrl_cpu);
clkctrl &= ~0x3F;
clkctrl |= (clkdiv & 0x3F);
writel(clkctrl, &clkctrl_regs->hw_clkctrl_cpu);
}

View File

@ -0,0 +1,3 @@
#include <common.h>
void mxs_set_divcpu(uint8_t clkdiv);

View File

@ -29,6 +29,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -46,6 +47,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -29,6 +29,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -46,6 +47,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);

View File

@ -26,6 +26,7 @@
#include <errno.h>
#include "../common/lcd.h"
#include "../common/cpu_clkdiv.h"
DECLARE_GLOBAL_DATA_PTR;
@ -43,6 +44,8 @@ int board_early_init_f(void)
mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
/* SSP1 clock at 96MHz */
mxs_set_sspclk(MXC_SSPCLK1, 96000, 0);
/* set cpu clock div 1(480MHz)*/
mxs_set_divcpu(1);
#ifdef CONFIG_CMD_USB
mxs_iomux_setup_pad(MX28_PAD_SSP2_SS1__USB1_OVERCURRENT);