mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 14:40:41 +00:00
e6e505b93c
Some of the code in arch/arm/cpu/armv7/sunxi is actually armv7 specific, while most of it is just generic code that could as well be used on an AArch64 SoC. Move all files that are not really tied to armv7 into a new mach-sunxi directory. Signed-off-by: Alexander Graf <agraf@suse.de> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
/*
|
|
* Sunxi A31 Power Management Unit
|
|
*
|
|
* (C) Copyright 2013 Oliver Schinagl <oliver@schinagl.nl>
|
|
* http://linux-sunxi.org
|
|
*
|
|
* Based on sun6i sources and earlier U-Boot Allwinner A10 SPL work
|
|
*
|
|
* (C) Copyright 2006-2013
|
|
* Allwinner Technology Co., Ltd. <www.allwinnertech.com>
|
|
* Berg Xing <bergxing@allwinnertech.com>
|
|
* Tom Cubie <tangliang@allwinnertech.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <errno.h>
|
|
#include <asm/io.h>
|
|
#include <asm/arch/cpu.h>
|
|
#include <asm/arch/prcm.h>
|
|
#include <asm/arch/sys_proto.h>
|
|
|
|
/* APB0 clock gate and reset bit offsets are the same. */
|
|
void prcm_apb0_enable(u32 flags)
|
|
{
|
|
struct sunxi_prcm_reg *prcm =
|
|
(struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
|
|
|
|
/* open the clock for module */
|
|
setbits_le32(&prcm->apb0_gate, flags);
|
|
|
|
/* deassert reset for module */
|
|
setbits_le32(&prcm->apb0_reset, flags);
|
|
}
|
|
|
|
void prcm_apb0_disable(u32 flags)
|
|
{
|
|
struct sunxi_prcm_reg *prcm =
|
|
(struct sunxi_prcm_reg *)SUNXI_PRCM_BASE;
|
|
|
|
/* assert reset for module */
|
|
clrbits_le32(&prcm->apb0_reset, flags);
|
|
|
|
/* close the clock for module */
|
|
clrbits_le32(&prcm->apb0_gate, flags);
|
|
}
|