From: Lokesh Vutla Date: Wed, 5 Aug 2020 17:14:17 +0000 (+0530) Subject: arm: mach-k3: Move mmr_unlock to a common location X-Git-Url: http://git.dujemihanovic.xyz/img/sics.gif?a=commitdiff_plain;h=58ccd6105c6e1fc98e546ea86940e10c52b7840b;p=u-boot.git arm: mach-k3: Move mmr_unlock to a common location mmr_unlock api is common for all k3 devices. Move it to a common location. Signed-off-by: Lokesh Vutla Reviewed-by: Suman Anna --- diff --git a/arch/arm/mach-k3/am6_init.c b/arch/arm/mach-k3/am6_init.c index 9cb3086014..e66d1c1fe1 100644 --- a/arch/arm/mach-k3/am6_init.c +++ b/arch/arm/mach-k3/am6_init.c @@ -46,16 +46,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 4335f2877b..178dc210c3 100644 --- a/arch/arm/mach-k3/common.c +++ b/arch/arm/mach-k3/common.c @@ -62,6 +62,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 ba344c5bc9..44cf94a174 100644 --- a/arch/arm/mach-k3/common.h +++ b/arch/arm/mach-k3/common.h @@ -22,3 +22,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 */