From c5fcd9e5839cf0a2bf16133c092510ff103f4aa3 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Wed, 29 Aug 2018 03:18:30 +0200 Subject: [PATCH 01/11] sh: sh7723: ap325rxa: Drop duplicate HIZCRB macro Drop the macro as it is defined in sh7723.h already. Signed-off-by: Marek Vasut Cc: Nobuhiro Iwamatsu --- board/renesas/ap325rxa/cpld-ap325rxa.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/board/renesas/ap325rxa/cpld-ap325rxa.c b/board/renesas/ap325rxa/cpld-ap325rxa.c index 16fadcbca78..5d9dc9387ed 100644 --- a/board/renesas/ap325rxa/cpld-ap325rxa.c +++ b/board/renesas/ap325rxa/cpld-ap325rxa.c @@ -61,8 +61,6 @@ #define CPLD_DONE_ADR ((vu_char *)0xA4050132) #define CPLD_DONE_DAT 0x20 -#define HIZCRB ((vu_short *)0xA405015A) - /* data */ #define CPLD_NOMAL_START 0xA0A80000 #define CPLD_SAFE_START 0xA0AC0000 @@ -191,7 +189,7 @@ void init_cpld(void) if (*CPLD_DONE_ADR & CPLD_DONE_DAT) /* Already DONE */ return; - *HIZCRB = 0x0000; + *((vu_short *)HIZCRB) = 0x0000; *CPLD_PFC_ADR = 0x7c00; /* FPGA PROG = OUTPUT */ /* write CPLD data from NOR flash to device */ From 2606deb22b58c8b55426a34dd7d93c703de65974 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 28 Aug 2018 11:44:44 +0200 Subject: [PATCH 02/11] sh: sh7724: Drop EDMR macro Drop the macro as it is never used and it collides with sh_eth.h macros. Signed-off-by: Marek Vasut Cc: Nobuhiro Iwamatsu --- arch/sh/include/asm/cpu_sh7724.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/arch/sh/include/asm/cpu_sh7724.h b/arch/sh/include/asm/cpu_sh7724.h index 7a81e1677e5..7b217959ed7 100644 --- a/arch/sh/include/asm/cpu_sh7724.h +++ b/arch/sh/include/asm/cpu_sh7724.h @@ -203,9 +203,6 @@ #define PYDR 0xA405016A #define PZDR 0xA405016C -/* Ether */ -#define EDMR 0xA4600000 - /* UBC */ /* H-UDI */ From d1da5d6cd8d33f777cf8374bf070970c4cca32e1 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:19:15 +0200 Subject: [PATCH 03/11] sh: tmu: Clean up CONFIG_SYS_TMU_CLK_DIV This constant is always 4 , for all boards that exist. Define it once in arch/sh/lib/time.c and remove it from the configs. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 1 + include/configs/MigoR.h | 1 - include/configs/alt.h | 1 - include/configs/ap325rxa.h | 1 - include/configs/ap_sh4a_4a.h | 1 - include/configs/armadillo-800eva.h | 1 - include/configs/blanche.h | 1 - include/configs/ecovec.h | 1 - include/configs/espt.h | 1 - include/configs/gose.h | 1 - include/configs/koelsch.h | 1 - include/configs/lager.h | 1 - include/configs/mpr2.h | 1 - include/configs/ms7720se.h | 1 - include/configs/ms7722se.h | 1 - include/configs/ms7750se.h | 1 - include/configs/porter.h | 1 - include/configs/r0p7734.h | 1 - include/configs/r2dplus.h | 1 - include/configs/r7780mp.h | 1 - include/configs/sh7752evb.h | 1 - include/configs/sh7753evb.h | 1 - include/configs/sh7757lcr.h | 1 - include/configs/sh7763rdp.h | 1 - include/configs/sh7785lcr.h | 1 - include/configs/shmin.h | 1 - include/configs/silk.h | 1 - include/configs/stout.h | 1 - scripts/config_whitelist.txt | 1 - 29 files changed, 1 insertion(+), 28 deletions(-) diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index eb642969aab..aac79889dc9 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -16,6 +16,7 @@ #include #define TCR_TPSC 0x07 +#define CONFIG_SYS_TMU_CLK_DIV 4 static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; diff --git a/include/configs/MigoR.h b/include/configs/MigoR.h index 5cb23482fef..57e36e86056 100644 --- a/include/configs/MigoR.h +++ b/include/configs/MigoR.h @@ -93,6 +93,5 @@ #define CONFIG_SYS_CLK_FREQ 33333333 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV (4) /* 4 (default), 16, 64, 256 or 1024 */ #endif /* __MIGO_R_H */ diff --git a/include/configs/alt.h b/include/configs/alt.h index d44a0b3007e..d884831d962 100644 --- a/include/configs/alt.h +++ b/include/configs/alt.h @@ -39,7 +39,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/ap325rxa.h b/include/configs/ap325rxa.h index 8680eb6ef5f..a6e6a436b06 100644 --- a/include/configs/ap325rxa.h +++ b/include/configs/ap325rxa.h @@ -114,6 +114,5 @@ #define CONFIG_SYS_CLK_FREQ 33333333 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV (4) /* 4 (default), 16, 64, 256 or 1024 */ #endif /* __AP325RXA_H */ diff --git a/include/configs/ap_sh4a_4a.h b/include/configs/ap_sh4a_4a.h index a4bdd44a9e8..c8e22de4b8f 100644 --- a/include/configs/ap_sh4a_4a.h +++ b/include/configs/ap_sh4a_4a.h @@ -102,6 +102,5 @@ #endif #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __AP_SH4A_4A_H */ diff --git a/include/configs/armadillo-800eva.h b/include/configs/armadillo-800eva.h index c0e17402195..f14ea9a4b1e 100644 --- a/include/configs/armadillo-800eva.h +++ b/include/configs/armadillo-800eva.h @@ -93,6 +93,5 @@ #define CONFIG_SYS_CLK_FREQ 50000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __ARMADILLO_800EVA_H */ diff --git a/include/configs/blanche.h b/include/configs/blanche.h index 6df0e9bcc09..7a5abf99de6 100644 --- a/include/configs/blanche.h +++ b/include/configs/blanche.h @@ -53,7 +53,6 @@ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) /* EXT / 2 */ -#define CONFIG_SYS_TMU_CLK_DIV 4 /* ENV setting */ #if !defined(CONFIG_MTD_NOR_FLASH) diff --git a/include/configs/ecovec.h b/include/configs/ecovec.h index e99564dbdf7..9084d2e4c30 100644 --- a/include/configs/ecovec.h +++ b/include/configs/ecovec.h @@ -133,6 +133,5 @@ #define CONFIG_SYS_CLK_FREQ 41666666 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __ECOVEC_H */ diff --git a/include/configs/espt.h b/include/configs/espt.h index 978a9e006bb..fe8b84c7a5e 100644 --- a/include/configs/espt.h +++ b/include/configs/espt.h @@ -71,7 +71,6 @@ #define CONFIG_SYS_CLK_FREQ 66666666 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 /* Ether */ #define CONFIG_SH_ETHER_USE_PORT (1) diff --git a/include/configs/gose.h b/include/configs/gose.h index 00523d2fc4c..53d9322967e 100644 --- a/include/configs/gose.h +++ b/include/configs/gose.h @@ -35,7 +35,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/koelsch.h b/include/configs/koelsch.h index e5e667ce331..2479b7c74ac 100644 --- a/include/configs/koelsch.h +++ b/include/configs/koelsch.h @@ -35,7 +35,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/lager.h b/include/configs/lager.h index ebcd179ffd7..4bff60fbe3e 100644 --- a/include/configs/lager.h +++ b/include/configs/lager.h @@ -36,7 +36,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/mpr2.h b/include/configs/mpr2.h index c6023a1e1b6..762d83c0e5e 100644 --- a/include/configs/mpr2.h +++ b/include/configs/mpr2.h @@ -51,7 +51,6 @@ #define CONFIG_SYS_CLK_FREQ 24000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 /* 4 (default), 16, 64, 256 or 1024 */ /* UART */ #define CONFIG_CONS_SCIF0 1 diff --git a/include/configs/ms7720se.h b/include/configs/ms7720se.h index e7179705c9e..60cc3efcdce 100644 --- a/include/configs/ms7720se.h +++ b/include/configs/ms7720se.h @@ -62,7 +62,6 @@ #define CONFIG_SYS_CLK_FREQ 33333333 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 /* 4 (default), 16, 64, 256 or 1024 */ /* PCMCIA */ #define CONFIG_IDE_PCMCIA 1 diff --git a/include/configs/ms7722se.h b/include/configs/ms7722se.h index 12327641fb7..8a5fa97b3d9 100644 --- a/include/configs/ms7722se.h +++ b/include/configs/ms7722se.h @@ -84,6 +84,5 @@ #define CONFIG_SYS_CLK_FREQ 33333333 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV (4) /* 4 (default), 16, 64, 256 or 1024 */ #endif /* __MS7722SE_H */ diff --git a/include/configs/ms7750se.h b/include/configs/ms7750se.h index b2cb6bab7c9..4cad1672053 100644 --- a/include/configs/ms7750se.h +++ b/include/configs/ms7750se.h @@ -64,6 +64,5 @@ #define CONFIG_SYS_CLK_FREQ 33333333 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __MS7750SE_H */ diff --git a/include/configs/porter.h b/include/configs/porter.h index 42b90730064..be1b5ff7f03 100644 --- a/include/configs/porter.h +++ b/include/configs/porter.h @@ -40,7 +40,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/r0p7734.h b/include/configs/r0p7734.h index 523764d8e93..9c4468ce702 100644 --- a/include/configs/r0p7734.h +++ b/include/configs/r0p7734.h @@ -100,6 +100,5 @@ #endif #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __R0P7734_H */ diff --git a/include/configs/r2dplus.h b/include/configs/r2dplus.h index 129dcf33982..33a4420cd2f 100644 --- a/include/configs/r2dplus.h +++ b/include/configs/r2dplus.h @@ -48,7 +48,6 @@ #define CONFIG_SYS_CLK_FREQ 60000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_SYS_PLL_SETTLING_TIME 100/* in us */ /* diff --git a/include/configs/r7780mp.h b/include/configs/r7780mp.h index 8068ca79575..a89e621b866 100644 --- a/include/configs/r7780mp.h +++ b/include/configs/r7780mp.h @@ -73,7 +73,6 @@ #define CONFIG_SYS_CLK_FREQ 33333333 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 /* PCI Controller */ #if defined(CONFIG_CMD_PCI) diff --git a/include/configs/sh7752evb.h b/include/configs/sh7752evb.h index 9b40e0f063e..289630a9eeb 100644 --- a/include/configs/sh7752evb.h +++ b/include/configs/sh7752evb.h @@ -77,5 +77,4 @@ #define CONFIG_SYS_CLK_FREQ 48000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __SH7752EVB_H */ diff --git a/include/configs/sh7753evb.h b/include/configs/sh7753evb.h index 080b4055cfb..b58673a2305 100644 --- a/include/configs/sh7753evb.h +++ b/include/configs/sh7753evb.h @@ -77,5 +77,4 @@ #define CONFIG_SYS_CLK_FREQ 48000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __SH7753EVB_H */ diff --git a/include/configs/sh7757lcr.h b/include/configs/sh7757lcr.h index 95d70bc6e71..78606f3f6c2 100644 --- a/include/configs/sh7757lcr.h +++ b/include/configs/sh7757lcr.h @@ -89,5 +89,4 @@ #define CONFIG_SYS_CLK_FREQ 48000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __SH7757LCR_H */ diff --git a/include/configs/sh7763rdp.h b/include/configs/sh7763rdp.h index 4015fb2d2a5..53fe45009ee 100644 --- a/include/configs/sh7763rdp.h +++ b/include/configs/sh7763rdp.h @@ -71,7 +71,6 @@ #define CONFIG_SYS_CLK_FREQ 66666666 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV (4) /* 4 (default), 16, 64, 256 or 1024 */ /* Ether */ #define CONFIG_SH_ETHER_USE_PORT (1) diff --git a/include/configs/sh7785lcr.h b/include/configs/sh7785lcr.h index 38ae66b90c2..6585298f18b 100644 --- a/include/configs/sh7785lcr.h +++ b/include/configs/sh7785lcr.h @@ -128,6 +128,5 @@ #define CONFIG_SYS_CLK_FREQ 50000000 #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 #endif /* __SH7785LCR_H */ diff --git a/include/configs/shmin.h b/include/configs/shmin.h index aada22df5ce..df98f5566c0 100644 --- a/include/configs/shmin.h +++ b/include/configs/shmin.h @@ -80,7 +80,6 @@ #endif /* CONFIG_T_SH7706LSR */ #define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ -#define CONFIG_SYS_TMU_CLK_DIV 4 /* Network device */ #define CONFIG_DRIVER_NE2000 diff --git a/include/configs/silk.h b/include/configs/silk.h index 549aa79233a..ad14c5ccf27 100644 --- a/include/configs/silk.h +++ b/include/configs/silk.h @@ -40,7 +40,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/stout.h b/include/configs/stout.h index eab0ef213ac..cc1cc84fc0a 100644 --- a/include/configs/stout.h +++ b/include/configs/stout.h @@ -44,7 +44,6 @@ #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK #define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) -#define CONFIG_SYS_TMU_CLK_DIV 4 #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 30c79a643e4..94953d87380 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -4277,7 +4277,6 @@ CONFIG_SYS_TMRINTR_PEND CONFIG_SYS_TMRINTR_PRI CONFIG_SYS_TMRPND_REG CONFIG_SYS_TMR_BASE -CONFIG_SYS_TMU_CLK_DIV CONFIG_SYS_TSEC1 CONFIG_SYS_TSEC1_OFFSET CONFIG_SYS_TSEC2 From eb05dcfea29bbafbc9f8ce3b7894e3e53f35d743 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:20:31 +0200 Subject: [PATCH 04/11] sh: tmu: Simplify the tmu_bit math The tmu_bit value evaluates to (ffs(4) >> 1) - 1 = (3 >> 1) - 1 = 0. Just drop the tmu_bit completely as well as CONFIG_SYS_TMU_CLK_DIV. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index aac79889dc9..302f6bed83a 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -16,14 +16,12 @@ #include #define TCR_TPSC 0x07 -#define CONFIG_SYS_TMU_CLK_DIV 4 static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; unsigned long get_tbclk(void) { - u16 tmu_bit = (ffs(CONFIG_SYS_TMU_CLK_DIV) >> 1) - 1; - return get_tmu0_clk_rate() >> ((tmu_bit + 1) * 2); + return get_tmu0_clk_rate() >> 2; } unsigned long timer_read_counter(void) @@ -47,8 +45,7 @@ static void tmu_timer_stop(unsigned int timer) int timer_init(void) { - u16 tmu_bit = (ffs(CONFIG_SYS_TMU_CLK_DIV) >> 1) - 1; - writew((readw(&tmu->tcr0) & ~TCR_TPSC) | tmu_bit, &tmu->tcr0); + writew(readw(&tmu->tcr0) & ~TCR_TPSC, &tmu->tcr0); tmu_timer_stop(0); tmu_timer_start(0); From 15f11fc6d72175ff5b7763f03d7b0d502efd24af Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:23:04 +0200 Subject: [PATCH 05/11] sh: tmu: Inline tmu_timer_{start,stop}() These functions are always called for timer = 0, so drop the timer check. Since these functions are called from one place only and they are reduced to one line of code, just inline them. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index 302f6bed83a..6273f39f210 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -16,6 +16,7 @@ #include #define TCR_TPSC 0x07 +#define TSTR_STR0 BIT(0) static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; @@ -29,26 +30,11 @@ unsigned long timer_read_counter(void) return ~readl(&tmu->tcnt0); } -static void tmu_timer_start(unsigned int timer) -{ - if (timer > 2) - return; - writeb(readb(&tmu->tstr) | (1 << timer), &tmu->tstr); -} - -static void tmu_timer_stop(unsigned int timer) -{ - if (timer > 2) - return; - writeb(readb(&tmu->tstr) & ~(1 << timer), &tmu->tstr); -} - int timer_init(void) { writew(readw(&tmu->tcr0) & ~TCR_TPSC, &tmu->tcr0); - - tmu_timer_stop(0); - tmu_timer_start(0); + writeb(readb(&tmu->tstr) & ~TSTR_STR0, &tmu->tstr); + writeb(readb(&tmu->tstr) | TSTR_STR0, &tmu->tstr); return 0; } From ae59a9f8f7785d86277149eb37314d2f21392f6f Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:29:04 +0200 Subject: [PATCH 06/11] sh: tmu: Inline get_tmu0_clk_rate() This function just returns CONFIG_SH_TMU_CLK_FREQ, use the constant directly instead. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 2 +- include/sh_tmu.h | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index 6273f39f210..0f3127106a8 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -22,7 +22,7 @@ static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; unsigned long get_tbclk(void) { - return get_tmu0_clk_rate() >> 2; + return CONFIG_SH_TMU_CLK_FREQ / 4; } unsigned long timer_read_counter(void) diff --git a/include/sh_tmu.h b/include/sh_tmu.h index aa60c98750a..70aca2149ac 100644 --- a/include/sh_tmu.h +++ b/include/sh_tmu.h @@ -67,9 +67,4 @@ struct tmu_regs { }; #endif /* CONFIG_CPU_SH4 */ -static inline unsigned long get_tmu0_clk_rate(void) -{ - return CONFIG_SH_TMU_CLK_FREQ; -} - #endif /* __SH_TMU_H */ From ccce3acfe70bdfb4fa8529dc853294f82859b08b Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:34:07 +0200 Subject: [PATCH 07/11] sh: tmu: Clean up CONFIG_SH_TMU_CLK_FREQ The R-Car Gen2 feeds the TMU with CONFIG_SYS_CLK_FREQ / 2, while the old SH parts use CONFIG_SYS_CLK_FREQ directly. Just put this into the TMU implementation and drop the CONFIG_SH_TMU_CLK_FREQ config option. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 6 +++++- include/configs/MigoR.h | 1 - include/configs/alt.h | 2 -- include/configs/ap325rxa.h | 1 - include/configs/ap_sh4a_4a.h | 1 - include/configs/armadillo-800eva.h | 1 - include/configs/blanche.h | 1 - include/configs/ecovec.h | 1 - include/configs/espt.h | 1 - include/configs/gose.h | 2 -- include/configs/koelsch.h | 2 -- include/configs/lager.h | 2 -- include/configs/mpr2.h | 1 - include/configs/ms7720se.h | 1 - include/configs/ms7722se.h | 1 - include/configs/ms7750se.h | 1 - include/configs/porter.h | 2 -- include/configs/r0p7734.h | 1 - include/configs/r2dplus.h | 1 - include/configs/r7780mp.h | 1 - include/configs/rsk7203.h | 1 - include/configs/rsk7264.h | 1 - include/configs/rsk7269.h | 1 - include/configs/sh7752evb.h | 1 - include/configs/sh7753evb.h | 1 - include/configs/sh7757lcr.h | 1 - include/configs/sh7763rdp.h | 1 - include/configs/sh7785lcr.h | 1 - include/configs/shmin.h | 1 - include/configs/silk.h | 2 -- include/configs/stout.h | 2 -- 31 files changed, 5 insertions(+), 38 deletions(-) diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index 0f3127106a8..9a1d3fb013d 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -22,7 +22,11 @@ static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; unsigned long get_tbclk(void) { - return CONFIG_SH_TMU_CLK_FREQ / 4; +#ifdef CONFIG_RCAR_GEN2 + return CONFIG_SYS_CLK_FREQ / 8; +#else + return CONFIG_SYS_CLK_FREQ / 4; +#endif } unsigned long timer_read_counter(void) diff --git a/include/configs/MigoR.h b/include/configs/MigoR.h index 57e36e86056..1ff04c3794a 100644 --- a/include/configs/MigoR.h +++ b/include/configs/MigoR.h @@ -91,7 +91,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __MIGO_R_H */ diff --git a/include/configs/alt.h b/include/configs/alt.h index d884831d962..cc6a7bf6387 100644 --- a/include/configs/alt.h +++ b/include/configs/alt.h @@ -37,8 +37,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/ap325rxa.h b/include/configs/ap325rxa.h index a6e6a436b06..40a843a95ec 100644 --- a/include/configs/ap325rxa.h +++ b/include/configs/ap325rxa.h @@ -112,7 +112,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __AP325RXA_H */ diff --git a/include/configs/ap_sh4a_4a.h b/include/configs/ap_sh4a_4a.h index c8e22de4b8f..b9ff965b920 100644 --- a/include/configs/ap_sh4a_4a.h +++ b/include/configs/ap_sh4a_4a.h @@ -100,7 +100,6 @@ #else #define CONFIG_SYS_CLK_FREQ 44444444 #endif -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __AP_SH4A_4A_H */ diff --git a/include/configs/armadillo-800eva.h b/include/configs/armadillo-800eva.h index f14ea9a4b1e..b17d597766f 100644 --- a/include/configs/armadillo-800eva.h +++ b/include/configs/armadillo-800eva.h @@ -91,7 +91,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 50000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __ARMADILLO_800EVA_H */ diff --git a/include/configs/blanche.h b/include/configs/blanche.h index 7a5abf99de6..e0acde3f911 100644 --- a/include/configs/blanche.h +++ b/include/configs/blanche.h @@ -52,7 +52,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) /* EXT / 2 */ /* ENV setting */ #if !defined(CONFIG_MTD_NOR_FLASH) diff --git a/include/configs/ecovec.h b/include/configs/ecovec.h index 9084d2e4c30..1e358ec6adb 100644 --- a/include/configs/ecovec.h +++ b/include/configs/ecovec.h @@ -131,7 +131,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 41666666 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __ECOVEC_H */ diff --git a/include/configs/espt.h b/include/configs/espt.h index fe8b84c7a5e..6bb23c6ad44 100644 --- a/include/configs/espt.h +++ b/include/configs/espt.h @@ -69,7 +69,6 @@ /* Clock */ #define CONFIG_SYS_CLK_FREQ 66666666 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ /* Ether */ diff --git a/include/configs/gose.h b/include/configs/gose.h index 53d9322967e..36ac88a20df 100644 --- a/include/configs/gose.h +++ b/include/configs/gose.h @@ -33,8 +33,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/koelsch.h b/include/configs/koelsch.h index 2479b7c74ac..ef26a144a95 100644 --- a/include/configs/koelsch.h +++ b/include/configs/koelsch.h @@ -33,8 +33,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/lager.h b/include/configs/lager.h index 4bff60fbe3e..08498c6d810 100644 --- a/include/configs/lager.h +++ b/include/configs/lager.h @@ -34,8 +34,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/mpr2.h b/include/configs/mpr2.h index 762d83c0e5e..901a3028731 100644 --- a/include/configs/mpr2.h +++ b/include/configs/mpr2.h @@ -49,7 +49,6 @@ /* Clocks */ #define CONFIG_SYS_CLK_FREQ 24000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ /* UART */ diff --git a/include/configs/ms7720se.h b/include/configs/ms7720se.h index 60cc3efcdce..b159c10bbf8 100644 --- a/include/configs/ms7720se.h +++ b/include/configs/ms7720se.h @@ -60,7 +60,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ /* PCMCIA */ diff --git a/include/configs/ms7722se.h b/include/configs/ms7722se.h index 8a5fa97b3d9..230b86b821f 100644 --- a/include/configs/ms7722se.h +++ b/include/configs/ms7722se.h @@ -82,7 +82,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __MS7722SE_H */ diff --git a/include/configs/ms7750se.h b/include/configs/ms7750se.h index 4cad1672053..35849069ebd 100644 --- a/include/configs/ms7750se.h +++ b/include/configs/ms7750se.h @@ -62,7 +62,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __MS7750SE_H */ diff --git a/include/configs/porter.h b/include/configs/porter.h index be1b5ff7f03..e56dc3f1ec6 100644 --- a/include/configs/porter.h +++ b/include/configs/porter.h @@ -38,8 +38,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/r0p7734.h b/include/configs/r0p7734.h index 9c4468ce702..88476850ff1 100644 --- a/include/configs/r0p7734.h +++ b/include/configs/r0p7734.h @@ -98,7 +98,6 @@ #else #define CONFIG_SYS_CLK_FREQ 44444444 #endif -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __R0P7734_H */ diff --git a/include/configs/r2dplus.h b/include/configs/r2dplus.h index 33a4420cd2f..b39b13b7cdc 100644 --- a/include/configs/r2dplus.h +++ b/include/configs/r2dplus.h @@ -46,7 +46,6 @@ * SuperH Clock setting */ #define CONFIG_SYS_CLK_FREQ 60000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SYS_PLL_SETTLING_TIME 100/* in us */ diff --git a/include/configs/r7780mp.h b/include/configs/r7780mp.h index a89e621b866..a819e1bfb3c 100644 --- a/include/configs/r7780mp.h +++ b/include/configs/r7780mp.h @@ -71,7 +71,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ /* PCI Controller */ diff --git a/include/configs/rsk7203.h b/include/configs/rsk7203.h index a40b7bae218..ef2b79e2e07 100644 --- a/include/configs/rsk7203.h +++ b/include/configs/rsk7203.h @@ -58,7 +58,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 33333333 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CMT_CLK_DIVIDER 32 /* 8 (default), 32, 128 or 512 */ #define CONFIG_SH_CMT_CLK_FREQ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER) diff --git a/include/configs/rsk7264.h b/include/configs/rsk7264.h index b936b13df11..54ca87996bd 100644 --- a/include/configs/rsk7264.h +++ b/include/configs/rsk7264.h @@ -47,7 +47,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 36000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CMT_CLK_DIVIDER 32 /* 8 (default), 32, 128 or 512 */ #define CONFIG_SH_CMT_CLK_FREQ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER) diff --git a/include/configs/rsk7269.h b/include/configs/rsk7269.h index 0c0b773858c..f8e66e67da3 100644 --- a/include/configs/rsk7269.h +++ b/include/configs/rsk7269.h @@ -46,7 +46,6 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 66125000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CMT_CLK_DIVIDER 32 /* 8 (default), 32, 128 or 512 */ #define CONFIG_SH_CMT_CLK_FREQ (CONFIG_SYS_CLK_FREQ / CMT_CLK_DIVIDER) diff --git a/include/configs/sh7752evb.h b/include/configs/sh7752evb.h index 289630a9eeb..1f29e3d221e 100644 --- a/include/configs/sh7752evb.h +++ b/include/configs/sh7752evb.h @@ -75,6 +75,5 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 48000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __SH7752EVB_H */ diff --git a/include/configs/sh7753evb.h b/include/configs/sh7753evb.h index b58673a2305..0693fb5a3c4 100644 --- a/include/configs/sh7753evb.h +++ b/include/configs/sh7753evb.h @@ -75,6 +75,5 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 48000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __SH7753EVB_H */ diff --git a/include/configs/sh7757lcr.h b/include/configs/sh7757lcr.h index 78606f3f6c2..05b2f01c15a 100644 --- a/include/configs/sh7757lcr.h +++ b/include/configs/sh7757lcr.h @@ -87,6 +87,5 @@ /* Board Clock */ #define CONFIG_SYS_CLK_FREQ 48000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __SH7757LCR_H */ diff --git a/include/configs/sh7763rdp.h b/include/configs/sh7763rdp.h index 53fe45009ee..2aefc696060 100644 --- a/include/configs/sh7763rdp.h +++ b/include/configs/sh7763rdp.h @@ -69,7 +69,6 @@ /* Clock */ #define CONFIG_SYS_CLK_FREQ 66666666 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ /* Ether */ diff --git a/include/configs/sh7785lcr.h b/include/configs/sh7785lcr.h index 6585298f18b..6cb0ef3389e 100644 --- a/include/configs/sh7785lcr.h +++ b/include/configs/sh7785lcr.h @@ -126,7 +126,6 @@ /* Board Clock */ /* The SCIF used external clock. system clock only used timer. */ #define CONFIG_SYS_CLK_FREQ 50000000 -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ #endif /* __SH7785LCR_H */ diff --git a/include/configs/shmin.h b/include/configs/shmin.h index df98f5566c0..5eabdf5bb0e 100644 --- a/include/configs/shmin.h +++ b/include/configs/shmin.h @@ -78,7 +78,6 @@ #else #define CONFIG_SYS_CLK_FREQ 33333333 #endif /* CONFIG_T_SH7706LSR */ -#define CONFIG_SH_TMU_CLK_FREQ CONFIG_SYS_CLK_FREQ #define CONFIG_SH_SCIF_CLK_FREQ CONFIG_SYS_CLK_FREQ /* Network device */ diff --git a/include/configs/silk.h b/include/configs/silk.h index ad14c5ccf27..a94928bd169 100644 --- a/include/configs/silk.h +++ b/include/configs/silk.h @@ -38,8 +38,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ diff --git a/include/configs/stout.h b/include/configs/stout.h index cc1cc84fc0a..b72b565c33d 100644 --- a/include/configs/stout.h +++ b/include/configs/stout.h @@ -42,8 +42,6 @@ /* Board Clock */ #define RMOBILE_XTAL_CLK 20000000u #define CONFIG_SYS_CLK_FREQ RMOBILE_XTAL_CLK -#define CONFIG_SH_TMU_CLK_FREQ (CONFIG_SYS_CLK_FREQ / 2) - #define CONFIG_EXTRA_ENV_SETTINGS \ "fdt_high=0xffffffff\0" \ From 8b39df9e78759c3af07466224c03d9a90d2453ca Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:37:14 +0200 Subject: [PATCH 08/11] sh: tmu: Inline sh_tmu.h The header contains only the TMU register layout, just inline it into the TMU timer implementation and drop the header completely. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 43 +++++++++++++++++++++++++++- include/sh_tmu.h | 70 ---------------------------------------------- 2 files changed, 42 insertions(+), 71 deletions(-) delete mode 100644 include/sh_tmu.h diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index 9a1d3fb013d..a650c9478c8 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -13,7 +13,48 @@ #include #include #include -#include + +#if defined(CONFIG_CPU_SH3) +struct tmu_regs { + u8 tocr; + u8 reserved0; + u8 tstr; + u8 reserved1; + u32 tcor0; + u32 tcnt0; + u16 tcr0; + u16 reserved2; + u32 tcor1; + u32 tcnt1; + u16 tcr1; + u16 reserved3; + u32 tcor2; + u32 tcnt2; + u16 tcr2; + u16 reserved4; + u32 tcpr2; +}; +#endif /* CONFIG_CPU_SH3 */ + +#if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_RMOBILE) +struct tmu_regs { + u32 reserved; + u8 tstr; + u8 reserved2[3]; + u32 tcor0; + u32 tcnt0; + u16 tcr0; + u16 reserved3; + u32 tcor1; + u32 tcnt1; + u16 tcr1; + u16 reserved4; + u32 tcor2; + u32 tcnt2; + u16 tcr2; + u16 reserved5; +}; +#endif /* CONFIG_CPU_SH4 */ #define TCR_TPSC 0x07 #define TSTR_STR0 BIT(0) diff --git a/include/sh_tmu.h b/include/sh_tmu.h deleted file mode 100644 index 70aca2149ac..00000000000 --- a/include/sh_tmu.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2012 Renesas Solutions Corp. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __SH_TMU_H -#define __SH_TMU_H - -#include - -#if defined(CONFIG_CPU_SH3) -struct tmu_regs { - u8 tocr; - u8 reserved0; - u8 tstr; - u8 reserved1; - u32 tcor0; - u32 tcnt0; - u16 tcr0; - u16 reserved2; - u32 tcor1; - u32 tcnt1; - u16 tcr1; - u16 reserved3; - u32 tcor2; - u32 tcnt2; - u16 tcr2; - u16 reserved4; - u32 tcpr2; -}; -#endif /* CONFIG_CPU_SH3 */ - -#if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_RMOBILE) -struct tmu_regs { - u32 reserved; - u8 tstr; - u8 reserved2[3]; - u32 tcor0; - u32 tcnt0; - u16 tcr0; - u16 reserved3; - u32 tcor1; - u32 tcnt1; - u16 tcr1; - u16 reserved4; - u32 tcor2; - u32 tcnt2; - u16 tcr2; - u16 reserved5; -}; -#endif /* CONFIG_CPU_SH4 */ - -#endif /* __SH_TMU_H */ From f02c1f695e13ee0ce01f111952ceaac094700de1 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:43:17 +0200 Subject: [PATCH 09/11] sh: tmu: Clean up register usage The code uses all in all three TMU registers, drop the massive register layout structures and just define the required timer registers and use them throughout the code. Signed-off-by: Marek Vasut --- arch/sh/lib/time.c | 54 ++++++++++------------------------------------ 1 file changed, 11 insertions(+), 43 deletions(-) diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index a650c9478c8..d531a4958e3 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -15,52 +15,20 @@ #include #if defined(CONFIG_CPU_SH3) -struct tmu_regs { - u8 tocr; - u8 reserved0; - u8 tstr; - u8 reserved1; - u32 tcor0; - u32 tcnt0; - u16 tcr0; - u16 reserved2; - u32 tcor1; - u32 tcnt1; - u16 tcr1; - u16 reserved3; - u32 tcor2; - u32 tcnt2; - u16 tcr2; - u16 reserved4; - u32 tcpr2; -}; +#define TSTR 0x2 +#define TCNT0 0x8 +#define TCR0 0xc #endif /* CONFIG_CPU_SH3 */ #if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_RMOBILE) -struct tmu_regs { - u32 reserved; - u8 tstr; - u8 reserved2[3]; - u32 tcor0; - u32 tcnt0; - u16 tcr0; - u16 reserved3; - u32 tcor1; - u32 tcnt1; - u16 tcr1; - u16 reserved4; - u32 tcor2; - u32 tcnt2; - u16 tcr2; - u16 reserved5; -}; +#define TSTR 0x4 +#define TCNT0 0xc +#define TCR0 0x10 #endif /* CONFIG_CPU_SH4 */ -#define TCR_TPSC 0x07 +#define TCR_TPSC 0x07 #define TSTR_STR0 BIT(0) -static struct tmu_regs *tmu = (struct tmu_regs *)TMU_BASE; - unsigned long get_tbclk(void) { #ifdef CONFIG_RCAR_GEN2 @@ -72,14 +40,14 @@ unsigned long get_tbclk(void) unsigned long timer_read_counter(void) { - return ~readl(&tmu->tcnt0); + return ~readl(TMU_BASE + TCNT0); } int timer_init(void) { - writew(readw(&tmu->tcr0) & ~TCR_TPSC, &tmu->tcr0); - writeb(readb(&tmu->tstr) & ~TSTR_STR0, &tmu->tstr); - writeb(readb(&tmu->tstr) | TSTR_STR0, &tmu->tstr); + writew(readw(TMU_BASE + TCR0) & ~TCR_TPSC, TMU_BASE + TCR0); + writeb(readb(TMU_BASE + TSTR) & ~TSTR_STR0, TMU_BASE + TSTR); + writeb(readb(TMU_BASE + TSTR) | TSTR_STR0, TMU_BASE + TSTR); return 0; } From 0e286c529f395947dbb96da93081883aca40a57f Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 21:52:53 +0200 Subject: [PATCH 10/11] sh: tmu: Zap get_tbclk and timer_read_counter Replace those two functions with generic ones by defining the timer macros in include/config/*.h . Signed-off-by: Marek Vasut --- arch/sh/include/asm/config.h | 9 +++++++++ arch/sh/lib/time.c | 16 ---------------- include/configs/armadillo-800eva.h | 3 +++ include/configs/rcar-gen2-common.h | 7 ++++++- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/arch/sh/include/asm/config.h b/arch/sh/include/asm/config.h index bad0026648a..d2862df4a5f 100644 --- a/arch/sh/include/asm/config.h +++ b/arch/sh/include/asm/config.h @@ -6,4 +6,13 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +#if !defined(CONFIG_CPU_SH2) +#include + +/* Timer */ +#define CONFIG_SYS_TIMER_COUNTS_DOWN +#define CONFIG_SYS_TIMER_COUNTER (TMU_BASE + 0x8) /* TCNT0 */ +#define CONFIG_SYS_TIMER_RATE (CONFIG_SYS_CLK_FREQ / 4) +#endif + #endif diff --git a/arch/sh/lib/time.c b/arch/sh/lib/time.c index d531a4958e3..fb317f95d55 100644 --- a/arch/sh/lib/time.c +++ b/arch/sh/lib/time.c @@ -16,33 +16,17 @@ #if defined(CONFIG_CPU_SH3) #define TSTR 0x2 -#define TCNT0 0x8 #define TCR0 0xc #endif /* CONFIG_CPU_SH3 */ #if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_RMOBILE) #define TSTR 0x4 -#define TCNT0 0xc #define TCR0 0x10 #endif /* CONFIG_CPU_SH4 */ #define TCR_TPSC 0x07 #define TSTR_STR0 BIT(0) -unsigned long get_tbclk(void) -{ -#ifdef CONFIG_RCAR_GEN2 - return CONFIG_SYS_CLK_FREQ / 8; -#else - return CONFIG_SYS_CLK_FREQ / 4; -#endif -} - -unsigned long timer_read_counter(void) -{ - return ~readl(TMU_BASE + TCNT0); -} - int timer_init(void) { writew(readw(TMU_BASE + TCR0) & ~TCR_TPSC, TMU_BASE + TCR0); diff --git a/include/configs/armadillo-800eva.h b/include/configs/armadillo-800eva.h index b17d597766f..3c6b2c3cd7e 100644 --- a/include/configs/armadillo-800eva.h +++ b/include/configs/armadillo-800eva.h @@ -18,6 +18,9 @@ #define CONFIG_ARCH_CPU_INIT #define CONFIG_TMU_TIMER +#define CONFIG_SYS_TIMER_COUNTS_DOWN +#define CONFIG_SYS_TIMER_COUNTER (TMU_BASE + 0xc) /* TCNT0 */ +#define CONFIG_SYS_TIMER_RATE (CONFIG_SYS_CLK_FREQ / 4) #define CONFIG_SYS_DCACHE_OFF /* STACK */ diff --git a/include/configs/rcar-gen2-common.h b/include/configs/rcar-gen2-common.h index 2a5cd6b832c..d606da8b0ec 100644 --- a/include/configs/rcar-gen2-common.h +++ b/include/configs/rcar-gen2-common.h @@ -22,7 +22,6 @@ #define CONFIG_ARCH_CPU_INIT -#define CONFIG_TMU_TIMER #ifndef CONFIG_PINCTRL_PFC #define CONFIG_SH_GPIO_PFC #endif @@ -57,4 +56,10 @@ #undef CONFIG_SPI_FLASH_MTD #endif +/* Timer */ +#define CONFIG_TMU_TIMER +#define CONFIG_SYS_TIMER_COUNTS_DOWN +#define CONFIG_SYS_TIMER_COUNTER (TMU_BASE + 0xc) /* TCNT0 */ +#define CONFIG_SYS_TIMER_RATE (CONFIG_SYS_CLK_FREQ / 8) + #endif /* __RCAR_GEN2_COMMON_H */ From e83da8e8809ccd3872270f4247fe76c1f75c1a92 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Fri, 24 Aug 2018 22:36:18 +0200 Subject: [PATCH 11/11] ARM: rmobile: Repair TMU clock on Gen2 The Gen2 TMU is fed with fixed 32.5 MHz signal from CP . This is then divided by 4 in TMU. Fix the timer clock setting in Gen2. Signed-off-by: Marek Vasut --- include/configs/rcar-gen2-common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/rcar-gen2-common.h b/include/configs/rcar-gen2-common.h index d606da8b0ec..01583f8cc24 100644 --- a/include/configs/rcar-gen2-common.h +++ b/include/configs/rcar-gen2-common.h @@ -60,6 +60,6 @@ #define CONFIG_TMU_TIMER #define CONFIG_SYS_TIMER_COUNTS_DOWN #define CONFIG_SYS_TIMER_COUNTER (TMU_BASE + 0xc) /* TCNT0 */ -#define CONFIG_SYS_TIMER_RATE (CONFIG_SYS_CLK_FREQ / 8) +#define CONFIG_SYS_TIMER_RATE (32500000 / 4) /* CP/4 */ #endif /* __RCAR_GEN2_COMMON_H */