
On 7/27/20 4:45 AM, Lokesh Vutla wrote:
mmr_unlock api is common for all k3 devices. Move it to a common location.
Signed-off-by: Lokesh Vutla lokeshvutla@ti.com
Reviewed-by: Suman Anna s-anna@ti.com
arch/arm/mach-k3/am6_init.c | 10 ---------- arch/arm/mach-k3/common.c | 10 ++++++++++ arch/arm/mach-k3/common.h | 1 + arch/arm/mach-k3/j721e_init.c | 10 ---------- 4 files changed, 11 insertions(+), 20 deletions(-)
diff --git a/arch/arm/mach-k3/am6_init.c b/arch/arm/mach-k3/am6_init.c index 516a02e8a8..abdec76d73 100644 --- a/arch/arm/mach-k3/am6_init.c +++ b/arch/arm/mach-k3/am6_init.c @@ -41,16 +41,6 @@ struct fwl_data main_cbass_fwls[] = { #endif #endif
-static void mmr_unlock(u32 base, u32 partition) -{
- /* Translate the base address */
- phys_addr_t part_base = base + partition * CTRL_MMR0_PARTITION_SIZE;
- /* Unlock the requested partition if locked using two-step sequence */
- writel(CTRLMMR_LOCK_KICK0_UNLOCK_VAL, part_base + CTRLMMR_LOCK_KICK0);
- writel(CTRLMMR_LOCK_KICK1_UNLOCK_VAL, part_base + CTRLMMR_LOCK_KICK1);
-}
- static void ctrl_mmr_unlock(void) { /* Unlock all WKUP_CTRL_MMR0 module registers */
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c index 63bf060616..eb72451d06 100644 --- a/arch/arm/mach-k3/common.c +++ b/arch/arm/mach-k3/common.c @@ -61,6 +61,16 @@ void k3_sysfw_print_ver(void) ti_sci->version.firmware_revision, fw_desc); }
+void mmr_unlock(phys_addr_t base, u32 partition) +{
- /* Translate the base address */
- phys_addr_t part_base = base + partition * CTRL_MMR0_PARTITION_SIZE;
- /* Unlock the requested partition if locked using two-step sequence */
- writel(CTRLMMR_LOCK_KICK0_UNLOCK_VAL, part_base + CTRLMMR_LOCK_KICK0);
- writel(CTRLMMR_LOCK_KICK1_UNLOCK_VAL, part_base + CTRLMMR_LOCK_KICK1);
+}
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_K3_EARLY_CONS
diff --git a/arch/arm/mach-k3/common.h b/arch/arm/mach-k3/common.h index 94cdcb56ad..e8cc3daac1 100644 --- a/arch/arm/mach-k3/common.h +++ b/arch/arm/mach-k3/common.h @@ -28,3 +28,4 @@ void start_non_linux_remote_cores(void); int load_firmware(char *name_fw, char *name_loadaddr, u32 *loadaddr); void k3_sysfw_print_ver(void); void spl_enable_dcache(void); +void mmr_unlock(phys_addr_t base, u32 partition); diff --git a/arch/arm/mach-k3/j721e_init.c b/arch/arm/mach-k3/j721e_init.c index 5ec62a92f8..2010cab1d1 100644 --- a/arch/arm/mach-k3/j721e_init.c +++ b/arch/arm/mach-k3/j721e_init.c @@ -64,16 +64,6 @@ struct fwl_data cbass_hc_cfg0_fwls[] = { #endif #endif
-static void mmr_unlock(u32 base, u32 partition) -{
- /* Translate the base address */
- phys_addr_t part_base = base + partition * CTRL_MMR0_PARTITION_SIZE;
- /* Unlock the requested partition if locked using two-step sequence */
- writel(CTRLMMR_LOCK_KICK0_UNLOCK_VAL, part_base + CTRLMMR_LOCK_KICK0);
- writel(CTRLMMR_LOCK_KICK1_UNLOCK_VAL, part_base + CTRLMMR_LOCK_KICK1);
-}
- static void ctrl_mmr_unlock(void) { /* Unlock all WKUP_CTRL_MMR0 module registers */