/* * Sunxi A31 Power Management Unit * * (C) Copyright 2013 Oliver Schinagl * http://linux-sunxi.org * * Based on sun6i sources and earlier U-Boot Allwinner A10 SPL work * * (C) Copyright 2006-2013 * Allwinner Technology Co., Ltd. * Berg Xing * Tom Cubie * * SPDX-License-Identifier: GPL-2.0+ */ #include #include #include #include #include #include /* 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); }