diff options
| author | Oliver Schinagl <[email protected]> | 2014-10-03 20:16:24 +0800 |
|---|---|---|
| committer | Hans de Goede <[email protected]> | 2014-10-24 09:35:37 +0200 |
| commit | 174deb768c65969a3bcdab4dfbcdcb02abe9f09e (patch) | |
| tree | 4c73883c1ca120fef1f2f26f962d0ada3560f31b /arch/arm/cpu | |
| parent | 93ce1e9dad42e23e5938b601c36172e8baa1b675 (diff) | |
ARM: sun6i: Add support for the power reset control module found on the A31
The A31 has a new module called PRCM, or Power, Reset Control Module.
This module controls clocks and resets for RTC block modules, and also
PLL biasing in the main clock module.
This patch adds the register definitions, and also enables the clocks
and resets for the RTC block PIO (pin controller) and P2WI (push-pull
2 wire interface) which is used to talk to the PMIC.
Signed-off-by: Oliver Schinagl <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
[[email protected]: spacing fixes reported by checkpatch.pl]
[[email protected]: Use setbits helper in PRCM init function]
[[email protected]: rephrase commit message to explain what the hardware
supports and what we actually enable]
Signed-off-by: Chen-Yu Tsai <[email protected]>
Acked-by: Ian Campbell <[email protected]>
Diffstat (limited to 'arch/arm/cpu')
| -rw-r--r-- | arch/arm/cpu/armv7/sunxi/Makefile | 1 | ||||
| -rw-r--r-- | arch/arm/cpu/armv7/sunxi/prcm.c | 33 |
2 files changed, 34 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/sunxi/Makefile b/arch/arm/cpu/armv7/sunxi/Makefile index e9721b27b64..f0473d2ab87 100644 --- a/arch/arm/cpu/armv7/sunxi/Makefile +++ b/arch/arm/cpu/armv7/sunxi/Makefile @@ -11,6 +11,7 @@ obj-y += timer.o obj-y += board.o obj-y += clock.o obj-y += pinmux.o +obj-$(CONFIG_SUN6I) += prcm.o obj-$(CONFIG_SUN4I) += clock_sun4i.o obj-$(CONFIG_SUN5I) += clock_sun4i.o obj-$(CONFIG_SUN7I) += clock_sun4i.o diff --git a/arch/arm/cpu/armv7/sunxi/prcm.c b/arch/arm/cpu/armv7/sunxi/prcm.c new file mode 100644 index 00000000000..7b3ee893026 --- /dev/null +++ b/arch/arm/cpu/armv7/sunxi/prcm.c @@ -0,0 +1,33 @@ +/* + * Sunxi A31 Power Management Unit + * + * (C) Copyright 2013 Oliver Schinagl <[email protected]> + * 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 <[email protected]> + * Tom Cubie <[email protected]> + * + * 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> + +void prcm_init_apb0(void) +{ + struct sunxi_prcm_reg *prcm = + (struct sunxi_prcm_reg *)SUNXI_PRCM_BASE; + + setbits_le32(&prcm->apb0_gate, PRCM_APB0_GATE_P2WI | + PRCM_APB0_GATE_PIO); + setbits_le32(&prcm->apb0_reset, PRCM_APB0_RESET_P2WI | + PRCM_APB0_RESET_PIO); +} |
