Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
0fe422c9
Commit
0fe422c9
authored
Dec 11, 2011
by
Olof Johansson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'omap/omap1' into next/devel
parents
5611cc45
c116abc4
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
59 additions
and
121 deletions
+59
-121
arch/arm/configs/omap1_defconfig
arch/arm/configs/omap1_defconfig
+0
-6
arch/arm/mach-omap1/Kconfig
arch/arm/mach-omap1/Kconfig
+0
-64
arch/arm/mach-omap1/clock.c
arch/arm/mach-omap1/clock.c
+6
-8
arch/arm/mach-omap1/clock.h
arch/arm/mach-omap1/clock.h
+3
-0
arch/arm/mach-omap1/clock_data.c
arch/arm/mach-omap1/clock_data.c
+14
-5
arch/arm/mach-omap1/opp.h
arch/arm/mach-omap1/opp.h
+1
-0
arch/arm/mach-omap1/opp_data.c
arch/arm/mach-omap1/opp_data.c
+29
-34
arch/arm/plat-omap/include/plat/clkdev_omap.h
arch/arm/plat-omap/include/plat/clkdev_omap.h
+1
-0
arch/arm/plat-omap/sram.c
arch/arm/plat-omap/sram.c
+5
-4
No files found.
arch/arm/configs/omap1_defconfig
View file @
0fe422c9
...
...
@@ -48,12 +48,6 @@ CONFIG_MACH_SX1=y
CONFIG_MACH_NOKIA770=y
CONFIG_MACH_AMS_DELTA=y
CONFIG_MACH_OMAP_GENERIC=y
CONFIG_OMAP_ARM_216MHZ=y
CONFIG_OMAP_ARM_195MHZ=y
CONFIG_OMAP_ARM_192MHZ=y
CONFIG_OMAP_ARM_182MHZ=y
CONFIG_OMAP_ARM_168MHZ=y
# CONFIG_OMAP_ARM_60MHZ is not set
# CONFIG_ARM_THUMB is not set
CONFIG_PCCARD=y
CONFIG_OMAP_CF=y
...
...
arch/arm/mach-omap1/Kconfig
View file @
0fe422c9
...
...
@@ -168,70 +168,6 @@ config MACH_OMAP_GENERIC
custom OMAP boards. Say Y here if you have a custom
board.
comment "OMAP CPU Speed"
depends on ARCH_OMAP1
config OMAP_ARM_216MHZ
bool "OMAP ARM 216 MHz CPU (1710 only)"
depends on ARCH_OMAP1 && ARCH_OMAP16XX
help
Enable 216 MHz clock for OMAP1710 CPU. If unsure, say N.
config OMAP_ARM_195MHZ
bool "OMAP ARM 195 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP730 || ARCH_OMAP850)
help
Enable 195MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_192MHZ
bool "OMAP ARM 192 MHz CPU"
depends on ARCH_OMAP1 && ARCH_OMAP16XX
help
Enable 192MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_182MHZ
bool "OMAP ARM 182 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP730 || ARCH_OMAP850)
help
Enable 182MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_168MHZ
bool "OMAP ARM 168 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
help
Enable 168MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_150MHZ
bool "OMAP ARM 150 MHz CPU"
depends on ARCH_OMAP1 && ARCH_OMAP15XX
help
Enable 150MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_120MHZ
bool "OMAP ARM 120 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
help
Enable 120MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_96MHZ
bool "OMAP ARM 96 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
help
Enable 96MHz clock for OMAP CPU. If unsure, say N.
config OMAP_ARM_60MHZ
bool "OMAP ARM 60 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
default y
help
Enable 60MHz clock for OMAP CPU. If unsure, say Y.
config OMAP_ARM_30MHZ
bool "OMAP ARM 30 MHz CPU"
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
help
Enable 30MHz clock for OMAP CPU. If unsure, say N.
endmenu
endif
arch/arm/mach-omap1/clock.c
View file @
0fe422c9
...
...
@@ -197,11 +197,10 @@ int omap1_select_table_rate(struct clk *clk, unsigned long rate)
ref_rate
=
ck_ref_p
->
rate
;
for
(
ptr
=
omap1_rate_table
;
ptr
->
rate
;
ptr
++
)
{
if
(
ptr
->
xtal
!=
ref_rate
)
if
(
!
(
ptr
->
flags
&
cpu_mask
)
)
continue
;
/* DPLL1 cannot be reprogrammed without risking system crash */
if
(
likely
(
dpll1_rate
!=
0
)
&&
ptr
->
pll_rate
!=
dpll1_rate
)
if
(
ptr
->
xtal
!=
ref_rate
)
continue
;
/* Can check only after xtal frequency check */
...
...
@@ -215,12 +214,8 @@ int omap1_select_table_rate(struct clk *clk, unsigned long rate)
/*
* In most cases we should not need to reprogram DPLL.
* Reprogramming the DPLL is tricky, it must be done from SRAM.
* (on 730, bit 13 must always be 1)
*/
if
(
cpu_is_omap7xx
())
omap_sram_reprogram_clock
(
ptr
->
dpllctl_val
,
ptr
->
ckctl_val
|
0x2000
);
else
omap_sram_reprogram_clock
(
ptr
->
dpllctl_val
,
ptr
->
ckctl_val
);
omap_sram_reprogram_clock
(
ptr
->
dpllctl_val
,
ptr
->
ckctl_val
);
/* XXX Do we need to recalculate the tree below DPLL1 at this point? */
ck_dpll1_p
->
rate
=
ptr
->
pll_rate
;
...
...
@@ -290,6 +285,9 @@ long omap1_round_to_table_rate(struct clk *clk, unsigned long rate)
highest_rate
=
-
EINVAL
;
for
(
ptr
=
omap1_rate_table
;
ptr
->
rate
;
ptr
++
)
{
if
(
!
(
ptr
->
flags
&
cpu_mask
))
continue
;
if
(
ptr
->
xtal
!=
ref_rate
)
continue
;
...
...
arch/arm/mach-omap1/clock.h
View file @
0fe422c9
...
...
@@ -111,4 +111,7 @@ extern const struct clkops clkops_dummy;
extern
const
struct
clkops
clkops_uart_16xx
;
extern
const
struct
clkops
clkops_generic
;
/* used for passing SoC type to omap1_{select,round_to}_table_rate() */
extern
u32
cpu_mask
;
#endif
arch/arm/mach-omap1/clock_data.c
View file @
0fe422c9
...
...
@@ -16,6 +16,8 @@
#include <linux/kernel.h>
#include <linux/clk.h>
#include <linux/cpufreq.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <asm/mach-types.h>
/* for machine_is_* */
...
...
@@ -23,6 +25,7 @@
#include <plat/clock.h>
#include <plat/cpu.h>
#include <plat/clkdev_omap.h>
#include <plat/sram.h>
/* for omap_sram_reprogram_clock() */
#include <plat/usb.h>
/* for OTG_BASE */
#include "clock.h"
...
...
@@ -776,12 +779,14 @@ static void __init omap1_show_rates(void)
arm_ck
.
rate
/
1000000
,
(
arm_ck
.
rate
/
100000
)
%
10
);
}
u32
cpu_mask
;
int
__init
omap1_clk_init
(
void
)
{
struct
omap_clk
*
c
;
const
struct
omap_clock_config
*
info
;
int
crystal_type
=
0
;
/* Default 12 MHz */
u32
reg
,
cpu_mask
;
u32
reg
;
#ifdef CONFIG_DEBUG_LL
/*
...
...
@@ -806,6 +811,8 @@ int __init omap1_clk_init(void)
clk_preinit
(
c
->
lk
.
clk
);
cpu_mask
=
0
;
if
(
cpu_is_omap1710
())
cpu_mask
|=
CK_1710
;
if
(
cpu_is_omap16xx
())
cpu_mask
|=
CK_16XX
;
if
(
cpu_is_omap1510
())
...
...
@@ -927,16 +934,18 @@ int __init omap1_clk_init(void)
void
__init
omap1_clk_late_init
(
void
)
{
if
(
ck_dpll1
.
rate
>=
OMAP1_DPLL1_SANE_VALUE
)
return
;
unsigned
long
rate
=
ck_dpll1
.
rate
;
/* Find the highest supported frequency and enable it */
if
(
omap1_select_table_rate
(
&
virtual_ck_mpu
,
~
0
))
{
pr_err
(
"System frequencies not set, using default. Check your config.
\n
"
);
omap_writew
(
0x2290
,
DPLL_CTL
);
omap_writew
(
cpu_is_omap7xx
()
?
0x3005
:
0x1005
,
ARM_CKCTL
);
/*
* Reprogramming the DPLL is tricky, it must be done from SRAM.
*/
omap_sram_reprogram_clock
(
0x2290
,
0x0005
);
ck_dpll1
.
rate
=
OMAP1_DPLL1_SANE_VALUE
;
}
propagate_rate
(
&
ck_dpll1
);
omap1_show_rates
();
loops_per_jiffy
=
cpufreq_scale
(
loops_per_jiffy
,
rate
,
ck_dpll1
.
rate
);
}
arch/arm/mach-omap1/opp.h
View file @
0fe422c9
...
...
@@ -21,6 +21,7 @@ struct mpu_rate {
unsigned
long
pll_rate
;
__u16
ckctl_val
;
__u16
dpllctl_val
;
u32
flags
;
};
extern
struct
mpu_rate
omap1_rate_table
[];
...
...
arch/arm/mach-omap1/opp_data.c
View file @
0fe422c9
...
...
@@ -10,6 +10,7 @@
* published by the Free Software Foundation.
*/
#include <plat/clkdev_omap.h>
#include "opp.h"
/*-------------------------------------------------------------------------
...
...
@@ -20,40 +21,34 @@ struct mpu_rate omap1_rate_table[] = {
* NOTE: Comment order here is different from bits in CKCTL value:
* armdiv, dspdiv, dspmmu, tcdiv, perdiv, lcddiv
*/
#if defined(CONFIG_OMAP_ARM_216MHZ)
{
216000000
,
12000000
,
216000000
,
0x050d
,
0x2910
},
/* 1/1/2/2/2/8 */
#endif
#if defined(CONFIG_OMAP_ARM_195MHZ)
{
195000000
,
13000000
,
195000000
,
0x050e
,
0x2790
},
/* 1/1/2/2/4/8 */
#endif
#if defined(CONFIG_OMAP_ARM_192MHZ)
{
192000000
,
19200000
,
192000000
,
0x050f
,
0x2510
},
/* 1/1/2/2/8/8 */
{
192000000
,
12000000
,
192000000
,
0x050f
,
0x2810
},
/* 1/1/2/2/8/8 */
{
96000000
,
12000000
,
192000000
,
0x055f
,
0x2810
},
/* 2/2/2/2/8/8 */
{
48000000
,
12000000
,
192000000
,
0x0baf
,
0x2810
},
/* 4/4/4/8/8/8 */
{
24000000
,
12000000
,
192000000
,
0x0fff
,
0x2810
},
/* 8/8/8/8/8/8 */
#endif
#if defined(CONFIG_OMAP_ARM_182MHZ)
{
182000000
,
13000000
,
182000000
,
0x050e
,
0x2710
},
/* 1/1/2/2/4/8 */
#endif
#if defined(CONFIG_OMAP_ARM_168MHZ)
{
168000000
,
12000000
,
168000000
,
0x010f
,
0x2710
},
/* 1/1/1/2/8/8 */
#endif
#if defined(CONFIG_OMAP_ARM_150MHZ)
{
150000000
,
12000000
,
150000000
,
0x010a
,
0x2cb0
},
/* 1/1/1/2/4/4 */
#endif
#if defined(CONFIG_OMAP_ARM_120MHZ)
{
120000000
,
12000000
,
120000000
,
0x010a
,
0x2510
},
/* 1/1/1/2/4/4 */
#endif
#if defined(CONFIG_OMAP_ARM_96MHZ)
{
96000000
,
12000000
,
96000000
,
0x0005
,
0x2410
},
/* 1/1/1/1/2/2 */
#endif
#if defined(CONFIG_OMAP_ARM_60MHZ)
{
60000000
,
12000000
,
60000000
,
0x0005
,
0x2290
},
/* 1/1/1/1/2/2 */
#endif
#if defined(CONFIG_OMAP_ARM_30MHZ)
{
30000000
,
12000000
,
60000000
,
0x0555
,
0x2290
},
/* 2/2/2/2/2/2 */
#endif
{
216000000
,
12000000
,
216000000
,
0x050d
,
0x2910
,
/* 1/1/2/2/2/8 */
CK_1710
},
{
195000000
,
13000000
,
195000000
,
0x050e
,
0x2790
,
/* 1/1/2/2/4/8 */
CK_7XX
},
{
192000000
,
19200000
,
192000000
,
0x050f
,
0x2510
,
/* 1/1/2/2/8/8 */
CK_16XX
},
{
192000000
,
12000000
,
192000000
,
0x050f
,
0x2810
,
/* 1/1/2/2/8/8 */
CK_16XX
},
{
96000000
,
12000000
,
192000000
,
0x055f
,
0x2810
,
/* 2/2/2/2/8/8 */
CK_16XX
},
{
48000000
,
12000000
,
192000000
,
0x0baf
,
0x2810
,
/* 4/4/4/8/8/8 */
CK_16XX
},
{
24000000
,
12000000
,
192000000
,
0x0fff
,
0x2810
,
/* 8/8/8/8/8/8 */
CK_16XX
},
{
182000000
,
13000000
,
182000000
,
0x050e
,
0x2710
,
/* 1/1/2/2/4/8 */
CK_7XX
},
{
168000000
,
12000000
,
168000000
,
0x010f
,
0x2710
,
/* 1/1/1/2/8/8 */
CK_16XX
|
CK_7XX
},
{
150000000
,
12000000
,
150000000
,
0x010a
,
0x2cb0
,
/* 1/1/1/2/4/4 */
CK_1510
},
{
120000000
,
12000000
,
120000000
,
0x010a
,
0x2510
,
/* 1/1/1/2/4/4 */
CK_16XX
|
CK_1510
|
CK_310
|
CK_7XX
},
{
96000000
,
12000000
,
96000000
,
0x0005
,
0x2410
,
/* 1/1/1/1/2/2 */
CK_16XX
|
CK_1510
|
CK_310
|
CK_7XX
},
{
60000000
,
12000000
,
60000000
,
0x0005
,
0x2290
,
/* 1/1/1/1/2/2 */
CK_16XX
|
CK_1510
|
CK_310
|
CK_7XX
},
{
30000000
,
12000000
,
60000000
,
0x0555
,
0x2290
,
/* 2/2/2/2/2/2 */
CK_16XX
|
CK_1510
|
CK_310
|
CK_7XX
},
{
0
,
0
,
0
,
0
,
0
},
};
arch/arm/plat-omap/include/plat/clkdev_omap.h
View file @
0fe422c9
...
...
@@ -40,6 +40,7 @@ struct omap_clk {
#define CK_443X (1 << 11)
#define CK_TI816X (1 << 12)
#define CK_446X (1 << 13)
#define CK_1710 (1 << 15)
/* 1710 extra for rate selection */
#define CK_34XX (CK_3430ES1 | CK_3430ES2PLUS)
...
...
arch/arm/plat-omap/sram.c
View file @
0fe422c9
...
...
@@ -141,11 +141,9 @@ static void __init omap_detect_sram(void)
omap_sram_size
=
0x32000
;
/* 200K */
else
if
(
cpu_is_omap15xx
())
omap_sram_size
=
0x30000
;
/* 192K */
else
if
(
cpu_is_omap1610
()
||
cpu_is_omap16
2
1
()
||
cpu_is_omap1710
())
else
if
(
cpu_is_omap1610
()
||
cpu_is_omap16
1
1
()
||
cpu_is_omap1621
()
||
cpu_is_omap1710
())
omap_sram_size
=
0x4000
;
/* 16K */
else
if
(
cpu_is_omap1611
())
omap_sram_size
=
SZ_256K
;
else
{
pr_err
(
"Could not detect SRAM size
\n
"
);
omap_sram_size
=
0x4000
;
...
...
@@ -224,6 +222,9 @@ static void (*_omap_sram_reprogram_clock)(u32 dpllctl, u32 ckctl);
void
omap_sram_reprogram_clock
(
u32
dpllctl
,
u32
ckctl
)
{
BUG_ON
(
!
_omap_sram_reprogram_clock
);
/* On 730, bit 13 must always be 1 */
if
(
cpu_is_omap7xx
())
ckctl
|=
0x2000
;
_omap_sram_reprogram_clock
(
dpllctl
,
ckctl
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment