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
d7d8d62a
Commit
d7d8d62a
authored
Nov 20, 2019
by
Tony Lindgren
Browse files
Options
Browse Files
Download
Plain Diff
Merge branches 'omap-for-v5.5/soc' and 'omap-for-v5.5/ti-sysc' into omap-for-v5.5/ti-sysc-late
parents
b82049f2
37238d3d
cb6cfe2e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
7 deletions
+19
-7
arch/arm/mach-omap2/timer.c
arch/arm/mach-omap2/timer.c
+2
-2
drivers/bus/ti-sysc.c
drivers/bus/ti-sysc.c
+16
-5
include/linux/platform_data/ti-sysc.h
include/linux/platform_data/ti-sysc.h
+1
-0
No files found.
arch/arm/mach-omap2/timer.c
View file @
d7d8d62a
...
@@ -545,7 +545,7 @@ static void __init __omap_sync32k_timer_init(int clkev_nr, const char *clkev_src
...
@@ -545,7 +545,7 @@ static void __init __omap_sync32k_timer_init(int clkev_nr, const char *clkev_src
omap2_gp_clockevent_init
(
clkev_nr
,
clkev_src
,
clkev_prop
);
omap2_gp_clockevent_init
(
clkev_nr
,
clkev_src
,
clkev_prop
);
/* Enable the use of clocksource="gp_timer" kernel parameter */
/* Enable the use of clocksource="gp_timer" kernel parameter */
if
(
use_gptimer_clksrc
||
gptimer
)
if
(
clksrc_nr
&&
(
use_gptimer_clksrc
||
gptimer
)
)
omap2_gptimer_clocksource_init
(
clksrc_nr
,
clksrc_src
,
omap2_gptimer_clocksource_init
(
clksrc_nr
,
clksrc_src
,
clksrc_prop
);
clksrc_prop
);
else
else
...
@@ -586,7 +586,7 @@ void __init omap3_gptimer_timer_init(void)
...
@@ -586,7 +586,7 @@ void __init omap3_gptimer_timer_init(void)
static
void
__init
omap4_sync32k_timer_init
(
void
)
static
void
__init
omap4_sync32k_timer_init
(
void
)
{
{
__omap_sync32k_timer_init
(
1
,
"timer_32k_ck"
,
"ti,timer-alwon"
,
__omap_sync32k_timer_init
(
1
,
"timer_32k_ck"
,
"ti,timer-alwon"
,
2
,
"sys_clkin_ck"
,
NULL
,
false
);
0
,
NULL
,
NULL
,
false
);
}
}
void
__init
omap4_local_timer_init
(
void
)
void
__init
omap4_local_timer_init
(
void
)
...
...
drivers/bus/ti-sysc.c
View file @
d7d8d62a
...
@@ -1242,6 +1242,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
...
@@ -1242,6 +1242,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
SYSC_QUIRK_SWSUP_SIDLE
),
SYSC_QUIRK_SWSUP_SIDLE
),
/* Quirks that need to be set based on detected module */
/* Quirks that need to be set based on detected module */
SYSC_QUIRK
(
"aess"
,
0
,
0
,
0x10
,
-
1
,
0x40000000
,
0xffffffff
,
SYSC_MODULE_QUIRK_AESS
),
SYSC_QUIRK
(
"hdq1w"
,
0
,
0
,
0x14
,
0x18
,
0x00000006
,
0xffffffff
,
SYSC_QUIRK
(
"hdq1w"
,
0
,
0
,
0x14
,
0x18
,
0x00000006
,
0xffffffff
,
SYSC_MODULE_QUIRK_HDQ1W
),
SYSC_MODULE_QUIRK_HDQ1W
),
SYSC_QUIRK
(
"hdq1w"
,
0
,
0
,
0x14
,
0x18
,
0x0000000a
,
0xffffffff
,
SYSC_QUIRK
(
"hdq1w"
,
0
,
0
,
0x14
,
0x18
,
0x0000000a
,
0xffffffff
,
...
@@ -1270,7 +1272,6 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
...
@@ -1270,7 +1272,6 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
#ifdef DEBUG
#ifdef DEBUG
SYSC_QUIRK
(
"adc"
,
0
,
0
,
0x10
,
-
1
,
0x47300001
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"adc"
,
0
,
0
,
0x10
,
-
1
,
0x47300001
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"atl"
,
0
,
0
,
-
1
,
-
1
,
0x0a070100
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"atl"
,
0
,
0
,
-
1
,
-
1
,
0x0a070100
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"aess"
,
0
,
0
,
0x10
,
-
1
,
0x40000000
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"cm"
,
0
,
0
,
-
1
,
-
1
,
0x40000301
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"cm"
,
0
,
0
,
-
1
,
-
1
,
0x40000301
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"control"
,
0
,
0
,
0x10
,
-
1
,
0x40000900
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"control"
,
0
,
0
,
0x10
,
-
1
,
0x40000900
,
0xffffffff
,
0
),
SYSC_QUIRK
(
"cpgmac"
,
0
,
0x1200
,
0x1208
,
0x1204
,
0x4edb1902
,
SYSC_QUIRK
(
"cpgmac"
,
0
,
0x1200
,
0x1208
,
0x1204
,
0x4edb1902
,
...
@@ -1402,6 +1403,14 @@ static void sysc_clk_enable_quirk_hdq1w(struct sysc *ddata)
...
@@ -1402,6 +1403,14 @@ static void sysc_clk_enable_quirk_hdq1w(struct sysc *ddata)
sysc_write
(
ddata
,
offset
,
val
);
sysc_write
(
ddata
,
offset
,
val
);
}
}
/* AESS (Audio Engine SubSystem) needs autogating set after enable */
static
void
sysc_module_enable_quirk_aess
(
struct
sysc
*
ddata
)
{
int
offset
=
0x7c
;
/* AESS_AUTO_GATING_ENABLE */
sysc_write
(
ddata
,
offset
,
1
);
}
/* I2C needs extra enable bit toggling for reset */
/* I2C needs extra enable bit toggling for reset */
static
void
sysc_clk_quirk_i2c
(
struct
sysc
*
ddata
,
bool
enable
)
static
void
sysc_clk_quirk_i2c
(
struct
sysc
*
ddata
,
bool
enable
)
{
{
...
@@ -1484,6 +1493,9 @@ static void sysc_init_module_quirks(struct sysc *ddata)
...
@@ -1484,6 +1493,9 @@ static void sysc_init_module_quirks(struct sysc *ddata)
return
;
return
;
}
}
if
(
ddata
->
cfg
.
quirks
&
SYSC_MODULE_QUIRK_AESS
)
ddata
->
module_enable_quirk
=
sysc_module_enable_quirk_aess
;
if
(
ddata
->
cfg
.
quirks
&
SYSC_MODULE_QUIRK_SGX
)
if
(
ddata
->
cfg
.
quirks
&
SYSC_MODULE_QUIRK_SGX
)
ddata
->
module_enable_quirk
=
sysc_module_enable_quirk_sgx
;
ddata
->
module_enable_quirk
=
sysc_module_enable_quirk_sgx
;
...
@@ -1766,9 +1778,8 @@ static int sysc_child_add_named_clock(struct sysc *ddata,
...
@@ -1766,9 +1778,8 @@ static int sysc_child_add_named_clock(struct sysc *ddata,
clk
=
clk_get
(
child
,
name
);
clk
=
clk_get
(
child
,
name
);
if
(
!
IS_ERR
(
clk
))
{
if
(
!
IS_ERR
(
clk
))
{
clk_put
(
clk
);
error
=
-
EEXIST
;
goto
put_clk
;
return
-
EEXIST
;
}
}
clk
=
clk_get
(
ddata
->
dev
,
name
);
clk
=
clk_get
(
ddata
->
dev
,
name
);
...
@@ -1778,7 +1789,7 @@ static int sysc_child_add_named_clock(struct sysc *ddata,
...
@@ -1778,7 +1789,7 @@ static int sysc_child_add_named_clock(struct sysc *ddata,
l
=
clkdev_create
(
clk
,
name
,
dev_name
(
child
));
l
=
clkdev_create
(
clk
,
name
,
dev_name
(
child
));
if
(
!
l
)
if
(
!
l
)
error
=
-
ENOMEM
;
error
=
-
ENOMEM
;
put_clk:
clk_put
(
clk
);
clk_put
(
clk
);
return
error
;
return
error
;
...
...
include/linux/platform_data/ti-sysc.h
View file @
d7d8d62a
...
@@ -49,6 +49,7 @@ struct sysc_regbits {
...
@@ -49,6 +49,7 @@ struct sysc_regbits {
s8
emufree_shift
;
s8
emufree_shift
;
};
};
#define SYSC_MODULE_QUIRK_AESS BIT(19)
#define SYSC_MODULE_QUIRK_SGX BIT(18)
#define SYSC_MODULE_QUIRK_SGX BIT(18)
#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
#define SYSC_MODULE_QUIRK_I2C BIT(16)
#define SYSC_MODULE_QUIRK_I2C BIT(16)
...
...
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