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
f85c6edf
Commit
f85c6edf
authored
Feb 02, 2015
by
Michael Turquette
Browse files
Options
Browse Files
Download
Plain Diff
Merge tag 'tegra-clk-3.20' of
git://nv-tegra.nvidia.com/user/pdeschrijver/linux
into clk-next
Tegra clock fixes for 3.20
parents
54eea32f
b270491e
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
532 additions
and
396 deletions
+532
-396
Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt
...ntation/devicetree/bindings/clock/nvidia,tegra124-car.txt
+6
-4
arch/arm/mach-tegra/tegra.c
arch/arm/mach-tegra/tegra.c
+0
-2
drivers/clk/tegra/Makefile
drivers/clk/tegra/Makefile
+1
-0
drivers/clk/tegra/clk-id.h
drivers/clk/tegra/clk-id.h
+0
-2
drivers/clk/tegra/clk-pll.c
drivers/clk/tegra/clk-pll.c
+11
-7
drivers/clk/tegra/clk-tegra-periph.c
drivers/clk/tegra/clk-tegra-periph.c
+8
-10
drivers/clk/tegra/clk-tegra114.c
drivers/clk/tegra/clk-tegra114.c
+8
-2
drivers/clk/tegra/clk-tegra124.c
drivers/clk/tegra/clk-tegra124.c
+139
-29
drivers/clk/tegra/clk.c
drivers/clk/tegra/clk.c
+5
-2
include/dt-bindings/clock/tegra124-car-common.h
include/dt-bindings/clock/tegra124-car-common.h
+345
-0
include/dt-bindings/clock/tegra124-car.h
include/dt-bindings/clock/tegra124-car.h
+9
-336
include/linux/clk/tegra.h
include/linux/clk/tegra.h
+0
-2
No files found.
Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt
View file @
f85c6edf
NVIDIA Tegra124 Clock And Reset Controller
NVIDIA Tegra124
and Tegra132
Clock And Reset Controller
This binding uses the common clock binding:
This binding uses the common clock binding:
Documentation/devicetree/bindings/clock/clock-bindings.txt
Documentation/devicetree/bindings/clock/clock-bindings.txt
...
@@ -7,14 +7,16 @@ The CAR (Clock And Reset) Controller on Tegra is the HW module responsible
...
@@ -7,14 +7,16 @@ The CAR (Clock And Reset) Controller on Tegra is the HW module responsible
for muxing and gating Tegra's clocks, and setting their rates.
for muxing and gating Tegra's clocks, and setting their rates.
Required properties :
Required properties :
- compatible : Should be "nvidia,tegra124-car"
- compatible : Should be "nvidia,tegra124-car"
or "nvidia,tegra132-car"
- reg : Should contain CAR registers location and length
- reg : Should contain CAR registers location and length
- clocks : Should contain phandle and clock specifiers for two clocks:
- clocks : Should contain phandle and clock specifiers for two clocks:
the 32 KHz "32k_in", and the board-specific oscillator "osc".
the 32 KHz "32k_in", and the board-specific oscillator "osc".
- #clock-cells : Should be 1.
- #clock-cells : Should be 1.
In clock consumers, this cell represents the clock ID exposed by the
In clock consumers, this cell represents the clock ID exposed by the
CAR. The assignments may be found in header file
CAR. The assignments may be found in the header files
<dt-bindings/clock/tegra124-car.h>.
<dt-bindings/clock/tegra124-car-common.h> (which covers IDs common
to Tegra124 and Tegra132) and <dt-bindings/clock/tegra124-car.h>
(for Tegra124-specific clocks).
- #reset-cells : Should be 1.
- #reset-cells : Should be 1.
In clock consumers, this cell represents the bit number in the CAR's
In clock consumers, this cell represents the bit number in the CAR's
array of CLK_RST_CONTROLLER_RST_DEVICES_* registers.
array of CLK_RST_CONTROLLER_RST_DEVICES_* registers.
...
...
arch/arm/mach-tegra/tegra.c
View file @
f85c6edf
...
@@ -91,8 +91,6 @@ static void __init tegra_dt_init(void)
...
@@ -91,8 +91,6 @@ static void __init tegra_dt_init(void)
struct
soc_device
*
soc_dev
;
struct
soc_device
*
soc_dev
;
struct
device
*
parent
=
NULL
;
struct
device
*
parent
=
NULL
;
tegra_clocks_apply_init_table
();
soc_dev_attr
=
kzalloc
(
sizeof
(
*
soc_dev_attr
),
GFP_KERNEL
);
soc_dev_attr
=
kzalloc
(
sizeof
(
*
soc_dev_attr
),
GFP_KERNEL
);
if
(
!
soc_dev_attr
)
if
(
!
soc_dev_attr
)
goto
out
;
goto
out
;
...
...
drivers/clk/tegra/Makefile
View file @
f85c6edf
...
@@ -15,3 +15,4 @@ obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += clk-tegra20.o
...
@@ -15,3 +15,4 @@ obj-$(CONFIG_ARCH_TEGRA_2x_SOC) += clk-tegra20.o
obj-$(CONFIG_ARCH_TEGRA_3x_SOC)
+=
clk-tegra30.o
obj-$(CONFIG_ARCH_TEGRA_3x_SOC)
+=
clk-tegra30.o
obj-$(CONFIG_ARCH_TEGRA_114_SOC)
+=
clk-tegra114.o
obj-$(CONFIG_ARCH_TEGRA_114_SOC)
+=
clk-tegra114.o
obj-$(CONFIG_ARCH_TEGRA_124_SOC)
+=
clk-tegra124.o
obj-$(CONFIG_ARCH_TEGRA_124_SOC)
+=
clk-tegra124.o
obj-$(CONFIG_ARCH_TEGRA_132_SOC)
+=
clk-tegra124.o
drivers/clk/tegra/clk-id.h
View file @
f85c6edf
...
@@ -64,10 +64,8 @@ enum clk_id {
...
@@ -64,10 +64,8 @@ enum clk_id {
tegra_clk_disp2
,
tegra_clk_disp2
,
tegra_clk_dp2
,
tegra_clk_dp2
,
tegra_clk_dpaux
,
tegra_clk_dpaux
,
tegra_clk_dsia
,
tegra_clk_dsialp
,
tegra_clk_dsialp
,
tegra_clk_dsia_mux
,
tegra_clk_dsia_mux
,
tegra_clk_dsib
,
tegra_clk_dsiblp
,
tegra_clk_dsiblp
,
tegra_clk_dsib_mux
,
tegra_clk_dsib_mux
,
tegra_clk_dtv
,
tegra_clk_dtv
,
...
...
drivers/clk/tegra/clk-pll.c
View file @
f85c6edf
...
@@ -816,7 +816,9 @@ const struct clk_ops tegra_clk_plle_ops = {
...
@@ -816,7 +816,9 @@ const struct clk_ops tegra_clk_plle_ops = {
.
enable
=
clk_plle_enable
,
.
enable
=
clk_plle_enable
,
};
};
#if defined(CONFIG_ARCH_TEGRA_114_SOC) || defined(CONFIG_ARCH_TEGRA_124_SOC)
#if defined(CONFIG_ARCH_TEGRA_114_SOC) || \
defined(CONFIG_ARCH_TEGRA_124_SOC) || \
defined(CONFIG_ARCH_TEGRA_132_SOC)
static
int
_pll_fixed_mdiv
(
struct
tegra_clk_pll_params
*
pll_params
,
static
int
_pll_fixed_mdiv
(
struct
tegra_clk_pll_params
*
pll_params
,
unsigned
long
parent_rate
)
unsigned
long
parent_rate
)
...
@@ -1505,7 +1507,9 @@ struct clk *tegra_clk_register_plle(const char *name, const char *parent_name,
...
@@ -1505,7 +1507,9 @@ struct clk *tegra_clk_register_plle(const char *name, const char *parent_name,
return
clk
;
return
clk
;
}
}
#if defined(CONFIG_ARCH_TEGRA_114_SOC) || defined(CONFIG_ARCH_TEGRA_124_SOC)
#if defined(CONFIG_ARCH_TEGRA_114_SOC) || \
defined(CONFIG_ARCH_TEGRA_124_SOC) || \
defined(CONFIG_ARCH_TEGRA_132_SOC)
static
const
struct
clk_ops
tegra_clk_pllxc_ops
=
{
static
const
struct
clk_ops
tegra_clk_pllxc_ops
=
{
.
is_enabled
=
clk_pll_is_enabled
,
.
is_enabled
=
clk_pll_is_enabled
,
.
enable
=
clk_pll_iddq_enable
,
.
enable
=
clk_pll_iddq_enable
,
...
@@ -1565,7 +1569,7 @@ struct clk *tegra_clk_register_pllxc(const char *name, const char *parent_name,
...
@@ -1565,7 +1569,7 @@ struct clk *tegra_clk_register_pllxc(const char *name, const char *parent_name,
parent
=
__clk_lookup
(
parent_name
);
parent
=
__clk_lookup
(
parent_name
);
if
(
!
parent
)
{
if
(
!
parent
)
{
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
name
,
parent_
name
);
parent_name
,
name
);
return
ERR_PTR
(
-
EINVAL
);
return
ERR_PTR
(
-
EINVAL
);
}
}
...
@@ -1665,7 +1669,7 @@ struct clk *tegra_clk_register_pllm(const char *name, const char *parent_name,
...
@@ -1665,7 +1669,7 @@ struct clk *tegra_clk_register_pllm(const char *name, const char *parent_name,
parent
=
__clk_lookup
(
parent_name
);
parent
=
__clk_lookup
(
parent_name
);
if
(
!
parent
)
{
if
(
!
parent
)
{
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
name
,
parent_
name
);
parent_name
,
name
);
return
ERR_PTR
(
-
EINVAL
);
return
ERR_PTR
(
-
EINVAL
);
}
}
...
@@ -1706,7 +1710,7 @@ struct clk *tegra_clk_register_pllc(const char *name, const char *parent_name,
...
@@ -1706,7 +1710,7 @@ struct clk *tegra_clk_register_pllc(const char *name, const char *parent_name,
parent
=
__clk_lookup
(
parent_name
);
parent
=
__clk_lookup
(
parent_name
);
if
(
!
parent
)
{
if
(
!
parent
)
{
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
name
,
parent_
name
);
parent_name
,
name
);
return
ERR_PTR
(
-
EINVAL
);
return
ERR_PTR
(
-
EINVAL
);
}
}
...
@@ -1802,7 +1806,7 @@ struct clk *tegra_clk_register_plle_tegra114(const char *name,
...
@@ -1802,7 +1806,7 @@ struct clk *tegra_clk_register_plle_tegra114(const char *name,
}
}
#endif
#endif
#if
def CONFIG_ARCH_TEGRA_124_SOC
#if
defined(CONFIG_ARCH_TEGRA_124_SOC) || defined(CONFIG_ARCH_TEGRA_132_SOC)
static
const
struct
clk_ops
tegra_clk_pllss_ops
=
{
static
const
struct
clk_ops
tegra_clk_pllss_ops
=
{
.
is_enabled
=
clk_pll_is_enabled
,
.
is_enabled
=
clk_pll_is_enabled
,
.
enable
=
clk_pll_iddq_enable
,
.
enable
=
clk_pll_iddq_enable
,
...
@@ -1830,7 +1834,7 @@ struct clk *tegra_clk_register_pllss(const char *name, const char *parent_name,
...
@@ -1830,7 +1834,7 @@ struct clk *tegra_clk_register_pllss(const char *name, const char *parent_name,
parent
=
__clk_lookup
(
parent_name
);
parent
=
__clk_lookup
(
parent_name
);
if
(
!
parent
)
{
if
(
!
parent
)
{
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
WARN
(
1
,
"parent clk %s of %s must be registered first
\n
"
,
name
,
parent_
name
);
parent_name
,
name
);
return
ERR_PTR
(
-
EINVAL
);
return
ERR_PTR
(
-
EINVAL
);
}
}
...
...
drivers/clk/tegra/clk-tegra-periph.c
View file @
f85c6edf
...
@@ -434,10 +434,10 @@ static struct tegra_periph_init_data periph_clks[] = {
...
@@ -434,10 +434,10 @@ static struct tegra_periph_init_data periph_clks[] = {
MUX
(
"hda"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_HDA
,
125
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_hda
),
MUX
(
"hda"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_HDA
,
125
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_hda
),
MUX
(
"hda2codec_2x"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_HDA2CODEC_2X
,
111
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_hda2codec_2x
),
MUX
(
"hda2codec_2x"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_HDA2CODEC_2X
,
111
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_hda2codec_2x
),
MUX
(
"vfir"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_VFIR
,
7
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_vfir
),
MUX
(
"vfir"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_VFIR
,
7
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_vfir
),
MUX
(
"sdmmc1"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC1
,
14
,
0
,
tegra_clk_sdmmc1
),
MUX
(
"sdmmc1"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC1
,
14
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc1
),
MUX
(
"sdmmc2"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC2
,
9
,
0
,
tegra_clk_sdmmc2
),
MUX
(
"sdmmc2"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC2
,
9
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc2
),
MUX
(
"sdmmc3"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC3
,
69
,
0
,
tegra_clk_sdmmc3
),
MUX
(
"sdmmc3"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC3
,
69
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc3
),
MUX
(
"sdmmc4"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC4
,
15
,
0
,
tegra_clk_sdmmc4
),
MUX
(
"sdmmc4"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_SDMMC4
,
15
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc4
),
MUX
(
"la"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_LA
,
76
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_la
),
MUX
(
"la"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_LA
,
76
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_la
),
MUX
(
"trace"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_TRACE
,
77
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_trace
),
MUX
(
"trace"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_TRACE
,
77
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_trace
),
MUX
(
"owr"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_OWR
,
71
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_owr
),
MUX
(
"owr"
,
mux_pllp_pllc_pllm_clkm
,
CLK_SOURCE_OWR
,
71
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_owr
),
...
@@ -470,10 +470,10 @@ static struct tegra_periph_init_data periph_clks[] = {
...
@@ -470,10 +470,10 @@ static struct tegra_periph_init_data periph_clks[] = {
MUX
(
"adx1"
,
mux_plla_pllc_pllp_clkm
,
CLK_SOURCE_ADX1
,
180
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_adx1
),
MUX
(
"adx1"
,
mux_plla_pllc_pllp_clkm
,
CLK_SOURCE_ADX1
,
180
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_adx1
),
MUX
(
"amx1"
,
mux_plla_pllc_pllp_clkm
,
CLK_SOURCE_AMX1
,
185
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_amx1
),
MUX
(
"amx1"
,
mux_plla_pllc_pllp_clkm
,
CLK_SOURCE_AMX1
,
185
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_amx1
),
MUX
(
"vi_sensor2"
,
mux_pllm_pllc2_c_c3_pllp_plla
,
CLK_SOURCE_VI_SENSOR2
,
165
,
TEGRA_PERIPH_NO_RESET
,
tegra_clk_vi_sensor2
),
MUX
(
"vi_sensor2"
,
mux_pllm_pllc2_c_c3_pllp_plla
,
CLK_SOURCE_VI_SENSOR2
,
165
,
TEGRA_PERIPH_NO_RESET
,
tegra_clk_vi_sensor2
),
MUX8
(
"sdmmc1"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC1
,
14
,
0
,
tegra_clk_sdmmc1_8
),
MUX8
(
"sdmmc1"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC1
,
14
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc1_8
),
MUX8
(
"sdmmc2"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC2
,
9
,
0
,
tegra_clk_sdmmc2_8
),
MUX8
(
"sdmmc2"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC2
,
9
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc2_8
),
MUX8
(
"sdmmc3"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC3
,
69
,
0
,
tegra_clk_sdmmc3_8
),
MUX8
(
"sdmmc3"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC3
,
69
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc3_8
),
MUX8
(
"sdmmc4"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC4
,
15
,
0
,
tegra_clk_sdmmc4_8
),
MUX8
(
"sdmmc4"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SDMMC4
,
15
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sdmmc4_8
),
MUX8
(
"sbc1"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SBC1
,
41
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sbc1_8
),
MUX8
(
"sbc1"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SBC1
,
41
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sbc1_8
),
MUX8
(
"sbc2"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SBC2
,
44
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sbc2_8
),
MUX8
(
"sbc2"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SBC2
,
44
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sbc2_8
),
MUX8
(
"sbc3"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SBC3
,
46
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sbc3_8
),
MUX8
(
"sbc3"
,
mux_pllp_pllc2_c_c3_pllm_clkm
,
CLK_SOURCE_SBC3
,
46
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sbc3_8
),
...
@@ -537,8 +537,6 @@ static struct tegra_periph_init_data gate_clks[] = {
...
@@ -537,8 +537,6 @@ static struct tegra_periph_init_data gate_clks[] = {
GATE
(
"xusb_host"
,
"xusb_host_src"
,
89
,
0
,
tegra_clk_xusb_host
,
0
),
GATE
(
"xusb_host"
,
"xusb_host_src"
,
89
,
0
,
tegra_clk_xusb_host
,
0
),
GATE
(
"xusb_ss"
,
"xusb_ss_src"
,
156
,
0
,
tegra_clk_xusb_ss
,
0
),
GATE
(
"xusb_ss"
,
"xusb_ss_src"
,
156
,
0
,
tegra_clk_xusb_ss
,
0
),
GATE
(
"xusb_dev"
,
"xusb_dev_src"
,
95
,
0
,
tegra_clk_xusb_dev
,
0
),
GATE
(
"xusb_dev"
,
"xusb_dev_src"
,
95
,
0
,
tegra_clk_xusb_dev
,
0
),
GATE
(
"dsia"
,
"dsia_mux"
,
48
,
0
,
tegra_clk_dsia
,
0
),
GATE
(
"dsib"
,
"dsib_mux"
,
82
,
0
,
tegra_clk_dsib
,
0
),
GATE
(
"emc"
,
"emc_mux"
,
57
,
0
,
tegra_clk_emc
,
CLK_IGNORE_UNUSED
),
GATE
(
"emc"
,
"emc_mux"
,
57
,
0
,
tegra_clk_emc
,
CLK_IGNORE_UNUSED
),
GATE
(
"sata_cold"
,
"clk_m"
,
129
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sata_cold
,
0
),
GATE
(
"sata_cold"
,
"clk_m"
,
129
,
TEGRA_PERIPH_ON_APB
,
tegra_clk_sata_cold
,
0
),
GATE
(
"ispb"
,
"clk_m"
,
3
,
0
,
tegra_clk_ispb
,
0
),
GATE
(
"ispb"
,
"clk_m"
,
3
,
0
,
tegra_clk_ispb
,
0
),
...
...
drivers/clk/tegra/clk-tegra114.c
View file @
f85c6edf
...
@@ -715,7 +715,6 @@ static struct tegra_clk tegra114_clks[tegra_clk_max] __initdata = {
...
@@ -715,7 +715,6 @@ static struct tegra_clk tegra114_clks[tegra_clk_max] __initdata = {
[
tegra_clk_sbc2_8
]
=
{
.
dt_id
=
TEGRA114_CLK_SBC2
,
.
present
=
true
},
[
tegra_clk_sbc2_8
]
=
{
.
dt_id
=
TEGRA114_CLK_SBC2
,
.
present
=
true
},
[
tegra_clk_sbc3_8
]
=
{
.
dt_id
=
TEGRA114_CLK_SBC3
,
.
present
=
true
},
[
tegra_clk_sbc3_8
]
=
{
.
dt_id
=
TEGRA114_CLK_SBC3
,
.
present
=
true
},
[
tegra_clk_i2c5
]
=
{
.
dt_id
=
TEGRA114_CLK_I2C5
,
.
present
=
true
},
[
tegra_clk_i2c5
]
=
{
.
dt_id
=
TEGRA114_CLK_I2C5
,
.
present
=
true
},
[
tegra_clk_dsia
]
=
{
.
dt_id
=
TEGRA114_CLK_DSIA
,
.
present
=
true
},
[
tegra_clk_mipi
]
=
{
.
dt_id
=
TEGRA114_CLK_MIPI
,
.
present
=
true
},
[
tegra_clk_mipi
]
=
{
.
dt_id
=
TEGRA114_CLK_MIPI
,
.
present
=
true
},
[
tegra_clk_hdmi
]
=
{
.
dt_id
=
TEGRA114_CLK_HDMI
,
.
present
=
true
},
[
tegra_clk_hdmi
]
=
{
.
dt_id
=
TEGRA114_CLK_HDMI
,
.
present
=
true
},
[
tegra_clk_csi
]
=
{
.
dt_id
=
TEGRA114_CLK_CSI
,
.
present
=
true
},
[
tegra_clk_csi
]
=
{
.
dt_id
=
TEGRA114_CLK_CSI
,
.
present
=
true
},
...
@@ -739,7 +738,6 @@ static struct tegra_clk tegra114_clks[tegra_clk_max] __initdata = {
...
@@ -739,7 +738,6 @@ static struct tegra_clk tegra114_clks[tegra_clk_max] __initdata = {
[
tegra_clk_dtv
]
=
{
.
dt_id
=
TEGRA114_CLK_DTV
,
.
present
=
true
},
[
tegra_clk_dtv
]
=
{
.
dt_id
=
TEGRA114_CLK_DTV
,
.
present
=
true
},
[
tegra_clk_ndspeed
]
=
{
.
dt_id
=
TEGRA114_CLK_NDSPEED
,
.
present
=
true
},
[
tegra_clk_ndspeed
]
=
{
.
dt_id
=
TEGRA114_CLK_NDSPEED
,
.
present
=
true
},
[
tegra_clk_i2cslow
]
=
{
.
dt_id
=
TEGRA114_CLK_I2CSLOW
,
.
present
=
true
},
[
tegra_clk_i2cslow
]
=
{
.
dt_id
=
TEGRA114_CLK_I2CSLOW
,
.
present
=
true
},
[
tegra_clk_dsib
]
=
{
.
dt_id
=
TEGRA114_CLK_DSIB
,
.
present
=
true
},
[
tegra_clk_tsec
]
=
{
.
dt_id
=
TEGRA114_CLK_TSEC
,
.
present
=
true
},
[
tegra_clk_tsec
]
=
{
.
dt_id
=
TEGRA114_CLK_TSEC
,
.
present
=
true
},
[
tegra_clk_xusb_host
]
=
{
.
dt_id
=
TEGRA114_CLK_XUSB_HOST
,
.
present
=
true
},
[
tegra_clk_xusb_host
]
=
{
.
dt_id
=
TEGRA114_CLK_XUSB_HOST
,
.
present
=
true
},
[
tegra_clk_msenc
]
=
{
.
dt_id
=
TEGRA114_CLK_MSENC
,
.
present
=
true
},
[
tegra_clk_msenc
]
=
{
.
dt_id
=
TEGRA114_CLK_MSENC
,
.
present
=
true
},
...
@@ -1224,6 +1222,14 @@ static __init void tegra114_periph_clk_init(void __iomem *clk_base,
...
@@ -1224,6 +1222,14 @@ static __init void tegra114_periph_clk_init(void __iomem *clk_base,
clk_base
+
PLLD2_BASE
,
25
,
1
,
0
,
&
pll_d2_lock
);
clk_base
+
PLLD2_BASE
,
25
,
1
,
0
,
&
pll_d2_lock
);
clks
[
TEGRA114_CLK_DSIB_MUX
]
=
clk
;
clks
[
TEGRA114_CLK_DSIB_MUX
]
=
clk
;
clk
=
tegra_clk_register_periph_gate
(
"dsia"
,
"dsia_mux"
,
0
,
clk_base
,
0
,
48
,
periph_clk_enb_refcnt
);
clks
[
TEGRA114_CLK_DSIA
]
=
clk
;
clk
=
tegra_clk_register_periph_gate
(
"dsib"
,
"dsib_mux"
,
0
,
clk_base
,
0
,
82
,
periph_clk_enb_refcnt
);
clks
[
TEGRA114_CLK_DSIB
]
=
clk
;
/* emc mux */
/* emc mux */
clk
=
clk_register_mux
(
NULL
,
"emc_mux"
,
mux_pllmcp_clkm
,
clk
=
clk_register_mux
(
NULL
,
"emc_mux"
,
mux_pllmcp_clkm
,
ARRAY_SIZE
(
mux_pllmcp_clkm
),
ARRAY_SIZE
(
mux_pllmcp_clkm
),
...
...
drivers/clk/tegra/clk-tegra124.c
View file @
f85c6edf
/*
/*
* Copyright (c) 2012
, 2013,
NVIDIA CORPORATION. All rights reserved.
* Copyright (c) 2012
-2014
NVIDIA CORPORATION. All rights reserved.
*
*
* This program is free software; you can redistribute it and/or modify it
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* under the terms and conditions of the GNU General Public License,
...
@@ -28,6 +28,14 @@
...
@@ -28,6 +28,14 @@
#include "clk.h"
#include "clk.h"
#include "clk-id.h"
#include "clk-id.h"
/*
* TEGRA124_CAR_BANK_COUNT: the number of peripheral clock register
* banks present in the Tegra124/132 CAR IP block. The banks are
* identified by single letters, e.g.: L, H, U, V, W, X. See
* periph_regs[] in drivers/clk/tegra/clk.c
*/
#define TEGRA124_CAR_BANK_COUNT 6
#define CLK_SOURCE_CSITE 0x1d4
#define CLK_SOURCE_CSITE 0x1d4
#define CLK_SOURCE_EMC 0x19c
#define CLK_SOURCE_EMC 0x19c
...
@@ -128,7 +136,6 @@ static unsigned long osc_freq;
...
@@ -128,7 +136,6 @@ static unsigned long osc_freq;
static
unsigned
long
pll_ref_freq
;
static
unsigned
long
pll_ref_freq
;
static
DEFINE_SPINLOCK
(
pll_d_lock
);
static
DEFINE_SPINLOCK
(
pll_d_lock
);
static
DEFINE_SPINLOCK
(
pll_d2_lock
);
static
DEFINE_SPINLOCK
(
pll_e_lock
);
static
DEFINE_SPINLOCK
(
pll_e_lock
);
static
DEFINE_SPINLOCK
(
pll_re_lock
);
static
DEFINE_SPINLOCK
(
pll_re_lock
);
static
DEFINE_SPINLOCK
(
pll_u_lock
);
static
DEFINE_SPINLOCK
(
pll_u_lock
);
...
@@ -145,11 +152,6 @@ static unsigned long tegra124_input_freq[] = {
...
@@ -145,11 +152,6 @@ static unsigned long tegra124_input_freq[] = {
[
12
]
=
260000000
,
[
12
]
=
260000000
,
};
};
static
const
char
*
mux_plld_out0_plld2_out0
[]
=
{
"pll_d_out0"
,
"pll_d2_out0"
,
};
#define mux_plld_out0_plld2_out0_idx NULL
static
const
char
*
mux_pllmcp_clkm
[]
=
{
static
const
char
*
mux_pllmcp_clkm
[]
=
{
"pll_m"
,
"pll_c"
,
"pll_p"
,
"clk_m"
,
"pll_m_ud"
,
"pll_c2"
,
"pll_c3"
,
"pll_m"
,
"pll_c"
,
"pll_p"
,
"clk_m"
,
"pll_m_ud"
,
"pll_c2"
,
"pll_c3"
,
};
};
...
@@ -783,7 +785,6 @@ static struct tegra_clk tegra124_clks[tegra_clk_max] __initdata = {
...
@@ -783,7 +785,6 @@ static struct tegra_clk tegra124_clks[tegra_clk_max] __initdata = {
[
tegra_clk_sbc2
]
=
{
.
dt_id
=
TEGRA124_CLK_SBC2
,
.
present
=
true
},
[
tegra_clk_sbc2
]
=
{
.
dt_id
=
TEGRA124_CLK_SBC2
,
.
present
=
true
},
[
tegra_clk_sbc3
]
=
{
.
dt_id
=
TEGRA124_CLK_SBC3
,
.
present
=
true
},
[
tegra_clk_sbc3
]
=
{
.
dt_id
=
TEGRA124_CLK_SBC3
,
.
present
=
true
},
[
tegra_clk_i2c5
]
=
{
.
dt_id
=
TEGRA124_CLK_I2C5
,
.
present
=
true
},
[
tegra_clk_i2c5
]
=
{
.
dt_id
=
TEGRA124_CLK_I2C5
,
.
present
=
true
},
[
tegra_clk_dsia
]
=
{
.
dt_id
=
TEGRA124_CLK_DSIA
,
.
present
=
true
},
[
tegra_clk_mipi
]
=
{
.
dt_id
=
TEGRA124_CLK_MIPI
,
.
present
=
true
},
[
tegra_clk_mipi
]
=
{
.
dt_id
=
TEGRA124_CLK_MIPI
,
.
present
=
true
},
[
tegra_clk_hdmi
]
=
{
.
dt_id
=
TEGRA124_CLK_HDMI
,
.
present
=
true
},
[
tegra_clk_hdmi
]
=
{
.
dt_id
=
TEGRA124_CLK_HDMI
,
.
present
=
true
},
[
tegra_clk_csi
]
=
{
.
dt_id
=
TEGRA124_CLK_CSI
,
.
present
=
true
},
[
tegra_clk_csi
]
=
{
.
dt_id
=
TEGRA124_CLK_CSI
,
.
present
=
true
},
...
@@ -809,7 +810,6 @@ static struct tegra_clk tegra124_clks[tegra_clk_max] __initdata = {
...
@@ -809,7 +810,6 @@ static struct tegra_clk tegra124_clks[tegra_clk_max] __initdata = {
[
tegra_clk_soc_therm
]
=
{
.
dt_id
=
TEGRA124_CLK_SOC_THERM
,
.
present
=
true
},
[
tegra_clk_soc_therm
]
=
{
.
dt_id
=
TEGRA124_CLK_SOC_THERM
,
.
present
=
true
},
[
tegra_clk_dtv
]
=
{
.
dt_id
=
TEGRA124_CLK_DTV
,
.
present
=
true
},
[
tegra_clk_dtv
]
=
{
.
dt_id
=
TEGRA124_CLK_DTV
,
.
present
=
true
},
[
tegra_clk_i2cslow
]
=
{
.
dt_id
=
TEGRA124_CLK_I2CSLOW
,
.
present
=
true
},
[
tegra_clk_i2cslow
]
=
{
.
dt_id
=
TEGRA124_CLK_I2CSLOW
,
.
present
=
true
},
[
tegra_clk_dsib
]
=
{
.
dt_id
=
TEGRA124_CLK_DSIB
,
.
present
=
true
},
[
tegra_clk_tsec
]
=
{
.
dt_id
=
TEGRA124_CLK_TSEC
,
.
present
=
true
},
[
tegra_clk_tsec
]
=
{
.
dt_id
=
TEGRA124_CLK_TSEC
,
.
present
=
true
},
[
tegra_clk_xusb_host
]
=
{
.
dt_id
=
TEGRA124_CLK_XUSB_HOST
,
.
present
=
true
},
[
tegra_clk_xusb_host
]
=
{
.
dt_id
=
TEGRA124_CLK_XUSB_HOST
,
.
present
=
true
},
[
tegra_clk_msenc
]
=
{
.
dt_id
=
TEGRA124_CLK_MSENC
,
.
present
=
true
},
[
tegra_clk_msenc
]
=
{
.
dt_id
=
TEGRA124_CLK_MSENC
,
.
present
=
true
},
...
@@ -949,8 +949,6 @@ static struct tegra_clk tegra124_clks[tegra_clk_max] __initdata = {
...
@@ -949,8 +949,6 @@ static struct tegra_clk tegra124_clks[tegra_clk_max] __initdata = {
[
tegra_clk_clk_out_1_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_CLK_OUT_1_MUX
,
.
present
=
true
},
[
tegra_clk_clk_out_1_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_CLK_OUT_1_MUX
,
.
present
=
true
},
[
tegra_clk_clk_out_2_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_CLK_OUT_2_MUX
,
.
present
=
true
},
[
tegra_clk_clk_out_2_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_CLK_OUT_2_MUX
,
.
present
=
true
},
[
tegra_clk_clk_out_3_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_CLK_OUT_3_MUX
,
.
present
=
true
},
[
tegra_clk_clk_out_3_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_CLK_OUT_3_MUX
,
.
present
=
true
},
[
tegra_clk_dsia_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_DSIA_MUX
,
.
present
=
true
},
[
tegra_clk_dsib_mux
]
=
{
.
dt_id
=
TEGRA124_CLK_DSIB_MUX
,
.
present
=
true
},
};
};
static
struct
tegra_devclk
devclks
[]
__initdata
=
{
static
struct
tegra_devclk
devclks
[]
__initdata
=
{
...
@@ -1112,17 +1110,17 @@ static __init void tegra124_periph_clk_init(void __iomem *clk_base,
...
@@ -1112,17 +1110,17 @@ static __init void tegra124_periph_clk_init(void __iomem *clk_base,
1
,
2
);
1
,
2
);
clks
[
TEGRA124_CLK_XUSB_SS_DIV2
]
=
clk
;
clks
[
TEGRA124_CLK_XUSB_SS_DIV2
]
=
clk
;
/* dsia mux */
clk
=
clk_register_gate
(
NULL
,
"plld_dsi"
,
"plld_out0"
,
0
,
clk
=
clk_register_mux
(
NULL
,
"dsia_mux"
,
mux_plld_out0_plld2_out0
,
clk_base
+
PLLD_MISC
,
30
,
0
,
&
pll_d_lock
);
ARRAY_SIZE
(
mux_plld_out0_plld2_out0
),
0
,
clks
[
TEGRA124_CLK_PLLD_DSI
]
=
clk
;
clk_base
+
PLLD_BASE
,
25
,
1
,
0
,
&
pll_d_lock
);
clks
[
TEGRA124_CLK_DSIA_MUX
]
=
clk
;
clk
=
tegra_clk_register_periph_gate
(
"dsia"
,
"plld_dsi"
,
0
,
clk_base
,
0
,
48
,
periph_clk_enb_refcnt
);
clks
[
TEGRA124_CLK_DSIA
]
=
clk
;
/* dsib mux */
clk
=
tegra_clk_register_periph_gate
(
"dsib"
,
"plld_dsi"
,
0
,
clk_base
,
clk
=
clk_register_mux
(
NULL
,
"dsib_mux"
,
mux_plld_out0_plld2_out0
,
0
,
82
,
periph_clk_enb_refcnt
);
ARRAY_SIZE
(
mux_plld_out0_plld2_out0
),
0
,
clks
[
TEGRA124_CLK_DSIB
]
=
clk
;
clk_base
+
PLLD2_BASE
,
25
,
1
,
0
,
&
pll_d2_lock
);
clks
[
TEGRA124_CLK_DSIB_MUX
]
=
clk
;
/* emc mux */
/* emc mux */
clk
=
clk_register_mux
(
NULL
,
"emc_mux"
,
mux_pllmcp_clkm
,
clk
=
clk_register_mux
(
NULL
,
"emc_mux"
,
mux_pllmcp_clkm
,
...
@@ -1351,7 +1349,7 @@ static const struct of_device_id pmc_match[] __initconst = {
...
@@ -1351,7 +1349,7 @@ static const struct of_device_id pmc_match[] __initconst = {
{},
{},
};
};
static
struct
tegra_clk_init_table
init_table
[]
__initdata
=
{
static
struct
tegra_clk_init_table
common_
init_table
[]
__initdata
=
{
{
TEGRA124_CLK_UARTA
,
TEGRA124_CLK_PLL_P
,
408000000
,
0
},
{
TEGRA124_CLK_UARTA
,
TEGRA124_CLK_PLL_P
,
408000000
,
0
},
{
TEGRA124_CLK_UARTB
,
TEGRA124_CLK_PLL_P
,
408000000
,
0
},
{
TEGRA124_CLK_UARTB
,
TEGRA124_CLK_PLL_P
,
408000000
,
0
},
{
TEGRA124_CLK_UARTC
,
TEGRA124_CLK_PLL_P
,
408000000
,
0
},
{
TEGRA124_CLK_UARTC
,
TEGRA124_CLK_PLL_P
,
408000000
,
0
},
...
@@ -1368,6 +1366,8 @@ static struct tegra_clk_init_table init_table[] __initdata = {
...
@@ -1368,6 +1366,8 @@ static struct tegra_clk_init_table init_table[] __initdata = {
{
TEGRA124_CLK_I2S4
,
TEGRA124_CLK_PLL_A_OUT0
,
11289600
,
0
},
{
TEGRA124_CLK_I2S4
,
TEGRA124_CLK_PLL_A_OUT0
,
11289600
,
0
},
{
TEGRA124_CLK_VDE
,
TEGRA124_CLK_PLL_P
,
0
,
0
},
{
TEGRA124_CLK_VDE
,
TEGRA124_CLK_PLL_P
,
0
,
0
},
{
TEGRA124_CLK_HOST1X
,
TEGRA124_CLK_PLL_P
,
136000000
,
1
},
{
TEGRA124_CLK_HOST1X
,
TEGRA124_CLK_PLL_P
,
136000000
,
1
},
{
TEGRA124_CLK_DSIALP
,
TEGRA124_CLK_PLL_P
,
68000000
,
0
},
{
TEGRA124_CLK_DSIBLP
,
TEGRA124_CLK_PLL_P
,
68000000
,
0
},
{
TEGRA124_CLK_SCLK
,
TEGRA124_CLK_PLL_P_OUT2
,
102000000
,
1
},
{
TEGRA124_CLK_SCLK
,
TEGRA124_CLK_PLL_P_OUT2
,
102000000
,
1
},
{
TEGRA124_CLK_DFLL_SOC
,
TEGRA124_CLK_PLL_P
,
51000000
,
1
},
{
TEGRA124_CLK_DFLL_SOC
,
TEGRA124_CLK_PLL_P
,
51000000
,
1
},
{
TEGRA124_CLK_DFLL_REF
,
TEGRA124_CLK_PLL_P
,
51000000
,
1
},
{
TEGRA124_CLK_DFLL_REF
,
TEGRA124_CLK_PLL_P
,
51000000
,
1
},
...
@@ -1385,27 +1385,73 @@ static struct tegra_clk_init_table init_table[] __initdata = {
...
@@ -1385,27 +1385,73 @@ static struct tegra_clk_init_table init_table[] __initdata = {
{
TEGRA124_CLK_SATA
,
TEGRA124_CLK_PLL_P
,
104000000
,
0
},
{
TEGRA124_CLK_SATA
,
TEGRA124_CLK_PLL_P
,
104000000
,
0
},
{
TEGRA124_CLK_SATA_OOB
,
TEGRA124_CLK_PLL_P
,
204000000
,
0
},
{
TEGRA124_CLK_SATA_OOB
,
TEGRA124_CLK_PLL_P
,
204000000
,
0
},
{
TEGRA124_CLK_EMC
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_EMC
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_CCLK_G
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_MSELECT
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_MSELECT
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_CSITE
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_CSITE
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
{
TEGRA124_CLK_TSENSOR
,
TEGRA124_CLK_CLK_M
,
400000
,
0
},
{
TEGRA124_CLK_TSENSOR
,
TEGRA124_CLK_CLK_M
,
400000
,
0
},
/* This MUST be the last entry. */
{
TEGRA124_CLK_CLK_MAX
,
TEGRA124_CLK_CLK_MAX
,
0
,
0
},
};
static
struct
tegra_clk_init_table
tegra124_init_table
[]
__initdata
=
{
{
TEGRA124_CLK_SOC_THERM
,
TEGRA124_CLK_PLL_P
,
51000000
,
0
},
{
TEGRA124_CLK_SOC_THERM
,
TEGRA124_CLK_PLL_P
,
51000000
,
0
},
{
TEGRA124_CLK_CCLK_G
,
TEGRA124_CLK_CLK_MAX
,
0
,
1
},
/* This MUST be the last entry. */
{
TEGRA124_CLK_CLK_MAX
,
TEGRA124_CLK_CLK_MAX
,
0
,
0
},
};
/* Tegra132 requires the SOC_THERM clock to remain active */
static
struct
tegra_clk_init_table
tegra132_init_table
[]
__initdata
=
{
{
TEGRA124_CLK_SOC_THERM
,
TEGRA124_CLK_PLL_P
,
51000000
,
1
},
/* This MUST be the last entry. */
/* This MUST be the last entry. */
{
TEGRA124_CLK_CLK_MAX
,
TEGRA124_CLK_CLK_MAX
,
0
,
0
},
{
TEGRA124_CLK_CLK_MAX
,
TEGRA124_CLK_CLK_MAX
,
0
,
0
},
};
};
/**
* tegra124_clock_apply_init_table - initialize clocks on Tegra124 SoCs
*
* Program an initial clock rate and enable or disable clocks needed
* by the rest of the kernel, for Tegra124 SoCs. It is intended to be
* called by assigning a pointer to it to tegra_clk_apply_init_table -
* this will be called as an arch_initcall. No return value.
*/
static
void
__init
tegra124_clock_apply_init_table
(
void
)
static
void
__init
tegra124_clock_apply_init_table
(
void
)
{
{
tegra_init_from_table
(
init_table
,
clks
,
TEGRA124_CLK_CLK_MAX
);
tegra_init_from_table
(
common_init_table
,
clks
,
TEGRA124_CLK_CLK_MAX
);
tegra_init_from_table
(
tegra124_init_table
,
clks
,
TEGRA124_CLK_CLK_MAX
);
}
}
static
void
__init
tegra124_clock_init
(
struct
device_node
*
np
)
/**
* tegra132_clock_apply_init_table - initialize clocks on Tegra132 SoCs
*
* Program an initial clock rate and enable or disable clocks needed
* by the rest of the kernel, for Tegra132 SoCs. It is intended to be
* called by assigning a pointer to it to tegra_clk_apply_init_table -
* this will be called as an arch_initcall. No return value.
*/
static
void
__init
tegra132_clock_apply_init_table
(
void
)
{
tegra_init_from_table
(
common_init_table
,
clks
,
TEGRA124_CLK_CLK_MAX
);
tegra_init_from_table
(
tegra132_init_table
,
clks
,
TEGRA124_CLK_CLK_MAX
);
}
/**
* tegra124_132_clock_init_pre - clock initialization preamble for T124/T132
* @np: struct device_node * of the DT node for the SoC CAR IP block
*
* Register most of the clocks controlled by the CAR IP block, along
* with a few clocks controlled by the PMC IP block. Everything in
* this function should be common to Tegra124 and Tegra132. XXX The
* PMC clock initialization should probably be moved to PMC-specific
* driver code. No return value.
*/
static
void
__init
tegra124_132_clock_init_pre
(
struct
device_node
*
np
)
{
{
struct
device_node
*
node
;
struct
device_node
*
node
;
u32
plld_base
;
clk_base
=
of_iomap
(
np
,
0
);
clk_base
=
of_iomap
(
np
,
0
);
if
(
!
clk_base
)
{
if
(
!
clk_base
)
{
pr_err
(
"ioremap tegra124 CAR failed
\n
"
);
pr_err
(
"ioremap tegra124
/tegra132
CAR failed
\n
"
);
return
;
return
;
}
}
...
@@ -1423,7 +1469,8 @@ static void __init tegra124_clock_init(struct device_node *np)
...
@@ -1423,7 +1469,8 @@ static void __init tegra124_clock_init(struct device_node *np)
return
;
return
;
}
}
clks
=
tegra_clk_init
(
clk_base
,
TEGRA124_CLK_CLK_MAX
,
6
);
clks
=
tegra_clk_init
(
clk_base
,
TEGRA124_CLK_CLK_MAX
,
TEGRA124_CAR_BANK_COUNT
);
if
(
!
clks
)
if
(
!
clks
)
return
;
return
;
...
@@ -1437,13 +1484,76 @@ static void __init tegra124_clock_init(struct device_node *np)
...
@@ -1437,13 +1484,76 @@ static void __init tegra124_clock_init(struct device_node *np)
tegra_audio_clk_init
(
clk_base
,
pmc_base
,
tegra124_clks
,
&
pll_a_params
);
tegra_audio_clk_init
(
clk_base
,
pmc_base
,
tegra124_clks
,
&
pll_a_params
);
tegra_pmc_clk_init
(
pmc_base
,
tegra124_clks
);
tegra_pmc_clk_init
(
pmc_base
,
tegra124_clks
);
/* For Tegra124 & Tegra132, PLLD is the only source for DSIA & DSIB */
plld_base
=
clk_readl
(
clk_base
+
PLLD_BASE
);
plld_base
&=
~
BIT
(
25
);
clk_writel
(
plld_base
,
clk_base
+
PLLD_BASE
);
}
/**
* tegra124_132_clock_init_post - clock initialization postamble for T124/T132
* @np: struct device_node * of the DT node for the SoC CAR IP block
*
* Register most of the along with a few clocks controlled by the PMC
* IP block. Everything in this function should be common to Tegra124
* and Tegra132. This function must be called after
* tegra124_132_clock_init_pre(), otherwise clk_base and pmc_base will
* not be set. No return value.
*/
static
void
__init
tegra124_132_clock_init_post
(
struct
device_node
*
np
)
{
tegra_super_clk_gen4_init
(
clk_base
,
pmc_base
,
tegra124_clks
,
tegra_super_clk_gen4_init
(
clk_base
,
pmc_base
,
tegra124_clks
,
&
pll_x_params
);
&
pll_x_params
);
tegra_add_of_provider
(
np
);
tegra_add_of_provider
(
np
);
tegra_register_devclks
(
devclks
,
ARRAY_SIZE
(
devclks
));
tegra_register_devclks
(
devclks
,
ARRAY_SIZE
(
devclks
));
tegra_cpu_car_ops
=
&
tegra124_cpu_car_ops
;
}
/**
* tegra124_clock_init - Tegra124-specific clock initialization
* @np: struct device_node * of the DT node for the SoC CAR IP block
*
* Register most SoC clocks for the Tegra124 system-on-chip. Most of
* this code is shared between the Tegra124 and Tegra132 SoCs,
* although some of the initial clock settings and CPU clocks differ.
* Intended to be called by the OF init code when a DT node with the
* "nvidia,tegra124-car" string is encountered, and declared with
* CLK_OF_DECLARE. No return value.
*/
static
void
__init
tegra124_clock_init
(
struct
device_node
*
np
)
{
tegra124_132_clock_init_pre
(
np
);
tegra_clk_apply_init_table
=
tegra124_clock_apply_init_table
;
tegra_clk_apply_init_table
=
tegra124_clock_apply_init_table
;
tegra124_132_clock_init_post
(
np
);
}
tegra_cpu_car_ops
=
&
tegra124_cpu_car_ops
;
/**
* tegra132_clock_init - Tegra132-specific clock initialization
* @np: struct device_node * of the DT node for the SoC CAR IP block
*
* Register most SoC clocks for the Tegra132 system-on-chip. Most of
* this code is shared between the Tegra124 and Tegra132 SoCs,
* although some of the initial clock settings and CPU clocks differ.
* Intended to be called by the OF init code when a DT node with the
* "nvidia,tegra132-car" string is encountered, and declared with
* CLK_OF_DECLARE. No return value.
*/
static
void
__init
tegra132_clock_init
(
struct
device_node
*
np
)
{
tegra124_132_clock_init_pre
(
np
);
/*
* On Tegra132, these clocks are controlled by the
* CLUSTER_clocks IP block, located in the CPU complex
*/
tegra124_clks
[
tegra_clk_cclk_g
].
present
=
false
;
tegra124_clks
[
tegra_clk_cclk_lp
].
present
=
false
;
tegra124_clks
[
tegra_clk_pll_x
].
present
=
false
;
tegra124_clks
[
tegra_clk_pll_x_out0
].
present
=
false
;
tegra_clk_apply_init_table
=
tegra132_clock_apply_init_table
;
tegra124_132_clock_init_post
(
np
);
}
}
CLK_OF_DECLARE
(
tegra124
,
"nvidia,tegra124-car"
,
tegra124_clock_init
);
CLK_OF_DECLARE
(
tegra124
,
"nvidia,tegra124-car"
,
tegra124_clock_init
);
CLK_OF_DECLARE
(
tegra132
,
"nvidia,tegra132-car"
,
tegra132_clock_init
);
drivers/clk/tegra/clk.c
View file @
f85c6edf
...
@@ -302,10 +302,13 @@ struct clk ** __init tegra_lookup_dt_id(int clk_id,
...
@@ -302,10 +302,13 @@ struct clk ** __init tegra_lookup_dt_id(int clk_id,
tegra_clk_apply_init_table_func
tegra_clk_apply_init_table
;
tegra_clk_apply_init_table_func
tegra_clk_apply_init_table
;
void
__init
tegra_clocks_apply_init_table
(
void
)
static
int
__init
tegra_clocks_apply_init_table
(
void
)
{
{
if
(
!
tegra_clk_apply_init_table
)
if
(
!
tegra_clk_apply_init_table
)
return
;
return
0
;
tegra_clk_apply_init_table
();
tegra_clk_apply_init_table
();
return
0
;
}
}
arch_initcall
(
tegra_clocks_apply_init_table
);
include/dt-bindings/clock/tegra124-car-common.h
0 → 100644
View file @
f85c6edf
/*
* This header provides constants for binding nvidia,tegra124-car or
* nvidia,tegra132-car.
*
* The first 192 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
* registers. These IDs often match those in the CAR's RST_DEVICES registers,
* but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
* this case, those clocks are assigned IDs above 185 in order to highlight
* this issue. Implementations that interpret these clock IDs as bit values
* within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
* explicitly handle these special cases.
*
* The balance of the clocks controlled by the CAR are assigned IDs of 185 and
* above.
*/
#ifndef _DT_BINDINGS_CLOCK_TEGRA124_CAR_COMMON_H
#define _DT_BINDINGS_CLOCK_TEGRA124_CAR_COMMON_H
/* 0 */
/* 1 */
/* 2 */
#define TEGRA124_CLK_ISPB 3
#define TEGRA124_CLK_RTC 4
#define TEGRA124_CLK_TIMER 5
#define TEGRA124_CLK_UARTA 6
/* 7 (register bit affects uartb and vfir) */
/* 8 */
#define TEGRA124_CLK_SDMMC2 9
/* 10 (register bit affects spdif_in and spdif_out) */
#define TEGRA124_CLK_I2S1 11
#define TEGRA124_CLK_I2C1 12
/* 13 */
#define TEGRA124_CLK_SDMMC1 14
#define TEGRA124_CLK_SDMMC4 15
/* 16 */
#define TEGRA124_CLK_PWM 17
#define TEGRA124_CLK_I2S2 18
/* 20 (register bit affects vi and vi_sensor) */
/* 21 */
#define TEGRA124_CLK_USBD 22
#define TEGRA124_CLK_ISP 23
/* 26 */
/* 25 */
#define TEGRA124_CLK_DISP2 26
#define TEGRA124_CLK_DISP1 27
#define TEGRA124_CLK_HOST1X 28
#define TEGRA124_CLK_VCP 29
#define TEGRA124_CLK_I2S0 30
/* 31 */
#define TEGRA124_CLK_MC 32
/* 33 */
#define TEGRA124_CLK_APBDMA 34
/* 35 */
#define TEGRA124_CLK_KBC 36
/* 37 */
/* 38 */
/* 39 (register bit affects fuse and fuse_burn) */
#define TEGRA124_CLK_KFUSE 40
#define TEGRA124_CLK_SBC1 41
#define TEGRA124_CLK_NOR 42
/* 43 */
#define TEGRA124_CLK_SBC2 44
/* 45 */
#define TEGRA124_CLK_SBC3 46
#define TEGRA124_CLK_I2C5 47
#define TEGRA124_CLK_DSIA 48
/* 49 */
#define TEGRA124_CLK_MIPI 50
#define TEGRA124_CLK_HDMI 51
#define TEGRA124_CLK_CSI 52
/* 53 */
#define TEGRA124_CLK_I2C2 54
#define TEGRA124_CLK_UARTC 55
#define TEGRA124_CLK_MIPI_CAL 56
#define TEGRA124_CLK_EMC 57
#define TEGRA124_CLK_USB2 58
#define TEGRA124_CLK_USB3 59
/* 60 */
#define TEGRA124_CLK_VDE 61
#define TEGRA124_CLK_BSEA 62
#define TEGRA124_CLK_BSEV 63
/* 64 */
#define TEGRA124_CLK_UARTD 65
/* 66 */
#define TEGRA124_CLK_I2C3 67
#define TEGRA124_CLK_SBC4 68
#define TEGRA124_CLK_SDMMC3 69
#define TEGRA124_CLK_PCIE 70
#define TEGRA124_CLK_OWR 71
#define TEGRA124_CLK_AFI 72
#define TEGRA124_CLK_CSITE 73
/* 74 */
/* 75 */
#define TEGRA124_CLK_LA 76
#define TEGRA124_CLK_TRACE 77
#define TEGRA124_CLK_SOC_THERM 78
#define TEGRA124_CLK_DTV 79
/* 80 */
#define TEGRA124_CLK_I2CSLOW 81
#define TEGRA124_CLK_DSIB 82
#define TEGRA124_CLK_TSEC 83
/* 84 */
/* 85 */
/* 86 */
/* 87 */
/* 88 */
#define TEGRA124_CLK_XUSB_HOST 89
/* 90 */
#define TEGRA124_CLK_MSENC 91
#define TEGRA124_CLK_CSUS 92
/* 93 */
/* 94 */
/* 95 (bit affects xusb_dev and xusb_dev_src) */
/* 96 */
/* 97 */
/* 98 */
#define TEGRA124_CLK_MSELECT 99
#define TEGRA124_CLK_TSENSOR 100
#define TEGRA124_CLK_I2S3 101
#define TEGRA124_CLK_I2S4 102
#define TEGRA124_CLK_I2C4 103
#define TEGRA124_CLK_SBC5 104
#define TEGRA124_CLK_SBC6 105
#define TEGRA124_CLK_D_AUDIO 106
#define TEGRA124_CLK_APBIF 107
#define TEGRA124_CLK_DAM0 108
#define TEGRA124_CLK_DAM1 109
#define TEGRA124_CLK_DAM2 110
#define TEGRA124_CLK_HDA2CODEC_2X 111
/* 112 */
#define TEGRA124_CLK_AUDIO0_2X 113
#define TEGRA124_CLK_AUDIO1_2X 114
#define TEGRA124_CLK_AUDIO2_2X 115
#define TEGRA124_CLK_AUDIO3_2X 116
#define TEGRA124_CLK_AUDIO4_2X 117
#define TEGRA124_CLK_SPDIF_2X 118
#define TEGRA124_CLK_ACTMON 119
#define TEGRA124_CLK_EXTERN1 120
#define TEGRA124_CLK_EXTERN2 121
#define TEGRA124_CLK_EXTERN3 122
#define TEGRA124_CLK_SATA_OOB 123
#define TEGRA124_CLK_SATA 124
#define TEGRA124_CLK_HDA 125
/* 126 */
#define TEGRA124_CLK_SE 127
#define TEGRA124_CLK_HDA2HDMI 128
#define TEGRA124_CLK_SATA_COLD 129
/* 130 */
/* 131 */
/* 132 */
/* 133 */
/* 134 */
/* 135 */
/* 136 */
/* 137 */
/* 138 */
/* 139 */
/* 140 */
/* 141 */
/* 142 */
/* 143 (bit affects xusb_falcon_src, xusb_fs_src, */
/* xusb_host_src and xusb_ss_src) */
#define TEGRA124_CLK_CILAB 144
#define TEGRA124_CLK_CILCD 145
#define TEGRA124_CLK_CILE 146
#define TEGRA124_CLK_DSIALP 147
#define TEGRA124_CLK_DSIBLP 148
#define TEGRA124_CLK_ENTROPY 149
#define TEGRA124_CLK_DDS 150
/* 151 */
#define TEGRA124_CLK_DP2 152
#define TEGRA124_CLK_AMX 153
#define TEGRA124_CLK_ADX 154
/* 155 (bit affects dfll_ref and dfll_soc) */
#define TEGRA124_CLK_XUSB_SS 156
/* 157 */
/* 158 */
/* 159 */
/* 160 */
/* 161 */
/* 162 */
/* 163 */
/* 164 */
/* 165 */
#define TEGRA124_CLK_I2C6 166
/* 167 */
/* 168 */
/* 169 */
/* 170 */
#define TEGRA124_CLK_VIM2_CLK 171
/* 172 */
/* 173 */
/* 174 */
/* 175 */
#define TEGRA124_CLK_HDMI_AUDIO 176
#define TEGRA124_CLK_CLK72MHZ 177
#define TEGRA124_CLK_VIC03 178
/* 179 */
#define TEGRA124_CLK_ADX1 180
#define TEGRA124_CLK_DPAUX 181
#define TEGRA124_CLK_SOR0 182
/* 183 */
#define TEGRA124_CLK_GPU 184
#define TEGRA124_CLK_AMX1 185
/* 186 */
/* 187 */
/* 188 */
/* 189 */
/* 190 */
/* 191 */
#define TEGRA124_CLK_UARTB 192
#define TEGRA124_CLK_VFIR 193
#define TEGRA124_CLK_SPDIF_IN 194
#define TEGRA124_CLK_SPDIF_OUT 195
#define TEGRA124_CLK_VI 196
#define TEGRA124_CLK_VI_SENSOR 197
#define TEGRA124_CLK_FUSE 198
#define TEGRA124_CLK_FUSE_BURN 199
#define TEGRA124_CLK_CLK_32K 200
#define TEGRA124_CLK_CLK_M 201
#define TEGRA124_CLK_CLK_M_DIV2 202
#define TEGRA124_CLK_CLK_M_DIV4 203
#define TEGRA124_CLK_PLL_REF 204
#define TEGRA124_CLK_PLL_C 205
#define TEGRA124_CLK_PLL_C_OUT1 206
#define TEGRA124_CLK_PLL_C2 207
#define TEGRA124_CLK_PLL_C3 208
#define TEGRA124_CLK_PLL_M 209
#define TEGRA124_CLK_PLL_M_OUT1 210
#define TEGRA124_CLK_PLL_P 211
#define TEGRA124_CLK_PLL_P_OUT1 212
#define TEGRA124_CLK_PLL_P_OUT2 213
#define TEGRA124_CLK_PLL_P_OUT3 214
#define TEGRA124_CLK_PLL_P_OUT4 215
#define TEGRA124_CLK_PLL_A 216
#define TEGRA124_CLK_PLL_A_OUT0 217
#define TEGRA124_CLK_PLL_D 218
#define TEGRA124_CLK_PLL_D_OUT0 219
#define TEGRA124_CLK_PLL_D2 220
#define TEGRA124_CLK_PLL_D2_OUT0 221
#define TEGRA124_CLK_PLL_U 222
#define TEGRA124_CLK_PLL_U_480M 223
#define TEGRA124_CLK_PLL_U_60M 224
#define TEGRA124_CLK_PLL_U_48M 225
#define TEGRA124_CLK_PLL_U_12M 226
/* 227 */
/* 228 */
#define TEGRA124_CLK_PLL_RE_VCO 229
#define TEGRA124_CLK_PLL_RE_OUT 230
#define TEGRA124_CLK_PLL_E 231
#define TEGRA124_CLK_SPDIF_IN_SYNC 232
#define TEGRA124_CLK_I2S0_SYNC 233
#define TEGRA124_CLK_I2S1_SYNC 234
#define TEGRA124_CLK_I2S2_SYNC 235
#define TEGRA124_CLK_I2S3_SYNC 236
#define TEGRA124_CLK_I2S4_SYNC 237
#define TEGRA124_CLK_VIMCLK_SYNC 238
#define TEGRA124_CLK_AUDIO0 239
#define TEGRA124_CLK_AUDIO1 240
#define TEGRA124_CLK_AUDIO2 241
#define TEGRA124_CLK_AUDIO3 242
#define TEGRA124_CLK_AUDIO4 243
#define TEGRA124_CLK_SPDIF 244
#define TEGRA124_CLK_CLK_OUT_1 245
#define TEGRA124_CLK_CLK_OUT_2 246
#define TEGRA124_CLK_CLK_OUT_3 247
#define TEGRA124_CLK_BLINK 248
/* 249 */
/* 250 */
/* 251 */
#define TEGRA124_CLK_XUSB_HOST_SRC 252
#define TEGRA124_CLK_XUSB_FALCON_SRC 253
#define TEGRA124_CLK_XUSB_FS_SRC 254
#define TEGRA124_CLK_XUSB_SS_SRC 255
#define TEGRA124_CLK_XUSB_DEV_SRC 256
#define TEGRA124_CLK_XUSB_DEV 257
#define TEGRA124_CLK_XUSB_HS_SRC 258
#define TEGRA124_CLK_SCLK 259
#define TEGRA124_CLK_HCLK 260
#define TEGRA124_CLK_PCLK 261
/* 262 */
/* 263 */
#define TEGRA124_CLK_DFLL_REF 264
#define TEGRA124_CLK_DFLL_SOC 265
#define TEGRA124_CLK_VI_SENSOR2 266
#define TEGRA124_CLK_PLL_P_OUT5 267
#define TEGRA124_CLK_CML0 268
#define TEGRA124_CLK_CML1 269
#define TEGRA124_CLK_PLL_C4 270
#define TEGRA124_CLK_PLL_DP 271
#define TEGRA124_CLK_PLL_E_MUX 272
#define TEGRA124_CLK_PLLD_DSI 273
/* 274 */
/* 275 */
/* 276 */
/* 277 */
/* 278 */
/* 279 */
/* 280 */
/* 281 */
/* 282 */
/* 283 */
/* 284 */
/* 285 */
/* 286 */
/* 287 */
/* 288 */
/* 289 */
/* 290 */
/* 291 */
/* 292 */
/* 293 */
/* 294 */
/* 295 */
/* 296 */
/* 297 */
/* 298 */
/* 299 */
#define TEGRA124_CLK_AUDIO0_MUX 300
#define TEGRA124_CLK_AUDIO1_MUX 301
#define TEGRA124_CLK_AUDIO2_MUX 302
#define TEGRA124_CLK_AUDIO3_MUX 303
#define TEGRA124_CLK_AUDIO4_MUX 304
#define TEGRA124_CLK_SPDIF_MUX 305
#define TEGRA124_CLK_CLK_OUT_1_MUX 306
#define TEGRA124_CLK_CLK_OUT_2_MUX 307
#define TEGRA124_CLK_CLK_OUT_3_MUX 308
/* 309 */
/* 310 */
#define TEGRA124_CLK_SOR0_LVDS 311
#define TEGRA124_CLK_XUSB_SS_DIV2 312
#define TEGRA124_CLK_PLL_M_UD 313
#define TEGRA124_CLK_PLL_C_UD 314
#endif
/* _DT_BINDINGS_CLOCK_TEGRA124_CAR_COMMON_H */
include/dt-bindings/clock/tegra124-car.h
View file @
f85c6edf
/*
/*
* This header provides constants for binding nvidia,tegra124-car.
* This header provides Tegra124-specific constants for binding
*
* nvidia,tegra124-car.
* The first 192 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
* registers. These IDs often match those in the CAR's RST_DEVICES registers,
* but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
* this case, those clocks are assigned IDs above 185 in order to highlight
* this issue. Implementations that interpret these clock IDs as bit values
* within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
* explicitly handle these special cases.
*
* The balance of the clocks controlled by the CAR are assigned IDs of 185 and
* above.
*/
*/
#include <dt-bindings/clock/tegra124-car-common.h>
#ifndef _DT_BINDINGS_CLOCK_TEGRA124_CAR_H
#ifndef _DT_BINDINGS_CLOCK_TEGRA124_CAR_H
#define _DT_BINDINGS_CLOCK_TEGRA124_CAR_H
#define _DT_BINDINGS_CLOCK_TEGRA124_CAR_H
/* 0 */
#define TEGRA124_CLK_PLL_X 227
/* 1 */
#define TEGRA124_CLK_PLL_X_OUT0 228
/* 2 */
#define TEGRA124_CLK_ISPB 3
#define TEGRA124_CLK_RTC 4
#define TEGRA124_CLK_TIMER 5
#define TEGRA124_CLK_UARTA 6
/* 7 (register bit affects uartb and vfir) */
/* 8 */
#define TEGRA124_CLK_SDMMC2 9
/* 10 (register bit affects spdif_in and spdif_out) */
#define TEGRA124_CLK_I2S1 11
#define TEGRA124_CLK_I2C1 12
/* 13 */
#define TEGRA124_CLK_SDMMC1 14
#define TEGRA124_CLK_SDMMC4 15
/* 16 */
#define TEGRA124_CLK_PWM 17
#define TEGRA124_CLK_I2S2 18
/* 20 (register bit affects vi and vi_sensor) */
/* 21 */
#define TEGRA124_CLK_USBD 22
#define TEGRA124_CLK_ISP 23
/* 26 */
/* 25 */
#define TEGRA124_CLK_DISP2 26
#define TEGRA124_CLK_DISP1 27
#define TEGRA124_CLK_HOST1X 28
#define TEGRA124_CLK_VCP 29
#define TEGRA124_CLK_I2S0 30
/* 31 */
#define TEGRA124_CLK_MC 32
/* 33 */
#define TEGRA124_CLK_APBDMA 34
/* 35 */
#define TEGRA124_CLK_KBC 36
/* 37 */
/* 38 */
/* 39 (register bit affects fuse and fuse_burn) */
#define TEGRA124_CLK_KFUSE 40
#define TEGRA124_CLK_SBC1 41
#define TEGRA124_CLK_NOR 42
/* 43 */
#define TEGRA124_CLK_SBC2 44
/* 45 */
#define TEGRA124_CLK_SBC3 46
#define TEGRA124_CLK_I2C5 47
#define TEGRA124_CLK_DSIA 48
/* 49 */
#define TEGRA124_CLK_MIPI 50
#define TEGRA124_CLK_HDMI 51
#define TEGRA124_CLK_CSI 52
/* 53 */
#define TEGRA124_CLK_I2C2 54
#define TEGRA124_CLK_UARTC 55
#define TEGRA124_CLK_MIPI_CAL 56
#define TEGRA124_CLK_EMC 57
#define TEGRA124_CLK_USB2 58
#define TEGRA124_CLK_USB3 59
/* 60 */
#define TEGRA124_CLK_VDE 61
#define TEGRA124_CLK_BSEA 62
#define TEGRA124_CLK_BSEV 63
/* 64 */
#define TEGRA124_CLK_UARTD 65
/* 66 */
#define TEGRA124_CLK_I2C3 67
#define TEGRA124_CLK_SBC4 68
#define TEGRA124_CLK_SDMMC3 69
#define TEGRA124_CLK_PCIE 70
#define TEGRA124_CLK_OWR 71
#define TEGRA124_CLK_AFI 72
#define TEGRA124_CLK_CSITE 73
/* 74 */
/* 75 */
#define TEGRA124_CLK_LA 76
#define TEGRA124_CLK_TRACE 77
#define TEGRA124_CLK_SOC_THERM 78
#define TEGRA124_CLK_DTV 79
/* 80 */
#define TEGRA124_CLK_I2CSLOW 81
#define TEGRA124_CLK_DSIB 82
#define TEGRA124_CLK_TSEC 83
/* 84 */
/* 85 */
/* 86 */
/* 87 */
/* 88 */
#define TEGRA124_CLK_XUSB_HOST 89
/* 90 */
#define TEGRA124_CLK_MSENC 91
#define TEGRA124_CLK_CSUS 92
/* 93 */
/* 94 */
/* 95 (bit affects xusb_dev and xusb_dev_src) */
/* 96 */
/* 97 */
/* 98 */
#define TEGRA124_CLK_MSELECT 99
#define TEGRA124_CLK_TSENSOR 100
#define TEGRA124_CLK_I2S3 101
#define TEGRA124_CLK_I2S4 102
#define TEGRA124_CLK_I2C4 103
#define TEGRA124_CLK_SBC5 104
#define TEGRA124_CLK_SBC6 105
#define TEGRA124_CLK_D_AUDIO 106
#define TEGRA124_CLK_APBIF 107
#define TEGRA124_CLK_DAM0 108
#define TEGRA124_CLK_DAM1 109
#define TEGRA124_CLK_DAM2 110
#define TEGRA124_CLK_HDA2CODEC_2X 111
/* 112 */
#define TEGRA124_CLK_AUDIO0_2X 113
#define TEGRA124_CLK_AUDIO1_2X 114
#define TEGRA124_CLK_AUDIO2_2X 115
#define TEGRA124_CLK_AUDIO3_2X 116
#define TEGRA124_CLK_AUDIO4_2X 117
#define TEGRA124_CLK_SPDIF_2X 118
#define TEGRA124_CLK_ACTMON 119
#define TEGRA124_CLK_EXTERN1 120
#define TEGRA124_CLK_EXTERN2 121
#define TEGRA124_CLK_EXTERN3 122
#define TEGRA124_CLK_SATA_OOB 123
#define TEGRA124_CLK_SATA 124
#define TEGRA124_CLK_HDA 125
/* 126 */
#define TEGRA124_CLK_SE 127
#define TEGRA124_CLK_HDA2HDMI 128
#define TEGRA124_CLK_SATA_COLD 129
/* 130 */
/* 131 */
/* 132 */
/* 133 */
/* 134 */
/* 135 */
/* 136 */
/* 137 */
/* 138 */
/* 139 */
/* 140 */
/* 141 */
/* 142 */
/* 143 (bit affects xusb_falcon_src, xusb_fs_src, */
/* xusb_host_src and xusb_ss_src) */
#define TEGRA124_CLK_CILAB 144
#define TEGRA124_CLK_CILCD 145
#define TEGRA124_CLK_CILE 146
#define TEGRA124_CLK_DSIALP 147
#define TEGRA124_CLK_DSIBLP 148
#define TEGRA124_CLK_ENTROPY 149
#define TEGRA124_CLK_DDS 150
/* 151 */
#define TEGRA124_CLK_DP2 152
#define TEGRA124_CLK_AMX 153
#define TEGRA124_CLK_ADX 154
/* 155 (bit affects dfll_ref and dfll_soc) */
#define TEGRA124_CLK_XUSB_SS 156
/* 157 */
/* 158 */
/* 159 */
/* 160 */
/* 161 */
/* 162 */
/* 163 */
/* 164 */
/* 165 */
#define TEGRA124_CLK_I2C6 166
/* 167 */
/* 168 */
/* 169 */
/* 170 */
#define TEGRA124_CLK_VIM2_CLK 171
/* 172 */
/* 173 */
/* 174 */
/* 175 */
#define TEGRA124_CLK_HDMI_AUDIO 176
#define TEGRA124_CLK_CLK72MHZ 177
#define TEGRA124_CLK_VIC03 178
/* 179 */
#define TEGRA124_CLK_ADX1 180
#define TEGRA124_CLK_DPAUX 181
#define TEGRA124_CLK_SOR0 182
/* 183 */
#define TEGRA124_CLK_GPU 184
#define TEGRA124_CLK_AMX1 185
/* 186 */
/* 187 */
/* 188 */
/* 189 */
/* 190 */
/* 191 */
#define TEGRA124_CLK_UARTB 192
#define TEGRA124_CLK_VFIR 193
#define TEGRA124_CLK_SPDIF_IN 194
#define TEGRA124_CLK_SPDIF_OUT 195
#define TEGRA124_CLK_VI 196
#define TEGRA124_CLK_VI_SENSOR 197
#define TEGRA124_CLK_FUSE 198
#define TEGRA124_CLK_FUSE_BURN 199
#define TEGRA124_CLK_CLK_32K 200
#define TEGRA124_CLK_CLK_M 201
#define TEGRA124_CLK_CLK_M_DIV2 202
#define TEGRA124_CLK_CLK_M_DIV4 203
#define TEGRA124_CLK_PLL_REF 204
#define TEGRA124_CLK_PLL_C 205
#define TEGRA124_CLK_PLL_C_OUT1 206
#define TEGRA124_CLK_PLL_C2 207
#define TEGRA124_CLK_PLL_C3 208
#define TEGRA124_CLK_PLL_M 209
#define TEGRA124_CLK_PLL_M_OUT1 210
#define TEGRA124_CLK_PLL_P 211
#define TEGRA124_CLK_PLL_P_OUT1 212
#define TEGRA124_CLK_PLL_P_OUT2 213
#define TEGRA124_CLK_PLL_P_OUT3 214
#define TEGRA124_CLK_PLL_P_OUT4 215
#define TEGRA124_CLK_PLL_A 216
#define TEGRA124_CLK_PLL_A_OUT0 217
#define TEGRA124_CLK_PLL_D 218
#define TEGRA124_CLK_PLL_D_OUT0 219
#define TEGRA124_CLK_PLL_D2 220
#define TEGRA124_CLK_PLL_D2_OUT0 221
#define TEGRA124_CLK_PLL_U 222
#define TEGRA124_CLK_PLL_U_480M 223
#define TEGRA124_CLK_PLL_U_60M 224
#define TEGRA124_CLK_PLL_U_48M 225
#define TEGRA124_CLK_PLL_U_12M 226
#define TEGRA124_CLK_PLL_X 227
#define TEGRA124_CLK_PLL_X_OUT0 228
#define TEGRA124_CLK_PLL_RE_VCO 229
#define TEGRA124_CLK_PLL_RE_OUT 230
#define TEGRA124_CLK_PLL_E 231
#define TEGRA124_CLK_SPDIF_IN_SYNC 232
#define TEGRA124_CLK_I2S0_SYNC 233
#define TEGRA124_CLK_I2S1_SYNC 234
#define TEGRA124_CLK_I2S2_SYNC 235
#define TEGRA124_CLK_I2S3_SYNC 236
#define TEGRA124_CLK_I2S4_SYNC 237
#define TEGRA124_CLK_VIMCLK_SYNC 238
#define TEGRA124_CLK_AUDIO0 239
#define TEGRA124_CLK_AUDIO1 240
#define TEGRA124_CLK_AUDIO2 241
#define TEGRA124_CLK_AUDIO3 242
#define TEGRA124_CLK_AUDIO4 243
#define TEGRA124_CLK_SPDIF 244
#define TEGRA124_CLK_CLK_OUT_1 245
#define TEGRA124_CLK_CLK_OUT_2 246
#define TEGRA124_CLK_CLK_OUT_3 247
#define TEGRA124_CLK_BLINK 248
/* 249 */
/* 250 */
/* 251 */
#define TEGRA124_CLK_XUSB_HOST_SRC 252
#define TEGRA124_CLK_XUSB_FALCON_SRC 253
#define TEGRA124_CLK_XUSB_FS_SRC 254
#define TEGRA124_CLK_XUSB_SS_SRC 255
#define TEGRA124_CLK_XUSB_DEV_SRC 256
#define TEGRA124_CLK_XUSB_DEV 257
#define TEGRA124_CLK_XUSB_HS_SRC 258
#define TEGRA124_CLK_SCLK 259
#define TEGRA124_CLK_HCLK 260
#define TEGRA124_CLK_PCLK 261
#define TEGRA124_CLK_CCLK_G 262
#define TEGRA124_CLK_CCLK_LP 263
#define TEGRA124_CLK_DFLL_REF 264
#define TEGRA124_CLK_DFLL_SOC 265
#define TEGRA124_CLK_VI_SENSOR2 266
#define TEGRA124_CLK_PLL_P_OUT5 267
#define TEGRA124_CLK_CML0 268
#define TEGRA124_CLK_CML1 269
#define TEGRA124_CLK_PLL_C4 270
#define TEGRA124_CLK_PLL_DP 271
#define TEGRA124_CLK_PLL_E_MUX 272
/* 273 */
/* 274 */
/* 275 */
/* 276 */
/* 277 */
/* 278 */
/* 279 */
/* 280 */
/* 281 */
/* 282 */
/* 283 */
/* 284 */
/* 285 */
/* 286 */
/* 287 */
/* 288 */
/* 289 */
/* 290 */
/* 291 */
/* 292 */
/* 293 */
/* 294 */
/* 295 */
/* 296 */
/* 297 */
/* 298 */
/* 299 */
#define TEGRA124_CLK_AUDIO0_MUX 300
#define TEGRA124_CLK_AUDIO1_MUX 301
#define TEGRA124_CLK_AUDIO2_MUX 302
#define TEGRA124_CLK_AUDIO3_MUX 303
#define TEGRA124_CLK_AUDIO4_MUX 304
#define TEGRA124_CLK_SPDIF_MUX 305
#define TEGRA124_CLK_CLK_OUT_1_MUX 306
#define TEGRA124_CLK_CLK_OUT_2_MUX 307
#define TEGRA124_CLK_CLK_OUT_3_MUX 308
#define TEGRA124_CLK_DSIA_MUX 309
#define TEGRA124_CLK_DSIB_MUX 310
#define TEGRA124_CLK_SOR0_LVDS 311
#define TEGRA124_CLK_XUSB_SS_DIV2 312
#define TEGRA124_CLK_
PLL_M_UD 313
#define TEGRA124_CLK_
CCLK_G 262
#define TEGRA124_CLK_
PLL_C_UD 314
#define TEGRA124_CLK_
CCLK_LP 263
#define TEGRA124_CLK_CLK_MAX
315
#define TEGRA124_CLK_CLK_MAX
315
#endif
/* _DT_BINDINGS_CLOCK_TEGRA124_CAR_H */
#endif
/* _DT_BINDINGS_CLOCK_TEGRA124_CAR_H */
include/linux/clk/tegra.h
View file @
f85c6edf
...
@@ -120,6 +120,4 @@ static inline void tegra_cpu_clock_resume(void)
...
@@ -120,6 +120,4 @@ static inline void tegra_cpu_clock_resume(void)
}
}
#endif
#endif
void
tegra_clocks_apply_init_table
(
void
);
#endif
/* __LINUX_CLK_TEGRA_H_ */
#endif
/* __LINUX_CLK_TEGRA_H_ */
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