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
Kirill Smelkov
linux
Commits
4f1985af
Commit
4f1985af
authored
Oct 18, 2018
by
Tony Lindgren
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit '
d6e7bbc1
' into omap-for-v4.21/dt-ti-sysc
parents
5f681f41
d6e7bbc1
Changes
22
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
2835 additions
and
553 deletions
+2835
-553
drivers/clk/clk.c
drivers/clk/clk.c
+93
-0
drivers/clk/ti/Makefile
drivers/clk/ti/Makefile
+6
-3
drivers/clk/ti/clk-33xx-compat.c
drivers/clk/ti/clk-33xx-compat.c
+218
-0
drivers/clk/ti/clk-33xx.c
drivers/clk/ti/clk-33xx.c
+140
-92
drivers/clk/ti/clk-43xx-compat.c
drivers/clk/ti/clk-43xx-compat.c
+225
-0
drivers/clk/ti/clk-43xx.c
drivers/clk/ti/clk-43xx.c
+150
-99
drivers/clk/ti/clk-7xx-compat.c
drivers/clk/ti/clk-7xx-compat.c
+823
-0
drivers/clk/ti/clk-7xx.c
drivers/clk/ti/clk-7xx.c
+328
-262
drivers/clk/ti/clk.c
drivers/clk/ti/clk.c
+13
-5
drivers/clk/ti/clkctrl.c
drivers/clk/ti/clkctrl.c
+80
-24
drivers/clk/ti/clock.h
drivers/clk/ti/clock.h
+11
-0
drivers/clk/ti/divider.c
drivers/clk/ti/divider.c
+36
-0
drivers/clk/ti/dpll.c
drivers/clk/ti/dpll.c
+6
-0
drivers/clk/ti/dpll3xxx.c
drivers/clk/ti/dpll3xxx.c
+124
-0
drivers/clk/ti/gate.c
drivers/clk/ti/gate.c
+3
-0
drivers/clk/ti/mux.c
drivers/clk/ti/mux.c
+29
-0
include/dt-bindings/clock/am3.h
include/dt-bindings/clock/am3.h
+119
-0
include/dt-bindings/clock/am4.h
include/dt-bindings/clock/am4.h
+132
-0
include/dt-bindings/clock/dra7.h
include/dt-bindings/clock/dra7.h
+258
-68
include/linux/clk-provider.h
include/linux/clk-provider.h
+9
-0
include/linux/clk.h
include/linux/clk.h
+25
-0
include/linux/clk/ti.h
include/linux/clk/ti.h
+7
-0
No files found.
drivers/clk/clk.c
View file @
4f1985af
...
...
@@ -923,6 +923,99 @@ static int clk_core_enable_lock(struct clk_core *core)
return
ret
;
}
/**
* clk_gate_restore_context - restore context for poweroff
* @hw: the clk_hw pointer of clock whose state is to be restored
*
* The clock gate restore context function enables or disables
* the gate clocks based on the enable_count. This is done in cases
* where the clock context is lost and based on the enable_count
* the clock either needs to be enabled/disabled. This
* helps restore the state of gate clocks.
*/
void
clk_gate_restore_context
(
struct
clk_hw
*
hw
)
{
if
(
hw
->
clk
->
core
->
enable_count
)
hw
->
clk
->
core
->
ops
->
enable
(
hw
);
else
hw
->
clk
->
core
->
ops
->
disable
(
hw
);
}
EXPORT_SYMBOL_GPL
(
clk_gate_restore_context
);
static
int
_clk_save_context
(
struct
clk_core
*
clk
)
{
struct
clk_core
*
child
;
int
ret
=
0
;
hlist_for_each_entry
(
child
,
&
clk
->
children
,
child_node
)
{
ret
=
_clk_save_context
(
child
);
if
(
ret
<
0
)
return
ret
;
}
if
(
clk
->
ops
&&
clk
->
ops
->
save_context
)
ret
=
clk
->
ops
->
save_context
(
clk
->
hw
);
return
ret
;
}
static
void
_clk_restore_context
(
struct
clk_core
*
clk
)
{
struct
clk_core
*
child
;
if
(
clk
->
ops
&&
clk
->
ops
->
restore_context
)
clk
->
ops
->
restore_context
(
clk
->
hw
);
hlist_for_each_entry
(
child
,
&
clk
->
children
,
child_node
)
_clk_restore_context
(
child
);
}
/**
* clk_save_context - save clock context for poweroff
*
* Saves the context of the clock register for powerstates in which the
* contents of the registers will be lost. Occurs deep within the suspend
* code. Returns 0 on success.
*/
int
clk_save_context
(
void
)
{
struct
clk_core
*
clk
;
int
ret
;
hlist_for_each_entry
(
clk
,
&
clk_root_list
,
child_node
)
{
ret
=
_clk_save_context
(
clk
);
if
(
ret
<
0
)
return
ret
;
}
hlist_for_each_entry
(
clk
,
&
clk_orphan_list
,
child_node
)
{
ret
=
_clk_save_context
(
clk
);
if
(
ret
<
0
)
return
ret
;
}
return
0
;
}
EXPORT_SYMBOL_GPL
(
clk_save_context
);
/**
* clk_restore_context - restore clock context after poweroff
*
* Restore the saved clock context upon resume.
*
*/
void
clk_restore_context
(
void
)
{
struct
clk_core
*
clk
;
hlist_for_each_entry
(
clk
,
&
clk_root_list
,
child_node
)
_clk_restore_context
(
clk
);
hlist_for_each_entry
(
clk
,
&
clk_orphan_list
,
child_node
)
_clk_restore_context
(
clk
);
}
EXPORT_SYMBOL_GPL
(
clk_restore_context
);
/**
* clk_enable - ungate a clock
* @clk: the clk being ungated
...
...
drivers/clk/ti/Makefile
View file @
4f1985af
...
...
@@ -6,7 +6,8 @@ clk-common = dpll.o composite.o divider.o gate.o \
fixed-factor.o mux.o apll.o
\
clkt_dpll.o clkt_iclk.o clkt_dflt.o
\
clkctrl.o
obj-$(CONFIG_SOC_AM33XX)
+=
$
(
clk-common
)
clk-33xx.o dpll3xxx.o
obj-$(CONFIG_SOC_AM33XX)
+=
$
(
clk-common
)
clk-33xx.o dpll3xxx.o
\
clk-33xx-compat.o
obj-$(CONFIG_SOC_TI81XX)
+=
$
(
clk-common
)
fapll.o clk-814x.o clk-816x.o
obj-$(CONFIG_ARCH_OMAP2)
+=
$
(
clk-common
)
interface.o clk-2xxx.o
obj-$(CONFIG_ARCH_OMAP3)
+=
$
(
clk-common
)
interface.o
\
...
...
@@ -16,8 +17,10 @@ obj-$(CONFIG_ARCH_OMAP4) += $(clk-common) clk-44xx.o \
obj-$(CONFIG_SOC_OMAP5)
+=
$
(
clk-common
)
clk-54xx.o
\
dpll3xxx.o dpll44xx.o
obj-$(CONFIG_SOC_DRA7XX)
+=
$
(
clk-common
)
clk-7xx.o
\
clk-dra7-atl.o dpll3xxx.o dpll44xx.o
obj-$(CONFIG_SOC_AM43XX)
+=
$
(
clk-common
)
dpll3xxx.o clk-43xx.o
clk-dra7-atl.o dpll3xxx.o
\
dpll44xx.o clk-7xx-compat.o
obj-$(CONFIG_SOC_AM43XX)
+=
$
(
clk-common
)
dpll3xxx.o clk-43xx.o
\
clk-43xx-compat.o
endif
# CONFIG_ARCH_OMAP2PLUS
...
...
drivers/clk/ti/clk-33xx-compat.c
0 → 100644
View file @
4f1985af
/*
* AM33XX Clock init
*
* Copyright (C) 2013 Texas Instruments, Inc
* Tero Kristo (t-kristo@ti.com)
*
* 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 version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/clk/ti.h>
#include <dt-bindings/clock/am3.h>
#include "clock.h"
static
const
char
*
const
am3_gpio1_dbclk_parents
[]
__initconst
=
{
"l4_per_cm:clk:0138:0"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am3_gpio2_bit_data
[]
__initconst
=
{
{
18
,
TI_CLK_GATE
,
am3_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am3_gpio3_bit_data
[]
__initconst
=
{
{
18
,
TI_CLK_GATE
,
am3_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am3_gpio4_bit_data
[]
__initconst
=
{
{
18
,
TI_CLK_GATE
,
am3_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_per_clkctrl_regs
[]
__initconst
=
{
{
AM3_CPGMAC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"cpsw_125mhz_gclk"
,
"cpsw_125mhz_clkdm"
},
{
AM3_LCDC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_SET_RATE_PARENT
,
"lcd_gclk"
,
"lcdc_clkdm"
},
{
AM3_USB_OTG_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"usbotg_fck"
,
"l3s_clkdm"
},
{
AM3_TPTC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_EMIF_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_ddr_m2_div2_ck"
,
"l3_clkdm"
},
{
AM3_OCMCRAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_GPMC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM3_MCASP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp0_fck"
,
"l3s_clkdm"
},
{
AM3_UART6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_MMC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM3_ELM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_SPI0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_SPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4_LS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_MCASP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp1_fck"
,
"l3s_clkdm"
},
{
AM3_UART2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_UART3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_UART4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_UART5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_TIMER7_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer7_fck"
},
{
AM3_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer2_fck"
},
{
AM3_TIMER3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer3_fck"
},
{
AM3_TIMER4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer4_fck"
},
{
AM3_RNG_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"rng_fck"
},
{
AM3_AES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"aes0_fck"
,
"l3_clkdm"
},
{
AM3_SHAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_GPIO2_CLKCTRL
,
am3_gpio2_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_GPIO3_CLKCTRL
,
am3_gpio3_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_GPIO4_CLKCTRL
,
am3_gpio4_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_TPCC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_D_CAN0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan0_fck"
},
{
AM3_D_CAN1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan1_fck"
},
{
AM3_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_L3_MAIN_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_PRUSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"pruss_ocp_gclk"
,
"pruss_ocp_clkdm"
},
{
AM3_TIMER5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer5_fck"
},
{
AM3_TIMER6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer6_fck"
},
{
AM3_MMC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM3_MMC3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
,
"l3s_clkdm"
},
{
AM3_TPTC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_TPTC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_SPINLOCK_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_MAILBOX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4hs_gclk"
,
"l4hs_clkdm"
},
{
AM3_OCPWP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_CLKDIV32K_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clkdiv32k_ck"
,
"clk_24mhz_clkdm"
},
{
0
},
};
static
const
char
*
const
am3_gpio0_dbclk_parents
[]
__initconst
=
{
"gpio0_dbclk_mux_ck"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am3_gpio1_bit_data
[]
__initconst
=
{
{
18
,
TI_CLK_GATE
,
am3_gpio0_dbclk_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
am3_dbg_sysclk_ck_parents
[]
__initconst
=
{
"sys_clkin_ck"
,
NULL
,
};
static
const
char
*
const
am3_trace_pmd_clk_mux_ck_parents
[]
__initconst
=
{
"l4_wkup_cm:clk:0010:19"
,
"l4_wkup_cm:clk:0010:30"
,
NULL
,
};
static
const
char
*
const
am3_trace_clk_div_ck_parents
[]
__initconst
=
{
"l4_wkup_cm:clk:0010:20"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
am3_trace_clk_div_ck_data
__initconst
=
{
.
max_div
=
64
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
char
*
const
am3_stm_clk_div_ck_parents
[]
__initconst
=
{
"l4_wkup_cm:clk:0010:22"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
am3_stm_clk_div_ck_data
__initconst
=
{
.
max_div
=
64
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
char
*
const
am3_dbg_clka_ck_parents
[]
__initconst
=
{
"dpll_core_m4_ck"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am3_debugss_bit_data
[]
__initconst
=
{
{
19
,
TI_CLK_GATE
,
am3_dbg_sysclk_ck_parents
,
NULL
},
{
20
,
TI_CLK_MUX
,
am3_trace_pmd_clk_mux_ck_parents
,
NULL
},
{
22
,
TI_CLK_MUX
,
am3_trace_pmd_clk_mux_ck_parents
,
NULL
},
{
24
,
TI_CLK_DIVIDER
,
am3_trace_clk_div_ck_parents
,
&
am3_trace_clk_div_ck_data
},
{
27
,
TI_CLK_DIVIDER
,
am3_stm_clk_div_ck_parents
,
&
am3_stm_clk_div_ck_data
},
{
30
,
TI_CLK_GATE
,
am3_dbg_clka_ck_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_wkup_clkctrl_regs
[]
__initconst
=
{
{
AM3_CONTROL_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_GPIO1_CLKCTRL
,
am3_gpio1_bit_data
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_L4_WKUP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_DEBUGSS_CLKCTRL
,
am3_debugss_bit_data
,
CLKF_SW_SUP
,
"l4_wkup_cm:clk:0010:24"
,
"l3_aon_clkdm"
},
{
AM3_WKUP_M3_CLKCTRL
,
NULL
,
CLKF_NO_IDLEST
,
"dpll_core_m4_div2_ck"
,
"l4_wkup_aon_clkdm"
},
{
AM3_UART1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM3_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM3_ADC_TSC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"adc_tsc_fck"
},
{
AM3_SMARTREFLEX0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex0_fck"
},
{
AM3_TIMER1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer1_fck"
},
{
AM3_SMARTREFLEX1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex1_fck"
},
{
AM3_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wdt1_fck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_mpu_clkctrl_regs
[]
__initconst
=
{
{
AM3_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_mpu_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_rtc_clkctrl_regs
[]
__initconst
=
{
{
AM3_RTC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clk_32768_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_gfx_l3_clkctrl_regs
[]
__initconst
=
{
{
AM3_GFX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"gfx_fck_div_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_cefuse_clkctrl_regs
[]
__initconst
=
{
{
AM3_CEFUSE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
},
{
0
},
};
const
struct
omap_clkctrl_data
am3_clkctrl_compat_data
[]
__initconst
=
{
{
0x44e00014
,
am3_l4_per_clkctrl_regs
},
{
0x44e00404
,
am3_l4_wkup_clkctrl_regs
},
{
0x44e00604
,
am3_mpu_clkctrl_regs
},
{
0x44e00800
,
am3_l4_rtc_clkctrl_regs
},
{
0x44e00904
,
am3_gfx_l3_clkctrl_regs
},
{
0x44e00a20
,
am3_l4_cefuse_clkctrl_regs
},
{
0
},
};
struct
ti_dt_clk
am33xx_compat_clks
[]
=
{
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"l4_per_cm:0138:0"
),
DT_CLK
(
NULL
,
"timer_sys_ck"
,
"sys_clkin_ck"
),
DT_CLK
(
NULL
,
"clkdiv32k_ick"
,
"l4_per_cm:0138:0"
),
DT_CLK
(
NULL
,
"dbg_clka_ck"
,
"l4_wkup_cm:0010:30"
),
DT_CLK
(
NULL
,
"dbg_sysclk_ck"
,
"l4_wkup_cm:0010:19"
),
DT_CLK
(
NULL
,
"gpio0_dbclk"
,
"l4_wkup_cm:0004:18"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"l4_per_cm:0098:18"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4_per_cm:009c:18"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4_per_cm:00a0:18"
),
DT_CLK
(
NULL
,
"stm_clk_div_ck"
,
"l4_wkup_cm:0010:27"
),
DT_CLK
(
NULL
,
"stm_pmd_clock_mux_ck"
,
"l4_wkup_cm:0010:22"
),
DT_CLK
(
NULL
,
"trace_clk_div_ck"
,
"l4_wkup_cm:0010:24"
),
DT_CLK
(
NULL
,
"trace_pmd_clk_mux_ck"
,
"l4_wkup_cm:0010:20"
),
{
.
node_name
=
NULL
},
};
drivers/clk/ti/clk-33xx.c
View file @
4f1985af
...
...
@@ -24,7 +24,7 @@
#include "clock.h"
static
const
char
*
const
am3_gpio1_dbclk_parents
[]
__initconst
=
{
"
l4_per_cm:clk:0138
:0"
,
"
clk-24mhz-clkctrl:0000
:0"
,
NULL
,
};
...
...
@@ -43,58 +43,86 @@ static const struct omap_clkctrl_bit_data am3_gpio4_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_per_clkctrl_regs
[]
__initconst
=
{
{
AM3_CPGMAC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"cpsw_125mhz_gclk"
,
"cpsw_125mhz_clkdm"
},
{
AM3_LCDC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_SET_RATE_PARENT
,
"lcd_gclk"
,
"lcdc_clkdm"
},
{
AM3_USB_OTG_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"usbotg_fck"
,
"l3s_clkdm"
},
{
AM3_TPTC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_EMIF_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_ddr_m2_div2_ck"
,
"l3_clkdm"
},
{
AM3_OCMCRAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_GPMC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM3_MCASP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp0_fck"
,
"l3s_clkdm"
},
{
AM3_UART6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_MMC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM3_ELM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_SPI0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_SPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4_LS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_MCASP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp1_fck"
,
"l3s_clkdm"
},
{
AM3_UART2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_UART3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_UART4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_UART5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_TIMER7_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer7_fck"
},
{
AM3_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer2_fck"
},
{
AM3_TIMER3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer3_fck"
},
{
AM3_TIMER4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer4_fck"
},
{
AM3_RNG_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"rng_fck"
},
{
AM3_AES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"aes0_fck"
,
"l3_clkdm"
},
{
AM3_SHAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_GPIO2_CLKCTRL
,
am3_gpio2_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_GPIO3_CLKCTRL
,
am3_gpio3_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_GPIO4_CLKCTRL
,
am3_gpio4_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_TPCC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_D_CAN0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan0_fck"
},
{
AM3_D_CAN1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan1_fck"
},
{
AM3_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_L3_MAIN_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_PRUSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"pruss_ocp_gclk"
,
"pruss_ocp_clkdm"
},
{
AM3_TIMER5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer5_fck"
},
{
AM3_TIMER6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer6_fck"
},
{
AM3_MMC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM3_MMC3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
,
"l3s_clkdm"
},
{
AM3_TPTC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_TPTC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM3_SPINLOCK_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_MAILBOX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4hs_gclk"
,
"l4hs_clkdm"
},
{
AM3_OCPWP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_CLKDIV32K_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clkdiv32k_ck"
,
"clk_24mhz_clkdm"
},
static
const
struct
omap_clkctrl_reg_data
am3_l4ls_clkctrl_regs
[]
__initconst
=
{
{
AM3_L4LS_UART6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_MMC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM3_L4LS_ELM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_SPI0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_SPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_L4_LS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_UART2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_UART3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_UART4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_UART5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM3_L4LS_TIMER7_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer7_fck"
},
{
AM3_L4LS_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer2_fck"
},
{
AM3_L4LS_TIMER3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer3_fck"
},
{
AM3_L4LS_TIMER4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer4_fck"
},
{
AM3_L4LS_RNG_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"rng_fck"
},
{
AM3_L4LS_GPIO2_CLKCTRL
,
am3_gpio2_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_GPIO3_CLKCTRL
,
am3_gpio3_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_GPIO4_CLKCTRL
,
am3_gpio4_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_D_CAN0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan0_fck"
},
{
AM3_L4LS_D_CAN1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan1_fck"
},
{
AM3_L4LS_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_TIMER5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer5_fck"
},
{
AM3_L4LS_TIMER6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer6_fck"
},
{
AM3_L4LS_MMC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM3_L4LS_SPINLOCK_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_MAILBOX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM3_L4LS_OCPWP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l3s_clkctrl_regs
[]
__initconst
=
{
{
AM3_L3S_USB_OTG_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"usbotg_fck"
},
{
AM3_L3S_GPMC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
},
{
AM3_L3S_MCASP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp0_fck"
},
{
AM3_L3S_MCASP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp1_fck"
},
{
AM3_L3S_MMC3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l3_clkctrl_regs
[]
__initconst
=
{
{
AM3_L3_TPTC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_EMIF_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_ddr_m2_div2_ck"
},
{
AM3_L3_OCMCRAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_AES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"aes0_fck"
},
{
AM3_L3_SHAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_TPCC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_L3_MAIN_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_TPTC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM3_L3_TPTC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4hs_clkctrl_regs
[]
__initconst
=
{
{
AM3_L4HS_L4_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4hs_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_pruss_ocp_clkctrl_regs
[]
__initconst
=
{
{
AM3_PRUSS_OCP_PRUSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"pruss_ocp_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_cpsw_125mhz_clkctrl_regs
[]
__initconst
=
{
{
AM3_CPSW_125MHZ_CPGMAC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"cpsw_125mhz_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_lcdc_clkctrl_regs
[]
__initconst
=
{
{
AM3_LCDC_LCDC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_SET_RATE_PARENT
,
"lcd_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_clk_24mhz_clkctrl_regs
[]
__initconst
=
{
{
AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clkdiv32k_ck"
},
{
0
},
};
...
...
@@ -108,19 +136,33 @@ static const struct omap_clkctrl_bit_data am3_gpio1_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_wkup_clkctrl_regs
[]
__initconst
=
{
{
AM3_L4_WKUP_CONTROL_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_L4_WKUP_GPIO1_CLKCTRL
,
am3_gpio1_bit_data
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_L4_WKUP_L4_WKUP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_L4_WKUP_UART1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM3_L4_WKUP_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM3_L4_WKUP_ADC_TSC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"adc_tsc_fck"
},
{
AM3_L4_WKUP_SMARTREFLEX0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex0_fck"
},
{
AM3_L4_WKUP_TIMER1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer1_fck"
},
{
AM3_L4_WKUP_SMARTREFLEX1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex1_fck"
},
{
AM3_L4_WKUP_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wdt1_fck"
},
{
0
},
};
static
const
char
*
const
am3_dbg_sysclk_ck_parents
[]
__initconst
=
{
"sys_clkin_ck"
,
NULL
,
};
static
const
char
*
const
am3_trace_pmd_clk_mux_ck_parents
[]
__initconst
=
{
"l
4_wkup_cm:clk:001
0:19"
,
"l
4_wkup_cm:clk:001
0:30"
,
"l
3-aon-clkctrl:000
0:19"
,
"l
3-aon-clkctrl:000
0:30"
,
NULL
,
};
static
const
char
*
const
am3_trace_clk_div_ck_parents
[]
__initconst
=
{
"l
4_wkup_cm:clk:001
0:20"
,
"l
3-aon-clkctrl:000
0:20"
,
NULL
,
};
...
...
@@ -130,7 +172,7 @@ static const struct omap_clkctrl_div_data am3_trace_clk_div_ck_data __initconst
};
static
const
char
*
const
am3_stm_clk_div_ck_parents
[]
__initconst
=
{
"l
4_wkup_cm:clk:001
0:22"
,
"l
3-aon-clkctrl:000
0:22"
,
NULL
,
};
...
...
@@ -154,66 +196,69 @@ static const struct omap_clkctrl_bit_data am3_debugss_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_wkup_clkctrl_regs
[]
__initconst
=
{
{
AM3_CONTROL_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_GPIO1_CLKCTRL
,
am3_gpio1_bit_data
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_L4_WKUP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_m4_div2_ck"
},
{
AM3_DEBUGSS_CLKCTRL
,
am3_debugss_bit_data
,
CLKF_SW_SUP
,
"l4_wkup_cm:clk:0010:24"
,
"l3_aon_clkdm"
},
{
AM3_WKUP_M3_CLKCTRL
,
NULL
,
CLKF_NO_IDLEST
,
"dpll_core_m4_div2_ck"
,
"l4_wkup_aon_clkdm"
},
{
AM3_UART1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM3_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM3_ADC_TSC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"adc_tsc_fck"
},
{
AM3_SMARTREFLEX0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex0_fck"
},
{
AM3_TIMER1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer1_fck"
},
{
AM3_SMARTREFLEX1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex1_fck"
},
{
AM3_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wdt1_fck"
},
static
const
struct
omap_clkctrl_reg_data
am3_l3_aon_clkctrl_regs
[]
__initconst
=
{
{
AM3_L3_AON_DEBUGSS_CLKCTRL
,
am3_debugss_bit_data
,
CLKF_SW_SUP
,
"l3-aon-clkctrl:0000:24"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_wkup_aon_clkctrl_regs
[]
__initconst
=
{
{
AM3_L4_WKUP_AON_WKUP_M3_CLKCTRL
,
NULL
,
CLKF_NO_IDLEST
,
"dpll_core_m4_div2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_mpu_clkctrl_regs
[]
__initconst
=
{
{
AM3_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_mpu_m2_ck"
},
{
AM3_MPU_
MPU_
CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_mpu_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_rtc_clkctrl_regs
[]
__initconst
=
{
{
AM3_RTC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clk_32768_ck"
},
{
AM3_
L4_RTC_
RTC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clk_32768_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_gfx_l3_clkctrl_regs
[]
__initconst
=
{
{
AM3_GFX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"gfx_fck_div_ck"
},
{
AM3_GFX_
L3_GFX_
CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"gfx_fck_div_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am3_l4_cefuse_clkctrl_regs
[]
__initconst
=
{
{
AM3_CEFUSE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
},
{
AM3_
L4_CEFUSE_
CEFUSE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
},
{
0
},
};
const
struct
omap_clkctrl_data
am3_clkctrl_data
[]
__initconst
=
{
{
0x44e00014
,
am3_l4_per_clkctrl_regs
},
{
0x44e00404
,
am3_l4_wkup_clkctrl_regs
},
{
0x44e00604
,
am3_mpu_clkctrl_regs
},
{
0x44e00038
,
am3_l4ls_clkctrl_regs
},
{
0x44e0001c
,
am3_l3s_clkctrl_regs
},
{
0x44e00024
,
am3_l3_clkctrl_regs
},
{
0x44e00120
,
am3_l4hs_clkctrl_regs
},
{
0x44e000e8
,
am3_pruss_ocp_clkctrl_regs
},
{
0x44e00000
,
am3_cpsw_125mhz_clkctrl_regs
},
{
0x44e00018
,
am3_lcdc_clkctrl_regs
},
{
0x44e0014c
,
am3_clk_24mhz_clkctrl_regs
},
{
0x44e00400
,
am3_l4_wkup_clkctrl_regs
},
{
0x44e00414
,
am3_l3_aon_clkctrl_regs
},
{
0x44e004b0
,
am3_l4_wkup_aon_clkctrl_regs
},
{
0x44e00600
,
am3_mpu_clkctrl_regs
},
{
0x44e00800
,
am3_l4_rtc_clkctrl_regs
},
{
0x44e0090
4
,
am3_gfx_l3_clkctrl_regs
},
{
0x44e00a
2
0
,
am3_l4_cefuse_clkctrl_regs
},
{
0x44e0090
0
,
am3_gfx_l3_clkctrl_regs
},
{
0x44e00a
0
0
,
am3_l4_cefuse_clkctrl_regs
},
{
0
},
};
static
struct
ti_dt_clk
am33xx_clks
[]
=
{
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"
l4_per_cm:0138
:0"
),
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"
clk-24mhz-clkctrl:0000
:0"
),
DT_CLK
(
NULL
,
"timer_sys_ck"
,
"sys_clkin_ck"
),
DT_CLK
(
NULL
,
"clkdiv32k_ick"
,
"
l4_per_cm:0138
:0"
),
DT_CLK
(
NULL
,
"dbg_clka_ck"
,
"l
4_wkup_cm:001
0:30"
),
DT_CLK
(
NULL
,
"dbg_sysclk_ck"
,
"l
4_wkup_cm:001
0:19"
),
DT_CLK
(
NULL
,
"gpio0_dbclk"
,
"l4
_wkup_cm:0004
:18"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"l4
_per_cm:0098
:18"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4
_per_cm:009c
:18"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4
_per_cm:00a0
:18"
),
DT_CLK
(
NULL
,
"stm_clk_div_ck"
,
"l
4_wkup_cm:001
0:27"
),
DT_CLK
(
NULL
,
"stm_pmd_clock_mux_ck"
,
"l
4_wkup_cm:001
0:22"
),
DT_CLK
(
NULL
,
"trace_clk_div_ck"
,
"l
4_wkup_cm:001
0:24"
),
DT_CLK
(
NULL
,
"trace_pmd_clk_mux_ck"
,
"l
4_wkup_cm:001
0:20"
),
DT_CLK
(
NULL
,
"clkdiv32k_ick"
,
"
clk-24mhz-clkctrl:0000
:0"
),
DT_CLK
(
NULL
,
"dbg_clka_ck"
,
"l
3-aon-clkctrl:000
0:30"
),
DT_CLK
(
NULL
,
"dbg_sysclk_ck"
,
"l
3-aon-clkctrl:000
0:19"
),
DT_CLK
(
NULL
,
"gpio0_dbclk"
,
"l4
-wkup-clkctrl:0008
:18"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"l4
ls-clkctrl:0074
:18"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4
ls-clkctrl:0078
:18"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4
ls-clkctrl:007c
:18"
),
DT_CLK
(
NULL
,
"stm_clk_div_ck"
,
"l
3-aon-clkctrl:000
0:27"
),
DT_CLK
(
NULL
,
"stm_pmd_clock_mux_ck"
,
"l
3-aon-clkctrl:000
0:22"
),
DT_CLK
(
NULL
,
"trace_clk_div_ck"
,
"l
3-aon-clkctrl:000
0:24"
),
DT_CLK
(
NULL
,
"trace_pmd_clk_mux_ck"
,
"l
3-aon-clkctrl:000
0:20"
),
{
.
node_name
=
NULL
},
};
...
...
@@ -232,6 +277,9 @@ int __init am33xx_dt_clk_init(void)
{
struct
clk
*
clk1
,
*
clk2
;
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
ti_dt_clocks_register
(
am33xx_compat_clks
);
else
ti_dt_clocks_register
(
am33xx_clks
);
omap2_clk_disable_autoidle_all
();
...
...
drivers/clk/ti/clk-43xx-compat.c
0 → 100644
View file @
4f1985af
/*
* AM43XX Clock init
*
* Copyright (C) 2013 Texas Instruments, Inc
* Tero Kristo (t-kristo@ti.com)
*
* 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 version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/clk/ti.h>
#include <dt-bindings/clock/am4.h>
#include "clock.h"
static
const
char
*
const
am4_synctimer_32kclk_parents
[]
__initconst
=
{
"mux_synctimer32k_ck"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am4_counter_32k_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_synctimer_32kclk_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
am4_gpio0_dbclk_parents
[]
__initconst
=
{
"gpio0_dbclk_mux_ck"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am4_gpio1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_gpio0_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_wkup_clkctrl_regs
[]
__initconst
=
{
{
AM4_ADC_TSC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"adc_tsc_fck"
,
"l3s_tsc_clkdm"
},
{
AM4_L4_WKUP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
,
"l4_wkup_clkdm"
},
{
AM4_WKUP_M3_CLKCTRL
,
NULL
,
CLKF_NO_IDLEST
,
"sys_clkin_ck"
},
{
AM4_COUNTER_32K_CLKCTRL
,
am4_counter_32k_bit_data
,
CLKF_SW_SUP
,
"l4_wkup_cm:clk:0210:8"
},
{
AM4_TIMER1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer1_fck"
,
"l4_wkup_clkdm"
},
{
AM4_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wdt1_fck"
,
"l4_wkup_clkdm"
},
{
AM4_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
,
"l4_wkup_clkdm"
},
{
AM4_UART1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
,
"l4_wkup_clkdm"
},
{
AM4_SMARTREFLEX0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex0_fck"
,
"l4_wkup_clkdm"
},
{
AM4_SMARTREFLEX1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex1_fck"
,
"l4_wkup_clkdm"
},
{
AM4_CONTROL_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
,
"l4_wkup_clkdm"
},
{
AM4_GPIO1_CLKCTRL
,
am4_gpio1_bit_data
,
CLKF_SW_SUP
,
"sys_clkin_ck"
,
"l4_wkup_clkdm"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_mpu_clkctrl_regs
[]
__initconst
=
{
{
AM4_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_mpu_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_gfx_l3_clkctrl_regs
[]
__initconst
=
{
{
AM4_GFX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"gfx_fck_div_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_rtc_clkctrl_regs
[]
__initconst
=
{
{
AM4_RTC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clk_32768_ck"
},
{
0
},
};
static
const
char
*
const
am4_usb_otg_ss0_refclk960m_parents
[]
__initconst
=
{
"dpll_per_clkdcoldo"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am4_usb_otg_ss0_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_usb_otg_ss0_refclk960m_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am4_usb_otg_ss1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_usb_otg_ss0_refclk960m_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
am4_gpio1_dbclk_parents
[]
__initconst
=
{
"clkdiv32k_ick"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
am4_gpio2_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am4_gpio3_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am4_gpio4_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am4_gpio5_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
am4_gpio6_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
am4_gpio1_dbclk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_per_clkctrl_regs
[]
__initconst
=
{
{
AM4_L3_MAIN_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_AES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"aes0_fck"
,
"l3_clkdm"
},
{
AM4_DES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_OCMCRAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_SHAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_VPFE0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3s_clkdm"
},
{
AM4_VPFE1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3s_clkdm"
},
{
AM4_TPCC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_TPTC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_TPTC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_TPTC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_L4_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4hs_gclk"
,
"l3_clkdm"
},
{
AM4_GPMC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_MCASP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp0_fck"
,
"l3s_clkdm"
},
{
AM4_MCASP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp1_fck"
,
"l3s_clkdm"
},
{
AM4_MMC3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
,
"l3s_clkdm"
},
{
AM4_QSPI_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_USB_OTG_SS0_CLKCTRL
,
am4_usb_otg_ss0_bit_data
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_USB_OTG_SS1_CLKCTRL
,
am4_usb_otg_ss1_bit_data
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_PRUSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"pruss_ocp_gclk"
,
"pruss_ocp_clkdm"
},
{
AM4_L4_LS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_D_CAN0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan0_fck"
},
{
AM4_D_CAN1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan1_fck"
},
{
AM4_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_ELM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO2_CLKCTRL
,
am4_gpio2_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO3_CLKCTRL
,
am4_gpio3_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO4_CLKCTRL
,
am4_gpio4_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO5_CLKCTRL
,
am4_gpio5_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO6_CLKCTRL
,
am4_gpio6_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_HDQ1W_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_12m_clk"
},
{
AM4_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_MAILBOX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_MMC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_MMC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_RNG_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"rng_fck"
},
{
AM4_SPI0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPINLOCK_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer2_fck"
},
{
AM4_TIMER3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer3_fck"
},
{
AM4_TIMER4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer4_fck"
},
{
AM4_TIMER5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer5_fck"
},
{
AM4_TIMER6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer6_fck"
},
{
AM4_TIMER7_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer7_fck"
},
{
AM4_TIMER8_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer8_fck"
},
{
AM4_TIMER9_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer9_fck"
},
{
AM4_TIMER10_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer10_fck"
},
{
AM4_TIMER11_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer11_fck"
},
{
AM4_UART2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_OCP2SCP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_OCP2SCP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EMIF_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_ddr_m2_ck"
,
"emif_clkdm"
},
{
AM4_DSS_CORE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_SET_RATE_PARENT
,
"disp_clk"
,
"dss_clkdm"
},
{
AM4_CPGMAC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"cpsw_125mhz_gclk"
,
"cpsw_125mhz_clkdm"
},
{
0
},
};
const
struct
omap_clkctrl_data
am4_clkctrl_compat_data
[]
__initconst
=
{
{
0x44df2820
,
am4_l4_wkup_clkctrl_regs
},
{
0x44df8320
,
am4_mpu_clkctrl_regs
},
{
0x44df8420
,
am4_gfx_l3_clkctrl_regs
},
{
0x44df8520
,
am4_l4_rtc_clkctrl_regs
},
{
0x44df8820
,
am4_l4_per_clkctrl_regs
},
{
0
},
};
const
struct
omap_clkctrl_data
am438x_clkctrl_compat_data
[]
__initconst
=
{
{
0x44df2820
,
am4_l4_wkup_clkctrl_regs
},
{
0x44df8320
,
am4_mpu_clkctrl_regs
},
{
0x44df8420
,
am4_gfx_l3_clkctrl_regs
},
{
0x44df8820
,
am4_l4_per_clkctrl_regs
},
{
0
},
};
struct
ti_dt_clk
am43xx_compat_clks
[]
=
{
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"clkdiv32k_ick"
),
DT_CLK
(
NULL
,
"timer_sys_ck"
,
"sys_clkin_ck"
),
DT_CLK
(
NULL
,
"gpio0_dbclk"
,
"l4_wkup_cm:0348:8"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"l4_per_cm:0458:8"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4_per_cm:0460:8"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4_per_cm:0468:8"
),
DT_CLK
(
NULL
,
"gpio4_dbclk"
,
"l4_per_cm:0470:8"
),
DT_CLK
(
NULL
,
"gpio5_dbclk"
,
"l4_per_cm:0478:8"
),
DT_CLK
(
NULL
,
"synctimer_32kclk"
,
"l4_wkup_cm:0210:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss0_refclk960m"
,
"l4_per_cm:0240:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss1_refclk960m"
,
"l4_per_cm:0248:8"
),
{
.
node_name
=
NULL
},
};
drivers/clk/ti/clk-43xx.c
View file @
4f1985af
...
...
@@ -23,6 +23,11 @@
#include "clock.h"
static
const
struct
omap_clkctrl_reg_data
am4_l3s_tsc_clkctrl_regs
[]
__initconst
=
{
{
AM4_L3S_TSC_ADC_TSC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"adc_tsc_fck"
},
{
0
},
};
static
const
char
*
const
am4_synctimer_32kclk_parents
[]
__initconst
=
{
"mux_synctimer32k_ck"
,
NULL
,
...
...
@@ -33,6 +38,12 @@ static const struct omap_clkctrl_bit_data am4_counter_32k_bit_data[] __initconst
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_wkup_aon_clkctrl_regs
[]
__initconst
=
{
{
AM4_L4_WKUP_AON_WKUP_M3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_NO_IDLEST
,
"sys_clkin_ck"
},
{
AM4_L4_WKUP_AON_COUNTER_32K_CLKCTRL
,
am4_counter_32k_bit_data
,
CLKF_SW_SUP
,
"l4-wkup-aon-clkctrl:0008:8"
},
{
0
},
};
static
const
char
*
const
am4_gpio0_dbclk_parents
[]
__initconst
=
{
"gpio0_dbclk_mux_ck"
,
NULL
,
...
...
@@ -44,33 +55,45 @@ static const struct omap_clkctrl_bit_data am4_gpio1_bit_data[] __initconst = {
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_wkup_clkctrl_regs
[]
__initconst
=
{
{
AM4_ADC_TSC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"adc_tsc_fck"
,
"l3s_tsc_clkdm"
},
{
AM4_L4_WKUP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
,
"l4_wkup_clkdm"
},
{
AM4_WKUP_M3_CLKCTRL
,
NULL
,
CLKF_NO_IDLEST
,
"sys_clkin_ck"
},
{
AM4_COUNTER_32K_CLKCTRL
,
am4_counter_32k_bit_data
,
CLKF_SW_SUP
,
"l4_wkup_cm:clk:0210:8"
},
{
AM4_TIMER1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer1_fck"
,
"l4_wkup_clkdm"
},
{
AM4_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wdt1_fck"
,
"l4_wkup_clkdm"
},
{
AM4_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
,
"l4_wkup_clkdm"
},
{
AM4_UART1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
,
"l4_wkup_clkdm"
},
{
AM4_SMARTREFLEX0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex0_fck"
,
"l4_wkup_clkdm"
},
{
AM4_SMARTREFLEX1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex1_fck"
,
"l4_wkup_clkdm"
},
{
AM4_CONTROL_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
,
"l4_wkup_clkdm"
},
{
AM4_GPIO1_CLKCTRL
,
am4_gpio1_bit_data
,
CLKF_SW_SUP
,
"sys_clkin_ck"
,
"l4_wkup_clkdm"
},
{
AM4_L4_WKUP_L4_WKUP_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
},
{
AM4_L4_WKUP_TIMER1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer1_fck"
},
{
AM4_L4_WKUP_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wdt1_fck"
},
{
AM4_L4_WKUP_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM4_L4_WKUP_UART1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_wkupdm_ck"
},
{
AM4_L4_WKUP_SMARTREFLEX0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex0_fck"
},
{
AM4_L4_WKUP_SMARTREFLEX1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"smartreflex1_fck"
},
{
AM4_L4_WKUP_CONTROL_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin_ck"
},
{
AM4_L4_WKUP_GPIO1_CLKCTRL
,
am4_gpio1_bit_data
,
CLKF_SW_SUP
,
"sys_clkin_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_mpu_clkctrl_regs
[]
__initconst
=
{
{
AM4_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_mpu_m2_ck"
},
{
AM4_MPU_
MPU_
CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_mpu_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_gfx_l3_clkctrl_regs
[]
__initconst
=
{
{
AM4_GFX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"gfx_fck_div_ck"
},
{
AM4_GFX_
L3_GFX_
CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"gfx_fck_div_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_rtc_clkctrl_regs
[]
__initconst
=
{
{
AM4_RTC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clk_32768_ck"
},
{
AM4_L4_RTC_RTC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"clk_32768_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l3_clkctrl_regs
[]
__initconst
=
{
{
AM4_L3_L3_MAIN_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_AES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"aes0_fck"
},
{
AM4_L3_DES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_OCMCRAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_SHAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_TPCC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_TPTC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_TPTC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_TPTC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3_L4_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4hs_gclk"
},
{
0
},
};
...
...
@@ -89,6 +112,24 @@ static const struct omap_clkctrl_bit_data am4_usb_otg_ss1_bit_data[] __initconst
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l3s_clkctrl_regs
[]
__initconst
=
{
{
AM4_L3S_VPFE0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3S_VPFE1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
},
{
AM4_L3S_GPMC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
},
{
AM4_L3S_MCASP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp0_fck"
},
{
AM4_L3S_MCASP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp1_fck"
},
{
AM4_L3S_MMC3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_L3S_QSPI_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
},
{
AM4_L3S_USB_OTG_SS0_CLKCTRL
,
am4_usb_otg_ss0_bit_data
,
CLKF_SW_SUP
,
"l3s_gclk"
},
{
AM4_L3S_USB_OTG_SS1_CLKCTRL
,
am4_usb_otg_ss1_bit_data
,
CLKF_SW_SUP
,
"l3s_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_pruss_ocp_clkctrl_regs
[]
__initconst
=
{
{
AM4_PRUSS_OCP_PRUSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"pruss_ocp_gclk"
},
{
0
},
};
static
const
char
*
const
am4_gpio1_dbclk_parents
[]
__initconst
=
{
"clkdiv32k_ick"
,
NULL
,
...
...
@@ -119,108 +160,115 @@ static const struct omap_clkctrl_bit_data am4_gpio6_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_l4_per_clkctrl_regs
[]
__initconst
=
{
{
AM4_L3_MAIN_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_AES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"aes0_fck"
,
"l3_clkdm"
},
{
AM4_DES_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_OCMCRAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_SHAM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_VPFE0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3s_clkdm"
},
{
AM4_VPFE1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3s_clkdm"
},
{
AM4_TPCC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_TPTC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_TPTC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_TPTC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3_gclk"
,
"l3_clkdm"
},
{
AM4_L4_HS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4hs_gclk"
,
"l3_clkdm"
},
{
AM4_GPMC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_MCASP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp0_fck"
,
"l3s_clkdm"
},
{
AM4_MCASP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcasp1_fck"
,
"l3s_clkdm"
},
{
AM4_MMC3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
,
"l3s_clkdm"
},
{
AM4_QSPI_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_USB_OTG_SS0_CLKCTRL
,
am4_usb_otg_ss0_bit_data
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_USB_OTG_SS1_CLKCTRL
,
am4_usb_otg_ss1_bit_data
,
CLKF_SW_SUP
,
"l3s_gclk"
,
"l3s_clkdm"
},
{
AM4_PRUSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"pruss_ocp_gclk"
,
"pruss_ocp_clkdm"
},
{
AM4_L4_LS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_D_CAN0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan0_fck"
},
{
AM4_D_CAN1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan1_fck"
},
{
AM4_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EPWMSS5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_ELM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO2_CLKCTRL
,
am4_gpio2_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO3_CLKCTRL
,
am4_gpio3_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO4_CLKCTRL
,
am4_gpio4_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO5_CLKCTRL
,
am4_gpio5_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_GPIO6_CLKCTRL
,
am4_gpio6_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_HDQ1W_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_12m_clk"
},
{
AM4_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_MAILBOX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_MMC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_MMC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_RNG_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"rng_fck"
},
{
AM4_SPI0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPI4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_SPINLOCK_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer2_fck"
},
{
AM4_TIMER3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer3_fck"
},
{
AM4_TIMER4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer4_fck"
},
{
AM4_TIMER5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer5_fck"
},
{
AM4_TIMER6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer6_fck"
},
{
AM4_TIMER7_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer7_fck"
},
{
AM4_TIMER8_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer8_fck"
},
{
AM4_TIMER9_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer9_fck"
},
{
AM4_TIMER10_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer10_fck"
},
{
AM4_TIMER11_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer11_fck"
},
{
AM4_UART2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_UART6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_OCP2SCP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_OCP2SCP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_EMIF_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_ddr_m2_ck"
,
"emif_clkdm"
},
{
AM4_DSS_CORE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_SET_RATE_PARENT
,
"disp_clk"
,
"dss_clkdm"
},
{
AM4_CPGMAC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"cpsw_125mhz_gclk"
,
"cpsw_125mhz_clkdm"
},
static
const
struct
omap_clkctrl_reg_data
am4_l4ls_clkctrl_regs
[]
__initconst
=
{
{
AM4_L4LS_L4_LS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_D_CAN0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan0_fck"
},
{
AM4_L4LS_D_CAN1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dcan1_fck"
},
{
AM4_L4LS_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_EPWMSS3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_EPWMSS4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_EPWMSS5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_ELM_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_GPIO2_CLKCTRL
,
am4_gpio2_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_GPIO3_CLKCTRL
,
am4_gpio3_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_GPIO4_CLKCTRL
,
am4_gpio4_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_GPIO5_CLKCTRL
,
am4_gpio5_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_GPIO6_CLKCTRL
,
am4_gpio6_bit_data
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_HDQ1W_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_12m_clk"
},
{
AM4_L4LS_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_MAILBOX_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_MMC1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_L4LS_MMC2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mmc_clk"
},
{
AM4_L4LS_RNG_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"rng_fck"
},
{
AM4_L4LS_SPI0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_SPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_SPI2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_SPI3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_SPI4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_SPINLOCK_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer2_fck"
},
{
AM4_L4LS_TIMER3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer3_fck"
},
{
AM4_L4LS_TIMER4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer4_fck"
},
{
AM4_L4LS_TIMER5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer5_fck"
},
{
AM4_L4LS_TIMER6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer6_fck"
},
{
AM4_L4LS_TIMER7_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer7_fck"
},
{
AM4_L4LS_TIMER8_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer8_fck"
},
{
AM4_L4LS_TIMER9_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer9_fck"
},
{
AM4_L4LS_TIMER10_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer10_fck"
},
{
AM4_L4LS_TIMER11_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"timer11_fck"
},
{
AM4_L4LS_UART2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_UART3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_UART4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_UART5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_UART6_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_per_m2_div4_ck"
},
{
AM4_L4LS_OCP2SCP0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
AM4_L4LS_OCP2SCP1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4ls_gclk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_emif_clkctrl_regs
[]
__initconst
=
{
{
AM4_EMIF_EMIF_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_ddr_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_dss_clkctrl_regs
[]
__initconst
=
{
{
AM4_DSS_DSS_CORE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
|
CLKF_SET_RATE_PARENT
,
"disp_clk"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
am4_cpsw_125mhz_clkctrl_regs
[]
__initconst
=
{
{
AM4_CPSW_125MHZ_CPGMAC0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"cpsw_125mhz_gclk"
},
{
0
},
};
const
struct
omap_clkctrl_data
am4_clkctrl_data
[]
__initconst
=
{
{
0x44df2820
,
am4_l4_wkup_clkctrl_regs
},
{
0x44df2920
,
am4_l3s_tsc_clkctrl_regs
},
{
0x44df2a28
,
am4_l4_wkup_aon_clkctrl_regs
},
{
0x44df2a20
,
am4_l4_wkup_clkctrl_regs
},
{
0x44df8320
,
am4_mpu_clkctrl_regs
},
{
0x44df8420
,
am4_gfx_l3_clkctrl_regs
},
{
0x44df8520
,
am4_l4_rtc_clkctrl_regs
},
{
0x44df8820
,
am4_l4_per_clkctrl_regs
},
{
0x44df8820
,
am4_l3_clkctrl_regs
},
{
0x44df8868
,
am4_l3s_clkctrl_regs
},
{
0x44df8b20
,
am4_pruss_ocp_clkctrl_regs
},
{
0x44df8c20
,
am4_l4ls_clkctrl_regs
},
{
0x44df8f20
,
am4_emif_clkctrl_regs
},
{
0x44df9220
,
am4_dss_clkctrl_regs
},
{
0x44df9320
,
am4_cpsw_125mhz_clkctrl_regs
},
{
0
},
};
const
struct
omap_clkctrl_data
am438x_clkctrl_data
[]
__initconst
=
{
{
0x44df2820
,
am4_l4_wkup_clkctrl_regs
},
{
0x44df2920
,
am4_l3s_tsc_clkctrl_regs
},
{
0x44df2a28
,
am4_l4_wkup_aon_clkctrl_regs
},
{
0x44df2a20
,
am4_l4_wkup_clkctrl_regs
},
{
0x44df8320
,
am4_mpu_clkctrl_regs
},
{
0x44df8420
,
am4_gfx_l3_clkctrl_regs
},
{
0x44df8820
,
am4_l4_per_clkctrl_regs
},
{
0x44df8820
,
am4_l3_clkctrl_regs
},
{
0x44df8868
,
am4_l3s_clkctrl_regs
},
{
0x44df8b20
,
am4_pruss_ocp_clkctrl_regs
},
{
0x44df8c20
,
am4_l4ls_clkctrl_regs
},
{
0x44df8f20
,
am4_emif_clkctrl_regs
},
{
0x44df9220
,
am4_dss_clkctrl_regs
},
{
0x44df9320
,
am4_cpsw_125mhz_clkctrl_regs
},
{
0
},
};
static
struct
ti_dt_clk
am43xx_clks
[]
=
{
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"clkdiv32k_ick"
),
DT_CLK
(
NULL
,
"timer_sys_ck"
,
"sys_clkin_ck"
),
DT_CLK
(
NULL
,
"gpio0_dbclk"
,
"l4
_wkup_cm:03
48:8"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"l4
_per_cm:04
58:8"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4
_per_cm:04
60:8"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4
_per_cm:04
68:8"
),
DT_CLK
(
NULL
,
"gpio4_dbclk"
,
"l4
_per_cm:04
70:8"
),
DT_CLK
(
NULL
,
"gpio5_dbclk"
,
"l4
_per_cm:04
78:8"
),
DT_CLK
(
NULL
,
"synctimer_32kclk"
,
"l4
_wkup_cm:0210
:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss0_refclk960m"
,
"l
4_per_cm:0240
:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss1_refclk960m"
,
"l
4_per_cm:0248
:8"
),
DT_CLK
(
NULL
,
"gpio0_dbclk"
,
"l4
-wkup-clkctrl:01
48:8"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"l4
ls-clkctrl:00
58:8"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4
ls-clkctrl:00
60:8"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4
ls-clkctrl:00
68:8"
),
DT_CLK
(
NULL
,
"gpio4_dbclk"
,
"l4
ls-clkctrl:00
70:8"
),
DT_CLK
(
NULL
,
"gpio5_dbclk"
,
"l4
ls-clkctrl:00
78:8"
),
DT_CLK
(
NULL
,
"synctimer_32kclk"
,
"l4
-wkup-aon-clkctrl:0008
:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss0_refclk960m"
,
"l
3s-clkctrl:01f8
:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss1_refclk960m"
,
"l
3s-clkctrl:0200
:8"
),
{
.
node_name
=
NULL
},
};
...
...
@@ -228,6 +276,9 @@ int __init am43xx_dt_clk_init(void)
{
struct
clk
*
clk1
,
*
clk2
;
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
ti_dt_clocks_register
(
am43xx_compat_clks
);
else
ti_dt_clocks_register
(
am43xx_clks
);
omap2_clk_disable_autoidle_all
();
...
...
drivers/clk/ti/clk-7xx-compat.c
0 → 100644
View file @
4f1985af
/*
* DRA7 Clock init
*
* Copyright (C) 2013 Texas Instruments, Inc.
*
* Tero Kristo (t-kristo@ti.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/clk.h>
#include <linux/clkdev.h>
#include <linux/clk/ti.h>
#include <dt-bindings/clock/dra7.h>
#include "clock.h"
#define DRA7_DPLL_GMAC_DEFFREQ 1000000000
#define DRA7_DPLL_USB_DEFFREQ 960000000
static
const
struct
omap_clkctrl_reg_data
dra7_mpu_clkctrl_regs
[]
__initconst
=
{
{
DRA7_MPU_CLKCTRL
,
NULL
,
0
,
"dpll_mpu_m2_ck"
},
{
0
},
};
static
const
char
*
const
dra7_mcasp1_aux_gfclk_mux_parents
[]
__initconst
=
{
"per_abe_x1_gfclk2_div"
,
"video1_clk2_div"
,
"video2_clk2_div"
,
"hdmi_clk2_div"
,
NULL
,
};
static
const
char
*
const
dra7_mcasp1_ahclkx_mux_parents
[]
__initconst
=
{
"abe_24m_fclk"
,
"abe_sys_clk_div"
,
"func_24m_clk"
,
"atl_clkin3_ck"
,
"atl_clkin2_ck"
,
"atl_clkin1_ck"
,
"atl_clkin0_ck"
,
"sys_clkin2"
,
"ref_clkin0_ck"
,
"ref_clkin1_ck"
,
"ref_clkin2_ck"
,
"ref_clkin3_ck"
,
"mlb_clk"
,
"mlbp_clk"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp1_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
28
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_timer5_gfclk_mux_parents
[]
__initconst
=
{
"timer_sys_clk_div"
,
"sys_32k_ck"
,
"sys_clkin2"
,
"ref_clkin0_ck"
,
"ref_clkin1_ck"
,
"ref_clkin2_ck"
,
"ref_clkin3_ck"
,
"abe_giclk_div"
,
"video1_div_clk"
,
"video2_div_clk"
,
"hdmi_div_clk"
,
"clkoutmux0_clk_mux"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer5_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer5_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer6_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer5_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer7_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer5_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer8_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer5_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_uart6_gfclk_mux_parents
[]
__initconst
=
{
"func_48m_fclk"
,
"dpll_per_m2x2_ck"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart6_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_ipu_clkctrl_regs
[]
__initconst
=
{
{
DRA7_MCASP1_CLKCTRL
,
dra7_mcasp1_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0010:22"
},
{
DRA7_TIMER5_CLKCTRL
,
dra7_timer5_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0018:24"
},
{
DRA7_TIMER6_CLKCTRL
,
dra7_timer6_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0020:24"
},
{
DRA7_TIMER7_CLKCTRL
,
dra7_timer7_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0028:24"
},
{
DRA7_TIMER8_CLKCTRL
,
dra7_timer8_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0030:24"
},
{
DRA7_I2C5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_UART6_CLKCTRL
,
dra7_uart6_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0040:24"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_rtc_clkctrl_regs
[]
__initconst
=
{
{
DRA7_RTCSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_32k_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_coreaon_clkctrl_regs
[]
__initconst
=
{
{
DRA7_SMARTREFLEX_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_SMARTREFLEX_CORE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wkupaon_iclk_mux"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3main1_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L3_MAIN_1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_GPMC_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_TPCC_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_TPTC0_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_TPTC1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_VCP1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_VCP2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_dma_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DMA_SYSTEM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_emif_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DMM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
char
*
const
dra7_atl_dpll_clk_mux_parents
[]
__initconst
=
{
"sys_32k_ck"
,
"video1_clkin_ck"
,
"video2_clkin_ck"
,
"hdmi_clkin_ck"
,
NULL
,
};
static
const
char
*
const
dra7_atl_gfclk_mux_parents
[]
__initconst
=
{
"l3_iclk_div"
,
"dpll_abe_m2_ck"
,
"atl_cm:clk:0000:24"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_atl_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_atl_dpll_clk_mux_parents
,
NULL
},
{
26
,
TI_CLK_MUX
,
dra7_atl_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_atl_clkctrl_regs
[]
__initconst
=
{
{
DRA7_ATL_CLKCTRL
,
dra7_atl_bit_data
,
CLKF_SW_SUP
,
"atl_cm:clk:0000:26"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4cfg_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4_CFG_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_SPINLOCK_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX3_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX4_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX5_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX6_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX7_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX8_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX9_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX10_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX11_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX12_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX13_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3instr_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L3_MAIN_2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
0
},
};
static
const
char
*
const
dra7_dss_dss_clk_parents
[]
__initconst
=
{
"dpll_per_h12x2_ck"
,
NULL
,
};
static
const
char
*
const
dra7_dss_48mhz_clk_parents
[]
__initconst
=
{
"func_48m_fclk"
,
NULL
,
};
static
const
char
*
const
dra7_dss_hdmi_clk_parents
[]
__initconst
=
{
"hdmi_dpll_clk_mux"
,
NULL
,
};
static
const
char
*
const
dra7_dss_32khz_clk_parents
[]
__initconst
=
{
"sys_32k_ck"
,
NULL
,
};
static
const
char
*
const
dra7_dss_video1_clk_parents
[]
__initconst
=
{
"video1_dpll_clk_mux"
,
NULL
,
};
static
const
char
*
const
dra7_dss_video2_clk_parents
[]
__initconst
=
{
"video2_dpll_clk_mux"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_dss_core_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_dss_clk_parents
,
NULL
},
{
9
,
TI_CLK_GATE
,
dra7_dss_48mhz_clk_parents
,
NULL
},
{
10
,
TI_CLK_GATE
,
dra7_dss_hdmi_clk_parents
,
NULL
},
{
11
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
12
,
TI_CLK_GATE
,
dra7_dss_video1_clk_parents
,
NULL
},
{
13
,
TI_CLK_GATE
,
dra7_dss_video2_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_dss_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DSS_CORE_CLKCTRL
,
dra7_dss_core_bit_data
,
CLKF_SW_SUP
,
"dss_cm:clk:0000:8"
},
{
DRA7_BB2D_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_h24x2_ck"
},
{
0
},
};
static
const
char
*
const
dra7_mmc1_fclk_mux_parents
[]
__initconst
=
{
"func_128m_clk"
,
"dpll_per_m2x2_ck"
,
NULL
,
};
static
const
char
*
const
dra7_mmc1_fclk_div_parents
[]
__initconst
=
{
"l3init_cm:clk:0008:24"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
dra7_mmc1_fclk_div_data
__initconst
=
{
.
max_div
=
4
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_mmc1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mmc1_fclk_mux_parents
,
NULL
},
{
25
,
TI_CLK_DIVIDER
,
dra7_mmc1_fclk_div_parents
,
&
dra7_mmc1_fclk_div_data
},
{
0
},
};
static
const
char
*
const
dra7_mmc2_fclk_div_parents
[]
__initconst
=
{
"l3init_cm:clk:0010:24"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
dra7_mmc2_fclk_div_data
__initconst
=
{
.
max_div
=
4
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_mmc2_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mmc1_fclk_mux_parents
,
NULL
},
{
25
,
TI_CLK_DIVIDER
,
dra7_mmc2_fclk_div_parents
,
&
dra7_mmc2_fclk_div_data
},
{
0
},
};
static
const
char
*
const
dra7_usb_otg_ss2_refclk960m_parents
[]
__initconst
=
{
"l3init_960m_gfclk"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_usb_otg_ss2_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_usb_otg_ss2_refclk960m_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_sata_ref_clk_parents
[]
__initconst
=
{
"sys_clkin1"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_sata_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_sata_ref_clk_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_optfclk_pciephy1_clk_parents
[]
__initconst
=
{
"apll_pcie_ck"
,
NULL
,
};
static
const
char
*
const
dra7_optfclk_pciephy1_div_clk_parents
[]
__initconst
=
{
"optfclk_pciephy_div"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_pcie1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
9
,
TI_CLK_GATE
,
dra7_optfclk_pciephy1_clk_parents
,
NULL
},
{
10
,
TI_CLK_GATE
,
dra7_optfclk_pciephy1_div_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_pcie2_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
9
,
TI_CLK_GATE
,
dra7_optfclk_pciephy1_clk_parents
,
NULL
},
{
10
,
TI_CLK_GATE
,
dra7_optfclk_pciephy1_div_clk_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_rmii_50mhz_clk_mux_parents
[]
__initconst
=
{
"dpll_gmac_h11x2_ck"
,
"rmii_clk_ck"
,
NULL
,
};
static
const
char
*
const
dra7_gmac_rft_clk_mux_parents
[]
__initconst
=
{
"video1_clkin_ck"
,
"video2_clkin_ck"
,
"dpll_abe_m2_ck"
,
"hdmi_clkin_ck"
,
"l3_iclk_div"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_gmac_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_rmii_50mhz_clk_mux_parents
,
NULL
},
{
25
,
TI_CLK_MUX
,
dra7_gmac_rft_clk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_usb_otg_ss1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_usb_otg_ss2_refclk960m_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3init_clkctrl_regs
[]
__initconst
=
{
{
DRA7_MMC1_CLKCTRL
,
dra7_mmc1_bit_data
,
CLKF_SW_SUP
,
"l3init_cm:clk:0008:25"
},
{
DRA7_MMC2_CLKCTRL
,
dra7_mmc2_bit_data
,
CLKF_SW_SUP
,
"l3init_cm:clk:0010:25"
},
{
DRA7_USB_OTG_SS2_CLKCTRL
,
dra7_usb_otg_ss2_bit_data
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_USB_OTG_SS3_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_USB_OTG_SS4_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_SATA_CLKCTRL
,
dra7_sata_bit_data
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_PCIE1_CLKCTRL
,
dra7_pcie1_bit_data
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"pcie_clkdm"
},
{
DRA7_PCIE2_CLKCTRL
,
dra7_pcie2_bit_data
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"pcie_clkdm"
},
{
DRA7_GMAC_CLKCTRL
,
dra7_gmac_bit_data
,
CLKF_SW_SUP
,
"dpll_gmac_ck"
,
"gmac_clkdm"
},
{
DRA7_OCP2SCP1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l4_root_clk_div"
},
{
DRA7_OCP2SCP3_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l4_root_clk_div"
},
{
DRA7_USB_OTG_SS1_CLKCTRL
,
dra7_usb_otg_ss1_bit_data
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
0
},
};
static
const
char
*
const
dra7_timer10_gfclk_mux_parents
[]
__initconst
=
{
"timer_sys_clk_div"
,
"sys_32k_ck"
,
"sys_clkin2"
,
"ref_clkin0_ck"
,
"ref_clkin1_ck"
,
"ref_clkin2_ck"
,
"ref_clkin3_ck"
,
"abe_giclk_div"
,
"video1_div_clk"
,
"video2_div_clk"
,
"hdmi_div_clk"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer10_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer11_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer2_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer3_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer4_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer9_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio2_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio3_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio4_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio5_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio6_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer13_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer14_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer15_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio7_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio8_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_mmc3_gfclk_div_parents
[]
__initconst
=
{
"l4per_cm:clk:0120:24"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
dra7_mmc3_gfclk_div_data
__initconst
=
{
.
max_div
=
4
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_mmc3_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
25
,
TI_CLK_DIVIDER
,
dra7_mmc3_gfclk_div_parents
,
&
dra7_mmc3_gfclk_div_data
},
{
0
},
};
static
const
char
*
const
dra7_mmc4_gfclk_div_parents
[]
__initconst
=
{
"l4per_cm:clk:0128:24"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
dra7_mmc4_gfclk_div_data
__initconst
=
{
.
max_div
=
4
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_mmc4_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
25
,
TI_CLK_DIVIDER
,
dra7_mmc4_gfclk_div_parents
,
&
dra7_mmc4_gfclk_div_data
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer16_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_qspi_gfclk_mux_parents
[]
__initconst
=
{
"func_128m_clk"
,
"dpll_per_h13x2_ck"
,
NULL
,
};
static
const
char
*
const
dra7_qspi_gfclk_div_parents
[]
__initconst
=
{
"l4per_cm:clk:0138:24"
,
NULL
,
};
static
const
struct
omap_clkctrl_div_data
dra7_qspi_gfclk_div_data
__initconst
=
{
.
max_div
=
4
,
.
flags
=
CLK_DIVIDER_POWER_OF_TWO
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_qspi_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_qspi_gfclk_mux_parents
,
NULL
},
{
25
,
TI_CLK_DIVIDER
,
dra7_qspi_gfclk_div_parents
,
&
dra7_qspi_gfclk_div_data
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart1_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart2_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart3_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart4_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp2_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
28
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp3_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart5_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp5_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp8_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp4_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart7_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart8_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart9_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp6_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp7_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4per_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4_PER2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
,
"l4per2_clkdm"
},
{
DRA7_L4_PER3_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
,
"l4per3_clkdm"
},
{
DRA7_TIMER10_CLKCTRL
,
dra7_timer10_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0028:24"
},
{
DRA7_TIMER11_CLKCTRL
,
dra7_timer11_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0030:24"
},
{
DRA7_TIMER2_CLKCTRL
,
dra7_timer2_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0038:24"
},
{
DRA7_TIMER3_CLKCTRL
,
dra7_timer3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0040:24"
},
{
DRA7_TIMER4_CLKCTRL
,
dra7_timer4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0048:24"
},
{
DRA7_TIMER9_CLKCTRL
,
dra7_timer9_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0050:24"
},
{
DRA7_ELM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_GPIO2_CLKCTRL
,
dra7_gpio2_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO3_CLKCTRL
,
dra7_gpio3_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO4_CLKCTRL
,
dra7_gpio4_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO5_CLKCTRL
,
dra7_gpio5_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO6_CLKCTRL
,
dra7_gpio6_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_HDQ1W_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_12m_fclk"
},
{
DRA7_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"l4per2_clkdm"
},
{
DRA7_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"l4per2_clkdm"
},
{
DRA7_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_I2C4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_L4_PER1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"l4per2_clkdm"
},
{
DRA7_TIMER13_CLKCTRL
,
dra7_timer13_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:00c8:24"
,
"l4per3_clkdm"
},
{
DRA7_TIMER14_CLKCTRL
,
dra7_timer14_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:00d0:24"
,
"l4per3_clkdm"
},
{
DRA7_TIMER15_CLKCTRL
,
dra7_timer15_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:00d8:24"
,
"l4per3_clkdm"
},
{
DRA7_MCSPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_MCSPI2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_MCSPI3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_MCSPI4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_GPIO7_CLKCTRL
,
dra7_gpio7_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO8_CLKCTRL
,
dra7_gpio8_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_MMC3_CLKCTRL
,
dra7_mmc3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0120:25"
},
{
DRA7_MMC4_CLKCTRL
,
dra7_mmc4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0128:25"
},
{
DRA7_TIMER16_CLKCTRL
,
dra7_timer16_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0130:24"
,
"l4per3_clkdm"
},
{
DRA7_QSPI_CLKCTRL
,
dra7_qspi_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0138:25"
,
"l4per2_clkdm"
},
{
DRA7_UART1_CLKCTRL
,
dra7_uart1_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0140:24"
},
{
DRA7_UART2_CLKCTRL
,
dra7_uart2_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0148:24"
},
{
DRA7_UART3_CLKCTRL
,
dra7_uart3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0150:24"
},
{
DRA7_UART4_CLKCTRL
,
dra7_uart4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0158:24"
},
{
DRA7_MCASP2_CLKCTRL
,
dra7_mcasp2_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0160:22"
,
"l4per2_clkdm"
},
{
DRA7_MCASP3_CLKCTRL
,
dra7_mcasp3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0168:22"
,
"l4per2_clkdm"
},
{
DRA7_UART5_CLKCTRL
,
dra7_uart5_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0170:24"
},
{
DRA7_MCASP5_CLKCTRL
,
dra7_mcasp5_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0178:22"
,
"l4per2_clkdm"
},
{
DRA7_MCASP8_CLKCTRL
,
dra7_mcasp8_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0190:24"
,
"l4per2_clkdm"
},
{
DRA7_MCASP4_CLKCTRL
,
dra7_mcasp4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0198:22"
,
"l4per2_clkdm"
},
{
DRA7_AES1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_AES2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_DES_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_RNG_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_SHAM_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_UART7_CLKCTRL
,
dra7_uart7_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:01d0:24"
,
"l4per2_clkdm"
},
{
DRA7_UART8_CLKCTRL
,
dra7_uart8_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:01e0:24"
,
"l4per2_clkdm"
},
{
DRA7_UART9_CLKCTRL
,
dra7_uart9_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:01e8:24"
,
"l4per2_clkdm"
},
{
DRA7_DCAN2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin1"
,
"l4per2_clkdm"
},
{
DRA7_MCASP6_CLKCTRL
,
dra7_mcasp6_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0204:22"
,
"l4per2_clkdm"
},
{
DRA7_MCASP7_CLKCTRL
,
dra7_mcasp7_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0208:22"
,
"l4per2_clkdm"
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer1_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart10_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
char
*
const
dra7_dcan1_sys_clk_mux_parents
[]
__initconst
=
{
"sys_clkin1"
,
"sys_clkin2"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_dcan1_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_dcan1_sys_clk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_wkupaon_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4_WKUP_CLKCTRL
,
NULL
,
0
,
"wkupaon_iclk_mux"
},
{
DRA7_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_32k_ck"
},
{
DRA7_GPIO1_CLKCTRL
,
dra7_gpio1_bit_data
,
CLKF_HW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_TIMER1_CLKCTRL
,
dra7_timer1_bit_data
,
CLKF_SW_SUP
,
"wkupaon_cm:clk:0020:24"
},
{
DRA7_TIMER12_CLKCTRL
,
NULL
,
0
,
"secure_32k_clk_src_ck"
},
{
DRA7_COUNTER_32K_CLKCTRL
,
NULL
,
0
,
"wkupaon_iclk_mux"
},
{
DRA7_UART10_CLKCTRL
,
dra7_uart10_bit_data
,
CLKF_SW_SUP
,
"wkupaon_cm:clk:0060:24"
},
{
DRA7_DCAN1_CLKCTRL
,
dra7_dcan1_bit_data
,
CLKF_SW_SUP
,
"wkupaon_cm:clk:0068:24"
},
{
DRA7_ADC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcan_clk"
},
{
0
},
};
const
struct
omap_clkctrl_data
dra7_clkctrl_compat_data
[]
__initconst
=
{
{
0x4a005320
,
dra7_mpu_clkctrl_regs
},
{
0x4a005540
,
dra7_ipu_clkctrl_regs
},
{
0x4a005740
,
dra7_rtc_clkctrl_regs
},
{
0x4a008620
,
dra7_coreaon_clkctrl_regs
},
{
0x4a008720
,
dra7_l3main1_clkctrl_regs
},
{
0x4a008a20
,
dra7_dma_clkctrl_regs
},
{
0x4a008b20
,
dra7_emif_clkctrl_regs
},
{
0x4a008c00
,
dra7_atl_clkctrl_regs
},
{
0x4a008d20
,
dra7_l4cfg_clkctrl_regs
},
{
0x4a008e20
,
dra7_l3instr_clkctrl_regs
},
{
0x4a009120
,
dra7_dss_clkctrl_regs
},
{
0x4a009320
,
dra7_l3init_clkctrl_regs
},
{
0x4a009700
,
dra7_l4per_clkctrl_regs
},
{
0x4ae07820
,
dra7_wkupaon_clkctrl_regs
},
{
0
},
};
struct
ti_dt_clk
dra7xx_compat_clks
[]
=
{
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"sys_32k_ck"
),
DT_CLK
(
NULL
,
"sys_clkin_ck"
,
"timer_sys_clk_div"
),
DT_CLK
(
NULL
,
"sys_clkin"
,
"sys_clkin1"
),
DT_CLK
(
NULL
,
"atl_dpll_clk_mux"
,
"atl_cm:0000:24"
),
DT_CLK
(
NULL
,
"atl_gfclk_mux"
,
"atl_cm:0000:26"
),
DT_CLK
(
NULL
,
"dcan1_sys_clk_mux"
,
"wkupaon_cm:0068:24"
),
DT_CLK
(
NULL
,
"dss_32khz_clk"
,
"dss_cm:0000:11"
),
DT_CLK
(
NULL
,
"dss_48mhz_clk"
,
"dss_cm:0000:9"
),
DT_CLK
(
NULL
,
"dss_dss_clk"
,
"dss_cm:0000:8"
),
DT_CLK
(
NULL
,
"dss_hdmi_clk"
,
"dss_cm:0000:10"
),
DT_CLK
(
NULL
,
"dss_video1_clk"
,
"dss_cm:0000:12"
),
DT_CLK
(
NULL
,
"dss_video2_clk"
,
"dss_cm:0000:13"
),
DT_CLK
(
NULL
,
"gmac_rft_clk_mux"
,
"l3init_cm:00b0:25"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"wkupaon_cm:0018:8"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4per_cm:0060:8"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4per_cm:0068:8"
),
DT_CLK
(
NULL
,
"gpio4_dbclk"
,
"l4per_cm:0070:8"
),
DT_CLK
(
NULL
,
"gpio5_dbclk"
,
"l4per_cm:0078:8"
),
DT_CLK
(
NULL
,
"gpio6_dbclk"
,
"l4per_cm:0080:8"
),
DT_CLK
(
NULL
,
"gpio7_dbclk"
,
"l4per_cm:0110:8"
),
DT_CLK
(
NULL
,
"gpio8_dbclk"
,
"l4per_cm:0118:8"
),
DT_CLK
(
NULL
,
"mcasp1_ahclkr_mux"
,
"ipu_cm:0010:28"
),
DT_CLK
(
NULL
,
"mcasp1_ahclkx_mux"
,
"ipu_cm:0010:24"
),
DT_CLK
(
NULL
,
"mcasp1_aux_gfclk_mux"
,
"ipu_cm:0010:22"
),
DT_CLK
(
NULL
,
"mcasp2_ahclkr_mux"
,
"l4per_cm:0160:28"
),
DT_CLK
(
NULL
,
"mcasp2_ahclkx_mux"
,
"l4per_cm:0160:24"
),
DT_CLK
(
NULL
,
"mcasp2_aux_gfclk_mux"
,
"l4per_cm:0160:22"
),
DT_CLK
(
NULL
,
"mcasp3_ahclkx_mux"
,
"l4per_cm:0168:24"
),
DT_CLK
(
NULL
,
"mcasp3_aux_gfclk_mux"
,
"l4per_cm:0168:22"
),
DT_CLK
(
NULL
,
"mcasp4_ahclkx_mux"
,
"l4per_cm:0198:24"
),
DT_CLK
(
NULL
,
"mcasp4_aux_gfclk_mux"
,
"l4per_cm:0198:22"
),
DT_CLK
(
NULL
,
"mcasp5_ahclkx_mux"
,
"l4per_cm:0178:24"
),
DT_CLK
(
NULL
,
"mcasp5_aux_gfclk_mux"
,
"l4per_cm:0178:22"
),
DT_CLK
(
NULL
,
"mcasp6_ahclkx_mux"
,
"l4per_cm:0204:24"
),
DT_CLK
(
NULL
,
"mcasp6_aux_gfclk_mux"
,
"l4per_cm:0204:22"
),
DT_CLK
(
NULL
,
"mcasp7_ahclkx_mux"
,
"l4per_cm:0208:24"
),
DT_CLK
(
NULL
,
"mcasp7_aux_gfclk_mux"
,
"l4per_cm:0208:22"
),
DT_CLK
(
NULL
,
"mcasp8_ahclkx_mux"
,
"l4per_cm:0190:22"
),
DT_CLK
(
NULL
,
"mcasp8_aux_gfclk_mux"
,
"l4per_cm:0190:24"
),
DT_CLK
(
NULL
,
"mmc1_clk32k"
,
"l3init_cm:0008:8"
),
DT_CLK
(
NULL
,
"mmc1_fclk_div"
,
"l3init_cm:0008:25"
),
DT_CLK
(
NULL
,
"mmc1_fclk_mux"
,
"l3init_cm:0008:24"
),
DT_CLK
(
NULL
,
"mmc2_clk32k"
,
"l3init_cm:0010:8"
),
DT_CLK
(
NULL
,
"mmc2_fclk_div"
,
"l3init_cm:0010:25"
),
DT_CLK
(
NULL
,
"mmc2_fclk_mux"
,
"l3init_cm:0010:24"
),
DT_CLK
(
NULL
,
"mmc3_clk32k"
,
"l4per_cm:0120:8"
),
DT_CLK
(
NULL
,
"mmc3_gfclk_div"
,
"l4per_cm:0120:25"
),
DT_CLK
(
NULL
,
"mmc3_gfclk_mux"
,
"l4per_cm:0120:24"
),
DT_CLK
(
NULL
,
"mmc4_clk32k"
,
"l4per_cm:0128:8"
),
DT_CLK
(
NULL
,
"mmc4_gfclk_div"
,
"l4per_cm:0128:25"
),
DT_CLK
(
NULL
,
"mmc4_gfclk_mux"
,
"l4per_cm:0128:24"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_32khz"
,
"l3init_cm:0090:8"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_clk"
,
"l3init_cm:0090:9"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_div_clk"
,
"l3init_cm:0090:10"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_32khz"
,
"l3init_cm:0098:8"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_clk"
,
"l3init_cm:0098:9"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_div_clk"
,
"l3init_cm:0098:10"
),
DT_CLK
(
NULL
,
"qspi_gfclk_div"
,
"l4per_cm:0138:25"
),
DT_CLK
(
NULL
,
"qspi_gfclk_mux"
,
"l4per_cm:0138:24"
),
DT_CLK
(
NULL
,
"rmii_50mhz_clk_mux"
,
"l3init_cm:00b0:24"
),
DT_CLK
(
NULL
,
"sata_ref_clk"
,
"l3init_cm:0068:8"
),
DT_CLK
(
NULL
,
"timer10_gfclk_mux"
,
"l4per_cm:0028:24"
),
DT_CLK
(
NULL
,
"timer11_gfclk_mux"
,
"l4per_cm:0030:24"
),
DT_CLK
(
NULL
,
"timer13_gfclk_mux"
,
"l4per_cm:00c8:24"
),
DT_CLK
(
NULL
,
"timer14_gfclk_mux"
,
"l4per_cm:00d0:24"
),
DT_CLK
(
NULL
,
"timer15_gfclk_mux"
,
"l4per_cm:00d8:24"
),
DT_CLK
(
NULL
,
"timer16_gfclk_mux"
,
"l4per_cm:0130:24"
),
DT_CLK
(
NULL
,
"timer1_gfclk_mux"
,
"wkupaon_cm:0020:24"
),
DT_CLK
(
NULL
,
"timer2_gfclk_mux"
,
"l4per_cm:0038:24"
),
DT_CLK
(
NULL
,
"timer3_gfclk_mux"
,
"l4per_cm:0040:24"
),
DT_CLK
(
NULL
,
"timer4_gfclk_mux"
,
"l4per_cm:0048:24"
),
DT_CLK
(
NULL
,
"timer5_gfclk_mux"
,
"ipu_cm:0018:24"
),
DT_CLK
(
NULL
,
"timer6_gfclk_mux"
,
"ipu_cm:0020:24"
),
DT_CLK
(
NULL
,
"timer7_gfclk_mux"
,
"ipu_cm:0028:24"
),
DT_CLK
(
NULL
,
"timer8_gfclk_mux"
,
"ipu_cm:0030:24"
),
DT_CLK
(
NULL
,
"timer9_gfclk_mux"
,
"l4per_cm:0050:24"
),
DT_CLK
(
NULL
,
"uart10_gfclk_mux"
,
"wkupaon_cm:0060:24"
),
DT_CLK
(
NULL
,
"uart1_gfclk_mux"
,
"l4per_cm:0140:24"
),
DT_CLK
(
NULL
,
"uart2_gfclk_mux"
,
"l4per_cm:0148:24"
),
DT_CLK
(
NULL
,
"uart3_gfclk_mux"
,
"l4per_cm:0150:24"
),
DT_CLK
(
NULL
,
"uart4_gfclk_mux"
,
"l4per_cm:0158:24"
),
DT_CLK
(
NULL
,
"uart5_gfclk_mux"
,
"l4per_cm:0170:24"
),
DT_CLK
(
NULL
,
"uart6_gfclk_mux"
,
"ipu_cm:0040:24"
),
DT_CLK
(
NULL
,
"uart7_gfclk_mux"
,
"l4per_cm:01d0:24"
),
DT_CLK
(
NULL
,
"uart8_gfclk_mux"
,
"l4per_cm:01e0:24"
),
DT_CLK
(
NULL
,
"uart9_gfclk_mux"
,
"l4per_cm:01e8:24"
),
DT_CLK
(
NULL
,
"usb_otg_ss1_refclk960m"
,
"l3init_cm:00d0:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss2_refclk960m"
,
"l3init_cm:0020:8"
),
{
.
node_name
=
NULL
},
};
drivers/clk/ti/clk-7xx.c
View file @
4f1985af
...
...
@@ -23,7 +23,28 @@
#define DRA7_DPLL_USB_DEFFREQ 960000000
static
const
struct
omap_clkctrl_reg_data
dra7_mpu_clkctrl_regs
[]
__initconst
=
{
{
DRA7_MPU_CLKCTRL
,
NULL
,
0
,
"dpll_mpu_m2_ck"
},
{
DRA7_MPU_MPU_CLKCTRL
,
NULL
,
0
,
"dpll_mpu_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_dsp1_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DSP1_MMU0_DSP1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_dsp_m2_ck"
},
{
0
},
};
static
const
char
*
const
dra7_ipu1_gfclk_mux_parents
[]
__initconst
=
{
"dpll_abe_m2x2_ck"
,
"dpll_core_h22x2_ck"
,
NULL
,
};
static
const
struct
omap_clkctrl_bit_data
dra7_mmu_ipu1_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_ipu1_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_ipu1_clkctrl_regs
[]
__initconst
=
{
{
DRA7_IPU1_MMU_IPU1_CLKCTRL
,
dra7_mmu_ipu1_bit_data
,
CLKF_HW_SUP
,
"ipu1-clkctrl:0000:24"
},
{
0
},
};
...
...
@@ -108,45 +129,55 @@ static const struct omap_clkctrl_bit_data dra7_uart6_bit_data[] __initconst = {
};
static
const
struct
omap_clkctrl_reg_data
dra7_ipu_clkctrl_regs
[]
__initconst
=
{
{
DRA7_MCASP1_CLKCTRL
,
dra7_mcasp1_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0010:22"
},
{
DRA7_TIMER5_CLKCTRL
,
dra7_timer5_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0018:24"
},
{
DRA7_TIMER6_CLKCTRL
,
dra7_timer6_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0020:24"
},
{
DRA7_TIMER7_CLKCTRL
,
dra7_timer7_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0028:24"
},
{
DRA7_TIMER8_CLKCTRL
,
dra7_timer8_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0030:24"
},
{
DRA7_I2C5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_UART6_CLKCTRL
,
dra7_uart6_bit_data
,
CLKF_SW_SUP
,
"ipu_cm:clk:0040:24"
},
{
DRA7_IPU_MCASP1_CLKCTRL
,
dra7_mcasp1_bit_data
,
CLKF_SW_SUP
,
"ipu-clkctrl:0000:22"
},
{
DRA7_IPU_TIMER5_CLKCTRL
,
dra7_timer5_bit_data
,
CLKF_SW_SUP
,
"ipu-clkctrl:0008:24"
},
{
DRA7_IPU_TIMER6_CLKCTRL
,
dra7_timer6_bit_data
,
CLKF_SW_SUP
,
"ipu-clkctrl:0010:24"
},
{
DRA7_IPU_TIMER7_CLKCTRL
,
dra7_timer7_bit_data
,
CLKF_SW_SUP
,
"ipu-clkctrl:0018:24"
},
{
DRA7_IPU_TIMER8_CLKCTRL
,
dra7_timer8_bit_data
,
CLKF_SW_SUP
,
"ipu-clkctrl:0020:24"
},
{
DRA7_IPU_I2C5_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_IPU_UART6_CLKCTRL
,
dra7_uart6_bit_data
,
CLKF_SW_SUP
,
"ipu-clkctrl:0030:24"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_dsp2_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DSP2_MMU0_DSP2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_dsp_m2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_rtc_clkctrl_regs
[]
__initconst
=
{
{
DRA7_RTCSS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_32k_ck"
},
{
DRA7_RTC
_RTC
SS_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_32k_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_coreaon_clkctrl_regs
[]
__initconst
=
{
{
DRA7_SMARTREFLEX_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_SMARTREFLEX_CORE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_
COREAON_
SMARTREFLEX_MPU_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_
COREAON_
SMARTREFLEX_CORE_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"wkupaon_iclk_mux"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3main1_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L3_MAIN_1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_GPMC_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_TPCC_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_TPTC0_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_TPTC1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_VCP1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_VCP2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_L3_MAIN_1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_GPMC_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_TPCC_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_TPTC0_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_TPTC1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_VCP1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L3MAIN1_VCP2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_ipu2_clkctrl_regs
[]
__initconst
=
{
{
DRA7_IPU2_MMU_IPU2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h22x2_ck"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_dma_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DMA_SYSTEM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_DMA_
DMA_
SYSTEM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_emif_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DMM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
EMIF_
DMM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
...
...
@@ -161,7 +192,7 @@ static const char * const dra7_atl_dpll_clk_mux_parents[] __initconst = {
static
const
char
*
const
dra7_atl_gfclk_mux_parents
[]
__initconst
=
{
"l3_iclk_div"
,
"dpll_abe_m2_ck"
,
"atl
_cm:clk
:0000:24"
,
"atl
-clkctrl
:0000:24"
,
NULL
,
};
...
...
@@ -172,32 +203,32 @@ static const struct omap_clkctrl_bit_data dra7_atl_bit_data[] __initconst = {
};
static
const
struct
omap_clkctrl_reg_data
dra7_atl_clkctrl_regs
[]
__initconst
=
{
{
DRA7_ATL_
CLKCTRL
,
dra7_atl_bit_data
,
CLKF_SW_SUP
,
"atl_cm:clk
:0000:26"
},
{
DRA7_ATL_
ATL_CLKCTRL
,
dra7_atl_bit_data
,
CLKF_SW_SUP
,
"atl-clkctrl
:0000:26"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4cfg_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4_CFG_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_SPINLOCK_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX3_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX4_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX5_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX6_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX7_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX8_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX9_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX10_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX11_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX12_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_MAILBOX13_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L4
CFG_L4
_CFG_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
SPINLOCK_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX3_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX4_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX5_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX6_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX7_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX8_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX9_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX10_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX11_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX12_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_
L4CFG_
MAILBOX13_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3instr_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L3_MAIN_2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3_INSTR_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3
INSTR_L3
_MAIN_2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L3
INSTR_L3
_INSTR_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
0
},
};
...
...
@@ -242,8 +273,8 @@ static const struct omap_clkctrl_bit_data dra7_dss_core_bit_data[] __initconst =
};
static
const
struct
omap_clkctrl_reg_data
dra7_dss_clkctrl_regs
[]
__initconst
=
{
{
DRA7_DSS_
CORE_CLKCTRL
,
dra7_dss_core_bit_data
,
CLKF_SW_SUP
,
"dss_cm:clk
:0000:8"
},
{
DRA7_BB2D_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_h24x2_ck"
},
{
DRA7_DSS_
DSS_CORE_CLKCTRL
,
dra7_dss_core_bit_data
,
CLKF_SW_SUP
,
"dss-clkctrl
:0000:8"
},
{
DRA7_
DSS_
BB2D_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"dpll_core_h24x2_ck"
},
{
0
},
};
...
...
@@ -254,7 +285,7 @@ static const char * const dra7_mmc1_fclk_mux_parents[] __initconst = {
};
static
const
char
*
const
dra7_mmc1_fclk_div_parents
[]
__initconst
=
{
"l3init
_cm:clk
:0008:24"
,
"l3init
-clkctrl
:0008:24"
,
NULL
,
};
...
...
@@ -271,7 +302,7 @@ static const struct omap_clkctrl_bit_data dra7_mmc1_bit_data[] __initconst = {
};
static
const
char
*
const
dra7_mmc2_fclk_div_parents
[]
__initconst
=
{
"l3init
_cm:clk
:0010:24"
,
"l3init
-clkctrl
:0010:24"
,
NULL
,
};
...
...
@@ -307,6 +338,24 @@ static const struct omap_clkctrl_bit_data dra7_sata_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_usb_otg_ss1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_usb_otg_ss2_refclk960m_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3init_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L3INIT_MMC1_CLKCTRL
,
dra7_mmc1_bit_data
,
CLKF_SW_SUP
,
"l3init-clkctrl:0008:25"
},
{
DRA7_L3INIT_MMC2_CLKCTRL
,
dra7_mmc2_bit_data
,
CLKF_SW_SUP
,
"l3init-clkctrl:0010:25"
},
{
DRA7_L3INIT_USB_OTG_SS2_CLKCTRL
,
dra7_usb_otg_ss2_bit_data
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_L3INIT_USB_OTG_SS3_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_L3INIT_USB_OTG_SS4_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_L3INIT_SATA_CLKCTRL
,
dra7_sata_bit_data
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_L3INIT_OCP2SCP1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l4_root_clk_div"
},
{
DRA7_L3INIT_OCP2SCP3_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l4_root_clk_div"
},
{
DRA7_L3INIT_USB_OTG_SS1_CLKCTRL
,
dra7_usb_otg_ss1_bit_data
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
0
},
};
static
const
char
*
const
dra7_optfclk_pciephy1_clk_parents
[]
__initconst
=
{
"apll_pcie_ck"
,
NULL
,
...
...
@@ -331,6 +380,12 @@ static const struct omap_clkctrl_bit_data dra7_pcie2_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_pcie_clkctrl_regs
[]
__initconst
=
{
{
DRA7_PCIE_PCIE1_CLKCTRL
,
dra7_pcie1_bit_data
,
CLKF_SW_SUP
,
"l4_root_clk_div"
},
{
DRA7_PCIE_PCIE2_CLKCTRL
,
dra7_pcie2_bit_data
,
CLKF_SW_SUP
,
"l4_root_clk_div"
},
{
0
},
};
static
const
char
*
const
dra7_rmii_50mhz_clk_mux_parents
[]
__initconst
=
{
"dpll_gmac_h11x2_ck"
,
"rmii_clk_ck"
,
...
...
@@ -352,24 +407,8 @@ static const struct omap_clkctrl_bit_data dra7_gmac_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_usb_otg_ss1_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_usb_otg_ss2_refclk960m_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l3init_clkctrl_regs
[]
__initconst
=
{
{
DRA7_MMC1_CLKCTRL
,
dra7_mmc1_bit_data
,
CLKF_SW_SUP
,
"l3init_cm:clk:0008:25"
},
{
DRA7_MMC2_CLKCTRL
,
dra7_mmc2_bit_data
,
CLKF_SW_SUP
,
"l3init_cm:clk:0010:25"
},
{
DRA7_USB_OTG_SS2_CLKCTRL
,
dra7_usb_otg_ss2_bit_data
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_USB_OTG_SS3_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_USB_OTG_SS4_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
{
DRA7_SATA_CLKCTRL
,
dra7_sata_bit_data
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_PCIE1_CLKCTRL
,
dra7_pcie1_bit_data
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"pcie_clkdm"
},
{
DRA7_PCIE2_CLKCTRL
,
dra7_pcie2_bit_data
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"pcie_clkdm"
},
{
DRA7_GMAC_CLKCTRL
,
dra7_gmac_bit_data
,
CLKF_SW_SUP
,
"dpll_gmac_ck"
,
"gmac_clkdm"
},
{
DRA7_OCP2SCP1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l4_root_clk_div"
},
{
DRA7_OCP2SCP3_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l4_root_clk_div"
},
{
DRA7_USB_OTG_SS1_CLKCTRL
,
dra7_usb_otg_ss1_bit_data
,
CLKF_HW_SUP
,
"dpll_core_h13x2_ck"
},
static
const
struct
omap_clkctrl_reg_data
dra7_gmac_clkctrl_regs
[]
__initconst
=
{
{
DRA7_GMAC_GMAC_CLKCTRL
,
dra7_gmac_bit_data
,
CLKF_SW_SUP
,
"dpll_gmac_ck"
},
{
0
},
};
...
...
@@ -443,21 +482,6 @@ static const struct omap_clkctrl_bit_data dra7_gpio6_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer13_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer14_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer15_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_gpio7_bit_data
[]
__initconst
=
{
{
8
,
TI_CLK_GATE
,
dra7_dss_32khz_clk_parents
,
NULL
},
{
0
},
...
...
@@ -469,7 +493,7 @@ static const struct omap_clkctrl_bit_data dra7_gpio8_bit_data[] __initconst = {
};
static
const
char
*
const
dra7_mmc3_gfclk_div_parents
[]
__initconst
=
{
"l4per
_cm:clk:0120
:24"
,
"l4per
-clkctrl:00f8
:24"
,
NULL
,
};
...
...
@@ -486,7 +510,7 @@ static const struct omap_clkctrl_bit_data dra7_mmc3_bit_data[] __initconst = {
};
static
const
char
*
const
dra7_mmc4_gfclk_div_parents
[]
__initconst
=
{
"l4per
_cm:clk:0128
:24"
,
"l4per
-clkctrl:0100
:24"
,
NULL
,
};
...
...
@@ -502,8 +526,72 @@ static const struct omap_clkctrl_bit_data dra7_mmc4_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer16_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
static
const
struct
omap_clkctrl_bit_data
dra7_uart1_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart2_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart3_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart4_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart5_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4per_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4PER_TIMER10_CLKCTRL
,
dra7_timer10_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0000:24"
},
{
DRA7_L4PER_TIMER11_CLKCTRL
,
dra7_timer11_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0008:24"
},
{
DRA7_L4PER_TIMER2_CLKCTRL
,
dra7_timer2_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0010:24"
},
{
DRA7_L4PER_TIMER3_CLKCTRL
,
dra7_timer3_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0018:24"
},
{
DRA7_L4PER_TIMER4_CLKCTRL
,
dra7_timer4_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0020:24"
},
{
DRA7_L4PER_TIMER9_CLKCTRL
,
dra7_timer9_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0028:24"
},
{
DRA7_L4PER_ELM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L4PER_GPIO2_CLKCTRL
,
dra7_gpio2_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_GPIO3_CLKCTRL
,
dra7_gpio3_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_GPIO4_CLKCTRL
,
dra7_gpio4_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_GPIO5_CLKCTRL
,
dra7_gpio5_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_GPIO6_CLKCTRL
,
dra7_gpio6_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_HDQ1W_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_12m_fclk"
},
{
DRA7_L4PER_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_L4PER_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_L4PER_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_L4PER_I2C4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_L4PER_L4_PER1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L4PER_MCSPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_L4PER_MCSPI2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_L4PER_MCSPI3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_L4PER_MCSPI4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_L4PER_GPIO7_CLKCTRL
,
dra7_gpio7_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_GPIO8_CLKCTRL
,
dra7_gpio8_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4PER_MMC3_CLKCTRL
,
dra7_mmc3_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:00f8:25"
},
{
DRA7_L4PER_MMC4_CLKCTRL
,
dra7_mmc4_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0100:25"
},
{
DRA7_L4PER_UART1_CLKCTRL
,
dra7_uart1_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0118:24"
},
{
DRA7_L4PER_UART2_CLKCTRL
,
dra7_uart2_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0120:24"
},
{
DRA7_L4PER_UART3_CLKCTRL
,
dra7_uart3_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0128:24"
},
{
DRA7_L4PER_UART4_CLKCTRL
,
dra7_uart4_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0130:24"
},
{
DRA7_L4PER_UART5_CLKCTRL
,
dra7_uart5_bit_data
,
CLKF_SW_SUP
,
"l4per-clkctrl:0148:24"
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4sec_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4SEC_AES1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4SEC_AES2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4SEC_DES_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_L4SEC_RNG_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
""
},
{
DRA7_L4SEC_SHAM_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
0
},
};
...
...
@@ -514,7 +602,7 @@ static const char * const dra7_qspi_gfclk_mux_parents[] __initconst = {
};
static
const
char
*
const
dra7_qspi_gfclk_div_parents
[]
__initconst
=
{
"l4per
_cm:clk:0138
:24"
,
"l4per
2-clkctrl:012c
:24"
,
NULL
,
};
...
...
@@ -529,26 +617,6 @@ static const struct omap_clkctrl_bit_data dra7_qspi_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart1_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart2_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart3_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart4_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp2_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
...
...
@@ -562,11 +630,6 @@ static const struct omap_clkctrl_bit_data dra7_mcasp3_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_uart5_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_uart6_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_mcasp5_bit_data
[]
__initconst
=
{
{
22
,
TI_CLK_MUX
,
dra7_mcasp1_aux_gfclk_mux_parents
,
NULL
},
{
24
,
TI_CLK_MUX
,
dra7_mcasp1_ahclkx_mux_parents
,
NULL
},
...
...
@@ -612,64 +675,54 @@ static const struct omap_clkctrl_bit_data dra7_mcasp7_bit_data[] __initconst = {
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4per_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4_PER2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
,
"l4per2_clkdm"
},
{
DRA7_L4_PER3_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
,
"l4per3_clkdm"
},
{
DRA7_TIMER10_CLKCTRL
,
dra7_timer10_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0028:24"
},
{
DRA7_TIMER11_CLKCTRL
,
dra7_timer11_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0030:24"
},
{
DRA7_TIMER2_CLKCTRL
,
dra7_timer2_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0038:24"
},
{
DRA7_TIMER3_CLKCTRL
,
dra7_timer3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0040:24"
},
{
DRA7_TIMER4_CLKCTRL
,
dra7_timer4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0048:24"
},
{
DRA7_TIMER9_CLKCTRL
,
dra7_timer9_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0050:24"
},
{
DRA7_ELM_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_GPIO2_CLKCTRL
,
dra7_gpio2_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO3_CLKCTRL
,
dra7_gpio3_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO4_CLKCTRL
,
dra7_gpio4_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO5_CLKCTRL
,
dra7_gpio5_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO6_CLKCTRL
,
dra7_gpio6_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_HDQ1W_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_12m_fclk"
},
{
DRA7_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"l4per2_clkdm"
},
{
DRA7_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"l4per2_clkdm"
},
{
DRA7_I2C1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_I2C2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_I2C3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_I2C4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_96m_fclk"
},
{
DRA7_L4_PER1_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
,
"l4per2_clkdm"
},
{
DRA7_TIMER13_CLKCTRL
,
dra7_timer13_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:00c8:24"
,
"l4per3_clkdm"
},
{
DRA7_TIMER14_CLKCTRL
,
dra7_timer14_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:00d0:24"
,
"l4per3_clkdm"
},
{
DRA7_TIMER15_CLKCTRL
,
dra7_timer15_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:00d8:24"
,
"l4per3_clkdm"
},
{
DRA7_MCSPI1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_MCSPI2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_MCSPI3_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_MCSPI4_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"func_48m_fclk"
},
{
DRA7_GPIO7_CLKCTRL
,
dra7_gpio7_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_GPIO8_CLKCTRL
,
dra7_gpio8_bit_data
,
CLKF_HW_SUP
,
"l3_iclk_div"
},
{
DRA7_MMC3_CLKCTRL
,
dra7_mmc3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0120:25"
},
{
DRA7_MMC4_CLKCTRL
,
dra7_mmc4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0128:25"
},
{
DRA7_TIMER16_CLKCTRL
,
dra7_timer16_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0130:24"
,
"l4per3_clkdm"
},
{
DRA7_QSPI_CLKCTRL
,
dra7_qspi_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0138:25"
,
"l4per2_clkdm"
},
{
DRA7_UART1_CLKCTRL
,
dra7_uart1_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0140:24"
},
{
DRA7_UART2_CLKCTRL
,
dra7_uart2_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0148:24"
},
{
DRA7_UART3_CLKCTRL
,
dra7_uart3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0150:24"
},
{
DRA7_UART4_CLKCTRL
,
dra7_uart4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0158:24"
},
{
DRA7_MCASP2_CLKCTRL
,
dra7_mcasp2_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0160:22"
,
"l4per2_clkdm"
},
{
DRA7_MCASP3_CLKCTRL
,
dra7_mcasp3_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0168:22"
,
"l4per2_clkdm"
},
{
DRA7_UART5_CLKCTRL
,
dra7_uart5_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0170:24"
},
{
DRA7_MCASP5_CLKCTRL
,
dra7_mcasp5_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0178:22"
,
"l4per2_clkdm"
},
{
DRA7_MCASP8_CLKCTRL
,
dra7_mcasp8_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0190:24"
,
"l4per2_clkdm"
},
{
DRA7_MCASP4_CLKCTRL
,
dra7_mcasp4_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0198:22"
,
"l4per2_clkdm"
},
{
DRA7_AES1_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_AES2_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_DES_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_RNG_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_SHAM_CLKCTRL
,
NULL
,
CLKF_HW_SUP
,
"l3_iclk_div"
,
"l4sec_clkdm"
},
{
DRA7_UART7_CLKCTRL
,
dra7_uart7_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:01d0:24"
,
"l4per2_clkdm"
},
{
DRA7_UART8_CLKCTRL
,
dra7_uart8_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:01e0:24"
,
"l4per2_clkdm"
},
{
DRA7_UART9_CLKCTRL
,
dra7_uart9_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:01e8:24"
,
"l4per2_clkdm"
},
{
DRA7_DCAN2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin1"
,
"l4per2_clkdm"
},
{
DRA7_MCASP6_CLKCTRL
,
dra7_mcasp6_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0204:22"
,
"l4per2_clkdm"
},
{
DRA7_MCASP7_CLKCTRL
,
dra7_mcasp7_bit_data
,
CLKF_SW_SUP
,
"l4per_cm:clk:0208:22"
,
"l4per2_clkdm"
},
static
const
struct
omap_clkctrl_reg_data
dra7_l4per2_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4PER2_L4_PER2_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L4PER2_PRUSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
""
},
{
DRA7_L4PER2_PRUSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
""
},
{
DRA7_L4PER2_EPWMSS1_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
},
{
DRA7_L4PER2_EPWMSS2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
},
{
DRA7_L4PER2_EPWMSS0_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"l4_root_clk_div"
},
{
DRA7_L4PER2_QSPI_CLKCTRL
,
dra7_qspi_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:012c:25"
},
{
DRA7_L4PER2_MCASP2_CLKCTRL
,
dra7_mcasp2_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:0154:22"
},
{
DRA7_L4PER2_MCASP3_CLKCTRL
,
dra7_mcasp3_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:015c:22"
},
{
DRA7_L4PER2_MCASP5_CLKCTRL
,
dra7_mcasp5_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:016c:22"
},
{
DRA7_L4PER2_MCASP8_CLKCTRL
,
dra7_mcasp8_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:0184:24"
},
{
DRA7_L4PER2_MCASP4_CLKCTRL
,
dra7_mcasp4_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:018c:22"
},
{
DRA7_L4PER2_UART7_CLKCTRL
,
dra7_uart7_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:01c4:24"
},
{
DRA7_L4PER2_UART8_CLKCTRL
,
dra7_uart8_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:01d4:24"
},
{
DRA7_L4PER2_UART9_CLKCTRL
,
dra7_uart9_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:01dc:24"
},
{
DRA7_L4PER2_DCAN2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_clkin1"
},
{
DRA7_L4PER2_MCASP6_CLKCTRL
,
dra7_mcasp6_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:01f8:22"
},
{
DRA7_L4PER2_MCASP7_CLKCTRL
,
dra7_mcasp7_bit_data
,
CLKF_SW_SUP
,
"l4per2-clkctrl:01fc:22"
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer13_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer14_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer15_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_bit_data
dra7_timer16_bit_data
[]
__initconst
=
{
{
24
,
TI_CLK_MUX
,
dra7_timer10_gfclk_mux_parents
,
NULL
},
{
0
},
};
static
const
struct
omap_clkctrl_reg_data
dra7_l4per3_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4PER3_L4_PER3_CLKCTRL
,
NULL
,
0
,
"l3_iclk_div"
},
{
DRA7_L4PER3_TIMER13_CLKCTRL
,
dra7_timer13_bit_data
,
CLKF_SW_SUP
,
"l4per3-clkctrl:00b4:24"
},
{
DRA7_L4PER3_TIMER14_CLKCTRL
,
dra7_timer14_bit_data
,
CLKF_SW_SUP
,
"l4per3-clkctrl:00bc:24"
},
{
DRA7_L4PER3_TIMER15_CLKCTRL
,
dra7_timer15_bit_data
,
CLKF_SW_SUP
,
"l4per3-clkctrl:00c4:24"
},
{
DRA7_L4PER3_TIMER16_CLKCTRL
,
dra7_timer16_bit_data
,
CLKF_SW_SUP
,
"l4per3-clkctrl:011c:24"
},
{
0
},
};
...
...
@@ -700,24 +753,28 @@ static const struct omap_clkctrl_bit_data dra7_dcan1_bit_data[] __initconst = {
};
static
const
struct
omap_clkctrl_reg_data
dra7_wkupaon_clkctrl_regs
[]
__initconst
=
{
{
DRA7_L4_WKUP_CLKCTRL
,
NULL
,
0
,
"wkupaon_iclk_mux"
},
{
DRA7_WD_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_32k_ck"
},
{
DRA7_GPIO1_CLKCTRL
,
dra7_gpio1_bit_data
,
CLKF_HW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_
TIMER1_CLKCTRL
,
dra7_timer1_bit_data
,
CLKF_SW_SUP
,
"wkupaon_cm:clk
:0020:24"
},
{
DRA7_TIMER12_CLKCTRL
,
NULL
,
0
,
"secure_32k_clk_src_ck"
},
{
DRA7_COUNTER_32K_CLKCTRL
,
NULL
,
0
,
"wkupaon_iclk_mux"
},
{
DRA7_
UART10_CLKCTRL
,
dra7_uart10_bit_data
,
CLKF_SW_SUP
,
"wkupaon_cm:clk
:0060:24"
},
{
DRA7_
DCAN1_CLKCTRL
,
dra7_dcan1_bit_data
,
CLKF_SW_SUP
,
"wkupaon_cm:clk
:0068:24"
},
{
DRA7_
ADC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcan_clk"
},
{
DRA7_
WKUPAON_
L4_WKUP_CLKCTRL
,
NULL
,
0
,
"wkupaon_iclk_mux"
},
{
DRA7_W
KUPAON_W
D_TIMER2_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"sys_32k_ck"
},
{
DRA7_
WKUPAON_
GPIO1_CLKCTRL
,
dra7_gpio1_bit_data
,
CLKF_HW_SUP
,
"wkupaon_iclk_mux"
},
{
DRA7_
WKUPAON_TIMER1_CLKCTRL
,
dra7_timer1_bit_data
,
CLKF_SW_SUP
,
"wkupaon-clkctrl
:0020:24"
},
{
DRA7_
WKUPAON_
TIMER12_CLKCTRL
,
NULL
,
0
,
"secure_32k_clk_src_ck"
},
{
DRA7_
WKUPAON_
COUNTER_32K_CLKCTRL
,
NULL
,
0
,
"wkupaon_iclk_mux"
},
{
DRA7_
WKUPAON_UART10_CLKCTRL
,
dra7_uart10_bit_data
,
CLKF_SW_SUP
,
"wkupaon-clkctrl
:0060:24"
},
{
DRA7_
WKUPAON_DCAN1_CLKCTRL
,
dra7_dcan1_bit_data
,
CLKF_SW_SUP
,
"wkupaon-clkctrl
:0068:24"
},
{
DRA7_
WKUPAON_ADC_CLKCTRL
,
NULL
,
CLKF_SW_SUP
,
"mcan_clk"
},
{
0
},
};
const
struct
omap_clkctrl_data
dra7_clkctrl_data
[]
__initconst
=
{
{
0x4a005320
,
dra7_mpu_clkctrl_regs
},
{
0x4a005540
,
dra7_ipu_clkctrl_regs
},
{
0x4a005740
,
dra7_rtc_clkctrl_regs
},
{
0x4a005420
,
dra7_dsp1_clkctrl_regs
},
{
0x4a005520
,
dra7_ipu1_clkctrl_regs
},
{
0x4a005550
,
dra7_ipu_clkctrl_regs
},
{
0x4a005620
,
dra7_dsp2_clkctrl_regs
},
{
0x4a005720
,
dra7_rtc_clkctrl_regs
},
{
0x4a008620
,
dra7_coreaon_clkctrl_regs
},
{
0x4a008720
,
dra7_l3main1_clkctrl_regs
},
{
0x4a008920
,
dra7_ipu2_clkctrl_regs
},
{
0x4a008a20
,
dra7_dma_clkctrl_regs
},
{
0x4a008b20
,
dra7_emif_clkctrl_regs
},
{
0x4a008c00
,
dra7_atl_clkctrl_regs
},
...
...
@@ -725,7 +782,12 @@ const struct omap_clkctrl_data dra7_clkctrl_data[] __initconst = {
{
0x4a008e20
,
dra7_l3instr_clkctrl_regs
},
{
0x4a009120
,
dra7_dss_clkctrl_regs
},
{
0x4a009320
,
dra7_l3init_clkctrl_regs
},
{
0x4a009700
,
dra7_l4per_clkctrl_regs
},
{
0x4a0093b0
,
dra7_pcie_clkctrl_regs
},
{
0x4a0093d0
,
dra7_gmac_clkctrl_regs
},
{
0x4a009728
,
dra7_l4per_clkctrl_regs
},
{
0x4a0098a0
,
dra7_l4sec_clkctrl_regs
},
{
0x4a00970c
,
dra7_l4per2_clkctrl_regs
},
{
0x4a009714
,
dra7_l4per3_clkctrl_regs
},
{
0x4ae07820
,
dra7_wkupaon_clkctrl_regs
},
{
0
},
};
...
...
@@ -734,91 +796,92 @@ static struct ti_dt_clk dra7xx_clks[] = {
DT_CLK
(
NULL
,
"timer_32k_ck"
,
"sys_32k_ck"
),
DT_CLK
(
NULL
,
"sys_clkin_ck"
,
"timer_sys_clk_div"
),
DT_CLK
(
NULL
,
"sys_clkin"
,
"sys_clkin1"
),
DT_CLK
(
NULL
,
"atl_dpll_clk_mux"
,
"atl_cm:0000:24"
),
DT_CLK
(
NULL
,
"atl_gfclk_mux"
,
"atl_cm:0000:26"
),
DT_CLK
(
NULL
,
"dcan1_sys_clk_mux"
,
"wkupaon_cm:0068:24"
),
DT_CLK
(
NULL
,
"dss_32khz_clk"
,
"dss_cm:0000:11"
),
DT_CLK
(
NULL
,
"dss_48mhz_clk"
,
"dss_cm:0000:9"
),
DT_CLK
(
NULL
,
"dss_dss_clk"
,
"dss_cm:0000:8"
),
DT_CLK
(
NULL
,
"dss_hdmi_clk"
,
"dss_cm:0000:10"
),
DT_CLK
(
NULL
,
"dss_video1_clk"
,
"dss_cm:0000:12"
),
DT_CLK
(
NULL
,
"dss_video2_clk"
,
"dss_cm:0000:13"
),
DT_CLK
(
NULL
,
"gmac_rft_clk_mux"
,
"l3init_cm:00b0:25"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"wkupaon_cm:0018:8"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4per_cm:0060:8"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4per_cm:0068:8"
),
DT_CLK
(
NULL
,
"gpio4_dbclk"
,
"l4per_cm:0070:8"
),
DT_CLK
(
NULL
,
"gpio5_dbclk"
,
"l4per_cm:0078:8"
),
DT_CLK
(
NULL
,
"gpio6_dbclk"
,
"l4per_cm:0080:8"
),
DT_CLK
(
NULL
,
"gpio7_dbclk"
,
"l4per_cm:0110:8"
),
DT_CLK
(
NULL
,
"gpio8_dbclk"
,
"l4per_cm:0118:8"
),
DT_CLK
(
NULL
,
"mcasp1_ahclkr_mux"
,
"ipu_cm:0010:28"
),
DT_CLK
(
NULL
,
"mcasp1_ahclkx_mux"
,
"ipu_cm:0010:24"
),
DT_CLK
(
NULL
,
"mcasp1_aux_gfclk_mux"
,
"ipu_cm:0010:22"
),
DT_CLK
(
NULL
,
"mcasp2_ahclkr_mux"
,
"l4per_cm:0160:28"
),
DT_CLK
(
NULL
,
"mcasp2_ahclkx_mux"
,
"l4per_cm:0160:24"
),
DT_CLK
(
NULL
,
"mcasp2_aux_gfclk_mux"
,
"l4per_cm:0160:22"
),
DT_CLK
(
NULL
,
"mcasp3_ahclkx_mux"
,
"l4per_cm:0168:24"
),
DT_CLK
(
NULL
,
"mcasp3_aux_gfclk_mux"
,
"l4per_cm:0168:22"
),
DT_CLK
(
NULL
,
"mcasp4_ahclkx_mux"
,
"l4per_cm:0198:24"
),
DT_CLK
(
NULL
,
"mcasp4_aux_gfclk_mux"
,
"l4per_cm:0198:22"
),
DT_CLK
(
NULL
,
"mcasp5_ahclkx_mux"
,
"l4per_cm:0178:24"
),
DT_CLK
(
NULL
,
"mcasp5_aux_gfclk_mux"
,
"l4per_cm:0178:22"
),
DT_CLK
(
NULL
,
"mcasp6_ahclkx_mux"
,
"l4per_cm:0204:24"
),
DT_CLK
(
NULL
,
"mcasp6_aux_gfclk_mux"
,
"l4per_cm:0204:22"
),
DT_CLK
(
NULL
,
"mcasp7_ahclkx_mux"
,
"l4per_cm:0208:24"
),
DT_CLK
(
NULL
,
"mcasp7_aux_gfclk_mux"
,
"l4per_cm:0208:22"
),
DT_CLK
(
NULL
,
"mcasp8_ahclkx_mux"
,
"l4per_cm:0190:22"
),
DT_CLK
(
NULL
,
"mcasp8_aux_gfclk_mux"
,
"l4per_cm:0190:24"
),
DT_CLK
(
NULL
,
"mmc1_clk32k"
,
"l3init_cm:0008:8"
),
DT_CLK
(
NULL
,
"mmc1_fclk_div"
,
"l3init_cm:0008:25"
),
DT_CLK
(
NULL
,
"mmc1_fclk_mux"
,
"l3init_cm:0008:24"
),
DT_CLK
(
NULL
,
"mmc2_clk32k"
,
"l3init_cm:0010:8"
),
DT_CLK
(
NULL
,
"mmc2_fclk_div"
,
"l3init_cm:0010:25"
),
DT_CLK
(
NULL
,
"mmc2_fclk_mux"
,
"l3init_cm:0010:24"
),
DT_CLK
(
NULL
,
"mmc3_clk32k"
,
"l4per_cm:0120:8"
),
DT_CLK
(
NULL
,
"mmc3_gfclk_div"
,
"l4per_cm:0120:25"
),
DT_CLK
(
NULL
,
"mmc3_gfclk_mux"
,
"l4per_cm:0120:24"
),
DT_CLK
(
NULL
,
"mmc4_clk32k"
,
"l4per_cm:0128:8"
),
DT_CLK
(
NULL
,
"mmc4_gfclk_div"
,
"l4per_cm:0128:25"
),
DT_CLK
(
NULL
,
"mmc4_gfclk_mux"
,
"l4per_cm:0128:24"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_32khz"
,
"l3init_cm:0090:8"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_clk"
,
"l3init_cm:0090:9"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_div_clk"
,
"l3init_cm:0090:10"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_32khz"
,
"l3init_cm:0098:8"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_clk"
,
"l3init_cm:0098:9"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_div_clk"
,
"l3init_cm:0098:10"
),
DT_CLK
(
NULL
,
"qspi_gfclk_div"
,
"l4per_cm:0138:25"
),
DT_CLK
(
NULL
,
"qspi_gfclk_mux"
,
"l4per_cm:0138:24"
),
DT_CLK
(
NULL
,
"rmii_50mhz_clk_mux"
,
"l3init_cm:00b0:24"
),
DT_CLK
(
NULL
,
"sata_ref_clk"
,
"l3init_cm:0068:8"
),
DT_CLK
(
NULL
,
"timer10_gfclk_mux"
,
"l4per_cm:0028:24"
),
DT_CLK
(
NULL
,
"timer11_gfclk_mux"
,
"l4per_cm:0030:24"
),
DT_CLK
(
NULL
,
"timer13_gfclk_mux"
,
"l4per_cm:00c8:24"
),
DT_CLK
(
NULL
,
"timer14_gfclk_mux"
,
"l4per_cm:00d0:24"
),
DT_CLK
(
NULL
,
"timer15_gfclk_mux"
,
"l4per_cm:00d8:24"
),
DT_CLK
(
NULL
,
"timer16_gfclk_mux"
,
"l4per_cm:0130:24"
),
DT_CLK
(
NULL
,
"timer1_gfclk_mux"
,
"wkupaon_cm:0020:24"
),
DT_CLK
(
NULL
,
"timer2_gfclk_mux"
,
"l4per_cm:0038:24"
),
DT_CLK
(
NULL
,
"timer3_gfclk_mux"
,
"l4per_cm:0040:24"
),
DT_CLK
(
NULL
,
"timer4_gfclk_mux"
,
"l4per_cm:0048:24"
),
DT_CLK
(
NULL
,
"timer5_gfclk_mux"
,
"ipu_cm:0018:24"
),
DT_CLK
(
NULL
,
"timer6_gfclk_mux"
,
"ipu_cm:0020:24"
),
DT_CLK
(
NULL
,
"timer7_gfclk_mux"
,
"ipu_cm:0028:24"
),
DT_CLK
(
NULL
,
"timer8_gfclk_mux"
,
"ipu_cm:0030:24"
),
DT_CLK
(
NULL
,
"timer9_gfclk_mux"
,
"l4per_cm:0050:24"
),
DT_CLK
(
NULL
,
"uart10_gfclk_mux"
,
"wkupaon_cm:0060:24"
),
DT_CLK
(
NULL
,
"uart1_gfclk_mux"
,
"l4per_cm:0140:24"
),
DT_CLK
(
NULL
,
"uart2_gfclk_mux"
,
"l4per_cm:0148:24"
),
DT_CLK
(
NULL
,
"uart3_gfclk_mux"
,
"l4per_cm:0150:24"
),
DT_CLK
(
NULL
,
"uart4_gfclk_mux"
,
"l4per_cm:0158:24"
),
DT_CLK
(
NULL
,
"uart5_gfclk_mux"
,
"l4per_cm:0170:24"
),
DT_CLK
(
NULL
,
"uart6_gfclk_mux"
,
"ipu_cm:0040:24"
),
DT_CLK
(
NULL
,
"uart7_gfclk_mux"
,
"l4per_cm:01d0:24"
),
DT_CLK
(
NULL
,
"uart8_gfclk_mux"
,
"l4per_cm:01e0:24"
),
DT_CLK
(
NULL
,
"uart9_gfclk_mux"
,
"l4per_cm:01e8:24"
),
DT_CLK
(
NULL
,
"usb_otg_ss1_refclk960m"
,
"l3init_cm:00d0:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss2_refclk960m"
,
"l3init_cm:0020:8"
),
DT_CLK
(
NULL
,
"atl_dpll_clk_mux"
,
"atl-clkctrl:0000:24"
),
DT_CLK
(
NULL
,
"atl_gfclk_mux"
,
"atl-clkctrl:0000:26"
),
DT_CLK
(
NULL
,
"dcan1_sys_clk_mux"
,
"wkupaon-clkctrl:0068:24"
),
DT_CLK
(
NULL
,
"dss_32khz_clk"
,
"dss-clkctrl:0000:11"
),
DT_CLK
(
NULL
,
"dss_48mhz_clk"
,
"dss-clkctrl:0000:9"
),
DT_CLK
(
NULL
,
"dss_dss_clk"
,
"dss-clkctrl:0000:8"
),
DT_CLK
(
NULL
,
"dss_hdmi_clk"
,
"dss-clkctrl:0000:10"
),
DT_CLK
(
NULL
,
"dss_video1_clk"
,
"dss-clkctrl:0000:12"
),
DT_CLK
(
NULL
,
"dss_video2_clk"
,
"dss-clkctrl:0000:13"
),
DT_CLK
(
NULL
,
"gmac_rft_clk_mux"
,
"gmac-clkctrl:0000:25"
),
DT_CLK
(
NULL
,
"gpio1_dbclk"
,
"wkupaon-clkctrl:0018:8"
),
DT_CLK
(
NULL
,
"gpio2_dbclk"
,
"l4per-clkctrl:0038:8"
),
DT_CLK
(
NULL
,
"gpio3_dbclk"
,
"l4per-clkctrl:0040:8"
),
DT_CLK
(
NULL
,
"gpio4_dbclk"
,
"l4per-clkctrl:0048:8"
),
DT_CLK
(
NULL
,
"gpio5_dbclk"
,
"l4per-clkctrl:0050:8"
),
DT_CLK
(
NULL
,
"gpio6_dbclk"
,
"l4per-clkctrl:0058:8"
),
DT_CLK
(
NULL
,
"gpio7_dbclk"
,
"l4per-clkctrl:00e8:8"
),
DT_CLK
(
NULL
,
"gpio8_dbclk"
,
"l4per-clkctrl:00f0:8"
),
DT_CLK
(
NULL
,
"ipu1_gfclk_mux"
,
"ipu1-clkctrl:0000:24"
),
DT_CLK
(
NULL
,
"mcasp1_ahclkr_mux"
,
"ipu-clkctrl:0000:28"
),
DT_CLK
(
NULL
,
"mcasp1_ahclkx_mux"
,
"ipu-clkctrl:0000:24"
),
DT_CLK
(
NULL
,
"mcasp1_aux_gfclk_mux"
,
"ipu-clkctrl:0000:22"
),
DT_CLK
(
NULL
,
"mcasp2_ahclkr_mux"
,
"l4per2-clkctrl:0154:28"
),
DT_CLK
(
NULL
,
"mcasp2_ahclkx_mux"
,
"l4per2-clkctrl:0154:24"
),
DT_CLK
(
NULL
,
"mcasp2_aux_gfclk_mux"
,
"l4per2-clkctrl:0154:22"
),
DT_CLK
(
NULL
,
"mcasp3_ahclkx_mux"
,
"l4per2-clkctrl:015c:24"
),
DT_CLK
(
NULL
,
"mcasp3_aux_gfclk_mux"
,
"l4per2-clkctrl:015c:22"
),
DT_CLK
(
NULL
,
"mcasp4_ahclkx_mux"
,
"l4per2-clkctrl:018c:24"
),
DT_CLK
(
NULL
,
"mcasp4_aux_gfclk_mux"
,
"l4per2-clkctrl:018c:22"
),
DT_CLK
(
NULL
,
"mcasp5_ahclkx_mux"
,
"l4per2-clkctrl:016c:24"
),
DT_CLK
(
NULL
,
"mcasp5_aux_gfclk_mux"
,
"l4per2-clkctrl:016c:22"
),
DT_CLK
(
NULL
,
"mcasp6_ahclkx_mux"
,
"l4per2-clkctrl:01f8:24"
),
DT_CLK
(
NULL
,
"mcasp6_aux_gfclk_mux"
,
"l4per2-clkctrl:01f8:22"
),
DT_CLK
(
NULL
,
"mcasp7_ahclkx_mux"
,
"l4per2-clkctrl:01fc:24"
),
DT_CLK
(
NULL
,
"mcasp7_aux_gfclk_mux"
,
"l4per2-clkctrl:01fc:22"
),
DT_CLK
(
NULL
,
"mcasp8_ahclkx_mux"
,
"l4per2-clkctrl:0184:22"
),
DT_CLK
(
NULL
,
"mcasp8_aux_gfclk_mux"
,
"l4per2-clkctrl:0184:24"
),
DT_CLK
(
NULL
,
"mmc1_clk32k"
,
"l3init-clkctrl:0008:8"
),
DT_CLK
(
NULL
,
"mmc1_fclk_div"
,
"l3init-clkctrl:0008:25"
),
DT_CLK
(
NULL
,
"mmc1_fclk_mux"
,
"l3init-clkctrl:0008:24"
),
DT_CLK
(
NULL
,
"mmc2_clk32k"
,
"l3init-clkctrl:0010:8"
),
DT_CLK
(
NULL
,
"mmc2_fclk_div"
,
"l3init-clkctrl:0010:25"
),
DT_CLK
(
NULL
,
"mmc2_fclk_mux"
,
"l3init-clkctrl:0010:24"
),
DT_CLK
(
NULL
,
"mmc3_clk32k"
,
"l4per-clkctrl:00f8:8"
),
DT_CLK
(
NULL
,
"mmc3_gfclk_div"
,
"l4per-clkctrl:00f8:25"
),
DT_CLK
(
NULL
,
"mmc3_gfclk_mux"
,
"l4per-clkctrl:00f8:24"
),
DT_CLK
(
NULL
,
"mmc4_clk32k"
,
"l4per-clkctrl:0100:8"
),
DT_CLK
(
NULL
,
"mmc4_gfclk_div"
,
"l4per-clkctrl:0100:25"
),
DT_CLK
(
NULL
,
"mmc4_gfclk_mux"
,
"l4per-clkctrl:0100:24"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_32khz"
,
"pcie-clkctrl:0000:8"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_clk"
,
"pcie-clkctrl:0000:9"
),
DT_CLK
(
NULL
,
"optfclk_pciephy1_div_clk"
,
"pcie-clkctrl:0000:10"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_32khz"
,
"pcie-clkctrl:0008:8"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_clk"
,
"pcie-clkctrl:0008:9"
),
DT_CLK
(
NULL
,
"optfclk_pciephy2_div_clk"
,
"pcie-clkctrl:0008:10"
),
DT_CLK
(
NULL
,
"qspi_gfclk_div"
,
"l4per2-clkctrl:012c:25"
),
DT_CLK
(
NULL
,
"qspi_gfclk_mux"
,
"l4per2-clkctrl:012c:24"
),
DT_CLK
(
NULL
,
"rmii_50mhz_clk_mux"
,
"gmac-clkctrl:0000:24"
),
DT_CLK
(
NULL
,
"sata_ref_clk"
,
"l3init-clkctrl:0068:8"
),
DT_CLK
(
NULL
,
"timer10_gfclk_mux"
,
"l4per-clkctrl:0000:24"
),
DT_CLK
(
NULL
,
"timer11_gfclk_mux"
,
"l4per-clkctrl:0008:24"
),
DT_CLK
(
NULL
,
"timer13_gfclk_mux"
,
"l4per3-clkctrl:00b4:24"
),
DT_CLK
(
NULL
,
"timer14_gfclk_mux"
,
"l4per3-clkctrl:00bc:24"
),
DT_CLK
(
NULL
,
"timer15_gfclk_mux"
,
"l4per3-clkctrl:00c4:24"
),
DT_CLK
(
NULL
,
"timer16_gfclk_mux"
,
"l4per3-clkctrl:011c:24"
),
DT_CLK
(
NULL
,
"timer1_gfclk_mux"
,
"wkupaon-clkctrl:0020:24"
),
DT_CLK
(
NULL
,
"timer2_gfclk_mux"
,
"l4per-clkctrl:0010:24"
),
DT_CLK
(
NULL
,
"timer3_gfclk_mux"
,
"l4per-clkctrl:0018:24"
),
DT_CLK
(
NULL
,
"timer4_gfclk_mux"
,
"l4per-clkctrl:0020:24"
),
DT_CLK
(
NULL
,
"timer5_gfclk_mux"
,
"ipu-clkctrl:0008:24"
),
DT_CLK
(
NULL
,
"timer6_gfclk_mux"
,
"ipu-clkctrl:0010:24"
),
DT_CLK
(
NULL
,
"timer7_gfclk_mux"
,
"ipu-clkctrl:0018:24"
),
DT_CLK
(
NULL
,
"timer8_gfclk_mux"
,
"ipu-clkctrl:0020:24"
),
DT_CLK
(
NULL
,
"timer9_gfclk_mux"
,
"l4per-clkctrl:0028:24"
),
DT_CLK
(
NULL
,
"uart10_gfclk_mux"
,
"wkupaon-clkctrl:0060:24"
),
DT_CLK
(
NULL
,
"uart1_gfclk_mux"
,
"l4per-clkctrl:0118:24"
),
DT_CLK
(
NULL
,
"uart2_gfclk_mux"
,
"l4per-clkctrl:0120:24"
),
DT_CLK
(
NULL
,
"uart3_gfclk_mux"
,
"l4per-clkctrl:0128:24"
),
DT_CLK
(
NULL
,
"uart4_gfclk_mux"
,
"l4per-clkctrl:0130:24"
),
DT_CLK
(
NULL
,
"uart5_gfclk_mux"
,
"l4per-clkctrl:0148:24"
),
DT_CLK
(
NULL
,
"uart6_gfclk_mux"
,
"ipu-clkctrl:0030:24"
),
DT_CLK
(
NULL
,
"uart7_gfclk_mux"
,
"l4per2-clkctrl:01c4:24"
),
DT_CLK
(
NULL
,
"uart8_gfclk_mux"
,
"l4per2-clkctrl:01d4:24"
),
DT_CLK
(
NULL
,
"uart9_gfclk_mux"
,
"l4per2-clkctrl:01dc:24"
),
DT_CLK
(
NULL
,
"usb_otg_ss1_refclk960m"
,
"l3init-clkctrl:00d0:8"
),
DT_CLK
(
NULL
,
"usb_otg_ss2_refclk960m"
,
"l3init-clkctrl:0020:8"
),
{
.
node_name
=
NULL
},
};
...
...
@@ -827,6 +890,9 @@ int __init dra7xx_dt_clk_init(void)
int
rc
;
struct
clk
*
dpll_ck
,
*
hdcp_ck
;
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
ti_dt_clocks_register
(
dra7xx_compat_clks
);
else
ti_dt_clocks_register
(
dra7xx_clks
);
omap2_clk_disable_autoidle_all
();
...
...
drivers/clk/ti/clk.c
View file @
4f1985af
...
...
@@ -34,7 +34,7 @@
struct
ti_clk_ll_ops
*
ti_clk_ll_ops
;
static
struct
device_node
*
clocks_node_ptr
[
CLK_MAX_MEMMAPS
];
st
atic
st
ruct
ti_clk_features
ti_clk_features
;
struct
ti_clk_features
ti_clk_features
;
struct
clk_iomap
{
struct
regmap
*
regmap
;
...
...
@@ -129,7 +129,7 @@ int ti_clk_setup_ll_ops(struct ti_clk_ll_ops *ops)
void
__init
ti_dt_clocks_register
(
struct
ti_dt_clk
oclks
[])
{
struct
ti_dt_clk
*
c
;
struct
device_node
*
node
;
struct
device_node
*
node
,
*
parent
;
struct
clk
*
clk
;
struct
of_phandle_args
clkspec
;
char
buf
[
64
];
...
...
@@ -140,6 +140,9 @@ void __init ti_dt_clocks_register(struct ti_dt_clk oclks[])
int
ret
;
static
bool
clkctrl_nodes_missing
;
static
bool
has_clkctrl_data
;
static
bool
compat_mode
;
compat_mode
=
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
;
for
(
c
=
oclks
;
c
->
node_name
!=
NULL
;
c
++
)
{
strcpy
(
buf
,
c
->
node_name
);
...
...
@@ -164,8 +167,12 @@ void __init ti_dt_clocks_register(struct ti_dt_clk oclks[])
continue
;
node
=
of_find_node_by_name
(
NULL
,
buf
);
if
(
num_args
)
node
=
of_find_node_by_name
(
node
,
"clk"
);
if
(
num_args
&&
compat_mode
)
{
parent
=
node
;
node
=
of_get_child_by_name
(
parent
,
"clk"
);
of_node_put
(
parent
);
}
clkspec
.
np
=
node
;
clkspec
.
args_count
=
num_args
;
for
(
i
=
0
;
i
<
num_args
;
i
++
)
{
...
...
@@ -173,11 +180,12 @@ void __init ti_dt_clocks_register(struct ti_dt_clk oclks[])
if
(
ret
)
{
pr_warn
(
"Bad tag in %s at %d: %s
\n
"
,
c
->
node_name
,
i
,
tags
[
i
]);
of_node_put
(
node
);
return
;
}
}
clk
=
of_clk_get_from_provider
(
&
clkspec
);
of_node_put
(
node
);
if
(
!
IS_ERR
(
clk
))
{
c
->
lk
.
clk
=
clk
;
clkdev_add
(
&
c
->
lk
);
...
...
drivers/clk/ti/clkctrl.c
View file @
4f1985af
...
...
@@ -259,8 +259,13 @@ _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider,
struct
omap_clkctrl_clk
*
clkctrl_clk
;
int
ret
=
0
;
init
.
name
=
kasprintf
(
GFP_KERNEL
,
"%s:%s:%04x:%d"
,
node
->
parent
->
name
,
node
->
name
,
offset
,
bit
);
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
init
.
name
=
kasprintf
(
GFP_KERNEL
,
"%s:%s:%04x:%d"
,
node
->
parent
->
name
,
node
->
name
,
offset
,
bit
);
else
init
.
name
=
kasprintf
(
GFP_KERNEL
,
"%s:%04x:%d"
,
node
->
name
,
offset
,
bit
);
clkctrl_clk
=
kzalloc
(
sizeof
(
*
clkctrl_clk
),
GFP_KERNEL
);
if
(
!
init
.
name
||
!
clkctrl_clk
)
{
ret
=
-
ENOMEM
;
...
...
@@ -440,6 +445,11 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
const
__be32
*
addrp
;
u32
addr
;
int
ret
;
char
*
c
;
if
(
!
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
&&
!
strcmp
(
node
->
name
,
"clk"
))
ti_clk_features
.
flags
|=
TI_CLK_CLKCTRL_COMPAT
;
addrp
=
of_get_address
(
node
,
0
,
NULL
,
NULL
);
addr
=
(
u32
)
of_translate_address
(
node
,
addrp
);
...
...
@@ -453,18 +463,35 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
data
=
omap5_clkctrl_data
;
#endif
#ifdef CONFIG_SOC_DRA7XX
if
(
of_machine_is_compatible
(
"ti,dra7"
))
if
(
of_machine_is_compatible
(
"ti,dra7"
))
{
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
data
=
dra7_clkctrl_compat_data
;
else
data
=
dra7_clkctrl_data
;
}
#endif
#ifdef CONFIG_SOC_AM33XX
if
(
of_machine_is_compatible
(
"ti,am33xx"
))
if
(
of_machine_is_compatible
(
"ti,am33xx"
))
{
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
data
=
am3_clkctrl_compat_data
;
else
data
=
am3_clkctrl_data
;
}
#endif
#ifdef CONFIG_SOC_AM43XX
if
(
of_machine_is_compatible
(
"ti,am4372"
))
if
(
of_machine_is_compatible
(
"ti,am4372"
))
{
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
data
=
am4_clkctrl_compat_data
;
else
data
=
am4_clkctrl_data
;
if
(
of_machine_is_compatible
(
"ti,am438x"
))
}
if
(
of_machine_is_compatible
(
"ti,am438x"
))
{
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
data
=
am438x_clkctrl_compat_data
;
else
data
=
am438x_clkctrl_data
;
}
#endif
#ifdef CONFIG_SOC_TI81XX
if
(
of_machine_is_compatible
(
"ti,dm814"
))
...
...
@@ -492,6 +519,7 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
provider
->
base
=
of_iomap
(
node
,
0
);
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
{
provider
->
clkdm_name
=
kmalloc
(
strlen
(
node
->
parent
->
name
)
+
3
,
GFP_KERNEL
);
if
(
!
provider
->
clkdm_name
)
{
...
...
@@ -500,13 +528,37 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
}
/*
* Create default clkdm name, replace _cm from end of parent node
*
name with _clkdm
* Create default clkdm name, replace _cm from end of parent
* node
name with _clkdm
*/
strcpy
(
provider
->
clkdm_name
,
node
->
parent
->
name
);
provider
->
clkdm_name
[
strlen
(
provider
->
clkdm_name
)
-
2
]
=
0
;
}
else
{
provider
->
clkdm_name
=
kmalloc
(
strlen
(
node
->
name
),
GFP_KERNEL
);
if
(
!
provider
->
clkdm_name
)
{
kfree
(
provider
);
return
;
}
/*
* Create default clkdm name, replace _clkctrl from end of
* node name with _clkdm
*/
strcpy
(
provider
->
clkdm_name
,
node
->
name
);
provider
->
clkdm_name
[
strlen
(
provider
->
clkdm_name
)
-
7
]
=
0
;
}
strcat
(
provider
->
clkdm_name
,
"clkdm"
);
/* Replace any dash from the clkdm name with underscore */
c
=
provider
->
clkdm_name
;
while
(
*
c
)
{
if
(
*
c
==
'-'
)
*
c
=
'_'
;
c
++
;
}
INIT_LIST_HEAD
(
&
provider
->
clocks
);
/* Generate clocks */
...
...
@@ -539,9 +591,13 @@ static void __init _ti_omap4_clkctrl_setup(struct device_node *node)
init
.
flags
=
0
;
if
(
reg_data
->
flags
&
CLKF_SET_RATE_PARENT
)
init
.
flags
|=
CLK_SET_RATE_PARENT
;
if
(
ti_clk_get_features
()
->
flags
&
TI_CLK_CLKCTRL_COMPAT
)
init
.
name
=
kasprintf
(
GFP_KERNEL
,
"%s:%s:%04x:%d"
,
node
->
parent
->
name
,
node
->
name
,
reg_data
->
offset
,
0
);
else
init
.
name
=
kasprintf
(
GFP_KERNEL
,
"%s:%04x:%d"
,
node
->
name
,
reg_data
->
offset
,
0
);
clkctrl_clk
=
kzalloc
(
sizeof
(
*
clkctrl_clk
),
GFP_KERNEL
);
if
(
!
init
.
name
||
!
clkctrl_clk
)
goto
cleanup
;
...
...
drivers/clk/ti/clock.h
View file @
4f1985af
...
...
@@ -24,6 +24,7 @@ struct clk_omap_divider {
u8
flags
;
s8
latch
;
const
struct
clk_div_table
*
table
;
u32
context
;
};
#define to_clk_omap_divider(_hw) container_of(_hw, struct clk_omap_divider, hw)
...
...
@@ -36,6 +37,7 @@ struct clk_omap_mux {
u8
shift
;
s8
latch
;
u8
flags
;
u8
saved_parent
;
};
#define to_clk_omap_mux(_hw) container_of(_hw, struct clk_omap_mux, hw)
...
...
@@ -184,9 +186,16 @@ struct omap_clkctrl_data {
extern
const
struct
omap_clkctrl_data
omap4_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
omap5_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
dra7_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
dra7_clkctrl_compat_data
[];
extern
struct
ti_dt_clk
dra7xx_compat_clks
[];
extern
const
struct
omap_clkctrl_data
am3_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
am3_clkctrl_compat_data
[];
extern
struct
ti_dt_clk
am33xx_compat_clks
[];
extern
const
struct
omap_clkctrl_data
am4_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
am4_clkctrl_compat_data
[];
extern
struct
ti_dt_clk
am43xx_compat_clks
[];
extern
const
struct
omap_clkctrl_data
am438x_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
am438x_clkctrl_compat_data
[];
extern
const
struct
omap_clkctrl_data
dm814_clkctrl_data
[];
extern
const
struct
omap_clkctrl_data
dm816_clkctrl_data
[];
...
...
@@ -233,6 +242,8 @@ extern const struct clk_ops ti_clk_divider_ops;
extern
const
struct
clk_ops
ti_clk_mux_ops
;
extern
const
struct
clk_ops
omap_gate_clk_ops
;
extern
struct
ti_clk_features
ti_clk_features
;
void
omap2_init_clk_clkdm
(
struct
clk_hw
*
hw
);
int
omap2_clkops_enable_clkdm
(
struct
clk_hw
*
hw
);
void
omap2_clkops_disable_clkdm
(
struct
clk_hw
*
hw
);
...
...
drivers/clk/ti/divider.c
View file @
4f1985af
...
...
@@ -268,10 +268,46 @@ static int ti_clk_divider_set_rate(struct clk_hw *hw, unsigned long rate,
return
0
;
}
/**
* clk_divider_save_context - Save the divider value
* @hw: pointer struct clk_hw
*
* Save the divider value
*/
static
int
clk_divider_save_context
(
struct
clk_hw
*
hw
)
{
struct
clk_omap_divider
*
divider
=
to_clk_omap_divider
(
hw
);
u32
val
;
val
=
ti_clk_ll_ops
->
clk_readl
(
&
divider
->
reg
)
>>
divider
->
shift
;
divider
->
context
=
val
&
div_mask
(
divider
);
return
0
;
}
/**
* clk_divider_restore_context - restore the saved the divider value
* @hw: pointer struct clk_hw
*
* Restore the saved the divider value
*/
static
void
clk_divider_restore_context
(
struct
clk_hw
*
hw
)
{
struct
clk_omap_divider
*
divider
=
to_clk_omap_divider
(
hw
);
u32
val
;
val
=
ti_clk_ll_ops
->
clk_readl
(
&
divider
->
reg
);
val
&=
~
(
div_mask
(
divider
)
<<
divider
->
shift
);
val
|=
divider
->
context
<<
divider
->
shift
;
ti_clk_ll_ops
->
clk_writel
(
val
,
&
divider
->
reg
);
}
const
struct
clk_ops
ti_clk_divider_ops
=
{
.
recalc_rate
=
ti_clk_divider_recalc_rate
,
.
round_rate
=
ti_clk_divider_round_rate
,
.
set_rate
=
ti_clk_divider_set_rate
,
.
save_context
=
clk_divider_save_context
,
.
restore_context
=
clk_divider_restore_context
,
};
static
struct
clk
*
_register_divider
(
struct
device
*
dev
,
const
char
*
name
,
...
...
drivers/clk/ti/dpll.c
View file @
4f1985af
...
...
@@ -39,6 +39,8 @@ static const struct clk_ops dpll_m4xen_ck_ops = {
.
set_rate_and_parent
=
&
omap3_noncore_dpll_set_rate_and_parent
,
.
determine_rate
=
&
omap4_dpll_regm4xen_determine_rate
,
.
get_parent
=
&
omap2_init_dpll_parent
,
.
save_context
=
&
omap3_core_dpll_save_context
,
.
restore_context
=
&
omap3_core_dpll_restore_context
,
};
#else
static
const
struct
clk_ops
dpll_m4xen_ck_ops
=
{};
...
...
@@ -62,6 +64,8 @@ static const struct clk_ops dpll_ck_ops = {
.
set_rate_and_parent
=
&
omap3_noncore_dpll_set_rate_and_parent
,
.
determine_rate
=
&
omap3_noncore_dpll_determine_rate
,
.
get_parent
=
&
omap2_init_dpll_parent
,
.
save_context
=
&
omap3_noncore_dpll_save_context
,
.
restore_context
=
&
omap3_noncore_dpll_restore_context
,
};
static
const
struct
clk_ops
dpll_no_gate_ck_ops
=
{
...
...
@@ -72,6 +76,8 @@ static const struct clk_ops dpll_no_gate_ck_ops = {
.
set_parent
=
&
omap3_noncore_dpll_set_parent
,
.
set_rate_and_parent
=
&
omap3_noncore_dpll_set_rate_and_parent
,
.
determine_rate
=
&
omap3_noncore_dpll_determine_rate
,
.
save_context
=
&
omap3_noncore_dpll_save_context
,
.
restore_context
=
&
omap3_noncore_dpll_restore_context
};
#else
static
const
struct
clk_ops
dpll_core_ck_ops
=
{};
...
...
drivers/clk/ti/dpll3xxx.c
View file @
4f1985af
...
...
@@ -782,6 +782,130 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw *hw,
return
rate
;
}
/**
* omap3_core_dpll_save_context - Save the m and n values of the divider
* @hw: pointer struct clk_hw
*
* Before the dpll registers are lost save the last rounded rate m and n
* and the enable mask.
*/
int
omap3_core_dpll_save_context
(
struct
clk_hw
*
hw
)
{
struct
clk_hw_omap
*
clk
=
to_clk_hw_omap
(
hw
);
struct
dpll_data
*
dd
;
u32
v
;
dd
=
clk
->
dpll_data
;
v
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
control_reg
);
clk
->
context
=
(
v
&
dd
->
enable_mask
)
>>
__ffs
(
dd
->
enable_mask
);
if
(
clk
->
context
==
DPLL_LOCKED
)
{
v
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
mult_div1_reg
);
dd
->
last_rounded_m
=
(
v
&
dd
->
mult_mask
)
>>
__ffs
(
dd
->
mult_mask
);
dd
->
last_rounded_n
=
((
v
&
dd
->
div1_mask
)
>>
__ffs
(
dd
->
div1_mask
))
+
1
;
}
return
0
;
}
/**
* omap3_core_dpll_restore_context - restore the m and n values of the divider
* @hw: pointer struct clk_hw
*
* Restore the last rounded rate m and n
* and the enable mask.
*/
void
omap3_core_dpll_restore_context
(
struct
clk_hw
*
hw
)
{
struct
clk_hw_omap
*
clk
=
to_clk_hw_omap
(
hw
);
const
struct
dpll_data
*
dd
;
u32
v
;
dd
=
clk
->
dpll_data
;
if
(
clk
->
context
==
DPLL_LOCKED
)
{
_omap3_dpll_write_clken
(
clk
,
0x4
);
_omap3_wait_dpll_status
(
clk
,
0
);
v
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
mult_div1_reg
);
v
&=
~
(
dd
->
mult_mask
|
dd
->
div1_mask
);
v
|=
dd
->
last_rounded_m
<<
__ffs
(
dd
->
mult_mask
);
v
|=
(
dd
->
last_rounded_n
-
1
)
<<
__ffs
(
dd
->
div1_mask
);
ti_clk_ll_ops
->
clk_writel
(
v
,
&
dd
->
mult_div1_reg
);
_omap3_dpll_write_clken
(
clk
,
DPLL_LOCKED
);
_omap3_wait_dpll_status
(
clk
,
1
);
}
else
{
_omap3_dpll_write_clken
(
clk
,
clk
->
context
);
}
}
/**
* omap3_non_core_dpll_save_context - Save the m and n values of the divider
* @hw: pointer struct clk_hw
*
* Before the dpll registers are lost save the last rounded rate m and n
* and the enable mask.
*/
int
omap3_noncore_dpll_save_context
(
struct
clk_hw
*
hw
)
{
struct
clk_hw_omap
*
clk
=
to_clk_hw_omap
(
hw
);
struct
dpll_data
*
dd
;
u32
v
;
dd
=
clk
->
dpll_data
;
v
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
control_reg
);
clk
->
context
=
(
v
&
dd
->
enable_mask
)
>>
__ffs
(
dd
->
enable_mask
);
if
(
clk
->
context
==
DPLL_LOCKED
)
{
v
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
mult_div1_reg
);
dd
->
last_rounded_m
=
(
v
&
dd
->
mult_mask
)
>>
__ffs
(
dd
->
mult_mask
);
dd
->
last_rounded_n
=
((
v
&
dd
->
div1_mask
)
>>
__ffs
(
dd
->
div1_mask
))
+
1
;
}
return
0
;
}
/**
* omap3_core_dpll_restore_context - restore the m and n values of the divider
* @hw: pointer struct clk_hw
*
* Restore the last rounded rate m and n
* and the enable mask.
*/
void
omap3_noncore_dpll_restore_context
(
struct
clk_hw
*
hw
)
{
struct
clk_hw_omap
*
clk
=
to_clk_hw_omap
(
hw
);
const
struct
dpll_data
*
dd
;
u32
ctrl
,
mult_div1
;
dd
=
clk
->
dpll_data
;
ctrl
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
control_reg
);
mult_div1
=
ti_clk_ll_ops
->
clk_readl
(
&
dd
->
mult_div1_reg
);
if
(
clk
->
context
==
((
ctrl
&
dd
->
enable_mask
)
>>
__ffs
(
dd
->
enable_mask
))
&&
dd
->
last_rounded_m
==
((
mult_div1
&
dd
->
mult_mask
)
>>
__ffs
(
dd
->
mult_mask
))
&&
dd
->
last_rounded_n
==
((
mult_div1
&
dd
->
div1_mask
)
>>
__ffs
(
dd
->
div1_mask
))
+
1
)
{
/* nothing to be done */
return
;
}
if
(
clk
->
context
==
DPLL_LOCKED
)
omap3_noncore_dpll_program
(
clk
,
0
);
else
_omap3_dpll_write_clken
(
clk
,
clk
->
context
);
}
/* OMAP3/4 non-CORE DPLL clkops */
const
struct
clk_hw_omap_ops
clkhwops_omap3_dpll
=
{
.
allow_idle
=
omap3_dpll_allow_idle
,
...
...
drivers/clk/ti/gate.c
View file @
4f1985af
...
...
@@ -33,6 +33,7 @@ static const struct clk_ops omap_gate_clkdm_clk_ops = {
.
init
=
&
omap2_init_clk_clkdm
,
.
enable
=
&
omap2_clkops_enable_clkdm
,
.
disable
=
&
omap2_clkops_disable_clkdm
,
.
restore_context
=
clk_gate_restore_context
,
};
const
struct
clk_ops
omap_gate_clk_ops
=
{
...
...
@@ -40,6 +41,7 @@ const struct clk_ops omap_gate_clk_ops = {
.
enable
=
&
omap2_dflt_clk_enable
,
.
disable
=
&
omap2_dflt_clk_disable
,
.
is_enabled
=
&
omap2_dflt_clk_is_enabled
,
.
restore_context
=
clk_gate_restore_context
,
};
static
const
struct
clk_ops
omap_gate_clk_hsdiv_restore_ops
=
{
...
...
@@ -47,6 +49,7 @@ static const struct clk_ops omap_gate_clk_hsdiv_restore_ops = {
.
enable
=
&
omap36xx_gate_clk_enable_with_hsdiv_restore
,
.
disable
=
&
omap2_dflt_clk_disable
,
.
is_enabled
=
&
omap2_dflt_clk_is_enabled
,
.
restore_context
=
clk_gate_restore_context
,
};
/**
...
...
drivers/clk/ti/mux.c
View file @
4f1985af
...
...
@@ -91,10 +91,39 @@ static int ti_clk_mux_set_parent(struct clk_hw *hw, u8 index)
return
0
;
}
/**
* clk_mux_save_context - Save the parent selcted in the mux
* @hw: pointer struct clk_hw
*
* Save the parent mux value.
*/
static
int
clk_mux_save_context
(
struct
clk_hw
*
hw
)
{
struct
clk_omap_mux
*
mux
=
to_clk_omap_mux
(
hw
);
mux
->
saved_parent
=
ti_clk_mux_get_parent
(
hw
);
return
0
;
}
/**
* clk_mux_restore_context - Restore the parent in the mux
* @hw: pointer struct clk_hw
*
* Restore the saved parent mux value.
*/
static
void
clk_mux_restore_context
(
struct
clk_hw
*
hw
)
{
struct
clk_omap_mux
*
mux
=
to_clk_omap_mux
(
hw
);
ti_clk_mux_set_parent
(
hw
,
mux
->
saved_parent
);
}
const
struct
clk_ops
ti_clk_mux_ops
=
{
.
get_parent
=
ti_clk_mux_get_parent
,
.
set_parent
=
ti_clk_mux_set_parent
,
.
determine_rate
=
__clk_mux_determine_rate
,
.
save_context
=
clk_mux_save_context
,
.
restore_context
=
clk_mux_restore_context
,
};
static
struct
clk
*
_register_mux
(
struct
device
*
dev
,
const
char
*
name
,
...
...
include/dt-bindings/clock/am3.h
View file @
4f1985af
...
...
@@ -16,6 +16,8 @@
#define AM3_CLKCTRL_OFFSET 0x0
#define AM3_CLKCTRL_INDEX(offset) ((offset) - AM3_CLKCTRL_OFFSET)
/* XXX: Compatibility part begin, remove this once compatibility support is no longer needed */
/* l4_per clocks */
#define AM3_L4_PER_CLKCTRL_OFFSET 0x14
#define AM3_L4_PER_CLKCTRL_INDEX(offset) ((offset) - AM3_L4_PER_CLKCTRL_OFFSET)
...
...
@@ -105,4 +107,121 @@
#define AM3_L4_CEFUSE_CLKCTRL_INDEX(offset) ((offset) - AM3_L4_CEFUSE_CLKCTRL_OFFSET)
#define AM3_CEFUSE_CLKCTRL AM3_L4_CEFUSE_CLKCTRL_INDEX(0x20)
/* XXX: Compatibility part end */
/* l4ls clocks */
#define AM3_L4LS_CLKCTRL_OFFSET 0x38
#define AM3_L4LS_CLKCTRL_INDEX(offset) ((offset) - AM3_L4LS_CLKCTRL_OFFSET)
#define AM3_L4LS_UART6_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x38)
#define AM3_L4LS_MMC1_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x3c)
#define AM3_L4LS_ELM_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x40)
#define AM3_L4LS_I2C3_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x44)
#define AM3_L4LS_I2C2_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x48)
#define AM3_L4LS_SPI0_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x4c)
#define AM3_L4LS_SPI1_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x50)
#define AM3_L4LS_L4_LS_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x60)
#define AM3_L4LS_UART2_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x6c)
#define AM3_L4LS_UART3_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x70)
#define AM3_L4LS_UART4_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x74)
#define AM3_L4LS_UART5_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x78)
#define AM3_L4LS_TIMER7_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x7c)
#define AM3_L4LS_TIMER2_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x80)
#define AM3_L4LS_TIMER3_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x84)
#define AM3_L4LS_TIMER4_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x88)
#define AM3_L4LS_RNG_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x90)
#define AM3_L4LS_GPIO2_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xac)
#define AM3_L4LS_GPIO3_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xb0)
#define AM3_L4LS_GPIO4_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xb4)
#define AM3_L4LS_D_CAN0_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xc0)
#define AM3_L4LS_D_CAN1_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xc4)
#define AM3_L4LS_EPWMSS1_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xcc)
#define AM3_L4LS_EPWMSS0_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xd4)
#define AM3_L4LS_EPWMSS2_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xd8)
#define AM3_L4LS_TIMER5_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xec)
#define AM3_L4LS_TIMER6_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xf0)
#define AM3_L4LS_MMC2_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0xf4)
#define AM3_L4LS_SPINLOCK_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x10c)
#define AM3_L4LS_MAILBOX_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x110)
#define AM3_L4LS_OCPWP_CLKCTRL AM3_L4LS_CLKCTRL_INDEX(0x130)
/* l3s clocks */
#define AM3_L3S_CLKCTRL_OFFSET 0x1c
#define AM3_L3S_CLKCTRL_INDEX(offset) ((offset) - AM3_L3S_CLKCTRL_OFFSET)
#define AM3_L3S_USB_OTG_HS_CLKCTRL AM3_L3S_CLKCTRL_INDEX(0x1c)
#define AM3_L3S_GPMC_CLKCTRL AM3_L3S_CLKCTRL_INDEX(0x30)
#define AM3_L3S_MCASP0_CLKCTRL AM3_L3S_CLKCTRL_INDEX(0x34)
#define AM3_L3S_MCASP1_CLKCTRL AM3_L3S_CLKCTRL_INDEX(0x68)
#define AM3_L3S_MMC3_CLKCTRL AM3_L3S_CLKCTRL_INDEX(0xf8)
/* l3 clocks */
#define AM3_L3_CLKCTRL_OFFSET 0x24
#define AM3_L3_CLKCTRL_INDEX(offset) ((offset) - AM3_L3_CLKCTRL_OFFSET)
#define AM3_L3_TPTC0_CLKCTRL AM3_L3_CLKCTRL_INDEX(0x24)
#define AM3_L3_EMIF_CLKCTRL AM3_L3_CLKCTRL_INDEX(0x28)
#define AM3_L3_OCMCRAM_CLKCTRL AM3_L3_CLKCTRL_INDEX(0x2c)
#define AM3_L3_AES_CLKCTRL AM3_L3_CLKCTRL_INDEX(0x94)
#define AM3_L3_SHAM_CLKCTRL AM3_L3_CLKCTRL_INDEX(0xa0)
#define AM3_L3_TPCC_CLKCTRL AM3_L3_CLKCTRL_INDEX(0xbc)
#define AM3_L3_L3_INSTR_CLKCTRL AM3_L3_CLKCTRL_INDEX(0xdc)
#define AM3_L3_L3_MAIN_CLKCTRL AM3_L3_CLKCTRL_INDEX(0xe0)
#define AM3_L3_TPTC1_CLKCTRL AM3_L3_CLKCTRL_INDEX(0xfc)
#define AM3_L3_TPTC2_CLKCTRL AM3_L3_CLKCTRL_INDEX(0x100)
/* l4hs clocks */
#define AM3_L4HS_CLKCTRL_OFFSET 0x120
#define AM3_L4HS_CLKCTRL_INDEX(offset) ((offset) - AM3_L4HS_CLKCTRL_OFFSET)
#define AM3_L4HS_L4_HS_CLKCTRL AM3_L4HS_CLKCTRL_INDEX(0x120)
/* pruss_ocp clocks */
#define AM3_PRUSS_OCP_CLKCTRL_OFFSET 0xe8
#define AM3_PRUSS_OCP_CLKCTRL_INDEX(offset) ((offset) - AM3_PRUSS_OCP_CLKCTRL_OFFSET)
#define AM3_PRUSS_OCP_PRUSS_CLKCTRL AM3_PRUSS_OCP_CLKCTRL_INDEX(0xe8)
/* cpsw_125mhz clocks */
#define AM3_CPSW_125MHZ_CPGMAC0_CLKCTRL AM3_CLKCTRL_INDEX(0x14)
/* lcdc clocks */
#define AM3_LCDC_CLKCTRL_OFFSET 0x18
#define AM3_LCDC_CLKCTRL_INDEX(offset) ((offset) - AM3_LCDC_CLKCTRL_OFFSET)
#define AM3_LCDC_LCDC_CLKCTRL AM3_LCDC_CLKCTRL_INDEX(0x18)
/* clk_24mhz clocks */
#define AM3_CLK_24MHZ_CLKCTRL_OFFSET 0x14c
#define AM3_CLK_24MHZ_CLKCTRL_INDEX(offset) ((offset) - AM3_CLK_24MHZ_CLKCTRL_OFFSET)
#define AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL AM3_CLK_24MHZ_CLKCTRL_INDEX(0x14c)
/* l4_wkup clocks */
#define AM3_L4_WKUP_CONTROL_CLKCTRL AM3_CLKCTRL_INDEX(0x4)
#define AM3_L4_WKUP_GPIO1_CLKCTRL AM3_CLKCTRL_INDEX(0x8)
#define AM3_L4_WKUP_L4_WKUP_CLKCTRL AM3_CLKCTRL_INDEX(0xc)
#define AM3_L4_WKUP_UART1_CLKCTRL AM3_CLKCTRL_INDEX(0xb4)
#define AM3_L4_WKUP_I2C1_CLKCTRL AM3_CLKCTRL_INDEX(0xb8)
#define AM3_L4_WKUP_ADC_TSC_CLKCTRL AM3_CLKCTRL_INDEX(0xbc)
#define AM3_L4_WKUP_SMARTREFLEX0_CLKCTRL AM3_CLKCTRL_INDEX(0xc0)
#define AM3_L4_WKUP_TIMER1_CLKCTRL AM3_CLKCTRL_INDEX(0xc4)
#define AM3_L4_WKUP_SMARTREFLEX1_CLKCTRL AM3_CLKCTRL_INDEX(0xc8)
#define AM3_L4_WKUP_WD_TIMER2_CLKCTRL AM3_CLKCTRL_INDEX(0xd4)
/* l3_aon clocks */
#define AM3_L3_AON_CLKCTRL_OFFSET 0x14
#define AM3_L3_AON_CLKCTRL_INDEX(offset) ((offset) - AM3_L3_AON_CLKCTRL_OFFSET)
#define AM3_L3_AON_DEBUGSS_CLKCTRL AM3_L3_AON_CLKCTRL_INDEX(0x14)
/* l4_wkup_aon clocks */
#define AM3_L4_WKUP_AON_CLKCTRL_OFFSET 0xb0
#define AM3_L4_WKUP_AON_CLKCTRL_INDEX(offset) ((offset) - AM3_L4_WKUP_AON_CLKCTRL_OFFSET)
#define AM3_L4_WKUP_AON_WKUP_M3_CLKCTRL AM3_L4_WKUP_AON_CLKCTRL_INDEX(0xb0)
/* mpu clocks */
#define AM3_MPU_MPU_CLKCTRL AM3_CLKCTRL_INDEX(0x4)
/* l4_rtc clocks */
#define AM3_L4_RTC_RTC_CLKCTRL AM3_CLKCTRL_INDEX(0x0)
/* gfx_l3 clocks */
#define AM3_GFX_L3_GFX_CLKCTRL AM3_CLKCTRL_INDEX(0x4)
/* l4_cefuse clocks */
#define AM3_L4_CEFUSE_CEFUSE_CLKCTRL AM3_CLKCTRL_INDEX(0x20)
#endif
include/dt-bindings/clock/am4.h
View file @
4f1985af
...
...
@@ -16,6 +16,8 @@
#define AM4_CLKCTRL_OFFSET 0x20
#define AM4_CLKCTRL_INDEX(offset) ((offset) - AM4_CLKCTRL_OFFSET)
/* XXX: Compatibility part begin, remove this once compatibility support is no longer needed */
/* l4_wkup clocks */
#define AM4_ADC_TSC_CLKCTRL AM4_CLKCTRL_INDEX(0x120)
#define AM4_L4_WKUP_CLKCTRL AM4_CLKCTRL_INDEX(0x220)
...
...
@@ -110,4 +112,134 @@
#define AM4_DSS_CORE_CLKCTRL AM4_CLKCTRL_INDEX(0xa20)
#define AM4_CPGMAC0_CLKCTRL AM4_CLKCTRL_INDEX(0xb20)
/* XXX: Compatibility part end. */
/* l3s_tsc clocks */
#define AM4_L3S_TSC_CLKCTRL_OFFSET 0x120
#define AM4_L3S_TSC_CLKCTRL_INDEX(offset) ((offset) - AM4_L3S_TSC_CLKCTRL_OFFSET)
#define AM4_L3S_TSC_ADC_TSC_CLKCTRL AM4_L3S_TSC_CLKCTRL_INDEX(0x120)
/* l4_wkup_aon clocks */
#define AM4_L4_WKUP_AON_CLKCTRL_OFFSET 0x228
#define AM4_L4_WKUP_AON_CLKCTRL_INDEX(offset) ((offset) - AM4_L4_WKUP_AON_CLKCTRL_OFFSET)
#define AM4_L4_WKUP_AON_WKUP_M3_CLKCTRL AM4_L4_WKUP_AON_CLKCTRL_INDEX(0x228)
#define AM4_L4_WKUP_AON_COUNTER_32K_CLKCTRL AM4_L4_WKUP_AON_CLKCTRL_INDEX(0x230)
/* l4_wkup clocks */
#define AM4_L4_WKUP_CLKCTRL_OFFSET 0x220
#define AM4_L4_WKUP_CLKCTRL_INDEX(offset) ((offset) - AM4_L4_WKUP_CLKCTRL_OFFSET)
#define AM4_L4_WKUP_L4_WKUP_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x220)
#define AM4_L4_WKUP_TIMER1_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x328)
#define AM4_L4_WKUP_WD_TIMER2_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x338)
#define AM4_L4_WKUP_I2C1_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x340)
#define AM4_L4_WKUP_UART1_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x348)
#define AM4_L4_WKUP_SMARTREFLEX0_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x350)
#define AM4_L4_WKUP_SMARTREFLEX1_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x358)
#define AM4_L4_WKUP_CONTROL_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x360)
#define AM4_L4_WKUP_GPIO1_CLKCTRL AM4_L4_WKUP_CLKCTRL_INDEX(0x368)
/* mpu clocks */
#define AM4_MPU_MPU_CLKCTRL AM4_CLKCTRL_INDEX(0x20)
/* gfx_l3 clocks */
#define AM4_GFX_L3_GFX_CLKCTRL AM4_CLKCTRL_INDEX(0x20)
/* l4_rtc clocks */
#define AM4_L4_RTC_RTC_CLKCTRL AM4_CLKCTRL_INDEX(0x20)
/* l3 clocks */
#define AM4_L3_L3_MAIN_CLKCTRL AM4_CLKCTRL_INDEX(0x20)
#define AM4_L3_AES_CLKCTRL AM4_CLKCTRL_INDEX(0x28)
#define AM4_L3_DES_CLKCTRL AM4_CLKCTRL_INDEX(0x30)
#define AM4_L3_L3_INSTR_CLKCTRL AM4_CLKCTRL_INDEX(0x40)
#define AM4_L3_OCMCRAM_CLKCTRL AM4_CLKCTRL_INDEX(0x50)
#define AM4_L3_SHAM_CLKCTRL AM4_CLKCTRL_INDEX(0x58)
#define AM4_L3_TPCC_CLKCTRL AM4_CLKCTRL_INDEX(0x78)
#define AM4_L3_TPTC0_CLKCTRL AM4_CLKCTRL_INDEX(0x80)
#define AM4_L3_TPTC1_CLKCTRL AM4_CLKCTRL_INDEX(0x88)
#define AM4_L3_TPTC2_CLKCTRL AM4_CLKCTRL_INDEX(0x90)
#define AM4_L3_L4_HS_CLKCTRL AM4_CLKCTRL_INDEX(0xa0)
/* l3s clocks */
#define AM4_L3S_CLKCTRL_OFFSET 0x68
#define AM4_L3S_CLKCTRL_INDEX(offset) ((offset) - AM4_L3S_CLKCTRL_OFFSET)
#define AM4_L3S_VPFE0_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x68)
#define AM4_L3S_VPFE1_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x70)
#define AM4_L3S_GPMC_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x220)
#define AM4_L3S_MCASP0_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x238)
#define AM4_L3S_MCASP1_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x240)
#define AM4_L3S_MMC3_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x248)
#define AM4_L3S_QSPI_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x258)
#define AM4_L3S_USB_OTG_SS0_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x260)
#define AM4_L3S_USB_OTG_SS1_CLKCTRL AM4_L3S_CLKCTRL_INDEX(0x268)
/* pruss_ocp clocks */
#define AM4_PRUSS_OCP_CLKCTRL_OFFSET 0x320
#define AM4_PRUSS_OCP_CLKCTRL_INDEX(offset) ((offset) - AM4_PRUSS_OCP_CLKCTRL_OFFSET)
#define AM4_PRUSS_OCP_PRUSS_CLKCTRL AM4_PRUSS_OCP_CLKCTRL_INDEX(0x320)
/* l4ls clocks */
#define AM4_L4LS_CLKCTRL_OFFSET 0x420
#define AM4_L4LS_CLKCTRL_INDEX(offset) ((offset) - AM4_L4LS_CLKCTRL_OFFSET)
#define AM4_L4LS_L4_LS_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x420)
#define AM4_L4LS_D_CAN0_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x428)
#define AM4_L4LS_D_CAN1_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x430)
#define AM4_L4LS_EPWMSS0_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x438)
#define AM4_L4LS_EPWMSS1_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x440)
#define AM4_L4LS_EPWMSS2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x448)
#define AM4_L4LS_EPWMSS3_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x450)
#define AM4_L4LS_EPWMSS4_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x458)
#define AM4_L4LS_EPWMSS5_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x460)
#define AM4_L4LS_ELM_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x468)
#define AM4_L4LS_GPIO2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x478)
#define AM4_L4LS_GPIO3_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x480)
#define AM4_L4LS_GPIO4_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x488)
#define AM4_L4LS_GPIO5_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x490)
#define AM4_L4LS_GPIO6_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x498)
#define AM4_L4LS_HDQ1W_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4a0)
#define AM4_L4LS_I2C2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4a8)
#define AM4_L4LS_I2C3_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4b0)
#define AM4_L4LS_MAILBOX_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4b8)
#define AM4_L4LS_MMC1_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4c0)
#define AM4_L4LS_MMC2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4c8)
#define AM4_L4LS_RNG_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x4e0)
#define AM4_L4LS_SPI0_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x500)
#define AM4_L4LS_SPI1_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x508)
#define AM4_L4LS_SPI2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x510)
#define AM4_L4LS_SPI3_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x518)
#define AM4_L4LS_SPI4_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x520)
#define AM4_L4LS_SPINLOCK_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x528)
#define AM4_L4LS_TIMER2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x530)
#define AM4_L4LS_TIMER3_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x538)
#define AM4_L4LS_TIMER4_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x540)
#define AM4_L4LS_TIMER5_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x548)
#define AM4_L4LS_TIMER6_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x550)
#define AM4_L4LS_TIMER7_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x558)
#define AM4_L4LS_TIMER8_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x560)
#define AM4_L4LS_TIMER9_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x568)
#define AM4_L4LS_TIMER10_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x570)
#define AM4_L4LS_TIMER11_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x578)
#define AM4_L4LS_UART2_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x580)
#define AM4_L4LS_UART3_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x588)
#define AM4_L4LS_UART4_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x590)
#define AM4_L4LS_UART5_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x598)
#define AM4_L4LS_UART6_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x5a0)
#define AM4_L4LS_OCP2SCP0_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x5b8)
#define AM4_L4LS_OCP2SCP1_CLKCTRL AM4_L4LS_CLKCTRL_INDEX(0x5c0)
/* emif clocks */
#define AM4_EMIF_CLKCTRL_OFFSET 0x720
#define AM4_EMIF_CLKCTRL_INDEX(offset) ((offset) - AM4_EMIF_CLKCTRL_OFFSET)
#define AM4_EMIF_EMIF_CLKCTRL AM4_EMIF_CLKCTRL_INDEX(0x720)
/* dss clocks */
#define AM4_DSS_CLKCTRL_OFFSET 0xa20
#define AM4_DSS_CLKCTRL_INDEX(offset) ((offset) - AM4_DSS_CLKCTRL_OFFSET)
#define AM4_DSS_DSS_CORE_CLKCTRL AM4_DSS_CLKCTRL_INDEX(0xa20)
/* cpsw_125mhz clocks */
#define AM4_CPSW_125MHZ_CLKCTRL_OFFSET 0xb20
#define AM4_CPSW_125MHZ_CLKCTRL_INDEX(offset) ((offset) - AM4_CPSW_125MHZ_CLKCTRL_OFFSET)
#define AM4_CPSW_125MHZ_CPGMAC0_CLKCTRL AM4_CPSW_125MHZ_CLKCTRL_INDEX(0xb20)
#endif
include/dt-bindings/clock/dra7.h
View file @
4f1985af
...
...
@@ -16,19 +16,21 @@
#define DRA7_CLKCTRL_OFFSET 0x20
#define DRA7_CLKCTRL_INDEX(offset) ((offset) - DRA7_CLKCTRL_OFFSET)
/* XXX: Compatibility part begin, remove this once compatibility support is no longer needed */
/* mpu clocks */
#define DRA7_MPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* ipu clocks */
#define DRA7_IPU_CLKCTRL_OFFSET 0x40
#define
DRA7_IPU_CLKCTRL_INDEX(offset) ((offset) -
DRA7_IPU_CLKCTRL_OFFSET)
#define DRA7_MCASP1_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x50)
#define DRA7_TIMER5_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x58)
#define DRA7_TIMER6_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x60)
#define DRA7_TIMER7_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x68)
#define DRA7_TIMER8_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x70)
#define DRA7_I2C5_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x78)
#define DRA7_UART6_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x80)
#define
_
DRA7_IPU_CLKCTRL_OFFSET 0x40
#define
_DRA7_IPU_CLKCTRL_INDEX(offset) ((offset) - _
DRA7_IPU_CLKCTRL_OFFSET)
#define DRA7_MCASP1_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x50)
#define DRA7_TIMER5_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x58)
#define DRA7_TIMER6_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x60)
#define DRA7_TIMER7_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x68)
#define DRA7_TIMER8_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x70)
#define DRA7_I2C5_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x78)
#define DRA7_UART6_CLKCTRL
_
DRA7_IPU_CLKCTRL_INDEX(0x80)
/* rtc clocks */
#define DRA7_RTC_CLKCTRL_OFFSET 0x40
...
...
@@ -99,65 +101,65 @@
#define DRA7_USB_OTG_SS1_CLKCTRL DRA7_CLKCTRL_INDEX(0xf0)
/* l4per clocks */
#define DRA7_L4PER_CLKCTRL_OFFSET 0x0
#define
DRA7_L4PER_CLKCTRL_INDEX(offset) ((offset) -
DRA7_L4PER_CLKCTRL_OFFSET)
#define DRA7_L4_PER2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc)
#define DRA7_L4_PER3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x14)
#define DRA7_TIMER10_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x28)
#define DRA7_TIMER11_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x30)
#define DRA7_TIMER2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x38)
#define DRA7_TIMER3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x40)
#define DRA7_TIMER4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x48)
#define DRA7_TIMER9_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x50)
#define DRA7_ELM_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x58)
#define DRA7_GPIO2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x60)
#define DRA7_GPIO3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x68)
#define DRA7_GPIO4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x70)
#define DRA7_GPIO5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x78)
#define DRA7_GPIO6_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x80)
#define DRA7_HDQ1W_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x88)
#define DRA7_EPWMSS1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x90)
#define DRA7_EPWMSS2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x98)
#define DRA7_I2C1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xa0)
#define DRA7_I2C2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xa8)
#define DRA7_I2C3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xb0)
#define DRA7_I2C4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xb8)
#define DRA7_L4_PER1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc0)
#define DRA7_EPWMSS0_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc4)
#define DRA7_TIMER13_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc8)
#define DRA7_TIMER14_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xd0)
#define DRA7_TIMER15_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xd8)
#define DRA7_MCSPI1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xf0)
#define DRA7_MCSPI2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xf8)
#define DRA7_MCSPI3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x100)
#define DRA7_MCSPI4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x108)
#define DRA7_GPIO7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x110)
#define DRA7_GPIO8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x118)
#define DRA7_MMC3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x120)
#define DRA7_MMC4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x128)
#define DRA7_TIMER16_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x130)
#define DRA7_QSPI_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x138)
#define DRA7_UART1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x140)
#define DRA7_UART2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x148)
#define DRA7_UART3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x150)
#define DRA7_UART4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x158)
#define DRA7_MCASP2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x160)
#define DRA7_MCASP3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x168)
#define DRA7_UART5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x170)
#define DRA7_MCASP5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x178)
#define DRA7_MCASP8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x190)
#define DRA7_MCASP4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x198)
#define DRA7_AES1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1a0)
#define DRA7_AES2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1a8)
#define DRA7_DES_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1b0)
#define DRA7_RNG_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1c0)
#define DRA7_SHAM_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1c8)
#define DRA7_UART7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1d0)
#define DRA7_UART8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1e0)
#define DRA7_UART9_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1e8)
#define DRA7_DCAN2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x1f0)
#define DRA7_MCASP6_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x204)
#define DRA7_MCASP7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x208)
#define
_
DRA7_L4PER_CLKCTRL_OFFSET 0x0
#define
_DRA7_L4PER_CLKCTRL_INDEX(offset) ((offset) - _
DRA7_L4PER_CLKCTRL_OFFSET)
#define DRA7_L4_PER2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xc)
#define DRA7_L4_PER3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x14)
#define DRA7_TIMER10_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x28)
#define DRA7_TIMER11_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x30)
#define DRA7_TIMER2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x38)
#define DRA7_TIMER3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x40)
#define DRA7_TIMER4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x48)
#define DRA7_TIMER9_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x50)
#define DRA7_ELM_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x58)
#define DRA7_GPIO2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x60)
#define DRA7_GPIO3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x68)
#define DRA7_GPIO4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x70)
#define DRA7_GPIO5_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x78)
#define DRA7_GPIO6_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x80)
#define DRA7_HDQ1W_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x88)
#define DRA7_EPWMSS1_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x90)
#define DRA7_EPWMSS2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x98)
#define DRA7_I2C1_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xa0)
#define DRA7_I2C2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xa8)
#define DRA7_I2C3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xb0)
#define DRA7_I2C4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xb8)
#define DRA7_L4_PER1_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xc0)
#define DRA7_EPWMSS0_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xc4)
#define DRA7_TIMER13_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xc8)
#define DRA7_TIMER14_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xd0)
#define DRA7_TIMER15_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xd8)
#define DRA7_MCSPI1_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xf0)
#define DRA7_MCSPI2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0xf8)
#define DRA7_MCSPI3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x100)
#define DRA7_MCSPI4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x108)
#define DRA7_GPIO7_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x110)
#define DRA7_GPIO8_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x118)
#define DRA7_MMC3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x120)
#define DRA7_MMC4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x128)
#define DRA7_TIMER16_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x130)
#define DRA7_QSPI_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x138)
#define DRA7_UART1_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x140)
#define DRA7_UART2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x148)
#define DRA7_UART3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x150)
#define DRA7_UART4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x158)
#define DRA7_MCASP2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x160)
#define DRA7_MCASP3_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x168)
#define DRA7_UART5_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x170)
#define DRA7_MCASP5_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x178)
#define DRA7_MCASP8_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x190)
#define DRA7_MCASP4_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x198)
#define DRA7_AES1_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1a0)
#define DRA7_AES2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1a8)
#define DRA7_DES_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1b0)
#define DRA7_RNG_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1c0)
#define DRA7_SHAM_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1c8)
#define DRA7_UART7_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1d0)
#define DRA7_UART8_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1e0)
#define DRA7_UART9_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1e8)
#define DRA7_DCAN2_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x1f0)
#define DRA7_MCASP6_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x204)
#define DRA7_MCASP7_CLKCTRL
_
DRA7_L4PER_CLKCTRL_INDEX(0x208)
/* wkupaon clocks */
#define DRA7_L4_WKUP_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
...
...
@@ -170,4 +172,192 @@
#define DRA7_DCAN1_CLKCTRL DRA7_CLKCTRL_INDEX(0x88)
#define DRA7_ADC_CLKCTRL DRA7_CLKCTRL_INDEX(0xa0)
/* XXX: Compatibility part end. */
/* mpu clocks */
#define DRA7_MPU_MPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* dsp1 clocks */
#define DRA7_DSP1_MMU0_DSP1_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* ipu1 clocks */
#define DRA7_IPU1_MMU_IPU1_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* ipu clocks */
#define DRA7_IPU_CLKCTRL_OFFSET 0x50
#define DRA7_IPU_CLKCTRL_INDEX(offset) ((offset) - DRA7_IPU_CLKCTRL_OFFSET)
#define DRA7_IPU_MCASP1_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x50)
#define DRA7_IPU_TIMER5_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x58)
#define DRA7_IPU_TIMER6_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x60)
#define DRA7_IPU_TIMER7_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x68)
#define DRA7_IPU_TIMER8_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x70)
#define DRA7_IPU_I2C5_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x78)
#define DRA7_IPU_UART6_CLKCTRL DRA7_IPU_CLKCTRL_INDEX(0x80)
/* dsp2 clocks */
#define DRA7_DSP2_MMU0_DSP2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* rtc clocks */
#define DRA7_RTC_RTCSS_CLKCTRL DRA7_CLKCTRL_INDEX(0x44)
/* coreaon clocks */
#define DRA7_COREAON_SMARTREFLEX_MPU_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
#define DRA7_COREAON_SMARTREFLEX_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x38)
/* l3main1 clocks */
#define DRA7_L3MAIN1_L3_MAIN_1_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
#define DRA7_L3MAIN1_GPMC_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
#define DRA7_L3MAIN1_TPCC_CLKCTRL DRA7_CLKCTRL_INDEX(0x70)
#define DRA7_L3MAIN1_TPTC0_CLKCTRL DRA7_CLKCTRL_INDEX(0x78)
#define DRA7_L3MAIN1_TPTC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x80)
#define DRA7_L3MAIN1_VCP1_CLKCTRL DRA7_CLKCTRL_INDEX(0x88)
#define DRA7_L3MAIN1_VCP2_CLKCTRL DRA7_CLKCTRL_INDEX(0x90)
/* ipu2 clocks */
#define DRA7_IPU2_MMU_IPU2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* dma clocks */
#define DRA7_DMA_DMA_SYSTEM_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* emif clocks */
#define DRA7_EMIF_DMM_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
/* atl clocks */
#define DRA7_ATL_CLKCTRL_OFFSET 0x0
#define DRA7_ATL_CLKCTRL_INDEX(offset) ((offset) - DRA7_ATL_CLKCTRL_OFFSET)
#define DRA7_ATL_ATL_CLKCTRL DRA7_ATL_CLKCTRL_INDEX(0x0)
/* l4cfg clocks */
#define DRA7_L4CFG_L4_CFG_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
#define DRA7_L4CFG_SPINLOCK_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
#define DRA7_L4CFG_MAILBOX1_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
#define DRA7_L4CFG_MAILBOX2_CLKCTRL DRA7_CLKCTRL_INDEX(0x48)
#define DRA7_L4CFG_MAILBOX3_CLKCTRL DRA7_CLKCTRL_INDEX(0x50)
#define DRA7_L4CFG_MAILBOX4_CLKCTRL DRA7_CLKCTRL_INDEX(0x58)
#define DRA7_L4CFG_MAILBOX5_CLKCTRL DRA7_CLKCTRL_INDEX(0x60)
#define DRA7_L4CFG_MAILBOX6_CLKCTRL DRA7_CLKCTRL_INDEX(0x68)
#define DRA7_L4CFG_MAILBOX7_CLKCTRL DRA7_CLKCTRL_INDEX(0x70)
#define DRA7_L4CFG_MAILBOX8_CLKCTRL DRA7_CLKCTRL_INDEX(0x78)
#define DRA7_L4CFG_MAILBOX9_CLKCTRL DRA7_CLKCTRL_INDEX(0x80)
#define DRA7_L4CFG_MAILBOX10_CLKCTRL DRA7_CLKCTRL_INDEX(0x88)
#define DRA7_L4CFG_MAILBOX11_CLKCTRL DRA7_CLKCTRL_INDEX(0x90)
#define DRA7_L4CFG_MAILBOX12_CLKCTRL DRA7_CLKCTRL_INDEX(0x98)
#define DRA7_L4CFG_MAILBOX13_CLKCTRL DRA7_CLKCTRL_INDEX(0xa0)
/* l3instr clocks */
#define DRA7_L3INSTR_L3_MAIN_2_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
#define DRA7_L3INSTR_L3_INSTR_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
/* dss clocks */
#define DRA7_DSS_DSS_CORE_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
#define DRA7_DSS_BB2D_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
/* l3init clocks */
#define DRA7_L3INIT_MMC1_CLKCTRL DRA7_CLKCTRL_INDEX(0x28)
#define DRA7_L3INIT_MMC2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
#define DRA7_L3INIT_USB_OTG_SS2_CLKCTRL DRA7_CLKCTRL_INDEX(0x40)
#define DRA7_L3INIT_USB_OTG_SS3_CLKCTRL DRA7_CLKCTRL_INDEX(0x48)
#define DRA7_L3INIT_USB_OTG_SS4_CLKCTRL DRA7_CLKCTRL_INDEX(0x50)
#define DRA7_L3INIT_SATA_CLKCTRL DRA7_CLKCTRL_INDEX(0x88)
#define DRA7_L3INIT_OCP2SCP1_CLKCTRL DRA7_CLKCTRL_INDEX(0xe0)
#define DRA7_L3INIT_OCP2SCP3_CLKCTRL DRA7_CLKCTRL_INDEX(0xe8)
#define DRA7_L3INIT_USB_OTG_SS1_CLKCTRL DRA7_CLKCTRL_INDEX(0xf0)
/* pcie clocks */
#define DRA7_PCIE_CLKCTRL_OFFSET 0xb0
#define DRA7_PCIE_CLKCTRL_INDEX(offset) ((offset) - DRA7_PCIE_CLKCTRL_OFFSET)
#define DRA7_PCIE_PCIE1_CLKCTRL DRA7_PCIE_CLKCTRL_INDEX(0xb0)
#define DRA7_PCIE_PCIE2_CLKCTRL DRA7_PCIE_CLKCTRL_INDEX(0xb8)
/* gmac clocks */
#define DRA7_GMAC_CLKCTRL_OFFSET 0xd0
#define DRA7_GMAC_CLKCTRL_INDEX(offset) ((offset) - DRA7_GMAC_CLKCTRL_OFFSET)
#define DRA7_GMAC_GMAC_CLKCTRL DRA7_GMAC_CLKCTRL_INDEX(0xd0)
/* l4per clocks */
#define DRA7_L4PER_CLKCTRL_OFFSET 0x28
#define DRA7_L4PER_CLKCTRL_INDEX(offset) ((offset) - DRA7_L4PER_CLKCTRL_OFFSET)
#define DRA7_L4PER_TIMER10_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x28)
#define DRA7_L4PER_TIMER11_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x30)
#define DRA7_L4PER_TIMER2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x38)
#define DRA7_L4PER_TIMER3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x40)
#define DRA7_L4PER_TIMER4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x48)
#define DRA7_L4PER_TIMER9_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x50)
#define DRA7_L4PER_ELM_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x58)
#define DRA7_L4PER_GPIO2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x60)
#define DRA7_L4PER_GPIO3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x68)
#define DRA7_L4PER_GPIO4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x70)
#define DRA7_L4PER_GPIO5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x78)
#define DRA7_L4PER_GPIO6_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x80)
#define DRA7_L4PER_HDQ1W_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x88)
#define DRA7_L4PER_I2C1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xa0)
#define DRA7_L4PER_I2C2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xa8)
#define DRA7_L4PER_I2C3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xb0)
#define DRA7_L4PER_I2C4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xb8)
#define DRA7_L4PER_L4_PER1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xc0)
#define DRA7_L4PER_MCSPI1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xf0)
#define DRA7_L4PER_MCSPI2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0xf8)
#define DRA7_L4PER_MCSPI3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x100)
#define DRA7_L4PER_MCSPI4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x108)
#define DRA7_L4PER_GPIO7_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x110)
#define DRA7_L4PER_GPIO8_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x118)
#define DRA7_L4PER_MMC3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x120)
#define DRA7_L4PER_MMC4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x128)
#define DRA7_L4PER_UART1_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x140)
#define DRA7_L4PER_UART2_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x148)
#define DRA7_L4PER_UART3_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x150)
#define DRA7_L4PER_UART4_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x158)
#define DRA7_L4PER_UART5_CLKCTRL DRA7_L4PER_CLKCTRL_INDEX(0x170)
/* l4sec clocks */
#define DRA7_L4SEC_CLKCTRL_OFFSET 0x1a0
#define DRA7_L4SEC_CLKCTRL_INDEX(offset) ((offset) - DRA7_L4SEC_CLKCTRL_OFFSET)
#define DRA7_L4SEC_AES1_CLKCTRL DRA7_L4SEC_CLKCTRL_INDEX(0x1a0)
#define DRA7_L4SEC_AES2_CLKCTRL DRA7_L4SEC_CLKCTRL_INDEX(0x1a8)
#define DRA7_L4SEC_DES_CLKCTRL DRA7_L4SEC_CLKCTRL_INDEX(0x1b0)
#define DRA7_L4SEC_RNG_CLKCTRL DRA7_L4SEC_CLKCTRL_INDEX(0x1c0)
#define DRA7_L4SEC_SHAM_CLKCTRL DRA7_L4SEC_CLKCTRL_INDEX(0x1c8)
/* l4per2 clocks */
#define DRA7_L4PER2_CLKCTRL_OFFSET 0xc
#define DRA7_L4PER2_CLKCTRL_INDEX(offset) ((offset) - DRA7_L4PER2_CLKCTRL_OFFSET)
#define DRA7_L4PER2_L4_PER2_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0xc)
#define DRA7_L4PER2_PRUSS1_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x18)
#define DRA7_L4PER2_PRUSS2_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x20)
#define DRA7_L4PER2_EPWMSS1_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x90)
#define DRA7_L4PER2_EPWMSS2_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x98)
#define DRA7_L4PER2_EPWMSS0_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0xc4)
#define DRA7_L4PER2_QSPI_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x138)
#define DRA7_L4PER2_MCASP2_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x160)
#define DRA7_L4PER2_MCASP3_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x168)
#define DRA7_L4PER2_MCASP5_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x178)
#define DRA7_L4PER2_MCASP8_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x190)
#define DRA7_L4PER2_MCASP4_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x198)
#define DRA7_L4PER2_UART7_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x1d0)
#define DRA7_L4PER2_UART8_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x1e0)
#define DRA7_L4PER2_UART9_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x1e8)
#define DRA7_L4PER2_DCAN2_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x1f0)
#define DRA7_L4PER2_MCASP6_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x204)
#define DRA7_L4PER2_MCASP7_CLKCTRL DRA7_L4PER2_CLKCTRL_INDEX(0x208)
/* l4per3 clocks */
#define DRA7_L4PER3_CLKCTRL_OFFSET 0x14
#define DRA7_L4PER3_CLKCTRL_INDEX(offset) ((offset) - DRA7_L4PER3_CLKCTRL_OFFSET)
#define DRA7_L4PER3_L4_PER3_CLKCTRL DRA7_L4PER3_CLKCTRL_INDEX(0x14)
#define DRA7_L4PER3_TIMER13_CLKCTRL DRA7_L4PER3_CLKCTRL_INDEX(0xc8)
#define DRA7_L4PER3_TIMER14_CLKCTRL DRA7_L4PER3_CLKCTRL_INDEX(0xd0)
#define DRA7_L4PER3_TIMER15_CLKCTRL DRA7_L4PER3_CLKCTRL_INDEX(0xd8)
#define DRA7_L4PER3_TIMER16_CLKCTRL DRA7_L4PER3_CLKCTRL_INDEX(0x130)
/* wkupaon clocks */
#define DRA7_WKUPAON_L4_WKUP_CLKCTRL DRA7_CLKCTRL_INDEX(0x20)
#define DRA7_WKUPAON_WD_TIMER2_CLKCTRL DRA7_CLKCTRL_INDEX(0x30)
#define DRA7_WKUPAON_GPIO1_CLKCTRL DRA7_CLKCTRL_INDEX(0x38)
#define DRA7_WKUPAON_TIMER1_CLKCTRL DRA7_CLKCTRL_INDEX(0x40)
#define DRA7_WKUPAON_TIMER12_CLKCTRL DRA7_CLKCTRL_INDEX(0x48)
#define DRA7_WKUPAON_COUNTER_32K_CLKCTRL DRA7_CLKCTRL_INDEX(0x50)
#define DRA7_WKUPAON_UART10_CLKCTRL DRA7_CLKCTRL_INDEX(0x80)
#define DRA7_WKUPAON_DCAN1_CLKCTRL DRA7_CLKCTRL_INDEX(0x88)
#define DRA7_WKUPAON_ADC_CLKCTRL DRA7_CLKCTRL_INDEX(0xa0)
#endif
include/linux/clk-provider.h
View file @
4f1985af
...
...
@@ -119,6 +119,11 @@ struct clk_duty {
* Called with enable_lock held. This function must not
* sleep.
*
* @save_context: Save the context of the clock in prepration for poweroff.
*
* @restore_context: Restore the context of the clock after a restoration
* of power.
*
* @recalc_rate Recalculate the rate of this clock, by querying hardware. The
* parent rate is an input parameter. It is up to the caller to
* ensure that the prepare_mutex is held across this call.
...
...
@@ -223,6 +228,8 @@ struct clk_ops {
void
(
*
disable
)(
struct
clk_hw
*
hw
);
int
(
*
is_enabled
)(
struct
clk_hw
*
hw
);
void
(
*
disable_unused
)(
struct
clk_hw
*
hw
);
int
(
*
save_context
)(
struct
clk_hw
*
hw
);
void
(
*
restore_context
)(
struct
clk_hw
*
hw
);
unsigned
long
(
*
recalc_rate
)(
struct
clk_hw
*
hw
,
unsigned
long
parent_rate
);
long
(
*
round_rate
)(
struct
clk_hw
*
hw
,
unsigned
long
rate
,
...
...
@@ -1011,5 +1018,7 @@ static inline void clk_writel(u32 val, u32 __iomem *reg)
#endif
/* platform dependent I/O accessors */
void
clk_gate_restore_context
(
struct
clk_hw
*
hw
);
#endif
/* CONFIG_COMMON_CLK */
#endif
/* CLK_PROVIDER_H */
include/linux/clk.h
View file @
4f1985af
...
...
@@ -629,6 +629,23 @@ struct clk *clk_get_parent(struct clk *clk);
*/
struct
clk
*
clk_get_sys
(
const
char
*
dev_id
,
const
char
*
con_id
);
/**
* clk_save_context - save clock context for poweroff
*
* Saves the context of the clock register for powerstates in which the
* contents of the registers will be lost. Occurs deep within the suspend
* code so locking is not necessary.
*/
int
clk_save_context
(
void
);
/**
* clk_restore_context - restore clock context after poweroff
*
* This occurs with all clocks enabled. Occurs deep within the resume code
* so locking is not necessary.
*/
void
clk_restore_context
(
void
);
#else
/* !CONFIG_HAVE_CLK */
static
inline
struct
clk
*
clk_get
(
struct
device
*
dev
,
const
char
*
id
)
...
...
@@ -728,6 +745,14 @@ static inline struct clk *clk_get_sys(const char *dev_id, const char *con_id)
{
return
NULL
;
}
static
inline
int
clk_save_context
(
void
)
{
return
0
;
}
static
inline
void
clk_restore_context
(
void
)
{}
#endif
/* clk_prepare_enable helps cases using clk_enable in non-atomic context. */
...
...
include/linux/clk/ti.h
View file @
4f1985af
...
...
@@ -159,6 +159,7 @@ struct clk_hw_omap {
const
char
*
clkdm_name
;
struct
clockdomain
*
clkdm
;
const
struct
clk_hw_omap_ops
*
ops
;
u32
context
;
};
/*
...
...
@@ -290,9 +291,15 @@ struct ti_clk_features {
#define TI_CLK_DPLL4_DENY_REPROGRAM BIT(1)
#define TI_CLK_DISABLE_CLKDM_CONTROL BIT(2)
#define TI_CLK_ERRATA_I810 BIT(3)
#define TI_CLK_CLKCTRL_COMPAT BIT(4)
void
ti_clk_setup_features
(
struct
ti_clk_features
*
features
);
const
struct
ti_clk_features
*
ti_clk_get_features
(
void
);
int
omap3_noncore_dpll_save_context
(
struct
clk_hw
*
hw
);
void
omap3_noncore_dpll_restore_context
(
struct
clk_hw
*
hw
);
int
omap3_core_dpll_save_context
(
struct
clk_hw
*
hw
);
void
omap3_core_dpll_restore_context
(
struct
clk_hw
*
hw
);
extern
const
struct
clk_hw_omap_ops
clkhwops_omap2xxx_dpll
;
...
...
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